parallel ip - initial checkin

Signed-off-by: Ralf Mollik <ramollik@compex-commerce.com>
diff --git a/.project b/.project
new file mode 100644
index 0000000..e7aeef0
--- /dev/null
+++ b/.project
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>org.eclipse.osbp.xtext.reportdsl.aggregator</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+		<buildCommand>
+			<name>org.eclipse.m2e.core.maven2Builder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.sonarlint.eclipse.core.sonarlintBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+	</buildSpec>
+	<natures>
+		<nature>org.eclipse.m2e.core.maven2Nature</nature>
+	</natures>
+</projectDescription>
diff --git a/about.html b/about.html
new file mode 100644
index 0000000..64c0598
--- /dev/null
+++ b/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/jenkins.build.config.xml b/jenkins.build.config.xml
new file mode 100644
index 0000000..9084449
--- /dev/null
+++ b/jenkins.build.config.xml
@@ -0,0 +1,43 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--#======================================================================= -->
+<!--# Copyright (c) 2016 - Loetz GmbH&Co.KG                                    -->
+<!--# 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                           -->
+<!--#======================================================================= -->
+<!--# Module specific parameters for the Jenkins Job 						 -->
+<!--#======================================================================= -->
+
+<jenkins>
+	<!-- DO NOT EDIT BELOW THIS LINE -->
+        <jenkins.build.dependencies>
+                <jenkins.build.dependency>org.eclipse.osbp.authentication</jenkins.build.dependency>
+                <jenkins.build.dependency>org.eclipse.osbp.dsl</jenkins.build.dependency>
+                <jenkins.build.dependency>org.eclipse.osbp.ecview.addons</jenkins.build.dependency>
+                <jenkins.build.dependency>org.eclipse.osbp.ecview.core</jenkins.build.dependency>
+                <jenkins.build.dependency>org.eclipse.osbp.eventbroker</jenkins.build.dependency>
+                <jenkins.build.dependency>org.eclipse.osbp.osgi.hybrid.api</jenkins.build.dependency>
+                <jenkins.build.dependency>org.eclipse.osbp.preferences</jenkins.build.dependency>
+                <jenkins.build.dependency>org.eclipse.osbp.runtime</jenkins.build.dependency>
+                <jenkins.build.dependency>org.eclipse.osbp.runtime.web</jenkins.build.dependency>
+                <jenkins.build.dependency>org.eclipse.osbp.ui.api</jenkins.build.dependency>
+                <jenkins.build.dependency>org.eclipse.osbp.utils</jenkins.build.dependency>
+                <jenkins.build.dependency>org.eclipse.osbp.utils.themes.ui</jenkins.build.dependency>
+                <jenkins.build.dependency>org.eclipse.osbp.utils.ui</jenkins.build.dependency>
+                <jenkins.build.dependency>org.eclipse.osbp.vaaclipse</jenkins.build.dependency>
+                <jenkins.build.dependency>org.eclipse.osbp.webserver.messagequeue</jenkins.build.dependency>
+                <jenkins.build.dependency>org.eclipse.osbp.xtext.action</jenkins.build.dependency>
+                <jenkins.build.dependency>org.eclipse.osbp.xtext.addons</jenkins.build.dependency>
+                <jenkins.build.dependency>org.eclipse.osbp.xtext.blip</jenkins.build.dependency>
+                <jenkins.build.dependency>org.eclipse.osbp.xtext.cube</jenkins.build.dependency>
+                <jenkins.build.dependency>org.eclipse.osbp.xtext.datamart</jenkins.build.dependency>
+                <jenkins.build.dependency>org.eclipse.osbp.xtext.datamart.common</jenkins.build.dependency>
+                <jenkins.build.dependency>org.eclipse.osbp.xtext.i18n</jenkins.build.dependency>
+                <jenkins.build.dependency>org.eclipse.osbp.xtext.table</jenkins.build.dependency>
+                <jenkins.build.dependency>org.eclipse.osbp.xtext.table.common</jenkins.build.dependency>
+        </jenkins.build.dependencies>
+</jenkins>
diff --git a/notice.html b/notice.html
new file mode 100644
index 0000000..c3d34c3
--- /dev/null
+++ b/notice.html
@@ -0,0 +1,107 @@
+<?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>April 9, 2014</p>
+
+<h3>Usage Of Content</h3>
+
+<p>THE ECLIPSE FOUNDATION MAKES AVAILABLE SOFTWARE, DOCUMENTATION, INFORMATION AND/OR OTHER MATERIALS FOR OPEN SOURCE PROJECTS
+   (COLLECTIVELY &quot;CONTENT&quot;).  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
+   (&quot;EPL&quot;).  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, &quot;Program&quot; 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 (&quot;Repository&quot;) in software modules (&quot;Modules&quot;) and made available as downloadable archives (&quot;Downloads&quot;).</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 (&quot;Plug-ins&quot;), plug-in fragments (&quot;Fragments&quot;), and features (&quot;Features&quot;).</li>
+       <li>Each Plug-in or Fragment may be packaged as a sub-directory or JAR (Java&trade; ARchive) in a directory named &quot;plugins&quot;.</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 &quot;features&quot;.  Within a Feature, files named &quot;feature.xml&quot; 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 (&quot;Included Features&quot;). Within a Feature, files named &quot;feature.xml&quot; 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 &quot;about.html&quot; (&quot;Abouts&quot;). The terms and conditions governing Features and
+Included Features should be contained in files named &quot;license.html&quot; (&quot;Feature Licenses&quot;).  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 &quot;src&quot; 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 (&quot;Feature Update License&quot;) 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 &quot;license&quot; property of files named &quot;feature.properties&quot; 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>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 (&quot;Provisioning Technology&quot;) for the purpose of allowing users to install software, documentation, information and/or
+   other materials (collectively &quot;Installable Software&quot;). 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>
+   (&quot;Specification&quot;).</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 (&quot;Provisioning Process&quot;) in which a user may execute the Provisioning Technology
+       on a machine (&quot;Target Machine&quot;) 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 (&quot;Installable Software Agreement&quot;) 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>
diff --git a/org.eclipse.osbp.xtext.reportdsl.feature/.project b/org.eclipse.osbp.xtext.reportdsl.feature/.project
new file mode 100644
index 0000000..4d2ece5
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl.feature/.project
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>org.eclipse.osbp.xtext.reportdsl.feature</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+		<buildCommand>
+			<name>org.eclipse.xtext.ui.shared.xtextBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.pde.FeatureBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.sonarlint.eclipse.core.sonarlintBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.m2e.core.maven2Builder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+	</buildSpec>
+	<natures>
+		<nature>org.eclipse.xtext.ui.shared.xtextNature</nature>
+		<nature>org.eclipse.m2e.core.maven2Nature</nature>
+		<nature>org.eclipse.pde.FeatureNature</nature>
+	</natures>
+</projectDescription>
diff --git a/org.eclipse.osbp.xtext.reportdsl.feature/LICENSE.txt b/org.eclipse.osbp.xtext.reportdsl.feature/LICENSE.txt
new file mode 100644
index 0000000..ff42ad4
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl.feature/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.reportdsl.feature/build.properties b/org.eclipse.osbp.xtext.reportdsl.feature/build.properties
new file mode 100644
index 0000000..b8920ff
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl.feature/build.properties
@@ -0,0 +1,2 @@
+bin.includes = license.html,  epl-v10.html,  feature.xml,\
+               feature.properties
diff --git a/org.eclipse.osbp.xtext.reportdsl.feature/epl-v10.html b/org.eclipse.osbp.xtext.reportdsl.feature/epl-v10.html
new file mode 100644
index 0000000..b398acc
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl.feature/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.reportdsl.feature/feature.properties b/org.eclipse.osbp.xtext.reportdsl.feature/feature.properties
new file mode 100644
index 0000000..01e550c
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl.feature/feature.properties
@@ -0,0 +1,169 @@
+###############################################################################
+# 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:
+#     Cristiano Gavião - initial API and implementation
+###############################################################################
+# feature.properties
+# contains externalized strings for feature.xml
+# "%foo" in feature.xml corresponds to the key "foo" in this file
+# java.io.Properties file (ISO 8859-1 with "\" escapes)
+# This file should be translated.
+
+# "featureName" property - name of the feature
+featureName =OSBP DSL: Report 
+
+# "providerName" property - name of the company that provides the feature
+providerName=Eclipse OSBP
+
+# "description" property - description of the feature
+description=This feature provides the bundles for the OSBP ReportDSL.
+
+# "updateSiteName" property - label for the update site
+updateSiteName=
+
+# "copyright" property - text of the "Feature Update Copyright"
+copyright=\
+Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) \n\
+All rights reserved. This program and the accompanying materials\n\
+are made available under the terms of the Eclipse Public License v1.0\n\
+which accompanies this distribution, and is available at\n\
+http://www.eclipse.org/legal/epl-v10.html\n\
+\n\
+################ end of copyright property ####################################
+
+# "licenseURL" property - URL of the "Feature License"
+# do not translate value - just change to point to a locale-specific HTML page
+licenseURL=license.html
+
+# "license" property - text of the "Feature Update License"
+# should be plain text version of license agreement pointed to be "licenseURL"
+license=\
+Eclipse Foundation Software User Agreement\n\
+February 1, 2011\n\
+\n\
+Usage Of Content\n\
+\n\
+THE ECLIPSE FOUNDATION MAKES AVAILABLE SOFTWARE, DOCUMENTATION, INFORMATION AND/OR\n\
+OTHER MATERIALS FOR OPEN SOURCE PROJECTS (COLLECTIVELY "CONTENT").\n\
+USE OF THE CONTENT IS GOVERNED BY THE TERMS AND CONDITIONS OF THIS\n\
+AGREEMENT AND/OR THE TERMS AND CONDITIONS OF LICENSE AGREEMENTS OR\n\
+NOTICES INDICATED OR REFERENCED BELOW.  BY USING THE CONTENT, YOU\n\
+AGREE THAT YOUR USE OF THE CONTENT IS GOVERNED BY THIS AGREEMENT\n\
+AND/OR THE TERMS AND CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS\n\
+OR NOTICES INDICATED OR REFERENCED BELOW.  IF YOU DO NOT AGREE TO THE\n\
+TERMS AND CONDITIONS OF THIS AGREEMENT AND THE TERMS AND CONDITIONS\n\
+OF ANY APPLICABLE LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED\n\
+BELOW, THEN YOU MAY NOT USE THE CONTENT.\n\
+\n\
+Applicable Licenses\n\
+\n\
+Unless otherwise indicated, all Content made available by the\n\
+Eclipse Foundation is provided to you under the terms and conditions of\n\
+the Eclipse Public License Version 1.0 ("EPL"). A copy of the EPL is\n\
+provided with this Content and is also available at http://www.eclipse.org/legal/epl-v10.html.\n\
+For purposes of the EPL, "Program" will mean the Content.\n\
+\n\
+Content includes, but is not limited to, source code, object code,\n\
+documentation and other files maintained in the Eclipse Foundation source code\n\
+repository ("Repository") in software modules ("Modules") and made available\n\
+as downloadable archives ("Downloads").\n\
+\n\
+       - Content may be structured and packaged into modules to facilitate delivering,\n\
+         extending, and upgrading the Content. Typical modules may include plug-ins ("Plug-ins"),\n\
+         plug-in fragments ("Fragments"), and features ("Features").\n\
+       - Each Plug-in or Fragment may be packaged as a sub-directory or JAR (Java(TM) ARchive)\n\
+         in a directory named "plugins".\n\
+       - A Feature is a bundle of one or more Plug-ins and/or Fragments and associated material.\n\
+         Each Feature may be packaged as a sub-directory in a directory named "features".\n\
+         Within a Feature, files named "feature.xml" may contain a list of the names and version\n\
+         numbers of the Plug-ins and/or Fragments associated with that Feature.\n\
+       - Features may also include other Features ("Included Features"). Within a Feature, files\n\
+         named "feature.xml" may contain a list of the names and version numbers of Included Features.\n\
+\n\
+The terms and conditions governing Plug-ins and Fragments should be\n\
+contained in files named "about.html" ("Abouts"). The terms and\n\
+conditions governing Features and Included Features should be contained\n\
+in files named "license.html" ("Feature Licenses"). Abouts and Feature\n\
+Licenses may be located in any directory of a Download or Module\n\
+including, but not limited to the following locations:\n\
+\n\
+       - The top-level (root) directory\n\
+       - Plug-in and Fragment directories\n\
+       - Inside Plug-ins and Fragments packaged as JARs\n\
+       - Sub-directories of the directory named "src" of certain Plug-ins\n\
+       - Feature directories\n\
+\n\
+Note: if a Feature made available by the Eclipse Foundation is installed using the\n\
+Provisioning Technology (as defined below), you must agree to a license ("Feature \n\
+Update License") during the installation process. If the Feature contains\n\
+Included Features, the Feature Update License should either provide you\n\
+with the terms and conditions governing the Included Features or inform\n\
+you where you can locate them. Feature Update Licenses may be found in\n\
+the "license" property of files named "feature.properties" found within a Feature.\n\
+Such Abouts, Feature Licenses, and Feature Update Licenses contain the\n\
+terms and conditions (or references to such terms and conditions) that\n\
+govern your use of the associated Content in that directory.\n\
+\n\
+THE ABOUTS, FEATURE LICENSES, AND FEATURE UPDATE LICENSES MAY REFER\n\
+TO THE EPL OR OTHER LICENSE AGREEMENTS, NOTICES OR TERMS AND CONDITIONS.\n\
+SOME OF THESE OTHER LICENSE AGREEMENTS MAY INCLUDE (BUT ARE NOT LIMITED TO):\n\
+\n\
+       - Eclipse Distribution License Version 1.0 (available at http://www.eclipse.org/licenses/edl-v1.0.html)\n\
+       - Common Public License Version 1.0 (available at http://www.eclipse.org/legal/cpl-v10.html)\n\
+       - Apache Software License 1.1 (available at http://www.apache.org/licenses/LICENSE)\n\
+       - Apache Software License 2.0 (available at http://www.apache.org/licenses/LICENSE-2.0)\n\
+       - Metro Link Public License 1.00 (available at http://www.opengroup.org/openmotif/supporters/metrolink/license.html)\n\
+       - Mozilla Public License Version 1.1 (available at http://www.mozilla.org/MPL/MPL-1.1.html)\n\
+\n\
+IT IS YOUR OBLIGATION TO READ AND ACCEPT ALL SUCH TERMS AND CONDITIONS PRIOR\n\
+TO USE OF THE CONTENT. If no About, Feature License, or Feature Update License\n\
+is provided, please contact the Eclipse Foundation to determine what terms and conditions\n\
+govern that particular Content.\n\
+\n\
+\n\Use of Provisioning Technology\n\
+\n\
+The Eclipse Foundation makes available provisioning software, examples of which include,\n\
+but are not limited to, p2 and the Eclipse Update Manager ("Provisioning Technology") for\n\
+the purpose of allowing users to install software, documentation, information and/or\n\
+other materials (collectively "Installable Software"). This capability is provided with\n\
+the intent of allowing such users to install, extend and update Eclipse-based products.\n\
+Information about packaging Installable Software is available at\n\
+http://eclipse.org/equinox/p2/repository_packaging.html ("Specification").\n\
+\n\
+You may use Provisioning Technology to allow other parties to install Installable Software.\n\
+You shall be responsible for enabling the applicable license agreements relating to the\n\
+Installable Software to be presented to, and accepted by, the users of the Provisioning Technology\n\
+in accordance with the Specification. By using Provisioning Technology in such a manner and\n\
+making it available in accordance with the Specification, you further acknowledge your\n\
+agreement to, and the acquisition of all necessary rights to permit the following:\n\
+\n\
+       1. A series of actions may occur ("Provisioning Process") in which a user may execute\n\
+          the Provisioning Technology on a machine ("Target Machine") with the intent of installing,\n\
+          extending or updating the functionality of an Eclipse-based product.\n\
+       2. During the Provisioning Process, the Provisioning Technology may cause third party\n\
+          Installable Software or a portion thereof to be accessed and copied to the Target Machine.\n\
+       3. Pursuant to the Specification, you will provide to the user the terms and conditions that\n\
+          govern the use of the Installable Software ("Installable Software Agreement") and such\n\
+          Installable Software Agreement shall be accessed from the Target Machine in accordance\n\
+          with the Specification. Such Installable Software Agreement must inform the user of the\n\
+          terms and conditions that govern the Installable Software and must solicit acceptance by\n\
+          the end user in the manner prescribed in such Installable Software Agreement. Upon such\n\
+          indication of agreement by the user, the provisioning Technology will complete installation\n\
+          of the Installable Software.\n\
+\n\
+Cryptography\n\
+\n\
+Content may contain encryption software. The country in which you are\n\
+currently may have restrictions on the import, possession, and use,\n\
+and/or re-export to another country, of encryption software. BEFORE\n\
+using any encryption software, please check the country's laws,\n\
+regulations and policies concerning the import, possession, or use, and\n\
+re-export of encryption software, to see if this is permitted.\n\
+\n\
+Java and all Java-based trademarks are trademarks of Oracle Corporation in the United States, other countries, or both.\n
+########### end of license property ##########################################
diff --git a/org.eclipse.osbp.xtext.reportdsl.feature/feature.xml b/org.eclipse.osbp.xtext.reportdsl.feature/feature.xml
new file mode 100644
index 0000000..ea5ee19
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl.feature/feature.xml
@@ -0,0 +1,56 @@
+<?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 -->
+<!--#======================================================================= -->
+
+<feature
+      id="org.eclipse.osbp.xtext.reportdsl.feature"
+      label="%featureName"
+      version="0.9.0.qualifier"
+      provider-name="%providerName">
+
+   <description>
+      %description
+   </description>
+
+   <copyright>
+      %copyright
+   </copyright>
+
+   <license url="%licenseURL">
+      %license
+   </license>
+
+   <includes
+         id="org.eclipse.birt"
+         version="0.0.0"/>
+
+   <plugin
+         id="org.eclipse.osbp.xtext.reportdsl"
+         download-size="0"
+         install-size="0"
+         version="0.0.0"
+         unpack="false"/>
+
+   <plugin
+         id="org.eclipse.osbp.xtext.reportdsl.ui"
+         download-size="0"
+         install-size="0"
+         version="0.0.0"
+         unpack="false"/>
+
+   <plugin
+         id="org.eclipse.osbp.xtext.reportdsl.oda.datamart"
+         download-size="0"
+         install-size="0"
+         version="0.0.0"
+         unpack="false"/>
+
+</feature>
diff --git a/org.eclipse.osbp.xtext.reportdsl.feature/license.html b/org.eclipse.osbp.xtext.reportdsl.feature/license.html
new file mode 100644
index 0000000..6e579a5
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl.feature/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.reportdsl.feature/pom.xml b/org.eclipse.osbp.xtext.reportdsl.feature/pom.xml
new file mode 100644
index 0000000..5417140
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl.feature/pom.xml
@@ -0,0 +1,74 @@
+<?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 implementation 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/maven-v4_0_0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+
+    <parent>
+        <groupId>org.eclipse.osbp.xtext.reportdsl</groupId>
+        <artifactId>org.eclipse.osbp.xtext.reportdsl.aggregator</artifactId>
+        <version>0.9.0-SNAPSHOT</version>
+    </parent>
+
+    <artifactId>org.eclipse.osbp.xtext.reportdsl.feature</artifactId>
+    <packaging>eclipse-feature</packaging>
+
+    <build>
+        <plugins>
+            <plugin>
+                <groupId>org.eclipse.tycho.extras</groupId>
+                <artifactId>tycho-source-feature-plugin</artifactId>
+                <version>${tychoExtrasVersion}</version>
+                <executions>
+                    <execution>
+                        <id>source-feature</id>
+                        <phase>package</phase>
+                        <goals>
+                            <goal>source-feature</goal>
+                        </goals>
+                    </execution>
+                </executions>
+                <configuration>
+                    <labelSuffix> (source)</labelSuffix>
+                </configuration>
+            </plugin>
+            <plugin>
+                <!-- workaround while bug https://bugs.eclipse.org/bugs/show_bug.cgi?id=398250 
+					is not fixed -->
+                <groupId>org.eclipse.tycho</groupId>
+                <artifactId>tycho-p2-plugin</artifactId>
+                <version>${tycho-version}</version>
+                <executions>
+                    <execution>
+                        <id>attached-p2-metadata</id>
+                        <phase>package</phase>
+                        <goals>
+                            <goal>p2-metadata</goal>
+                        </goals>
+                    </execution>
+                </executions>
+            </plugin>
+			<plugin>
+				<artifactId>maven-javadoc-plugin</artifactId>
+				<executions>
+					<execution>
+						<id>javadoc-jar</id>
+						<phase>package</phase>
+						<goals>
+							<goal>jar</goal>
+						</goals>
+					</execution>
+				</executions>
+			</plugin>
+        </plugins>
+    </build>
+
+</project>
diff --git a/org.eclipse.osbp.xtext.reportdsl.feature/src/main/javadoc/README.txt b/org.eclipse.osbp.xtext.reportdsl.feature/src/main/javadoc/README.txt
new file mode 100644
index 0000000..831da7e
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl.feature/src/main/javadoc/README.txt
@@ -0,0 +1 @@
+Resource folder for javadoc resources.
\ No newline at end of file
diff --git a/org.eclipse.osbp.xtext.reportdsl.feature/src/overview.html b/org.eclipse.osbp.xtext.reportdsl.feature/src/overview.html
new file mode 100644
index 0000000..22abce2
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl.feature/src/overview.html
@@ -0,0 +1,11 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html>
+<head>
+	<title>OSBP Tools Graphical Entity</title>
+</head>
+<body>
+<p>The <strong>OSBP&nbsp;Xtext&nbsp;ReportDSL&nbsp;</strong>contains common methods for the&nbsp;BIRT Report&nbsp;DSL.</p>
+
+<p>&nbsp;</p>
+</body>
+</html>
diff --git a/org.eclipse.osbp.xtext.reportdsl.oda.datamart/.project b/org.eclipse.osbp.xtext.reportdsl.oda.datamart/.project
new file mode 100644
index 0000000..b5c2ac5
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl.oda.datamart/.project
@@ -0,0 +1,56 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>org.eclipse.osbp.xtext.reportdsl.oda.datamart</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+		<buildCommand>
+			<name>org.eclipse.xtext.ui.shared.xtextBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<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.pde.ds.core.builder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.babel.editor.rbeBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.sonarlint.eclipse.core.sonarlintBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.m2e.core.maven2Builder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+	</buildSpec>
+	<natures>
+		<nature>org.eclipse.xtext.ui.shared.xtextNature</nature>
+		<nature>org.eclipse.m2e.core.maven2Nature</nature>
+		<nature>org.eclipse.pde.PluginNature</nature>
+		<nature>org.eclipse.jdt.core.javanature</nature>
+		<nature>org.eclipse.babel.editor.rbeNature</nature>
+	</natures>
+</projectDescription>
diff --git a/org.eclipse.osbp.xtext.reportdsl.oda.datamart/LICENSE.txt b/org.eclipse.osbp.xtext.reportdsl.oda.datamart/LICENSE.txt
new file mode 100644
index 0000000..ff42ad4
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl.oda.datamart/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.reportdsl.oda.datamart/META-INF/MANIFEST.MF b/org.eclipse.osbp.xtext.reportdsl.oda.datamart/META-INF/MANIFEST.MF
new file mode 100644
index 0000000..284d5d8
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl.oda.datamart/META-INF/MANIFEST.MF
@@ -0,0 +1,39 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: org.eclipse.osbp.xtext.reportdsl.oda.datamart
+Bundle-SymbolicName: org.eclipse.osbp.xtext.reportdsl.oda.datamart;singleton:=true
+Bundle-Version: 0.9.0.qualifier
+Bundle-ClassPath: .
+Bundle-Vendor: Eclipse OSBP
+Bundle-Localization: plugin
+Export-Package: org.eclipse.osbp.xtext.reportdsl.oda.datamart.i18n;version="0.9.0",
+ org.eclipse.osbp.xtext.reportdsl.oda.datamart.impl;version="0.9.0"
+Require-Bundle: org.eclipse.osgi.services;bundle-version="3.4.0",
+ org.eclipse.datatools.connectivity.oda;bundle-version="3.0.3",
+ com.vaadin.server;bundle-version="[7.5.7,7.7.0)",
+ org.eclipse.osbp.osgi.hybrid.api;bundle-version="[0.9.0,0.10.0)",
+ org.eclipse.osbp.xtext.reportdsl;bundle-version="[0.9.0,0.10.0)",
+ org.eclipse.osbp.utils;bundle-version="[0.9.0,0.10.0)",
+ org.eclipse.osbp.utils.themes.ui;bundle-version="[0.9.0,0.10.0)",
+ org.eclipse.osbp.xtext.datamartdsl;bundle-version="[0.9.0,0.10.0)",
+ olap4j.osgi;bundle-version="[1.1.0,1.3.0)",
+ mondrian.osgi;bundle-version="[3.5.0,3.5.1)",
+ org.eclipse.osbp.xtext.table.common;bundle-version="[0.9.0,0.10.0)",
+ org.eclipse.osbp.xtext.datamart.common;bundle-version="[0.9.0,0.10.0)"
+Bundle-Activator: org.eclipse.osbp.xtext.reportdsl.oda.datamart.Activator
+Bundle-ActivationPolicy: lazy
+Service-Component: OSGI-INF/*.xml
+Import-Package: javax.validation,
+ org.eclipse.birt.core.data,
+ org.eclipse.birt.report.model.api,
+ org.eclipse.osbp.dsl.common.datatypes;version="0.9.0",
+ org.eclipse.osbp.dsl.semantic.common.types;version="0.9.0",
+ org.eclipse.osbp.ui.api.datamart;version="0.9.0",
+ org.eclipse.osbp.ui.api.metadata;version="0.9.0",
+ org.eclipse.osbp.ui.api.report;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.user,
+ org.eclipse.osbp.utils.vaadin;version="0.9.0",
+ org.eclipse.osbp.vaaclipse.publicapi.authentication;version="0.9.0"
+Bundle-RequiredExecutionEnvironment: JavaSE-1.8
diff --git a/org.eclipse.osbp.xtext.reportdsl.oda.datamart/OSGI-INF/org.eclipse.osbp.xtext.reportdsl.oda.datamart.ServiceListener.xml b/org.eclipse.osbp.xtext.reportdsl.oda.datamart/OSGI-INF/org.eclipse.osbp.xtext.reportdsl.oda.datamart.ServiceListener.xml
new file mode 100644
index 0000000..e3ebf07
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl.oda.datamart/OSGI-INF/org.eclipse.osbp.xtext.reportdsl.oda.datamart.ServiceListener.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0" name="org.eclipse.osbp.xtext.reportdsl.oda.datamart.ServiceListener">
+   <reference bind="bindClassLoaderService" cardinality="0..n" interface="org.eclipse.osbp.utils.classloader.IClassLoader" name="ClassLoaderService" policy="dynamic" unbind="unbindClassLoaderService"/>
+   <implementation class="org.eclipse.osbp.xtext.reportdsl.oda.datamart.ServiceListener"/>
+</scr:component>
\ No newline at end of file
diff --git a/org.eclipse.osbp.xtext.reportdsl.oda.datamart/about.html b/org.eclipse.osbp.xtext.reportdsl.oda.datamart/about.html
new file mode 100644
index 0000000..64c0598
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl.oda.datamart/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.reportdsl.oda.datamart/about.ini b/org.eclipse.osbp.xtext.reportdsl.oda.datamart/about.ini
new file mode 100644
index 0000000..7df671f
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl.oda.datamart/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.reportdsl.oda.datamart/about.mappings b/org.eclipse.osbp.xtext.reportdsl.oda.datamart/about.mappings
new file mode 100644
index 0000000..4511a0a
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl.oda.datamart/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.reportdsl.oda.datamart/about.properties b/org.eclipse.osbp.xtext.reportdsl.oda.datamart/about.properties
new file mode 100644
index 0000000..8730986
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl.oda.datamart/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.reportdsl.oda.datamart
+
+################ 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.reportdsl.oda.datamart/build.properties b/org.eclipse.osbp.xtext.reportdsl.oda.datamart/build.properties
new file mode 100644
index 0000000..5508b7e
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl.oda.datamart/build.properties
@@ -0,0 +1,23 @@
+source.. = src/,\
+           src-gen/
+output.. = target/classes/
+bin.includes = about.properties,  about.mappings,  about.ini,  about.html,  plugin.xml,\
+               META-INF/,\
+               OSGI-INF/,\
+               .,\
+               plugin.properties,\
+               .classpath,\
+               .project,\
+               .settings/,\
+               license.html,\
+               LICENSE.txt,\
+               epl-v10.html
+src.includes = about.properties,  about.mappings,  about.ini,  about.html,  license.html,\
+               LICENSE.txt,\
+               epl-v10.html,\
+               license.html,\
+               LICENSE.txt,\
+               epl-v10.html
+src.includes = about.properties,  about.mappings,  about.ini,  about.html,  license.html,\
+               LICENSE.txt,\
+               epl-v10.html			   			   
diff --git a/org.eclipse.osbp.xtext.reportdsl.oda.datamart/epl-v10.html b/org.eclipse.osbp.xtext.reportdsl.oda.datamart/epl-v10.html
new file mode 100644
index 0000000..b398acc
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl.oda.datamart/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.reportdsl.oda.datamart/license.html b/org.eclipse.osbp.xtext.reportdsl.oda.datamart/license.html
new file mode 100644
index 0000000..6e579a5
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl.oda.datamart/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.reportdsl.oda.datamart/plugin.properties b/org.eclipse.osbp.xtext.reportdsl.oda.datamart/plugin.properties
new file mode 100644
index 0000000..dd2a862
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl.oda.datamart/plugin.properties
@@ -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
+# 
+#
+
+###############################################################################
+# NLS String
+###############################################################################
+#
+plugin.name=Datamart ODA Runtime Driver
+data.source.name=Datamart ODA Data Source
+data.set.name=Datamart ODA Data Set
diff --git a/org.eclipse.osbp.xtext.reportdsl.oda.datamart/plugin.xml b/org.eclipse.osbp.xtext.reportdsl.oda.datamart/plugin.xml
new file mode 100644
index 0000000..c6ab3cf
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl.oda.datamart/plugin.xml
@@ -0,0 +1,153 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.2"?>
+<plugin>
+
+   <extension
+         id="org.eclipse.osbp.xtext.reportdsl.oda.datamart"
+         point="org.eclipse.datatools.connectivity.oda.dataSource">
+      <dataSource
+            driverClass="org.eclipse.osbp.xtext.reportdsl.oda.datamart.impl.Driver"
+            defaultDisplayName="%data.source.name"
+            setThreadContextClassLoader="false"
+            odaVersion="3.0"
+            id="org.eclipse.osbp.xtext.reportdsl.oda.datamart">
+         <properties>
+         </properties>
+      </dataSource>
+      <dataSet
+            defaultDisplayName="%data.set.name"
+            id="org.eclipse.osbp.xtext.reportdsl.oda.datamart.dataSet">
+         <dataTypeMapping
+               nativeDataTypeCode="16"
+               nativeDataType="Boolean"
+               odaScalarDataType="Boolean">
+         </dataTypeMapping>
+         <dataTypeMapping
+               nativeDataTypeCode="4"
+               odaScalarDataType="Integer"
+               nativeDataType="Integer">
+         </dataTypeMapping>
+         <dataTypeMapping
+               nativeDataTypeCode="8"
+               odaScalarDataType="Double"
+               nativeDataType="Double">
+         </dataTypeMapping>
+         <dataTypeMapping
+               nativeDataTypeCode="3"
+               odaScalarDataType="Decimal"
+               nativeDataType="BigDecimal">
+         </dataTypeMapping>
+         <dataTypeMapping
+               nativeDataTypeCode="1"
+               odaScalarDataType="String"
+               nativeDataType="String">
+         </dataTypeMapping>
+         <dataTypeMapping
+               nativeDataTypeCode="12"
+               odaScalarDataType="String"
+               nativeDataType="String">
+         </dataTypeMapping>
+         <dataTypeMapping
+               nativeDataTypeCode="91"
+               odaScalarDataType="Date"
+               nativeDataType="Date">
+         </dataTypeMapping>
+         <dataTypeMapping
+               nativeDataTypeCode="2004"
+               nativeDataType="Blob"
+               odaScalarDataType="Blob">
+         </dataTypeMapping>
+         <dataTypeMapping
+               nativeDataTypeCode="2005"
+               nativeDataType="Clob"
+               odaScalarDataType="Clob">
+         </dataTypeMapping>
+         <dataTypeMapping
+               nativeDataTypeCode="92"
+               odaScalarDataType="Time"
+               nativeDataType="Time">
+         </dataTypeMapping>
+         <dataTypeMapping
+               nativeDataTypeCode="93"
+               odaScalarDataType="Timestamp"
+               nativeDataType="Timestamp">
+         </dataTypeMapping>
+         <properties>
+            <property
+                  allowsEmptyValueAsNull="true"
+                  defaultDisplayName="full qualified classname of Datamart inside the bundle"
+                  isEncryptable="false"
+                  name="datamartClass"
+                  type="string">
+            </property>
+            <property
+                  allowsEmptyValueAsNull="true"
+                  defaultDisplayName="Symbolic Name of Datamart Bundle"
+                  isEncryptable="false"
+                  name="bundleSymbolicName"
+                  type="string">
+            </property>
+            <property
+                  allowsEmptyValueAsNull="true"
+                  defaultDisplayName="name of the data source"
+                  isEncryptable="false"
+                  name="dataSourceName"
+                  type="string">
+            </property>
+            <property
+                  allowsEmptyValueAsNull="true"
+                  defaultDisplayName="name of the data set"
+                  isEncryptable="false"
+                  name="dataSetName"
+                  type="string">
+            </property>
+            <property
+                  allowsEmptyValueAsNull="true"
+                  isEncryptable="false"
+                  name="report">
+            </property>
+            <property
+                  allowsEmptyValueAsNull="true"
+                  defaultDisplayName="axis page filter"
+                  defaultValue="-1"
+                  isEncryptable="false"
+                  name="axisPageFilter"
+                  type="string">
+            </property>
+            <property
+                  allowsEmptyValueAsNull="true"
+                  defaultDisplayName="axis section filter"
+                  defaultValue="-1"
+                  isEncryptable="false"
+                  name="axisSectionFilter"
+                  type="string">
+            </property>
+            <property
+                  allowsEmptyValueAsNull="true"
+                  defaultDisplayName="axis chapter filter"
+                  defaultValue="-1"
+                  isEncryptable="false"
+                  name="axisChapterFilter"
+                  type="string">
+            </property>
+            <property
+                  allowsEmptyValueAsNull="true"
+                  defaultDisplayName="axis row filter"
+                  defaultValue="-1"
+                  isEncryptable="false"
+                  name="axisRowFilter"
+                  type="string">
+            </property>
+            <property
+                  allowsEmptyValueAsNull="true"
+                  defaultDisplayName="axis column filter"
+                  defaultValue="-1"
+                  isEncryptable="false"
+                  name="axisColumnFilter"
+                  type="string">
+            </property>
+         </properties>
+      </dataSet>
+   </extension>
+
+</plugin>
diff --git a/org.eclipse.osbp.xtext.reportdsl.oda.datamart/pom.xml b/org.eclipse.osbp.xtext.reportdsl.oda.datamart/pom.xml
new file mode 100644
index 0000000..4ef2012
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl.oda.datamart/pom.xml
@@ -0,0 +1,42 @@
+<?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.reportdsl.oda.datamart</artifactId>
+    <build>
+        <sourceDirectory>src</sourceDirectory>
+        <!--     <resources> -->
+        <!--       <resource> -->
+        <!--         <directory>src</directory> -->
+        <!--         <excludes> -->
+        <!--           <exclude>**/*.java</exclude> -->
+        <!--         </excludes> -->
+        <!--       </resource> -->
+        <!--       <resource> -->
+        <!--         <directory>src-gen</directory> -->
+        <!--         <excludes> -->
+        <!--           <exclude>**/*.java</exclude> -->
+        <!--         </excludes> -->
+        <!--       </resource> -->
+        <!--     </resources> -->
+        <plugins>
+        </plugins>
+    </build>
+    <packaging>eclipse-plugin</packaging>
+    <parent>
+        <groupId>org.eclipse.osbp.xtext.reportdsl</groupId>
+        <artifactId>org.eclipse.osbp.xtext.reportdsl.aggregator</artifactId>
+        <version>0.9.0-SNAPSHOT</version>
+        <relativePath>..</relativePath>
+    </parent>
+</project>
diff --git a/org.eclipse.osbp.xtext.reportdsl.oda.datamart/src/org/eclipse/osbp/xtext/reportdsl/oda/datamart/Activator.java b/org.eclipse.osbp.xtext.reportdsl.oda.datamart/src/org/eclipse/osbp/xtext/reportdsl/oda/datamart/Activator.java
new file mode 100644
index 0000000..57dc688
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl.oda.datamart/src/org/eclipse/osbp/xtext/reportdsl/oda/datamart/Activator.java
@@ -0,0 +1,89 @@
+/**
+ *                                                                            
+ * 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.reportdsl.oda.datamart;
+
+import java.util.Map;
+import java.util.TreeMap;
+
+import org.osgi.framework.Bundle;
+import org.osgi.framework.BundleActivator;
+import org.osgi.framework.BundleContext;
+import org.osgi.framework.BundleEvent;
+import org.osgi.framework.BundleListener;
+
+public class Activator implements BundleActivator, BundleListener {
+
+	private static BundleContext context;
+
+	private static Map<String, Bundle> sBundles = null;
+	
+	public static Bundle getBundle(String symbolicName) {
+		if	(sBundles == null) {
+			return null;
+		}
+		else {
+			return sBundles.get(symbolicName);
+		}
+	}
+	
+	public static BundleContext getContext() {
+		return context;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * @see org.osgi.framework.BundleActivator#start(org.osgi.framework.BundleContext)
+	 */
+	public void start(BundleContext bundleContext) throws Exception {
+		sBundles = new TreeMap<String, Bundle>();
+		Activator.context = bundleContext;
+		for	(Bundle bundle : bundleContext.getBundles()) {
+			sBundles.put(bundle.getSymbolicName(), bundle);
+//			System.err.println("reportdsl.oda.datamart - onStart  "+bundle.getSymbolicName());
+		}
+		bundleContext.addBundleListener(this);
+	}
+
+	@Override
+	public void bundleChanged(BundleEvent event) {
+		Bundle bundle = event.getBundle();
+		if	(bundle != null) {
+			switch (event.getType()) {
+				case BundleEvent.INSTALLED:
+				case BundleEvent.RESOLVED:
+				case BundleEvent.STARTED:
+				case BundleEvent.STARTING:
+				case BundleEvent.UPDATED:
+					sBundles.put(bundle.getSymbolicName(), bundle);
+//					System.err.println("reportdsl.oda.datamart - onChange "+bundle.getSymbolicName());
+					break;
+				case BundleEvent.STOPPING:
+				case BundleEvent.STOPPED:
+				case BundleEvent.UNINSTALLED:
+					sBundles.remove(bundle.getSymbolicName());
+					break;
+			}
+		}
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * @see org.osgi.framework.BundleActivator#stop(org.osgi.framework.BundleContext)
+	 */
+	public void stop(BundleContext bundleContext) throws Exception {
+		bundleContext.removeBundleListener(this);
+		sBundles = null;
+		Activator.context = null;
+	}
+
+}
diff --git a/org.eclipse.osbp.xtext.reportdsl.oda.datamart/src/org/eclipse/osbp/xtext/reportdsl/oda/datamart/ServiceListener.java b/org.eclipse.osbp.xtext.reportdsl.oda.datamart/src/org/eclipse/osbp/xtext/reportdsl/oda/datamart/ServiceListener.java
new file mode 100644
index 0000000..c406e23
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl.oda.datamart/src/org/eclipse/osbp/xtext/reportdsl/oda/datamart/ServiceListener.java
@@ -0,0 +1,62 @@
+/**
+ *                                                                            
+ * Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ *                                                                            
+ * All rights reserved. This program and the accompanying materials           
+ * are made available under the terms of the Eclipse Public License 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.reportdsl.oda.datamart;
+
+import java.util.HashSet;
+import java.util.Set;
+
+import org.eclipse.osbp.utils.classloader.IClassLoader;
+import org.osgi.service.component.annotations.Component;
+import org.osgi.service.component.annotations.Reference;
+import org.osgi.service.component.annotations.ReferenceCardinality;
+import org.osgi.service.component.annotations.ReferencePolicy;
+
+
+@Component
+public class ServiceListener {
+	
+	private static final Set<IClassLoader> sClassLoaderServices = new HashSet<IClassLoader>();
+
+	/**
+	 *  @param className
+	 *  @return reloaded class via declarative services
+	 */
+	public static Class<?> reloadClass(String className) {
+		Class<?> reloadedClass = null;
+		for	(IClassLoader classLoader : sClassLoaderServices) {
+			reloadedClass = classLoader.reloadClass(className);
+			if	(reloadedClass != null) {
+				return reloadedClass;
+			}
+		}
+		return null;
+	}
+
+	/**
+	 * @param classLoaderService declarative service loaded
+	 */
+	@Reference(cardinality = ReferenceCardinality.MULTIPLE, policy = ReferencePolicy.DYNAMIC)
+	public static void bindClassLoaderService(IClassLoader classLoaderService) {
+		System.err.println(ServiceListener.class.getCanonicalName()+": "+classLoaderService.getClass().getCanonicalName()+" bound");
+		sClassLoaderServices.add(classLoaderService);
+	}
+
+	/**
+	 * @param classLoaderService declarative service unloaded
+	 */
+	public static void unbindClassLoaderService(IClassLoader classLoaderService) {
+		System.err.println(ServiceListener.class.getCanonicalName()+": "+classLoaderService.getClass().getCanonicalName()+" unbound");
+		sClassLoaderServices.remove(classLoaderService);
+	}
+
+}
diff --git a/org.eclipse.osbp.xtext.reportdsl.oda.datamart/src/org/eclipse/osbp/xtext/reportdsl/oda/datamart/i18n/Messages.java b/org.eclipse.osbp.xtext.reportdsl.oda.datamart/src/org/eclipse/osbp/xtext/reportdsl/oda/datamart/i18n/Messages.java
new file mode 100644
index 0000000..06d44d7
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl.oda.datamart/src/org/eclipse/osbp/xtext/reportdsl/oda/datamart/i18n/Messages.java
@@ -0,0 +1,38 @@
+/**
+ *                                                                            
+ * 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.reportdsl.oda.datamart.i18n;
+
+import java.util.MissingResourceException;
+import java.util.ResourceBundle;
+
+/**
+ * Resource messages wrapper for the package to obtain localized message text.
+ */
+
+public class Messages {
+    private static final String BUNDLE_NAME = "org.eclipse.osbp.xtext.reportdsl.oda.datamart.i18n.messages";//$NON-NLS-1$
+
+    private static final ResourceBundle RESOURCE_BUNDLE = ResourceBundle.getBundle( BUNDLE_NAME );
+
+    private Messages() {
+    }
+
+    public static String getString( String key ) {
+        try {
+            return RESOURCE_BUNDLE.getString( key );
+        }
+        catch( MissingResourceException e ) {
+            return '!' + key + '!';
+        }
+    }
+}
diff --git a/org.eclipse.osbp.xtext.reportdsl.oda.datamart/src/org/eclipse/osbp/xtext/reportdsl/oda/datamart/i18n/messages.properties b/org.eclipse.osbp.xtext.reportdsl.oda.datamart/src/org/eclipse/osbp/xtext/reportdsl/oda/datamart/i18n/messages.properties
new file mode 100644
index 0000000..a03f551
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl.oda.datamart/src/org/eclipse/osbp/xtext/reportdsl/oda/datamart/i18n/messages.properties
@@ -0,0 +1,27 @@
+# Exception messages for the Oda Datamart Driver
+
+connection_CONNECTION_PROPERTIES_MISSING=Connection properties are missing.
+connection_CANNOT_OPEN_FLAT_FILE_DB_DIR=Cannot open CSV file database under directory: 
+
+query_COMMAND_IS_EMPTY=Query command is empty.
+query_DO_NOT_SUPPORT_CROSS_TABLE_QUERY=Cross-table query is not supported.
+query_COMMAND_NOT_VALID=Query command is not valid.
+query_ARGUMENT_ERROR=The argument should be either 'NAME' or 'TYPE'.
+query_IO_EXCEPTION=An I/O Exception occurred when reading the file.
+query_SOURCE_DATA_ERROR=Duplicate column names found in source data.
+query_COLUMN_NAME_ERROR=Column name error
+query_INVALID_FLAT_FILE=The flatfile data source in not valid.
+resultSet_COLUMN_NOT_FOUND=Column not found:
+resultSet_CURSOR_HAS_NOT_BEEN_INITIALIZED=Cursor has not been initialized yet.
+
+resultSetMetaData_INVALID_COLUMN_INDEX=Invalid column index:
+
+dataTypes_TYPE_NAME_INVALID=Invalid type name:
+
+dataSetMetaData_PRODUCT_NAME=DTP ODA Flat File Data Source Provider
+
+common_ARGUMENT_CANNOT_BE_NULL=Arguments cannot be null.
+common_CONNECTION_HAS_NOT_OPENED=Connection is not open.
+common_CANNOT_FIND_COLUMN=Cannot find any columns.
+query_streamClosed=Stream closed
+query_invalidTableName=Invalid table name:
diff --git a/org.eclipse.osbp.xtext.reportdsl.oda.datamart/src/org/eclipse/osbp/xtext/reportdsl/oda/datamart/impl/CommonConstants.java b/org.eclipse.osbp.xtext.reportdsl.oda.datamart/src/org/eclipse/osbp/xtext/reportdsl/oda/datamart/impl/CommonConstants.java
new file mode 100644
index 0000000..9404caf
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl.oda.datamart/src/org/eclipse/osbp/xtext/reportdsl/oda/datamart/impl/CommonConstants.java
@@ -0,0 +1,48 @@
+/**
+ *                                                                            
+ * 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.reportdsl.oda.datamart.impl;
+
+/**
+ * This is the class which hosts the definitions of package-wide constants.
+ */
+
+public final class CommonConstants
+{
+	public static final String DELIMITER_COMMA = ","; //$NON-NLS-1$
+	public static final String DELIMITER_SPACE = " "; //$NON-NLS-1$
+	public static final String DELIMITER_DOUBLEQUOTE = "\""; //$NON-NLS-1$
+	public static final String KEYWORD_SELECT = "SELECT"; //$NON-NLS-1$
+	public static final String KEYWORD_FROM = "FROM"; //$NON-NLS-1$
+	public static final String KEYWORD_AS = "AS"; //$NON-NLS-1$
+	public static final String KEYWORD_ASTERISK = "*";//$NON-NLS-1$
+	public static final String DRIVER_NAME = "ODA CSV FILE DRIVER";//$NON-NLS-1$
+	public static final int MaxConnections = 0;
+	public static final int MaxStatements = 0;
+
+	public static final String CONN_HOME_DIR_PROP = "HOME"; //$NON-NLS-1$
+	public static final String DATAMART_AXIS_PAGE_FILTER = "axisPageFilter"; //$NON_NLS-1$
+	public static final String DATAMART_AXIS_SECTION_FILTER = "axisSectionFilter"; //$NON_NLS-1$
+	public static final String DATAMART_AXIS_CHAPTER_FILTER = "axisChapterFilter"; //$NON_NLS-1$
+	public static final String DATAMART_AXIS_ROW_FILTER = "axisRowFilter"; //$NON_NLS-1$
+	public static final String DATAMART_AXIS_COLUMN_FILTER = "axisColumnFilter"; //$NON_NLS-1$
+	public static final String CONN_DEFAULT_CHARSET = "UTF-8"; //$NON-NLS-1$
+
+	public static final String PRODUCT_VERSION = "3.0"; //$NON-NLS-1$
+	
+	/**
+	 * Private contructure which ensure the non-instantiatial of the class
+	 *  
+	 */
+	private CommonConstants( ) {
+	}
+}
diff --git a/org.eclipse.osbp.xtext.reportdsl.oda.datamart/src/org/eclipse/osbp/xtext/reportdsl/oda/datamart/impl/Connection.java b/org.eclipse.osbp.xtext.reportdsl.oda.datamart/src/org/eclipse/osbp/xtext/reportdsl/oda/datamart/impl/Connection.java
new file mode 100644
index 0000000..91c8d2a
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl.oda.datamart/src/org/eclipse/osbp/xtext/reportdsl/oda/datamart/impl/Connection.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                                 
+ *                                                                            
+ * Contributors:   
+ * Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation 
+ */
+package org.eclipse.osbp.xtext.reportdsl.oda.datamart.impl;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.Properties;
+
+import org.eclipse.birt.core.data.Constants;
+import org.eclipse.datatools.connectivity.oda.IConnection;
+import org.eclipse.datatools.connectivity.oda.IDataSetMetaData;
+import org.eclipse.datatools.connectivity.oda.IQuery;
+import org.eclipse.datatools.connectivity.oda.OdaException;
+
+import com.ibm.icu.util.ULocale;
+
+import org.eclipse.osbp.ui.api.metadata.IDSLMetadataService;
+import org.eclipse.osbp.ui.api.user.IUser;
+import org.eclipse.osbp.xtext.datamartdsl.AxisEnum;
+import org.eclipse.osbp.xtext.reportdsl.common.OdaConnProperties;
+import org.eclipse.osbp.xtext.reportdsl.jvmmodel.Utilities;
+import org.eclipse.osbp.xtext.reportdsl.oda.datamart.i18n.Messages;
+
+/**
+ * Implementation class of IConnection for an ODA runtime driver.
+ */
+public class Connection implements IConnection {
+    private boolean fIsOpen = false;
+    private String fOdaPropConfigurationId = null;
+    private String fDataSourceName = null;
+    private String fDataSetName = null;
+    private String fBundleSymbolicName = null;
+    private String fDatamartClass = null;
+    private ArrayList<Integer> fAxisFilter = null;
+    private Query query;
+
+	public Connection() {
+		super();
+		fAxisFilter = new ArrayList<>();
+		for	(int i = AxisEnum.COLUMNS_VALUE; i <= AxisEnum.CHAPTERS_VALUE; i++) {
+			fAxisFilter.add(-1);
+		}
+	}
+
+	private void setAxisFilter(int axis, String string) {
+		try {
+			fAxisFilter.set(axis, Integer.parseInt(string));
+		} catch (NumberFormatException e) {}
+	}
+	
+	/*
+	 * @see org.eclipse.datatools.connectivity.oda.IConnection#open(java.util.Properties)
+	 */
+	public void open( Properties connProperties ) throws OdaException {
+        if( connProperties == null ) {
+            throw new OdaException( Messages.getString( "connection_CONNECTION_PROPERTIES_MISSING" ) ); //$NON-NLS-1$
+        }
+        fOdaPropConfigurationId = connProperties.getProperty(Constants.ODA_PROP_CONFIGURATION_ID);
+    	fDataSourceName = connProperties.getProperty( OdaConnProperties.DATAMART_DATASOURCENAME );
+    	fDataSetName = connProperties.getProperty( OdaConnProperties.DATAMART_DATASETNAME );
+        fBundleSymbolicName = connProperties.getProperty( OdaConnProperties.DATAMART_BUNDLENAME );
+        fDatamartClass = connProperties.getProperty( OdaConnProperties.DATAMART_CLASSNAME );
+        if	(fOdaPropConfigurationId != null) {
+        	if	(fDataSourceName == null) {
+        		fDataSourceName = Utilities.getDataSourceNameFromOdaPropConfigurationId(fOdaPropConfigurationId);
+        	}
+        	if	(fBundleSymbolicName == null) {
+        		fBundleSymbolicName = Utilities.getBundleSymbolicNameFromOdaPropConfigurationId(fOdaPropConfigurationId);
+        	}
+        	if	(fDatamartClass == null) {
+        		fDatamartClass = Utilities.getDatamartClassNameFromOdaPropConfigurationId(fOdaPropConfigurationId);
+        	}
+        }
+        setAxisFilter(AxisEnum.CHAPTERS_VALUE, 	connProperties.getProperty(CommonConstants.DATAMART_AXIS_CHAPTER_FILTER));
+        setAxisFilter(AxisEnum.SECTIONS_VALUE, 	connProperties.getProperty(CommonConstants.DATAMART_AXIS_SECTION_FILTER));
+        setAxisFilter(AxisEnum.PAGES_VALUE, 	connProperties.getProperty(CommonConstants.DATAMART_AXIS_PAGE_FILTER));
+        setAxisFilter(AxisEnum.ROWS_VALUE, 		connProperties.getProperty(CommonConstants.DATAMART_AXIS_ROW_FILTER));
+        setAxisFilter(AxisEnum.COLUMNS_VALUE, 	connProperties.getProperty(CommonConstants.DATAMART_AXIS_COLUMN_FILTER));
+    	fIsOpen = true;
+ 	}
+
+	/*
+	 * @see org.eclipse.datatools.connectivity.oda.IConnection#setAppContext(java.lang.Object)
+	 */
+	public void setAppContext( Object context ) throws OdaException {
+	}
+
+	/*
+	 * @see org.eclipse.datatools.connectivity.oda.IConnection#close()
+	 */
+	public void close() throws OdaException {
+	    fIsOpen = false;
+	}
+
+	/*
+	 * @see org.eclipse.datatools.connectivity.oda.IConnection#isOpen()
+	 */
+	public boolean isOpen() throws OdaException {
+		return fIsOpen;
+	}
+
+	/*
+	 * @see org.eclipse.datatools.connectivity.oda.IConnection#getMetaData(java.lang.String)
+	 */
+	public IDataSetMetaData getMetaData( String dataSetType ) throws OdaException {
+	    // assumes that this driver supports only one type of data set,
+        // ignores the specified dataSetType
+		return new DataSetMetaData( this );
+	}
+
+	/*
+	 * @see org.eclipse.datatools.connectivity.oda.IConnection#newQuery(java.lang.String)
+	 */
+	public IQuery newQuery( String dataSetType ) throws OdaException {
+        // assumes that this driver supports only one type of data set,
+        // ignores the specified dataSetType
+        if( !isOpen() ) {
+            throw new OdaException( Messages.getString( "common_CONNECTION_HAS_NOT_OPENED" ) ); //$NON-NLS-1$
+        }
+        return new Query(
+        	this,
+        	fOdaPropConfigurationId,
+        	fDataSourceName,
+        	fDataSetName,
+        	fBundleSymbolicName,
+        	fDatamartClass,
+        	fAxisFilter);
+	}
+
+	/*
+	 * @see org.eclipse.datatools.connectivity.oda.IConnection#getMaxQueries()
+	 */
+	public int getMaxQueries() throws OdaException {
+        return CommonConstants.MaxStatements;
+	}
+
+	/*
+	 * @see org.eclipse.datatools.connectivity.oda.IConnection#commit()
+	 */
+	public void commit() throws OdaException {
+	    // do nothing; assumes no transaction support needed
+	}
+
+	/*
+	 * @see org.eclipse.datatools.connectivity.oda.IConnection#rollback()
+	 */
+	public void rollback() throws OdaException {
+        // do nothing; assumes no transaction support needed
+	}
+
+	@Override
+	public void setLocale(ULocale locale) throws OdaException {
+		if(query != null) {
+			query.setLocale(locale.toLocale());
+			
+		}
+	}
+}
diff --git a/org.eclipse.osbp.xtext.reportdsl.oda.datamart/src/org/eclipse/osbp/xtext/reportdsl/oda/datamart/impl/DataSetMetaData.java b/org.eclipse.osbp.xtext.reportdsl.oda.datamart/src/org/eclipse/osbp/xtext/reportdsl/oda/datamart/impl/DataSetMetaData.java
new file mode 100644
index 0000000..848b3d8
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl.oda.datamart/src/org/eclipse/osbp/xtext/reportdsl/oda/datamart/impl/DataSetMetaData.java
@@ -0,0 +1,135 @@
+/**
+ *                                                                            
+ * 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.reportdsl.oda.datamart.impl;
+
+import org.eclipse.datatools.connectivity.oda.IConnection;
+import org.eclipse.datatools.connectivity.oda.IDataSetMetaData;
+import org.eclipse.datatools.connectivity.oda.IResultSet;
+import org.eclipse.datatools.connectivity.oda.OdaException;
+
+/**
+ * Implementation class of IDataSetMetaData for an ODA runtime driver.
+ * <br>
+ * For demo purpose, the auto-generated method stubs have
+ * hard-coded implementation that assume this custom ODA data set
+ * is capable of handling a query that returns a single result set and 
+ * accepts scalar input parameters by index.
+ * A custom ODA driver is expected to implement own data set specific
+ * behavior in its place. 
+ */
+public class DataSetMetaData implements IDataSetMetaData {
+	private IConnection m_connection;
+	
+	DataSetMetaData( IConnection connection ) {
+		m_connection = connection;
+	}
+	
+	/*
+	 * @see org.eclipse.datatools.connectivity.oda.IDataSetMetaData#getConnection()
+	 */
+	public IConnection getConnection() throws OdaException {
+		return m_connection;
+	}
+
+	/*
+	 * @see org.eclipse.datatools.connectivity.oda.IDataSetMetaData#getDataSourceObjects(java.lang.String, java.lang.String, java.lang.String, java.lang.String)
+	 */
+	public IResultSet getDataSourceObjects( String catalog, String schema, String object, String version ) throws OdaException {
+	    throw new UnsupportedOperationException();
+	}
+
+	/*
+	 * @see org.eclipse.datatools.connectivity.oda.IDataSetMetaData#getDataSourceMajorVersion()
+	 */
+	public int getDataSourceMajorVersion() throws OdaException {
+		return 1;
+	}
+
+	/*
+	 * @see org.eclipse.datatools.connectivity.oda.IDataSetMetaData#getDataSourceMinorVersion()
+	 */
+	public int getDataSourceMinorVersion() throws OdaException {
+		return 0;
+	}
+
+	/*
+	 * @see org.eclipse.datatools.connectivity.oda.IDataSetMetaData#getDataSourceProductName()
+	 */
+	public String getDataSourceProductName() throws OdaException {
+		return "Datamart ODA Data Source";
+	}
+
+	/*
+	 * @see org.eclipse.datatools.connectivity.oda.IDataSetMetaData#getDataSourceProductVersion()
+	 */
+	public String getDataSourceProductVersion() throws OdaException {
+		return Integer.toString( getDataSourceMajorVersion() ) + "." +   //$NON-NLS-1$
+			   Integer.toString( getDataSourceMinorVersion() );
+	}
+
+	/*
+	 * @see org.eclipse.datatools.connectivity.oda.IDataSetMetaData#getSQLStateType()
+	 */
+	public int getSQLStateType() throws OdaException {
+		return IDataSetMetaData.sqlStateSQL99;
+	}
+
+	/*
+	 * @see org.eclipse.datatools.connectivity.oda.IDataSetMetaData#supportsMultipleResultSets()
+	 */
+	public boolean supportsMultipleResultSets() throws OdaException {
+		return false;
+	}
+
+	/*
+	 * @see org.eclipse.datatools.connectivity.oda.IDataSetMetaData#supportsMultipleOpenResults()
+	 */
+	public boolean supportsMultipleOpenResults() throws OdaException {
+		return false;
+	}
+
+	/*
+	 * @see org.eclipse.datatools.connectivity.oda.IDataSetMetaData#supportsNamedResultSets()
+	 */
+	public boolean supportsNamedResultSets() throws OdaException {
+		return false;
+	}
+
+	/*
+	 * @see org.eclipse.datatools.connectivity.oda.IDataSetMetaData#supportsNamedParameters()
+	 */
+	public boolean supportsNamedParameters() throws OdaException {
+		return false;
+	}
+
+	/*
+	 * @see org.eclipse.datatools.connectivity.oda.IDataSetMetaData#supportsInParameters()
+	 */
+	public boolean supportsInParameters() throws OdaException {
+		return true;
+	}
+
+	/*
+	 * @see org.eclipse.datatools.connectivity.oda.IDataSetMetaData#supportsOutParameters()
+	 */
+	public boolean supportsOutParameters() throws OdaException {
+		return false;
+	}
+
+	/*
+	 * @see org.eclipse.datatools.connectivity.oda.IDataSetMetaData#getSortMode()
+	 */
+	public int getSortMode() {
+		return IDataSetMetaData.sortModeNone;
+	}
+}
diff --git a/org.eclipse.osbp.xtext.reportdsl.oda.datamart/src/org/eclipse/osbp/xtext/reportdsl/oda/datamart/impl/Driver.java b/org.eclipse.osbp.xtext.reportdsl.oda.datamart/src/org/eclipse/osbp/xtext/reportdsl/oda/datamart/impl/Driver.java
new file mode 100644
index 0000000..de48efb
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl.oda.datamart/src/org/eclipse/osbp/xtext/reportdsl/oda/datamart/impl/Driver.java
@@ -0,0 +1,93 @@
+/**
+ *                                                                            
+ * 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.reportdsl.oda.datamart.impl;
+
+import org.eclipse.birt.report.model.api.SessionHandle;
+import org.eclipse.datatools.connectivity.oda.IConnection;
+import org.eclipse.datatools.connectivity.oda.IDriver;
+import org.eclipse.datatools.connectivity.oda.LogConfiguration;
+import org.eclipse.datatools.connectivity.oda.OdaException;
+import org.eclipse.datatools.connectivity.oda.util.manifest.DataTypeMapping;
+import org.eclipse.datatools.connectivity.oda.util.manifest.ExtensionManifest;
+import org.eclipse.datatools.connectivity.oda.util.manifest.ManifestExplorer;
+
+/**
+ * Implementation class of IDriver for an ODA runtime driver.
+ */
+public class Driver implements IDriver {
+    static String ODA_DATA_SOURCE_ID = "org.eclipse.osbp.xtext.reportdsl.oda.datamart";  //$NON-NLS-1$
+    
+	public Driver() {
+		super();
+		SessionHandle.setBirtResourcePath("i18n/I18N");
+	}
+
+	/*
+	 * @see org.eclipse.datatools.connectivity.oda.IDriver#getConnection(java.lang.String)
+	 */
+	public IConnection getConnection( String dataSourceType ) throws OdaException {
+        // assumes that this driver supports only one type of data source,
+        // ignores the specified dataSourceType
+        return new Connection();
+	}
+
+	/*
+	 * @see org.eclipse.datatools.connectivity.oda.IDriver#setLogConfiguration(org.eclipse.datatools.connectivity.oda.LogConfiguration)
+	 */
+	public void setLogConfiguration( LogConfiguration logConfig ) throws OdaException {
+		// do nothing; assumes simple driver has no logging
+	}
+
+	/*
+	 * @see org.eclipse.datatools.connectivity.oda.IDriver#getMaxConnections()
+	 */
+	public int getMaxConnections() throws OdaException {
+		return 0;	// no limit
+	}
+	
+	/*
+	 * @see org.eclipse.datatools.connectivity.oda.IDriver#setAppContext(java.lang.Object)
+	 */
+	public void setAppContext( Object context ) throws OdaException {
+//		System.err.println(this.getClass().getSimpleName()+".setAppContext: "+(context == null ? "<null>" : context.toString()));
+	    // do nothing; assumes no support for pass-through context
+	}
+
+    /**
+     * Returns the object that represents this extension's manifest.
+     * @throws OdaException
+     */
+    static ExtensionManifest getManifest() throws OdaException {
+        return ManifestExplorer.getInstance().getExtensionManifest( ODA_DATA_SOURCE_ID );
+    }
+
+    /**
+     * Returns the native data type name of the specified code, as
+     * defined in this data source extension's manifest.
+     * @param nativeTypeCode    the native data type code
+     * @return                  corresponding native data type name
+     * @throws OdaException     if lookup fails
+     */
+    static String getNativeDataTypeName( int nativeDataTypeCode ) throws OdaException {
+        DataTypeMapping typeMapping = getManifest().getDataSetType( null ).getDataTypeMapping( nativeDataTypeCode );
+        if( typeMapping != null ) {
+            return typeMapping.getNativeType();
+        }
+		throw new OdaException( String.format(
+			"%s.getNativeDataTypeName(%d):\nNative data type code %d could not be found in the DataTypeMapping",
+			Driver.class.getCanonicalName(),
+			nativeDataTypeCode,
+			nativeDataTypeCode
+		)); //$NON-NLS-1$
+    }
+}
diff --git a/org.eclipse.osbp.xtext.reportdsl.oda.datamart/src/org/eclipse/osbp/xtext/reportdsl/oda/datamart/impl/Query.java b/org.eclipse.osbp.xtext.reportdsl.oda.datamart/src/org/eclipse/osbp/xtext/reportdsl/oda/datamart/impl/Query.java
new file mode 100644
index 0000000..9874721
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl.oda.datamart/src/org/eclipse/osbp/xtext/reportdsl/oda/datamart/impl/Query.java
@@ -0,0 +1,744 @@
+/**
+ *                                                                            
+ * 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.reportdsl.oda.datamart.impl;
+
+import java.lang.reflect.Constructor;
+import java.lang.reflect.InvocationTargetException;
+import java.math.BigDecimal;
+import java.sql.Date;
+import java.sql.Time;
+import java.sql.Timestamp;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Locale;
+import java.util.Map;
+
+import org.eclipse.datatools.connectivity.oda.IConnection;
+import org.eclipse.datatools.connectivity.oda.IParameterMetaData;
+import org.eclipse.datatools.connectivity.oda.IQuery;
+import org.eclipse.datatools.connectivity.oda.IResultSet;
+import org.eclipse.datatools.connectivity.oda.IResultSetMetaData;
+import org.eclipse.datatools.connectivity.oda.OdaException;
+import org.eclipse.datatools.connectivity.oda.SortSpec;
+import org.eclipse.datatools.connectivity.oda.spec.QuerySpecification;
+import org.eclipse.osbp.dsl.common.datatypes.IDto;
+import org.eclipse.osbp.ui.api.datamart.IDatamartFilterGenerator;
+import org.eclipse.osbp.ui.api.metadata.IDSLMetadataService;
+import org.eclipse.osbp.ui.api.report.IReportProvider;
+import org.eclipse.osbp.ui.api.themes.IThemeResourceService;
+import org.eclipse.osbp.ui.api.user.IUser;
+import org.eclipse.osbp.utils.vaadin.PropertyLookup;
+import org.eclipse.osbp.xtext.datamart.common.AEntityDatamart;
+import org.eclipse.osbp.xtext.datamart.common.DatamartFilterGenerator;
+import org.eclipse.osbp.xtext.datamart.common.olap.Cell2dTable;
+import org.eclipse.osbp.xtext.datamart.common.olap.DerivedCellSet;
+import org.eclipse.osbp.xtext.datamartdsl.AxisEnum;
+import org.eclipse.osbp.xtext.reportdsl.common.BaseReport;
+import org.eclipse.osbp.xtext.reportdsl.oda.datamart.Activator;
+import org.eclipse.osbp.xtext.reportdsl.oda.datamart.ServiceListener;
+import org.eclipse.osbp.xtext.reportdsl.oda.datamart.i18n.Messages;
+import org.eclipse.osbp.xtext.table.common.CellSetIndexedContainer;
+import org.osgi.framework.Bundle;
+import org.osgi.framework.FrameworkUtil;
+import org.osgi.framework.wiring.BundleWiring;
+
+/**
+ * Implementation class of IQuery for an ODA runtime driver. <br>
+ * For demo purpose, the auto-generated method stubs have hard-coded implementation that returns a pre-defined set of meta-data and query results. A custom ODA driver is expected
+ * to implement own data source specific behavior in its place.
+ */
+public class Query implements IQuery {
+	public static final int DEFAULT_MAX_ROWS = 1000;
+
+	private static final char QUERY_TEXT_DELIMITER = ':';
+	private static final char COLUMNSINFO_BEGIN_DELIMITER = '{';
+
+	private int fMaxRows;
+	// The Connection instance associated with the Query.
+	private IConnection fConnection = null;
+	// The meta data of the query's result set.
+	// It is available only after a query is prepared.
+	private IResultSetMetaData fResultSetMetaData = null;
+	private Cell2dTable fResultCellTable = null;
+	private CellSetIndexedContainer fResultFormattedTable = null;
+
+	private BaseReport fBaseReport = null;
+	private IThemeResourceService themeResourceService = null;
+	private String fOdaPropConfigurationId = null;
+	private String fDataSourceName = null;
+	private String fDataSetName = null;
+	private String fBundleSymbolicName = null;
+	private String fDatamartClassName = null;
+	private Class fTaskOperativeDtoClass = null;
+	private List<IDto> fTaskInitialOperativeDtos = null;
+	private boolean fEnableFillerText = false;
+	private AEntityDatamart fDatamartInstance = null;
+	private Map<String, PropertyLookup> fPropertyLookupMap = null;
+	private ArrayList<Integer> fAxisFilter = null;
+	private IUser user = null;
+	private Locale locale;
+	private IDSLMetadataService dslMetadataService;
+
+	private Map<String, String> filterMap;
+
+	public Query(IConnection host, String odaPropConfigurationId, String dataSourceName, String dataSetName, String bundleSymbolicName, String datamartClassName,
+			ArrayList<Integer> axisFilter) throws OdaException {
+		this(host, odaPropConfigurationId, dataSourceName, dataSetName, bundleSymbolicName, datamartClassName, axisFilter, null, null);
+	}
+
+	public Query(IConnection host, String odaPropConfigurationId, String dataSourceName, String dataSetName, String bundleSymbolicName, String datamartClassName,
+			ArrayList<Integer> axisFilter, Class taskOperativeDtoClass, List<IDto> taskInitialOperativeDtos) throws OdaException {
+		if ( /* homeDir == null || */host == null) {
+			throw new OdaException(Messages.getString("common_ARGUMENT_CANNOT_BE_NULL")); //$NON-NLS-1$
+		}
+		fOdaPropConfigurationId = odaPropConfigurationId;
+		fConnection = host;
+		fDataSourceName = dataSourceName;
+		fDataSetName = dataSetName;
+		fBundleSymbolicName = bundleSymbolicName;
+		fDatamartClassName = datamartClassName;
+		fAxisFilter = axisFilter;
+		fTaskOperativeDtoClass = taskOperativeDtoClass;
+		fTaskInitialOperativeDtos = taskInitialOperativeDtos;
+	}
+
+	/*
+	 * @see org.eclipse.datatools.connectivity.oda.IQuery#prepare(java.lang.String)
+	 */
+	public void prepare(String queryText) throws OdaException {
+		if (queryText != null) {
+			String query = splitQueryText(queryText)[0];
+			validateOpenConnection();
+			String formattedQuery = formatQueryText(query);
+			validateQueryText(formattedQuery);
+			getMetaData();
+
+			if (fDatamartInstance != null) {
+				try {
+					// --- get the data to extract the data types >:-( ---
+					fDatamartInstance.enableFillerText(fEnableFillerText);
+					DerivedCellSet cellSet = fDatamartInstance.getResults(user, filterMap, fTaskOperativeDtoClass, fTaskInitialOperativeDtos);
+					if (cellSet != null) {
+						// --- if a containing view exists, add all contained entity ids to be listened for modifications
+						if ((fBaseReport != null) && (cellSet != null)) {
+							fDatamartInstance.addEntityIdsToModifyListener(fBaseReport, cellSet);
+						}
+						fResultCellTable = new Cell2dTable(cellSet);
+						// --- if property lookups are available, apply it to the cellset ---
+						if ((fPropertyLookupMap != null) && (cellSet != null)) {
+							List<Integer> coordinateSystem = new ArrayList<Integer>();
+							for (int axis = 0; axis < cellSet.getAxes().size(); axis++) {
+								coordinateSystem.add(0);
+							}
+							fResultFormattedTable = new CellSetIndexedContainer(dslMetadataService, locale, themeResourceService, fPropertyLookupMap, cellSet, coordinateSystem,
+									false);
+						}
+					}
+				} catch (Exception e) {
+					System.err.println(e.getLocalizedMessage());
+				}
+			}
+		} else {
+			throw new OdaException(Messages.getString("common_NULL_QUERY_TEXT"));
+		}
+	}
+
+	private void setAxisFilter(int axis, Object string) {
+		try {
+			fAxisFilter.set(axis, Integer.parseInt((String) string));
+		} catch (NumberFormatException | ClassCastException | NullPointerException e) {
+		}
+	}
+
+	/*
+	 * @see org.eclipse.datatools.connectivity.oda.IQuery#setAppContext(java.lang.Object)
+	 */
+	@SuppressWarnings("unchecked")
+	public void setAppContext(Object context) throws OdaException {
+		try {
+			if (context instanceof Map) {
+				Map appContext = (Map) context;
+				if(appContext.get(IReportProvider.APPCONTEXT_REPORT) != null) {
+					fBaseReport = (BaseReport) appContext.get(IReportProvider.APPCONTEXT_REPORT);
+				}
+				if(appContext.get(IReportProvider.APPCONTEXT_THEMERESOURCESERVICE) != null) {
+					themeResourceService = (IThemeResourceService) appContext.get(IReportProvider.APPCONTEXT_THEMERESOURCESERVICE);
+				}
+				if(appContext.get(IReportProvider.APPCONTEXT_DSLMETADATASERVICE) != null) {
+					dslMetadataService = (IDSLMetadataService) appContext.get(IReportProvider.APPCONTEXT_DSLMETADATASERVICE);
+				}
+				if(appContext.get(IReportProvider.APPCONTEXT_USER) != null) {
+					user = (IUser) appContext.get(IReportProvider.APPCONTEXT_USER);
+				}
+				locale = user.getLocale();
+				if(appContext.get(IReportProvider.APPCONTEXT_DATAMARTINSTANCE) != null) {
+					fDatamartInstance = (AEntityDatamart) appContext.get(IReportProvider.APPCONTEXT_DATAMARTINSTANCE);
+				}
+				if(appContext.get(IReportProvider.APPCONTEXT_FILTERMAP) != null) {
+					filterMap = (Map<String, String>)appContext.get(IReportProvider.APPCONTEXT_FILTERMAP);
+				}
+				if(appContext.get(IReportProvider.APPCONTEXT_PROPERTYLOOKUP) != null) {
+					fPropertyLookupMap = (Map<String, PropertyLookup>) appContext.get(IReportProvider.APPCONTEXT_PROPERTYLOOKUP);
+				}
+
+				setAxisFilter(AxisEnum.CHAPTERS_VALUE, appContext.get(CommonConstants.DATAMART_AXIS_CHAPTER_FILTER));
+				setAxisFilter(AxisEnum.SECTIONS_VALUE, appContext.get(CommonConstants.DATAMART_AXIS_SECTION_FILTER));
+				setAxisFilter(AxisEnum.PAGES_VALUE, appContext.get(CommonConstants.DATAMART_AXIS_PAGE_FILTER));
+				setAxisFilter(AxisEnum.ROWS_VALUE, appContext.get(CommonConstants.DATAMART_AXIS_ROW_FILTER));
+				setAxisFilter(AxisEnum.COLUMNS_VALUE, appContext.get(CommonConstants.DATAMART_AXIS_COLUMN_FILTER));
+			}
+		} catch (Exception e) {
+			System.err.println(e);
+		}
+		if (fDatamartInstance == null) {
+			if ((fBundleSymbolicName != null) && (fDatamartClassName != null)) {
+				// !!! remember the original class loader !!!
+				ClassLoader originalLoader = Thread.currentThread().getContextClassLoader();
+				try {
+					// --- try to load the datamart class ---
+					Class<?> datamartClass = loadDatamartClass();
+					// --- get the constructor ---
+					Constructor<?> constructor = datamartClass.getConstructor();
+					// --- create the instance ---
+					fDatamartInstance = (AEntityDatamart) constructor.newInstance();
+				} catch (NullPointerException | InstantiationException | IllegalAccessException | IllegalArgumentException | NoSuchMethodException | SecurityException e) {
+					e.printStackTrace();
+				} catch (InvocationTargetException e) {
+					e.printStackTrace();
+					// org.eclipse.osbp.datasources.Activator.showPossibleConfigurationErrors(System.err);
+				} finally {
+					// !!! reset the original class loaded !!!
+					Thread.currentThread().setContextClassLoader(originalLoader);
+				}
+			}
+		} else {
+			if (fBundleSymbolicName == null) {
+				Bundle bundle = FrameworkUtil.getBundle(fDatamartInstance.getClass());
+				if (bundle != null) {
+					fBundleSymbolicName = bundle.getSymbolicName();
+				}
+			}
+		}
+	}
+
+	private Class<?> loadDatamartClass() {
+		Class<?> loadedClass = null;
+		String[] messages = null;
+
+		// --- first try - try to load the class from the given bundle ---
+		if ((fBundleSymbolicName != null) && (fDatamartClassName != null)) {
+			Bundle bundle = Activator.getBundle(fBundleSymbolicName);
+			if (bundle == null) {
+				messages = new String[] { "!!! Could not load the bundle '" + fBundleSymbolicName + "' to load the class '" + fDatamartClassName + "'", };
+			} else {
+				// see http://stackoverflow.com/questions/1503304/how-to-get-classloader-for-a-bundle-in-equinox
+				// see http://tomsondev.bestsolution.at/2011/10/15/find-classloader-for-a-given-osgi-bundle/
+				ClassLoader classLoader = bundle.adapt(BundleWiring.class).getClassLoader();
+				Thread.currentThread().setContextClassLoader(classLoader);
+				try {
+					loadedClass = classLoader.loadClass(fDatamartClassName);
+				} catch (ClassNotFoundException e) {
+					e.printStackTrace();
+					messages = new String[] { "!!! You have to use the class loader from the corresponding bundle as the current context class loader", };
+				}
+			}
+		}
+
+		// --- try to (re)load the class via class loader from declarative service ---
+		if ((loadedClass == null) && (fDatamartClassName != null)) {
+			loadedClass = ServiceListener.reloadClass(fDatamartClassName);
+			fEnableFillerText = (loadedClass != null);
+		}
+
+		// !!!!!!!!!!!!!!!!!!! if needed instances are not running, start them up ...................
+		// if ((loadedClass != null) && (DSUtilFactoryBinder.dsUtilFactory == null)) {
+		// org.eclipse.osbp.datasources.Activator activator = new org.eclipse.osbp.datasources.Activator();
+		// try {
+		// activator.start(Activator.getContext());
+		// } catch (Exception e) {
+		// e.printStackTrace();
+		// }
+		// (new DSUtilFactoryBinder()).bindDsUtilFactory(activator);
+		// }
+		// ................... if needed instances are not running, start them up !!!!!!!!!!!!!!!!!!!
+
+		if ((loadedClass == null) && (messages != null)) {
+			for (String message : messages) {
+				System.err.println(message);
+			}
+		}
+
+		return loadedClass;
+	}
+
+	/*
+	 * @see org.eclipse.datatools.connectivity.oda.IQuery#close()
+	 */
+	public void close() throws OdaException {
+		fMaxRows = 0;
+		fConnection = null;
+		fResultSetMetaData = null;
+		fResultCellTable = null;
+		fResultFormattedTable = null;
+	}
+
+	/*
+	 * @see org.eclipse.datatools.connectivity.oda.IQuery#getMetaData()
+	 */
+	public IResultSetMetaData getMetaData() throws OdaException {
+		if (fResultSetMetaData == null) {
+			fResultSetMetaData = new ResultSetMetaData(fDatamartInstance.getTypesMap(user));
+		}
+		return fResultSetMetaData;
+	}
+
+	/*
+	 * @see org.eclipse.datatools.connectivity.oda.IQuery#executeQuery()
+	 */
+	public IResultSet executeQuery() throws OdaException {
+		return new ResultSet(fResultCellTable, fResultFormattedTable, this.fResultSetMetaData);
+	}
+
+	/*
+	 * @see org.eclipse.datatools.connectivity.oda.IQuery#setProperty(java.lang.String, java.lang.String)
+	 */
+	public void setProperty(String name, String value) throws OdaException {
+		// System.err.println("Query: ingore set property: "+name+" <-- "+value);
+	}
+
+	/*
+	 * @see org.eclipse.datatools.connectivity.oda.IQuery#setMaxRows(int)
+	 */
+	public void setMaxRows(int max) throws OdaException {
+		fMaxRows = max;
+	}
+
+	/*
+	 * @see org.eclipse.datatools.connectivity.oda.IQuery#getMaxRows()
+	 */
+	public int getMaxRows() throws OdaException {
+		return fMaxRows;
+	}
+
+	/*
+	 * @see org.eclipse.datatools.connectivity.oda.IQuery#clearInParameters()
+	 */
+	public void clearInParameters() throws OdaException {
+		// TODO Auto-generated method stub
+		// only applies to input parameter
+		throw new UnsupportedOperationException();
+	}
+
+	/*
+	 * @see org.eclipse.datatools.connectivity.oda.IQuery#setInt(java.lang.String, int)
+	 */
+	public void setInt(String parameterName, int value) throws OdaException {
+		// TODO Auto-generated method stub
+		// only applies to named input parameter
+		throw new UnsupportedOperationException();
+
+	}
+
+	/*
+	 * @see org.eclipse.datatools.connectivity.oda.IQuery#setInt(int, int)
+	 */
+	public void setInt(int parameterId, int value) throws OdaException {
+		// TODO Auto-generated method stub
+		// only applies to input parameter
+		throw new UnsupportedOperationException();
+
+	}
+
+	/*
+	 * @see org.eclipse.datatools.connectivity.oda.IQuery#setDouble(java.lang.String, double)
+	 */
+	public void setDouble(String parameterName, double value) throws OdaException {
+		throw new UnsupportedOperationException();
+		// TODO Auto-generated method stub
+		// only applies to named input parameter
+	}
+
+	/*
+	 * @see org.eclipse.datatools.connectivity.oda.IQuery#setDouble(int, double)
+	 */
+	public void setDouble(int parameterId, double value) throws OdaException {
+		throw new UnsupportedOperationException();
+		// TODO Auto-generated method stub
+		// only applies to input parameter
+	}
+
+	/*
+	 * @see org.eclipse.datatools.connectivity.oda.IQuery#setBigDecimal(java.lang.String, java.math.BigDecimal)
+	 */
+	public void setBigDecimal(String parameterName, BigDecimal value) throws OdaException {
+		throw new UnsupportedOperationException();
+		// TODO Auto-generated method stub
+		// only applies to named input parameter
+	}
+
+	/*
+	 * @see org.eclipse.datatools.connectivity.oda.IQuery#setBigDecimal(int, java.math.BigDecimal)
+	 */
+	public void setBigDecimal(int parameterId, BigDecimal value) throws OdaException {
+		throw new UnsupportedOperationException();
+		// TODO Auto-generated method stub
+		// only applies to input parameter
+	}
+
+	/*
+	 * @see org.eclipse.datatools.connectivity.oda.IQuery#setString(java.lang.String, java.lang.String)
+	 */
+	public void setString(String parameterName, String value) throws OdaException {
+		throw new UnsupportedOperationException();
+		// TODO Auto-generated method stub
+		// only applies to named input parameter
+	}
+
+	/*
+	 * @see org.eclipse.datatools.connectivity.oda.IQuery#setString(int, java.lang.String)
+	 */
+	public void setString(int parameterId, String value) throws OdaException {
+		throw new UnsupportedOperationException();
+		// TODO Auto-generated method stub
+		// only applies to input parameter
+	}
+
+	/*
+	 * @see org.eclipse.datatools.connectivity.oda.IQuery#setDate(java.lang.String, java.sql.Date)
+	 */
+	public void setDate(String parameterName, Date value) throws OdaException {
+		throw new UnsupportedOperationException();
+		// TODO Auto-generated method stub
+		// only applies to named input parameter
+	}
+
+	/*
+	 * @see org.eclipse.datatools.connectivity.oda.IQuery#setDate(int, java.sql.Date)
+	 */
+	public void setDate(int parameterId, Date value) throws OdaException {
+		throw new UnsupportedOperationException();
+		// TODO Auto-generated method stub
+		// only applies to input parameter
+	}
+
+	/*
+	 * @see org.eclipse.datatools.connectivity.oda.IQuery#setTime(java.lang.String, java.sql.Time)
+	 */
+	public void setTime(String parameterName, Time value) throws OdaException {
+		throw new UnsupportedOperationException();
+		// TODO Auto-generated method stub
+		// only applies to named input parameter
+	}
+
+	/*
+	 * @see org.eclipse.datatools.connectivity.oda.IQuery#setTime(int, java.sql.Time)
+	 */
+	public void setTime(int parameterId, Time value) throws OdaException {
+		throw new UnsupportedOperationException();
+		// TODO Auto-generated method stub
+		// only applies to input parameter
+	}
+
+	/*
+	 * @see org.eclipse.datatools.connectivity.oda.IQuery#setTimestamp(java.lang.String, java.sql.Timestamp)
+	 */
+	public void setTimestamp(String parameterName, Timestamp value) throws OdaException {
+		throw new UnsupportedOperationException();
+		// TODO Auto-generated method stub
+		// only applies to named input parameter
+	}
+
+	/*
+	 * @see org.eclipse.datatools.connectivity.oda.IQuery#setTimestamp(int, java.sql.Timestamp)
+	 */
+	public void setTimestamp(int parameterId, Timestamp value) throws OdaException {
+		throw new UnsupportedOperationException();
+		// TODO Auto-generated method stub
+		// only applies to input parameter
+	}
+
+	public Locale getLocale() {
+		return locale;
+	}
+
+	public void setLocale(Locale locale) {
+		this.locale = locale;
+	}
+
+	/*
+	 * @see org.eclipse.datatools.connectivity.oda.IQuery#findInParameter(java.lang.String)
+	 */
+	public int findInParameter(String parameterName) throws OdaException {
+		// TODO Auto-generated method stub
+		// only applies to named input parameter
+		throw new UnsupportedOperationException();
+	}
+
+	/*
+	 * @see org.eclipse.datatools.connectivity.oda.IQuery#getParameterMetaData()
+	 */
+	public IParameterMetaData getParameterMetaData() throws OdaException {
+		/*
+		 * TODO Auto-generated method stub Replace with implementation to return an instance based on this prepared query.
+		 */
+		throw new UnsupportedOperationException();
+	}
+
+	/*
+	 * @see org.eclipse.datatools.connectivity.oda.IQuery#setSortSpec(org.eclipse.datatools.connectivity.oda.SortSpec)
+	 */
+	public void setSortSpec(SortSpec sortBy) throws OdaException {
+		// TODO Auto-generated method stub
+		// only applies to sorting, assumes not supported
+		throw new UnsupportedOperationException();
+	}
+
+	/*
+	 * @see org.eclipse.datatools.connectivity.oda.IQuery#getSortSpec()
+	 */
+	public SortSpec getSortSpec() throws OdaException {
+		// TODO Auto-generated method stub
+		// only applies to sorting
+		throw new UnsupportedOperationException();
+	}
+
+	/**
+	 * Validate whether the query's connection is open.
+	 * 
+	 * @throws OdaException
+	 *             if connection is not open yet
+	 */
+	private void validateOpenConnection() throws OdaException {
+		if (fConnection.isOpen() == false) {
+			throw new OdaException(Messages.getString("common_CONNECTION_HAS_NOT_OPENED")); //$NON-NLS-1$
+		}
+	}
+
+	/**
+	 * Format the given query text. Eliminates redundant spaces and convert all keywords to uppercase.
+	 * 
+	 * @param queryText
+	 * @return
+	 */
+	private String formatQueryText(String queryText) {
+		String result = ""; //$NON-NLS-1$
+		String[] temp = queryText.trim().split(CommonConstants.DELIMITER_SPACE);
+		for (int i = 0; i < temp.length; i++) {
+			if (temp[i].equalsIgnoreCase(CommonConstants.KEYWORD_AS)) {
+				temp[i] = temp[i].toUpperCase();
+			}
+			if (temp[i].equalsIgnoreCase(CommonConstants.KEYWORD_FROM)) {
+				temp[i] = temp[i].toUpperCase();
+			}
+			if (temp[i].equalsIgnoreCase(CommonConstants.KEYWORD_SELECT)) {
+				temp[i] = temp[i].toUpperCase();
+			}
+			result = result + temp[i] + CommonConstants.DELIMITER_SPACE;
+		}
+		return result.trim();
+	}
+
+	/**
+	 * Validate whether the query text is valid.
+	 * 
+	 * @param formattedQuery
+	 *            the SQL command
+	 * @throws OdaException
+	 *             if given text is invalid or if any other error occurs
+	 */
+	private void validateQueryText(String formattedQuery) throws OdaException {
+		validateNonEmptyQueryText(formattedQuery);
+
+		String[] queryFragments = parsePreparedQueryText(formattedQuery);
+
+		if (queryFragments[2].split(CommonConstants.DELIMITER_COMMA).length != 1) {
+			throw new OdaException(Messages.getString("query_DO_NOT_SUPPORT_CROSS_TABLE_QUERY"));
+		}
+	}
+
+	/**
+	 * Validate whether the given query text is empty.
+	 * 
+	 * @param formattedQuery
+	 *            the trimed query text
+	 * @throws OdaException
+	 *             if the given text is empty
+	 */
+	private void validateNonEmptyQueryText(String formattedQuery) throws OdaException {
+		if (formattedQuery == null || formattedQuery.length() == 0) {
+			throw new OdaException(Messages.getString("query_COMMAND_IS_EMPTY")); //$NON-NLS-1$
+		}
+	}
+
+	/**
+	 * Parse the command by separating keywords and other parts of a SQL SELECT query text.
+	 * 
+	 * @param formattedQuery
+	 *            SQL SELECT query: SELECT COLUMNNAME (AS ALIAS)[,COLUMNNAME2 (AS ALIAS)] FROM TABLENAME
+	 * @return a String array with first element that holds all the comma-separated column names, the second element that holds all the comma-separated column display labels, and
+	 *         the third element for table name(s) in FROM clause
+	 * @throws OdaException
+	 *             if the given query is not valid.
+	 */
+	private String[] parsePreparedQueryText(String formattedQuery) throws OdaException {
+		// This array stores two values: "SELECT" keyword and other part of a
+		// command
+		String[] queryWithoutSELECTKeyword = formattedQuery.split(CommonConstants.DELIMITER_SPACE, 2);
+		if (queryWithoutSELECTKeyword == null || queryWithoutSELECTKeyword.length != 2 || !queryWithoutSELECTKeyword[0].trim().equalsIgnoreCase(CommonConstants.KEYWORD_SELECT)) {
+			throw new OdaException(Messages.getString("query_COMMAND_NOT_VALID")); //$NON-NLS-1$
+		}
+
+		/*
+		 * This returned array stores two values: the fragment immediately after "SELECT" and before "FROM", and the fragment immediate after the "FROM" keyword.
+		 */
+		String[] querySelectAndFromFragments = queryWithoutSELECTKeyword[1].split(CommonConstants.DELIMITER_SPACE + CommonConstants.KEYWORD_FROM + CommonConstants.DELIMITER_SPACE);
+		if (querySelectAndFromFragments == null || querySelectAndFromFragments.length != 2) {
+			throw new OdaException(Messages.getString("query_COMMAND_NOT_VALID")); //$NON-NLS-1$
+		}
+
+		String[] result = new String[3];
+		// store the table name in given last element as the third element
+		result[2] = querySelectAndFromFragments[1];
+
+		// split the columns specified in the SELECT clause
+		String selectedColumns = querySelectAndFromFragments[0];
+		if (!isWildCard(selectedColumns)) {
+			String[] columns = selectedColumns.split(CommonConstants.DELIMITER_COMMA);
+			for (int i = 0; i < columns.length; i++) {
+				String[] columnNameAlias = columns[i].split(CommonConstants.DELIMITER_SPACE + CommonConstants.KEYWORD_AS + CommonConstants.DELIMITER_SPACE);
+				if (columnNameAlias != null) {
+					// append column name to comma-separated column names in
+					// result[0]
+					result[0] = (i == 0 ? columnNameAlias[0] : result[0] + CommonConstants.DELIMITER_COMMA + columnNameAlias[0].trim());
+
+					// append column alias, if exists, or null to
+					// comma-separated column aliases in result[1]
+					if (columnNameAlias.length == 2) {
+						result[1] = (i == 0 ? columnNameAlias[1] : result[1] + CommonConstants.DELIMITER_COMMA + columnNameAlias[1].trim());
+					} else {
+						result[1] = (i == 0 ? null : result[1] + CommonConstants.DELIMITER_COMMA + null);
+					}
+				}
+			}
+		} else {
+			result[0] = CommonConstants.KEYWORD_ASTERISK;
+			result[1] = null;
+		}
+		return result;
+	}
+
+	/**
+	 * @param cCN
+	 * @return
+	 */
+	private boolean isWildCard(String cCN) {
+		if (cCN.equalsIgnoreCase(CommonConstants.KEYWORD_ASTERISK)) {
+			return true;
+		}
+		return false;
+	}
+
+	/**
+	 * 
+	 */
+	private static String[] splitQueryText(String queryText) throws OdaException {
+		int delimiterIndex = -1;
+		int columnsInfoBeginIndex = -1;
+
+		String trimmedQueryText = queryText.trim();
+
+		String[] splittedQueryText = { "", "" };
+		boolean inQuote = false;
+		boolean isEscaped = false;
+		char[] chars = trimmedQueryText.toCharArray();
+
+		for (int i = 0; i < chars.length; i++) {
+			if (chars[i] == '"') {
+				if (!isEscaped) {
+					inQuote = !inQuote;
+				} else {
+					isEscaped = !isEscaped;
+				}
+			} else if (chars[i] == '\\') {
+				isEscaped = !isEscaped;
+			} else if ((!inQuote) && chars[i] == QUERY_TEXT_DELIMITER) {
+				delimiterIndex = i;
+			} else if ((!inQuote) && chars[i] == COLUMNSINFO_BEGIN_DELIMITER) {
+				columnsInfoBeginIndex = i;
+				break;
+			}
+		}
+
+		if (inQuote) {
+			throw new OdaException(Messages.getString("query_text_error"));
+		}
+
+		if (delimiterIndex != -1 && columnsInfoBeginIndex != -1) {
+			splittedQueryText[0] = trimmedQueryText.substring(0, delimiterIndex).trim();
+			splittedQueryText[1] = trimmedQueryText.substring(columnsInfoBeginIndex + 1, trimmedQueryText.length() - 1).trim();
+		} else if (delimiterIndex == -1 && columnsInfoBeginIndex == -1) {
+			splittedQueryText[0] = trimmedQueryText;
+		} else {
+			throw new OdaException(Messages.getString("query_text_error"));
+		}
+		return splittedQueryText;
+	}
+
+	public void setBoolean(String arg0, boolean arg1) throws OdaException {
+		// TODO Auto-generated method stub
+	}
+
+	public void setBoolean(int arg0, boolean arg1) throws OdaException {
+		// TODO Auto-generated method stub
+	}
+
+	public void setNull(String arg0) throws OdaException {
+		// TODO Auto-generated method stub
+	}
+
+	public void setNull(int arg0) throws OdaException {
+		// TODO Auto-generated method stub
+	}
+
+	@Override
+	public void cancel() throws OdaException, UnsupportedOperationException {
+		// TODO Auto-generated method stub
+	}
+
+	@Override
+	public String getEffectiveQueryText() {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
+	@Override
+	public QuerySpecification getSpecification() {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
+	@Override
+	public void setObject(String arg0, Object arg1) throws OdaException {
+		// TODO Auto-generated method stub
+	}
+
+	@Override
+	public void setObject(int arg0, Object arg1) throws OdaException {
+		// TODO Auto-generated method stub
+	}
+
+	@Override
+	public void setSpecification(QuerySpecification arg0) throws OdaException, UnsupportedOperationException {
+		// TODO Auto-generated method stub
+	}
+}
diff --git a/org.eclipse.osbp.xtext.reportdsl.oda.datamart/src/org/eclipse/osbp/xtext/reportdsl/oda/datamart/impl/ResultSet.java b/org.eclipse.osbp.xtext.reportdsl.oda.datamart/src/org/eclipse/osbp/xtext/reportdsl/oda/datamart/impl/ResultSet.java
new file mode 100644
index 0000000..15a92ce
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl.oda.datamart/src/org/eclipse/osbp/xtext/reportdsl/oda/datamart/impl/ResultSet.java
@@ -0,0 +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 
+ */
+package org.eclipse.osbp.xtext.reportdsl.oda.datamart.impl;
+
+import java.math.BigDecimal;
+import java.sql.Date;
+import java.sql.Time;
+import java.sql.Timestamp;
+import java.util.HashMap;
+import java.util.Map;
+
+import org.eclipse.birt.core.data.DataType;
+import org.eclipse.datatools.connectivity.oda.IBlob;
+import org.eclipse.datatools.connectivity.oda.IClob;
+import org.eclipse.datatools.connectivity.oda.IResultSet;
+import org.eclipse.datatools.connectivity.oda.IResultSetMetaData;
+import org.eclipse.datatools.connectivity.oda.OdaException;
+import org.eclipse.osbp.xtext.datamart.common.olap.DerivedCell;
+import org.eclipse.osbp.xtext.datamart.common.olap.Cell2dTable;
+
+import org.eclipse.osbp.xtext.reportdsl.oda.datamart.i18n.Messages;
+import org.eclipse.osbp.xtext.table.common.CellSetIndexedContainer;
+
+/**
+ * Implementation class of IResultSet for an ODA runtime driver.
+ * <br>
+ * For demo purpose, the auto-generated method stubs have
+ * hard-coded implementation that returns a pre-defined set
+ * of meta-data and query results.
+ * A custom ODA driver is expected to implement own data source specific
+ * behavior in its place. 
+ */
+public class ResultSet implements IResultSet {
+	
+	public static final int DEFAULT_MAX_ROWS = 1000;
+    private static final int CURSOR_INITIAL_VALUE = -1;
+    private Cell2dTable fCellTable = null;
+    private CellSetIndexedContainer fFormattedTable = null;
+    private IResultSetMetaData fResultSetMetaData = null;
+    private int fMaxRows = 0; //no limit
+    private int fCursor = CURSOR_INITIAL_VALUE;
+    //Boolean which marks whether it is successful of last call to getXXX();
+    private boolean fWasNull = false;
+
+    private Map<Integer,Integer> fMapCellTableToResultSet;
+    private Map<Integer,Integer> fMapResultSetToCellTable;
+    
+    /**
+     * Constructor
+     * @param sData a two-dimension array which holds the data extracted from a
+     *            csv file.
+     * @param rsmd the metadata of sData
+     */
+    ResultSet( Cell2dTable cellTable, CellSetIndexedContainer formattedTable, IResultSetMetaData rsmd ) {
+        fCellTable = cellTable;
+        fFormattedTable = formattedTable;
+        fResultSetMetaData = rsmd;
+        fMapCellTableToResultSet = new HashMap<Integer, Integer>();
+        fMapResultSetToCellTable = new HashMap<Integer, Integer>();
+        try {
+			for	(int resultSetIndex = 1; resultSetIndex <= rsmd.getColumnCount(); resultSetIndex++) {
+				String columnName = rsmd.getColumnName(resultSetIndex).toLowerCase();
+				int cellTableIndex = cellTable.getHeaderIndex(columnName);
+				fMapCellTableToResultSet.put(cellTableIndex, resultSetIndex);
+				fMapResultSetToCellTable.put(resultSetIndex, cellTableIndex);
+//				System.err.println("resultSet:"+resultSetIndex+" cellTable:"+cellTableIndex+" Column:"+columnName+" Type:"+rsmd.getColumnTypeName(resultSetIndex)+"="+rsmd.getColumnType(resultSetIndex));
+			}
+		} catch (OdaException e) {
+			e.printStackTrace();
+		}
+    }
+    
+	/*
+	 * @see org.eclipse.datatools.connectivity.oda.IResultSet#getMetaData()
+	 */
+	public IResultSetMetaData getMetaData() throws OdaException {
+        /* TODO Auto-generated method stub
+         * Replace with implementation to return an instance 
+         * based on this result set.
+         */
+		return fResultSetMetaData;
+	}
+
+	/*
+	 * @see org.eclipse.datatools.connectivity.oda.IResultSet#setMaxRows(int)
+	 */
+	public void setMaxRows( int max ) throws OdaException {
+		fMaxRows = max;
+	}
+	
+	/**
+	 * Returns the maximum number of rows that can be fetched from this result set.
+	 * @return the maximum number of rows to fetch.
+	 */
+	protected int getMaxRows() {
+		return fMaxRows;
+	}
+
+	/*
+	 * @see org.eclipse.datatools.connectivity.oda.IResultSet#next()
+	 */
+	public boolean next() throws OdaException {
+        if( ( fMaxRows <= 0 ? false : fCursor >= fMaxRows - 1 )
+                || fCursor >= fCellTable.getRowCount() - 1 ) {
+            fCursor = CURSOR_INITIAL_VALUE;
+            return false;
+        }
+        fCursor++;
+        return true;
+  	}
+
+	/*
+	 * @see org.eclipse.datatools.connectivity.oda.IResultSet#close()
+	 */
+	public void close() throws OdaException {
+        fCursor = 0;
+        fCellTable = null;
+        fResultSetMetaData = null;
+	}
+
+	/*
+	 * @see org.eclipse.datatools.connectivity.oda.IResultSet#getRow()
+	 */
+	public int getRow() throws OdaException {
+        validateCursorState();
+        return fCursor;
+ 	}
+
+	/**
+	 * @param cellTableIndex
+	 * @return cell for the cellTable index given
+	 * @throws OdaException
+	 */
+	private DerivedCell getCellTableCell( int cellTableIndex ) throws OdaException {
+        validateCursorState();
+        DerivedCell result = fCellTable.getCell(cellTableIndex, fCursor);
+        if	(fFormattedTable != null) {
+        	result = new DerivedCell (result.getValue(), fFormattedTable.getStringValueByOrdinal(fCursor, cellTableIndex));
+        }
+        fWasNull = result == null ? true : false;
+        return result;
+	}
+
+	public DerivedCell getCell( int resultSetIndex ) throws OdaException {
+		Integer cellTableIndex = fMapResultSetToCellTable.get(resultSetIndex);
+		if	(cellTableIndex == null) {
+			throw new OdaException("cellTable column #"+resultSetIndex+" could not be mapped to resultSet column");
+		}
+		return getCellTableCell(cellTableIndex);
+	}
+
+	public DerivedCell getCell( String columnName ) throws OdaException {
+	    return getCellTableCell( findColumn( columnName ) );
+	}
+
+	/*
+	 * @see org.eclipse.datatools.connectivity.oda.IResultSet#getString(int)
+	 */
+	public String getString( int resultSetIndex ) throws OdaException {
+        DerivedCell cell = getCell(resultSetIndex);
+        String result = cell == null ? null : cell.getFormattedValue();
+        if	((result != null) && result.isEmpty()) {
+	        switch (fResultSetMetaData.getColumnType(resultSetIndex)) {
+	    		case DataType.DATE_TYPE:
+	        	case DataType.SQL_DATE_TYPE:
+	        		result = null;
+	        		break;
+	        }
+        }
+        return result;
+	}
+
+	/*
+	 * @see org.eclipse.datatools.connectivity.oda.IResultSet#getString(java.lang.String)
+	 */
+	public String getString( String columnName ) throws OdaException {
+	    return getString( findColumn( columnName ) );
+	}
+
+	/*
+	 * @see org.eclipse.datatools.connectivity.oda.IResultSet#getInt(int)
+	 */
+	public int getInt( int resultSetIndex ) throws OdaException {
+        Object object = getObject(resultSetIndex);
+        try {
+	        return object instanceof BigDecimal ? ((BigDecimal)object).intValue() :
+	        	   object instanceof Double ? ((Double)object).intValue() :
+	        	   -1;
+        }
+        catch (Exception e) {
+        	// @TODO do log output
+        	e.printStackTrace();
+        }
+        return -1;
+	}
+
+	/*
+	 * @see org.eclipse.datatools.connectivity.oda.IResultSet#getInt(java.lang.String)
+	 */
+	public int getInt( String columnName ) throws OdaException {
+	    return getInt( findColumn( columnName ) );
+	}
+
+	/*
+	 * @see org.eclipse.datatools.connectivity.oda.IResultSet#getDouble(int)
+	 */
+	public double getDouble( int resultSetIndex ) throws OdaException {
+        Object object = getObject(resultSetIndex);
+        if	(object instanceof BigDecimal) {
+        	return ((BigDecimal)object).doubleValue();
+        }
+        else if (object instanceof Double) {
+        	return ((Double)object);
+        }
+        return -1.0;
+	}
+
+	/*
+	 * @see org.eclipse.datatools.connectivity.oda.IResultSet#getDouble(java.lang.String)
+	 */
+	public double getDouble( String columnName ) throws OdaException {
+	    return getDouble( findColumn( columnName ) );
+	}
+
+	/*
+	 * @see org.eclipse.datatools.connectivity.oda.IResultSet#getBigDecimal(int)
+	 */
+	public BigDecimal getBigDecimal( int resultSetIndex ) throws OdaException {
+        Object object = getObject(resultSetIndex);
+        if	(object instanceof BigDecimal) {
+        	return (BigDecimal)object;
+        }
+        else if (object instanceof Double) {
+        	return BigDecimal.valueOf((Double)object);
+        }
+        return null;
+	}
+
+	/*
+	 * @see org.eclipse.datatools.connectivity.oda.IResultSet#getBigDecimal(java.lang.String)
+	 */
+	public BigDecimal getBigDecimal( String columnName ) throws OdaException {
+	    return getBigDecimal( findColumn( columnName ) );
+	}
+
+	/*
+	 * @see org.eclipse.datatools.connectivity.oda.IResultSet#getDate(int)
+	 */
+	public Date getDate( int resultSetIndex ) throws OdaException {
+        Object object = getObject(resultSetIndex);
+        return object instanceof Timestamp ? new Date(((Timestamp)object).getTime()) : null;
+	}
+
+	/*
+	 * @see org.eclipse.datatools.connectivity.oda.IResultSet#getDate(java.lang.String)
+	 */
+	public Date getDate( String columnName ) throws OdaException {
+	    return getDate( findColumn( columnName ) );
+	}
+
+	/*
+	 * @see org.eclipse.datatools.connectivity.oda.IResultSet#getTime(int)
+	 */
+	public Time getTime( int resultSetIndex ) throws OdaException {
+        Object object = getObject(resultSetIndex);
+        return object instanceof Timestamp ? new Time(((Timestamp)object).getTime()) : null;
+	}
+
+	/*
+	 * @see org.eclipse.datatools.connectivity.oda.IResultSet#getTime(java.lang.String)
+	 */
+	public Time getTime( String columnName ) throws OdaException {
+	    return getTime( findColumn( columnName ) );
+	}
+
+	/*
+	 * @see org.eclipse.datatools.connectivity.oda.IResultSet#getTimestamp(int)
+	 */
+	public Timestamp getTimestamp( int resultSetIndex ) throws OdaException {
+        Object object = getObject(resultSetIndex);
+        return object instanceof Timestamp ? (Timestamp)object : null;
+	}
+
+	/*
+	 * @see org.eclipse.datatools.connectivity.oda.IResultSet#getTimestamp(java.lang.String)
+	 */
+	public Timestamp getTimestamp( String columnName ) throws OdaException {
+	    return getTimestamp( findColumn( columnName ) );
+	}
+
+    /* 
+     * @see org.eclipse.datatools.connectivity.oda.IResultSet#getBlob(int)
+     */
+    public IBlob getBlob( int resultSetIndex ) throws OdaException {
+        Object object = getObject(resultSetIndex);
+        if	(object instanceof IBlob) {
+        	return (IBlob) object;
+        }
+        throw new UnsupportedOperationException("IBlob not yet supported, object is instance of "+(object == null ? "<null>" : object.getClass().getCanonicalName()));
+    }
+
+    /* 
+     * @see org.eclipse.datatools.connectivity.oda.IResultSet#getBlob(java.lang.String)
+     */
+    public IBlob getBlob( String columnName ) throws OdaException {
+	    return getBlob( findColumn( columnName ) );
+    }
+
+    /* 
+     * @see org.eclipse.datatools.connectivity.oda.IResultSet#getClob(int)
+     */
+    public IClob getClob( int resultSetIndex ) throws OdaException {
+        Object object = getObject(resultSetIndex);
+        if	(object instanceof IClob) {
+        	return (IClob) object;
+        }
+        throw new UnsupportedOperationException("IClob not yet supported, object is instance of "+(object == null ? "<null>" : object.getClass().getCanonicalName()));
+    }
+
+    /* 
+     * @see org.eclipse.datatools.connectivity.oda.IResultSet#getClob(java.lang.String)
+     */
+    public IClob getClob( String columnName ) throws OdaException {
+	    return getClob( findColumn( columnName ) );
+    }
+
+    /*
+     * @see org.eclipse.datatools.connectivity.oda.IResultSet#wasNull()
+     */
+    public boolean wasNull() throws OdaException {
+        return fWasNull;
+    }
+
+    /**
+     * @see org.eclipse.datatools.connectivity.oda.IResultSet#findColumn(java.lang.String)
+     * @return <b>resultSet column index</b> <i><u>not</u> the cellTable column index</i>
+     */
+    public int findColumn( String columnName ) throws OdaException {
+        String trimmedColumnName = columnName.trim();
+        int columnCount = getMetaData().getColumnCount();
+        for( int i = 1; i <= columnCount; i++ ) {
+            if( trimmedColumnName.equalsIgnoreCase(
+                    getMetaData().getColumnName( i ) ) ) {
+                return i;
+            }
+        }
+        throw new OdaException( Messages.getString( "resultSet_COLUMN_NOT_FOUND" ) + columnName ); //$NON-NLS-1$
+     }
+    
+    /**
+     * Validate whether the cursor has been initialized and at a valid row.
+     * @throws OdaException if the cursor is not initialized
+     */
+    private void validateCursorState() throws OdaException {
+        if( fCursor < 0 ) {
+            throw new OdaException( Messages.getString( "resultSet_CURSOR_HAS_NOT_BEEN_INITIALIZED" ) ); //$NON-NLS-1$
+        }
+    }
+
+	public boolean getBoolean(int resultSetIndex) throws OdaException {
+        Object object = getObject(resultSetIndex);
+        if	(object instanceof Boolean) {
+        	return ((Boolean)object).booleanValue();
+        }
+        else if (object instanceof String) {
+    		return Boolean.valueOf((String)object);
+        }
+        return false;
+	}
+
+	public boolean getBoolean(String columnName) throws OdaException {
+	    return getBoolean( findColumn( columnName ) );
+	}
+
+	@Override
+	public Object getObject(int resultSetIndex) throws OdaException {
+        DerivedCell cell = getCell(resultSetIndex);
+        return cell == null ? null : cell.getValue();
+	}
+
+	@Override
+	public Object getObject(String columnName) throws OdaException {
+	    return getObject( findColumn( columnName ) );
+	}
+}
diff --git a/org.eclipse.osbp.xtext.reportdsl.oda.datamart/src/org/eclipse/osbp/xtext/reportdsl/oda/datamart/impl/ResultSetMetaData.java b/org.eclipse.osbp.xtext.reportdsl.oda.datamart/src/org/eclipse/osbp/xtext/reportdsl/oda/datamart/impl/ResultSetMetaData.java
new file mode 100644
index 0000000..d9fff0c
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl.oda.datamart/src/org/eclipse/osbp/xtext/reportdsl/oda/datamart/impl/ResultSetMetaData.java
@@ -0,0 +1,216 @@
+/**
+ *                                                                            
+ * 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.reportdsl.oda.datamart.impl;
+
+import java.util.HashMap;
+
+import org.eclipse.datatools.connectivity.oda.IResultSetMetaData;
+import org.eclipse.datatools.connectivity.oda.OdaException;
+
+import org.eclipse.osbp.ui.api.datamart.IDataMart.EType;
+import org.eclipse.osbp.xtext.reportdsl.common.DataTypes;
+import org.eclipse.osbp.xtext.reportdsl.oda.datamart.i18n.Messages;
+
+/**
+ * Implementation class of IResultSetMetaData for an ODA runtime driver.
+ * <br>
+ * For demo purpose, the auto-generated method stubs have
+ * hard-coded implementation that returns a pre-defined set
+ * of meta-data and query results.
+ * A custom ODA driver is expected to implement own data source specific
+ * behavior in its place. 
+ */
+public class ResultSetMetaData implements IResultSetMetaData {
+    private String[] columnNames = null;
+    private DataTypes[] columnTypes = null;
+    private String[] columnLabels = null;
+
+    ResultSetMetaData( String[] colNames, DataTypes[] colTypes, String[] colLabels ) throws OdaException {
+        if( colNames == null ) {
+            throw new OdaException( Messages.getString( "common_ARGUMENT_CANNOT_BE_NULL" ) ); //$NON-NLS-1$
+        }
+        this.columnNames = colNames;
+        this.columnTypes = colTypes;
+        if	(colLabels == null) {
+        	this.columnLabels = colNames;
+        }
+        else {
+        	this.columnLabels = colLabels;
+        }
+    }
+    
+    ResultSetMetaData( HashMap<String, EType> typesMap) throws OdaException {
+		columnNames = typesMap.keySet().toArray(new String[0]); 
+		for(int idx=0; idx<columnNames.length; idx++) {
+			columnNames[idx] = columnNames[idx].split("\\.")[1];
+		}
+		columnLabels = typesMap.keySet().toArray(new String[0]); 
+		for(int idx=0; idx<columnLabels.length; idx++) {
+			columnLabels[idx] = columnLabels[idx].split("\\.")[1];
+		}
+		columnTypes = new DataTypes[typesMap.keySet().size()];
+		int idx = 0;
+		for(String key : typesMap.keySet()) {
+			columnTypes[idx++] = DataTypes.typeFor(typesMap.get(key));
+		}
+    }
+
+    public void setColumnTypes(DataTypes[] colTypes) {
+        this.columnTypes = colTypes;
+    }
+    
+    public void setColumnLables(String[] colLabels) {
+        this.columnLabels = colLabels;
+    }
+    
+	/*
+	 * @see org.eclipse.datatools.connectivity.oda.IResultSetMetaData#getColumnCount()
+	 */
+	public int getColumnCount() throws OdaException {
+ 		return this.columnNames.length;
+	}
+
+	/*
+	 * @see org.eclipse.datatools.connectivity.oda.IResultSetMetaData#getColumnName(int)
+	 */
+	public String getColumnName( int index ) throws OdaException {
+		if ( index > getColumnCount( ) || index < 1 ) {
+			throw new OdaException( String.format(
+				"%s.getColumnName(%d):\n- Index %d is out of range of available column indices %d-%d",
+				getClass().getCanonicalName(),
+				index,
+				index,
+				1,
+				getColumnCount()
+			)); //$NON-NLS-1$
+		}
+		return this.columnNames[index - 1].trim( );
+ 	}
+
+	/*
+	 * @see org.eclipse.datatools.connectivity.oda.IResultSetMetaData#getColumnLabel(int)
+	 */
+	public String getColumnLabel( int index ) throws OdaException {
+		if	(columnLabels == null) {
+			return getColumnName( index );		// default
+		}
+		else {
+			if ( index > getColumnCount( ) || index < 1 ) {
+				throw new OdaException( String.format(
+					"%s.getColumnLabel(%d):\n- Index %d is out of range of available column indices %d-%d",
+					getClass().getCanonicalName(),
+					index,
+					index,
+					1,
+					getColumnCount()
+				)); //$NON-NLS-1$
+			}
+			return this.columnLabels[index - 1].trim( );
+		}
+	}
+
+	public DataTypes getColumnDataType( int index ) throws OdaException {
+		if ( index > getColumnCount( ) || index < 1 ) {
+			throw new OdaException( String.format(
+				"%s.getColumnDataType(%d):\n- Index %d is out of range of available column indices %d-%d",
+				getClass().getCanonicalName(),
+				index,
+				index,
+				1,
+				getColumnCount()
+			)); //$NON-NLS-1$
+		}
+		return columnTypes[index-1];
+	}
+
+	/*
+	 * @see org.eclipse.datatools.connectivity.oda.IResultSetMetaData#getColumnType(int)
+	 */
+	public int getColumnType( int index ) throws OdaException {
+		if ( index > getColumnCount( ) || index < 1 ) {
+			throw new OdaException( String.format(
+				"%s.getColumnType(%d):\n- Index %d is out of range of available column indices %d-%d",
+				getClass().getCanonicalName(),
+				index,
+				index,
+				1,
+				getColumnCount()
+			)); //$NON-NLS-1$
+		}
+		return columnTypes[index-1].getBirtDataTypeId();
+	}
+
+	/*
+	 * @see org.eclipse.datatools.connectivity.oda.IResultSetMetaData#getColumnTypeName(int)
+	 */
+	public String getColumnTypeName( int index ) throws OdaException {
+		if ( index > getColumnCount( ) || index < 1 ) {
+			throw new OdaException( String.format(
+				"%s.getColumnTypeName(%d):\n- Index %d is out of range of available column indices %d-%d",
+				getClass().getCanonicalName(),
+				index,
+				index,
+				1,
+				getColumnCount()
+			)); //$NON-NLS-1$
+		}
+		try {
+			return Driver.getNativeDataTypeName(columnTypes[index-1].getNativeOdaDataTypeId());
+		}
+		catch (OdaException oe) {
+			throw new OdaException( String.format(
+				"%s.getColumnTypeName(%d):\n- internal exception on index %d: label='%s' / name='%s' / %s='%s'\n- caused by:\n- %s",
+				getClass().getCanonicalName(),
+				index,
+				index,
+				columnLabels[index-1],
+				columnNames[index-1],
+				columnTypes[index-1].getClass().getCanonicalName(),
+				columnTypes[index-1].toString(),
+				oe.getLocalizedMessage()
+			)); //$NON-NLS-1$
+		}
+	}
+
+	/*
+	 * @see org.eclipse.datatools.connectivity.oda.IResultSetMetaData#getColumnDisplayLength(int)
+	 */
+	public int getColumnDisplayLength( int index ) throws OdaException {
+		throw new UnsupportedOperationException( String.format(
+			"%s.getColumnDisplayLength(%d):\n- Method is unsupported!",
+			getClass().getCanonicalName(),
+			index
+		));
+	}
+
+	/*
+	 * @see org.eclipse.datatools.connectivity.oda.IResultSetMetaData#getPrecision(int)
+	 */
+	public int getPrecision( int index ) throws OdaException {
+		return -1;
+	}
+
+	/*
+	 * @see org.eclipse.datatools.connectivity.oda.IResultSetMetaData#getScale(int)
+	 */
+	public int getScale( int index ) throws OdaException {
+		return -1;
+	}
+
+	/*
+	 * @see org.eclipse.datatools.connectivity.oda.IResultSetMetaData#isNullable(int)
+	 */
+	public int isNullable( int index ) throws OdaException {
+		return IResultSetMetaData.columnNullableUnknown;
+	}
+}
diff --git a/org.eclipse.osbp.xtext.reportdsl.tests/.project b/org.eclipse.osbp.xtext.reportdsl.tests/.project
new file mode 100644
index 0000000..1dbe2a7
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl.tests/.project
@@ -0,0 +1,51 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>org.eclipse.osbp.xtext.reportdsl.tests</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.sonarlint.eclipse.core.sonarlintBuilder</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.reportdsl.tests/LICENSE.txt b/org.eclipse.osbp.xtext.reportdsl.tests/LICENSE.txt
new file mode 100644
index 0000000..ff42ad4
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl.tests/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.reportdsl.tests/META-INF/MANIFEST.MF b/org.eclipse.osbp.xtext.reportdsl.tests/META-INF/MANIFEST.MF
new file mode 100644
index 0000000..7f7e44e
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl.tests/META-INF/MANIFEST.MF
@@ -0,0 +1,26 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: org.eclipse.osbp.xtext.reportdsl.tests
+Bundle-Vendor: Eclipse OSBP
+Bundle-Version: 0.9.0.qualifier
+Bundle-SymbolicName: org.eclipse.osbp.xtext.reportdsl.tests;singleton:=true
+Bundle-ActivationPolicy: lazy
+Require-Bundle: org.eclipse.core.runtime,
+ org.eclipse.xtext.junit4;bundle-version="[2.7.3,2.8.0)",
+ org.eclipse.ui.workbench;resolution:=optional,
+ org.apache.log4j,
+ org.junit;bundle-version="4.11.0",
+ org.objectweb.asm;bundle-version="[5.0.1,6.0.0)";resolution:=optional,
+ com.google.inject;bundle-version="3.0.0",
+ org.eclipse.osbp.xtext.reportdsl;bundle-version="[0.9.0,0.10.0)",
+ org.eclipse.osbp.xtext.reportdsl.ui;bundle-version="[0.9.0,0.10.0)"
+Bundle-RequiredExecutionEnvironment: JavaSE-1.8
+Import-Package: javax.validation,
+ javax.validation.constraints,
+ org.hamcrest.core,
+ org.junit.runner;version="4.5.0",
+ org.junit.runner.manipulation;version="4.5.0",
+ org.junit.runner.notification;version="4.5.0",
+ org.junit.runners;version="4.5.0",
+ org.junit.runners.model;version="4.5.0"
+Export-Package: org.eclipse.osbp.xtext.reportdsl;version="0.9.0"
diff --git a/org.eclipse.osbp.xtext.reportdsl.tests/about.html b/org.eclipse.osbp.xtext.reportdsl.tests/about.html
new file mode 100644
index 0000000..64c0598
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl.tests/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.reportdsl.tests/about.ini b/org.eclipse.osbp.xtext.reportdsl.tests/about.ini
new file mode 100644
index 0000000..7df671f
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl.tests/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.reportdsl.tests/about.mappings b/org.eclipse.osbp.xtext.reportdsl.tests/about.mappings
new file mode 100644
index 0000000..4511a0a
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl.tests/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.reportdsl.tests/about.properties b/org.eclipse.osbp.xtext.reportdsl.tests/about.properties
new file mode 100644
index 0000000..9ee5cbd
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl.tests/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.reportdsl.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.reportdsl.tests/build.properties b/org.eclipse.osbp.xtext.reportdsl.tests/build.properties
new file mode 100644
index 0000000..39dde83
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl.tests/build.properties
@@ -0,0 +1,12 @@
+source.. = src/,\
+          src-gen/,\
+          xtend-gen/
+bin.includes = about.properties,  about.mappings,  about.ini,  about.html,  META-INF/,\
+               .,\
+               .classpath,\
+               .project,\
+               .settings/,\
+               LICENSE.txt,\
+               license.html
+src.includes = about.properties,  about.mappings,  about.ini,  about.html,  license.html,\
+               LICENSE.txt
diff --git a/org.eclipse.osbp.xtext.reportdsl.tests/epl-v10.html b/org.eclipse.osbp.xtext.reportdsl.tests/epl-v10.html
new file mode 100644
index 0000000..b398acc
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl.tests/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.reportdsl.tests/license.html b/org.eclipse.osbp.xtext.reportdsl.tests/license.html
new file mode 100644
index 0000000..6e579a5
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl.tests/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.reportdsl.tests/org.eclipse.osbp.xtext.reportdsl.tests.launch b/org.eclipse.osbp.xtext.reportdsl.tests/org.eclipse.osbp.xtext.reportdsl.tests.launch
new file mode 100644
index 0000000..d3831da
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl.tests/org.eclipse.osbp.xtext.reportdsl.tests.launch
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<launchConfiguration type="org.eclipse.jdt.junit.launchconfig">
+<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
+<listEntry value="/org.eclipse.osbp.xtext.reportdsl.tests"/>
+</listAttribute>
+<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES">
+<listEntry value="4"/>
+</listAttribute>
+<stringAttribute key="org.eclipse.jdt.junit.CONTAINER" value="=org.eclipse.osbp.xtext.reportdsl.tests"/>
+<booleanAttribute key="org.eclipse.jdt.junit.KEEPRUNNING_ATTR" value="false"/>
+<stringAttribute key="org.eclipse.jdt.junit.TEST_KIND" value="org.eclipse.jdt.junit.loader.junit4"/>
+<stringAttribute key="org.eclipse.jdt.launching.CLASSPATH_PROVIDER" value="org.eclipse.m2e.launchconfig.classpathProvider"/>
+<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="org.eclipse.osbp.xtext.reportdsl.tests"/>
+<stringAttribute key="org.eclipse.jdt.launching.SOURCE_PATH_PROVIDER" value="org.eclipse.m2e.launchconfig.sourcepathProvider"/>
+</launchConfiguration>
diff --git a/org.eclipse.osbp.xtext.reportdsl.tests/pom.xml b/org.eclipse.osbp.xtext.reportdsl.tests/pom.xml
new file mode 100644
index 0000000..5488975
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl.tests/pom.xml
@@ -0,0 +1,42 @@
+<?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.reportdsl.tests</artifactId>
+    <build>
+        <sourceDirectory>src</sourceDirectory>
+        <resources>
+            <resource>
+                <directory>src</directory>
+                <excludes>
+                    <exclude>**/*.java</exclude>
+                </excludes>
+            </resource>
+            <resource>
+                <directory>src-gen</directory>
+                <excludes>
+                    <exclude>**/*.java</exclude>
+                </excludes>
+            </resource>
+        </resources>
+        <plugins>
+        </plugins>
+    </build>
+    <packaging>eclipse-plugin</packaging>
+    <parent>
+        <groupId>org.eclipse.osbp.xtext.reportdsl</groupId>
+        <artifactId>org.eclipse.osbp.xtext.reportdsl.aggregator</artifactId>
+        <version>0.9.0-SNAPSHOT</version>
+        <relativePath>..</relativePath>
+    </parent>
+</project>
diff --git a/org.eclipse.osbp.xtext.reportdsl.tests/src-gen/org/eclipse/osbp/xtext/reportdsl/ReportDSLInjectorProvider.java b/org.eclipse.osbp.xtext.reportdsl.tests/src-gen/org/eclipse/osbp/xtext/reportdsl/ReportDSLInjectorProvider.java
new file mode 100644
index 0000000..e5d91fc
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl.tests/src-gen/org/eclipse/osbp/xtext/reportdsl/ReportDSLInjectorProvider.java
@@ -0,0 +1,56 @@
+/**
+ *                                                                            
+ *  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.reportdsl;
+
+import org.eclipse.xtext.junit4.GlobalRegistries;
+import org.eclipse.xtext.junit4.GlobalRegistries.GlobalStateMemento;
+import org.eclipse.xtext.junit4.IInjectorProvider;
+import org.eclipse.xtext.junit4.IRegistryConfigurator;
+
+import com.google.inject.Injector;
+
+public class ReportDSLInjectorProvider implements IInjectorProvider, IRegistryConfigurator {
+	
+    protected GlobalStateMemento stateBeforeInjectorCreation;
+	protected GlobalStateMemento stateAfterInjectorCreation;
+	protected Injector injector;
+
+	static {
+		GlobalRegistries.initializeDefaults();
+	}
+
+	public Injector getInjector()
+	{
+		if (injector == null) {
+			stateBeforeInjectorCreation = GlobalRegistries.makeCopyOfGlobalState();
+			this.injector = internalCreateInjector();
+			stateAfterInjectorCreation = GlobalRegistries.makeCopyOfGlobalState();
+		}
+		return injector;
+	}
+	
+	protected Injector internalCreateInjector() {
+	    return new ReportDSLStandaloneSetup().createInjectorAndDoEMFRegistration();
+	}
+
+	public void restoreRegistry() {
+		stateBeforeInjectorCreation.restoreGlobalState();
+	}
+
+	public void setupRegistry() {
+		getInjector();
+		stateAfterInjectorCreation.restoreGlobalState();
+	}
+}
diff --git a/org.eclipse.osbp.xtext.reportdsl.tests/src-gen/org/eclipse/osbp/xtext/reportdsl/ReportDSLUiInjectorProvider.java b/org.eclipse.osbp.xtext.reportdsl.tests/src-gen/org/eclipse/osbp/xtext/reportdsl/ReportDSLUiInjectorProvider.java
new file mode 100644
index 0000000..0943d56
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl.tests/src-gen/org/eclipse/osbp/xtext/reportdsl/ReportDSLUiInjectorProvider.java
@@ -0,0 +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
+ * 
+ */
+
+package org.eclipse.osbp.xtext.reportdsl;
+
+import org.eclipse.xtext.junit4.IInjectorProvider;
+
+import com.google.inject.Injector;
+
+public class ReportDSLUiInjectorProvider implements IInjectorProvider {
+	
+	public Injector getInjector() {
+		return org.eclipse.osbp.xtext.reportdsl.ui.internal.ReportDSLActivator.getInstance().getInjector("org.eclipse.osbp.xtext.reportdsl.ReportDSL");
+	}
+	
+}
diff --git a/org.eclipse.osbp.xtext.reportdsl.ui/.project b/org.eclipse.osbp.xtext.reportdsl.ui/.project
new file mode 100644
index 0000000..12b4fcc
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl.ui/.project
@@ -0,0 +1,51 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>org.eclipse.osbp.xtext.reportdsl.ui</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.sonarlint.eclipse.core.sonarlintBuilder</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.reportdsl.ui/LICENSE.txt b/org.eclipse.osbp.xtext.reportdsl.ui/LICENSE.txt
new file mode 100644
index 0000000..ff42ad4
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl.ui/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.reportdsl.ui/META-INF/MANIFEST.MF b/org.eclipse.osbp.xtext.reportdsl.ui/META-INF/MANIFEST.MF
new file mode 100644
index 0000000..d3c4c94
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl.ui/META-INF/MANIFEST.MF
@@ -0,0 +1,56 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: org.eclipse.osbp.xtext.reportdsl.ui
+Bundle-Vendor: Eclipse OSBP
+Bundle-Version: 0.9.0.qualifier
+Bundle-SymbolicName: org.eclipse.osbp.xtext.reportdsl.ui;singleton:=true
+Bundle-ActivationPolicy: lazy
+Require-Bundle: org.slf4j.api;bundle-version="1.7.2",
+ org.apache.log4j,
+ javax.annotation;bundle-version="[1.1.0,1.2.0)",
+ com.google.inject;bundle-version="3.0.0",
+ org.eclipse.ui,
+ org.eclipse.ui.editors;bundle-version="3.5.0",
+ org.eclipse.ui.ide;bundle-version="3.5.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.xbase.ui;bundle-version="[2.7.3,2.8.0)",
+ org.eclipse.xtext.xbase.lib;bundle-version="[2.7.3,2.8.0)",
+ org.antlr.runtime,
+ org.eclipse.core.runtime,
+ org.eclipse.core.resources,
+ org.eclipse.xtend,
+ org.eclipse.xpand,
+ org.eclipse.compare,
+ org.eclipse.jdt.debug.ui,
+ org.eclipse.osbp.ecview.dsl.ui;bundle-version="[0.9.0,0.10.0)",
+ org.eclipse.jdt.core,
+ org.eclipse.ui.forms;bundle-version="3.6.100",
+ org.eclipse.osbp.preferences;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.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.xtext.basic.ui;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.reportdsl;bundle-version="[0.9.0,0.10.0)",
+ org.eclipse.osbp.xtext.table.ui;bundle-version="[0.9.0,0.10.0)"
+Bundle-RequiredExecutionEnvironment: JavaSE-1.8
+Export-Package: org.eclipse.osbp.xtext.reportdsl.ui;version="0.9.0",
+ org.eclipse.osbp.xtext.reportdsl.ui.contentassist;version="0.9.0",
+ org.eclipse.osbp.xtext.reportdsl.ui.contentassist.antlr;version="0.9.0",
+ org.eclipse.osbp.xtext.reportdsl.ui.contentassist.antlr.internal;version="0.9.0",
+ org.eclipse.osbp.xtext.reportdsl.ui.internal;version="0.9.0",
+ org.eclipse.osbp.xtext.reportdsl.ui.labeling;version="0.9.0",
+ org.eclipse.osbp.xtext.reportdsl.ui.outline;version="0.9.0",
+ org.eclipse.osbp.xtext.reportdsl.ui.quickfix;version="0.9.0"
+Bundle-Activator: org.eclipse.osbp.xtext.reportdsl.ui.internal.ReportDSLActivator
+Import-Package: javax.inject,
+ javax.validation,
+ javax.validation.constraints,
+ org.apache.commons.io,
+ org.apache.commons.lang3;version="3.1.0",
+ org.osgi.framework;version="1.6.0",
+ org.apache.log4j
diff --git a/org.eclipse.osbp.xtext.reportdsl.ui/about.html b/org.eclipse.osbp.xtext.reportdsl.ui/about.html
new file mode 100644
index 0000000..64c0598
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl.ui/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.reportdsl.ui/about.ini b/org.eclipse.osbp.xtext.reportdsl.ui/about.ini
new file mode 100644
index 0000000..7df671f
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl.ui/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.reportdsl.ui/about.mappings b/org.eclipse.osbp.xtext.reportdsl.ui/about.mappings
new file mode 100644
index 0000000..4511a0a
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl.ui/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.reportdsl.ui/about.properties b/org.eclipse.osbp.xtext.reportdsl.ui/about.properties
new file mode 100644
index 0000000..4110227
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl.ui/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.reportdsl.ui
+
+################ 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.reportdsl.ui/build.properties b/org.eclipse.osbp.xtext.reportdsl.ui/build.properties
new file mode 100644
index 0000000..77467f6
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl.ui/build.properties
@@ -0,0 +1,19 @@
+source.. = src/,\
+          src-gen/,\
+          xtend-gen/
+bin.includes = about.properties,  about.mappings,  about.ini,  about.html,  META-INF/,\
+               .,\
+               plugin.xml,\
+               .classpath,\
+               .project,\
+               .settings/,\
+               i18n/,\
+               templates/,\
+               license.html,\
+               LICENSE.txt,\
+               epl-v10.html,\
+               icons/
+src.includes = about.properties,  about.mappings,  about.ini,  about.html,  license.html,\
+               LICENSE.txt,\
+               epl-v10.html,\
+               icons/
diff --git a/org.eclipse.osbp.xtext.reportdsl.ui/epl-v10.html b/org.eclipse.osbp.xtext.reportdsl.ui/epl-v10.html
new file mode 100644
index 0000000..b398acc
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl.ui/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.reportdsl.ui/i18n/I18N.properties b/org.eclipse.osbp.xtext.reportdsl.ui/i18n/I18N.properties
new file mode 100644
index 0000000..4dd3783
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl.ui/i18n/I18N.properties
@@ -0,0 +1,664 @@
+#
+#Thu Aug 04 14:15:32 CEST 2016
+org.eclipse.osbp.xtext.reportdsl.AutoText=
+org.eclipse.osbp.xtext.reportdsl.AutoText.autotext=
+org.eclipse.osbp.xtext.reportdsl.AutoText.style=
+org.eclipse.osbp.xtext.reportdsl.AutoTextEnum=
+org.eclipse.osbp.xtext.reportdsl.AutoTextEnum.page-number=
+org.eclipse.osbp.xtext.reportdsl.AutoTextEnum.page-number-unfiltered=
+org.eclipse.osbp.xtext.reportdsl.AutoTextEnum.page-variable=
+org.eclipse.osbp.xtext.reportdsl.AutoTextEnum.total-page=
+org.eclipse.osbp.xtext.reportdsl.AutoTextEnum.total-page-unfiltered=
+org.eclipse.osbp.xtext.reportdsl.BinaryAggregationType=
+org.eclipse.osbp.xtext.reportdsl.BinaryAggregationType.divide=
+org.eclipse.osbp.xtext.reportdsl.BinaryAggregationTypeEnum=
+org.eclipse.osbp.xtext.reportdsl.BinaryAggregationTypeEnum.divide=
+org.eclipse.osbp.xtext.reportdsl.BorderStyle=
+org.eclipse.osbp.xtext.reportdsl.BorderType=
+org.eclipse.osbp.xtext.reportdsl.BorderType.dashed=
+org.eclipse.osbp.xtext.reportdsl.BorderType.dotted=
+org.eclipse.osbp.xtext.reportdsl.BorderType.double=
+org.eclipse.osbp.xtext.reportdsl.BorderType.groove=
+org.eclipse.osbp.xtext.reportdsl.BorderType.inset=
+org.eclipse.osbp.xtext.reportdsl.BorderType.none=
+org.eclipse.osbp.xtext.reportdsl.BorderType.outset=
+org.eclipse.osbp.xtext.reportdsl.BorderType.ridge=
+org.eclipse.osbp.xtext.reportdsl.BorderType.solid=
+org.eclipse.osbp.xtext.reportdsl.BorderTypeEnum=
+org.eclipse.osbp.xtext.reportdsl.BorderTypeEnum.dashed=
+org.eclipse.osbp.xtext.reportdsl.BorderTypeEnum.dotted=
+org.eclipse.osbp.xtext.reportdsl.BorderTypeEnum.double=
+org.eclipse.osbp.xtext.reportdsl.BorderTypeEnum.groove=
+org.eclipse.osbp.xtext.reportdsl.BorderTypeEnum.inset=
+org.eclipse.osbp.xtext.reportdsl.BorderTypeEnum.none=
+org.eclipse.osbp.xtext.reportdsl.BorderTypeEnum.outset=
+org.eclipse.osbp.xtext.reportdsl.BorderTypeEnum.ridge=
+org.eclipse.osbp.xtext.reportdsl.BorderTypeEnum.solid=
+org.eclipse.osbp.xtext.reportdsl.BuildInFontFamily=
+org.eclipse.osbp.xtext.reportdsl.BuildInFontFamily.monospace=
+org.eclipse.osbp.xtext.reportdsl.BuildInFontFamily.sans-serif=
+org.eclipse.osbp.xtext.reportdsl.BuildInFontFamily.serif=
+org.eclipse.osbp.xtext.reportdsl.BuildInFontFamilyEnum=
+org.eclipse.osbp.xtext.reportdsl.BuildInFontFamilyEnum.monospace=
+org.eclipse.osbp.xtext.reportdsl.BuildInFontFamilyEnum.sans-serif=
+org.eclipse.osbp.xtext.reportdsl.BuildInFontFamilyEnum.serif=
+org.eclipse.osbp.xtext.reportdsl.CCAutoText=
+org.eclipse.osbp.xtext.reportdsl.CCAutoText.autotext=
+org.eclipse.osbp.xtext.reportdsl.CCAutoText.style=
+org.eclipse.osbp.xtext.reportdsl.CCBinaryAggregationType=
+org.eclipse.osbp.xtext.reportdsl.CCBinaryAggregationType.divide=
+org.eclipse.osbp.xtext.reportdsl.CCBorderStyle=
+org.eclipse.osbp.xtext.reportdsl.CCBuildInFontFamily=
+org.eclipse.osbp.xtext.reportdsl.CCColor=color definition, see available color definitions
+org.eclipse.osbp.xtext.reportdsl.CCColor.by-percent=percent value ranging 0 to 100 used to darken or lighten a defined color
+org.eclipse.osbp.xtext.reportdsl.CCColor.color=one available color in this report model.<br>A color may be defined either as<ul><li>"\#rrggbb" known from HTML syntax</li><li>"(r,g,b)" with r,g,b are decimals with range 0 to 255</li><li>"(r,g,b)" with r,g,b are floats with range 0.0 to 1.0</li><li>darkening another color defined by a percent value ranging 0 to 100</li><li>lightening another color defined by a percent value ranging 0 to 100</li><li>transforming one color defined towards another color defined by a percent value ranging 0 to 100</li></ul>
+org.eclipse.osbp.xtext.reportdsl.CCColor.darkens=darkens the given defined color by a percent value
+org.eclipse.osbp.xtext.reportdsl.CCColor.lightens=lightens the given defined color by a percent value
+org.eclipse.osbp.xtext.reportdsl.CCColor.towards=a given defined color, another a given defined color is transformed to
+org.eclipse.osbp.xtext.reportdsl.CCColor.transforms=transforms a given defined color by a percent value towards another defined color
+org.eclipse.osbp.xtext.reportdsl.CCColors=all available color definitions in this report model
+org.eclipse.osbp.xtext.reportdsl.CCColors.colors=all available color definitions in this report model
+org.eclipse.osbp.xtext.reportdsl.CCContainer=
+org.eclipse.osbp.xtext.reportdsl.CCCurrencyFormat=
+org.eclipse.osbp.xtext.reportdsl.CCCurrencyFormat.currency=
+org.eclipse.osbp.xtext.reportdsl.CCCurrencyFormat.report=
+org.eclipse.osbp.xtext.reportdsl.CCCurrencyFormat.textalign=
+org.eclipse.osbp.xtext.reportdsl.CCCurrencyFormat.ui=
+org.eclipse.osbp.xtext.reportdsl.CCCustomFontFamily=
+org.eclipse.osbp.xtext.reportdsl.CCDatamartTable=
+org.eclipse.osbp.xtext.reportdsl.CCDatamartTable.detailfooter=
+org.eclipse.osbp.xtext.reportdsl.CCDatamartTable.detailheader=
+org.eclipse.osbp.xtext.reportdsl.CCDatamartTable.style=
+org.eclipse.osbp.xtext.reportdsl.CCDatamartTable.table=
+org.eclipse.osbp.xtext.reportdsl.CCDatamartTableDetail=
+org.eclipse.osbp.xtext.reportdsl.CCDatamartTableDetail.all=
+org.eclipse.osbp.xtext.reportdsl.CCDatamartTableDetail.details=
+org.eclipse.osbp.xtext.reportdsl.CCDatamartTableDetail.style=
+org.eclipse.osbp.xtext.reportdsl.CCDatamartTableGroup=
+org.eclipse.osbp.xtext.reportdsl.CCDatamartTableGroup.by=
+org.eclipse.osbp.xtext.reportdsl.CCDatamartTableGroup.detailfooter=
+org.eclipse.osbp.xtext.reportdsl.CCDatamartTableGroup.detailheader=
+org.eclipse.osbp.xtext.reportdsl.CCDatamartTableGroup.group=
+org.eclipse.osbp.xtext.reportdsl.CCDatamartTableGroup.style=
+org.eclipse.osbp.xtext.reportdsl.CCDatamartTableGroupFooter=
+org.eclipse.osbp.xtext.reportdsl.CCDatamartTableGroupFooter.footer=
+org.eclipse.osbp.xtext.reportdsl.CCDatamartTableGroupFooter.style=
+org.eclipse.osbp.xtext.reportdsl.CCDatamartTableGroupHeader=
+org.eclipse.osbp.xtext.reportdsl.CCDatamartTableGroupHeader.header=
+org.eclipse.osbp.xtext.reportdsl.CCDatamartTableGroupHeader.style=
+org.eclipse.osbp.xtext.reportdsl.CCDatamartTableProperty=
+org.eclipse.osbp.xtext.reportdsl.CCDatamartTableProperty.hidelabel=
+org.eclipse.osbp.xtext.reportdsl.CCDatamartTableProperty.image=
+org.eclipse.osbp.xtext.reportdsl.CCDatamartTableProperty.intervals=
+org.eclipse.osbp.xtext.reportdsl.CCDatamartTableProperty.lookups=
+org.eclipse.osbp.xtext.reportdsl.CCDatamartTableProperty.style=
+org.eclipse.osbp.xtext.reportdsl.CCDateFormat=
+org.eclipse.osbp.xtext.reportdsl.CCDateFormat.date=
+org.eclipse.osbp.xtext.reportdsl.CCDateFormat.report=
+org.eclipse.osbp.xtext.reportdsl.CCDateFormat.textalign=
+org.eclipse.osbp.xtext.reportdsl.CCDateFormat.ui=
+org.eclipse.osbp.xtext.reportdsl.CCDateTimeFormat=
+org.eclipse.osbp.xtext.reportdsl.CCDateTimeFormat.date+time=
+org.eclipse.osbp.xtext.reportdsl.CCDateTimeFormat.report=
+org.eclipse.osbp.xtext.reportdsl.CCDateTimeFormat.textalign=
+org.eclipse.osbp.xtext.reportdsl.CCDateTimeFormat.ui=
+org.eclipse.osbp.xtext.reportdsl.CCElement=
+org.eclipse.osbp.xtext.reportdsl.CCFont=
+org.eclipse.osbp.xtext.reportdsl.CCFont.bold=
+org.eclipse.osbp.xtext.reportdsl.CCFont.extends=
+org.eclipse.osbp.xtext.reportdsl.CCFont.family=
+org.eclipse.osbp.xtext.reportdsl.CCFont.font=
+org.eclipse.osbp.xtext.reportdsl.CCFont.size=
+org.eclipse.osbp.xtext.reportdsl.CCFontFamily=
+org.eclipse.osbp.xtext.reportdsl.CCFonts=
+org.eclipse.osbp.xtext.reportdsl.CCFonts.fonts=
+org.eclipse.osbp.xtext.reportdsl.CCGrid=
+org.eclipse.osbp.xtext.reportdsl.CCGrid.as=
+org.eclipse.osbp.xtext.reportdsl.CCGrid.grid=
+org.eclipse.osbp.xtext.reportdsl.CCGridCell=
+org.eclipse.osbp.xtext.reportdsl.CCGridCell.as=
+org.eclipse.osbp.xtext.reportdsl.CCGridCell.cell=
+org.eclipse.osbp.xtext.reportdsl.CCGridCell.columnspan=
+org.eclipse.osbp.xtext.reportdsl.CCGridRow=
+org.eclipse.osbp.xtext.reportdsl.CCGridRow.as=
+org.eclipse.osbp.xtext.reportdsl.CCGridRow.row=
+org.eclipse.osbp.xtext.reportdsl.CCGridRow.style=
+org.eclipse.osbp.xtext.reportdsl.CCImage=
+org.eclipse.osbp.xtext.reportdsl.CCImage.image=
+org.eclipse.osbp.xtext.reportdsl.CCImage.scale=
+org.eclipse.osbp.xtext.reportdsl.CCLabel=
+org.eclipse.osbp.xtext.reportdsl.CCLabel.label=
+org.eclipse.osbp.xtext.reportdsl.CCLabel.style=
+org.eclipse.osbp.xtext.reportdsl.CCMedia=
+org.eclipse.osbp.xtext.reportdsl.CCMedia.media=
+org.eclipse.osbp.xtext.reportdsl.CCMediaStyle=
+org.eclipse.osbp.xtext.reportdsl.CCMediaStyle.alternate=
+org.eclipse.osbp.xtext.reportdsl.CCMediaStyle.backgroundcolor=
+org.eclipse.osbp.xtext.reportdsl.CCMediaStyle.border-bottom=
+org.eclipse.osbp.xtext.reportdsl.CCMediaStyle.border-left=
+org.eclipse.osbp.xtext.reportdsl.CCMediaStyle.border-right=
+org.eclipse.osbp.xtext.reportdsl.CCMediaStyle.border-top=
+org.eclipse.osbp.xtext.reportdsl.CCMediaStyle.font=
+org.eclipse.osbp.xtext.reportdsl.CCMediaStyle.formatter=
+org.eclipse.osbp.xtext.reportdsl.CCMediaStyle.margin-bottom=
+org.eclipse.osbp.xtext.reportdsl.CCMediaStyle.margin-left=
+org.eclipse.osbp.xtext.reportdsl.CCMediaStyle.margin-right=
+org.eclipse.osbp.xtext.reportdsl.CCMediaStyle.margin-top=
+org.eclipse.osbp.xtext.reportdsl.CCMediaStyle.media=
+org.eclipse.osbp.xtext.reportdsl.CCMediaStyle.padding-bottom=
+org.eclipse.osbp.xtext.reportdsl.CCMediaStyle.padding-left=
+org.eclipse.osbp.xtext.reportdsl.CCMediaStyle.padding-right=
+org.eclipse.osbp.xtext.reportdsl.CCMediaStyle.padding-top=
+org.eclipse.osbp.xtext.reportdsl.CCMediaStyle.textalign=
+org.eclipse.osbp.xtext.reportdsl.CCMediaStyle.textcolor=
+org.eclipse.osbp.xtext.reportdsl.CCMedias=
+org.eclipse.osbp.xtext.reportdsl.CCMedias.medias=
+org.eclipse.osbp.xtext.reportdsl.CCMultipleAggregationType=
+org.eclipse.osbp.xtext.reportdsl.CCMultipleAggregationType.concat=
+org.eclipse.osbp.xtext.reportdsl.CCNumberFormat=
+org.eclipse.osbp.xtext.reportdsl.CCNumberFormat.number=
+org.eclipse.osbp.xtext.reportdsl.CCNumberFormat.report=
+org.eclipse.osbp.xtext.reportdsl.CCNumberFormat.textalign=
+org.eclipse.osbp.xtext.reportdsl.CCNumberFormat.ui=
+org.eclipse.osbp.xtext.reportdsl.CCPageDetail=
+org.eclipse.osbp.xtext.reportdsl.CCPageDetail.detail=
+org.eclipse.osbp.xtext.reportdsl.CCPageFooter=
+org.eclipse.osbp.xtext.reportdsl.CCPageFooter.footer=
+org.eclipse.osbp.xtext.reportdsl.CCPageFooter.height=
+org.eclipse.osbp.xtext.reportdsl.CCPageFooter.showOnLast=
+org.eclipse.osbp.xtext.reportdsl.CCPageHeader=
+org.eclipse.osbp.xtext.reportdsl.CCPageHeader.header=
+org.eclipse.osbp.xtext.reportdsl.CCPageHeader.height=
+org.eclipse.osbp.xtext.reportdsl.CCPageHeader.showOnFirst=
+org.eclipse.osbp.xtext.reportdsl.CCPageTemplate=
+org.eclipse.osbp.xtext.reportdsl.CCPageTemplate.bottommargin=
+org.eclipse.osbp.xtext.reportdsl.CCPageTemplate.leftmargin=
+org.eclipse.osbp.xtext.reportdsl.CCPageTemplate.orientation=
+org.eclipse.osbp.xtext.reportdsl.CCPageTemplate.pagetemplate=
+org.eclipse.osbp.xtext.reportdsl.CCPageTemplate.rightmargin=
+org.eclipse.osbp.xtext.reportdsl.CCPageTemplate.topmargin=
+org.eclipse.osbp.xtext.reportdsl.CCPageTemplate.type=
+org.eclipse.osbp.xtext.reportdsl.CCPageTemplates=
+org.eclipse.osbp.xtext.reportdsl.CCPureAggregationType=
+org.eclipse.osbp.xtext.reportdsl.CCPureAggregationType.count=
+org.eclipse.osbp.xtext.reportdsl.CCPureAggregationType.running-count=
+org.eclipse.osbp.xtext.reportdsl.CCReport=
+org.eclipse.osbp.xtext.reportdsl.CCReport.datamart=
+org.eclipse.osbp.xtext.reportdsl.CCReport.described\ by=
+org.eclipse.osbp.xtext.reportdsl.CCReport.externalCssURI=
+org.eclipse.osbp.xtext.reportdsl.CCReport.from\ bundle=
+org.eclipse.osbp.xtext.reportdsl.CCReport.media=
+org.eclipse.osbp.xtext.reportdsl.CCReport.pagetemplate=
+org.eclipse.osbp.xtext.reportdsl.CCReport.rendering=
+org.eclipse.osbp.xtext.reportdsl.CCReport.report=
+org.eclipse.osbp.xtext.reportdsl.CCReportDesign=
+org.eclipse.osbp.xtext.reportdsl.CCReportDesignFile=
+org.eclipse.osbp.xtext.reportdsl.CCReportDesignFile.file=
+org.eclipse.osbp.xtext.reportdsl.CCReportDesignTemplate=
+org.eclipse.osbp.xtext.reportdsl.CCReportDesignTemplate.described\ by=
+org.eclipse.osbp.xtext.reportdsl.CCReportDesignTemplate.template=
+org.eclipse.osbp.xtext.reportdsl.CCReportImport=
+org.eclipse.osbp.xtext.reportdsl.CCReportImport.import=
+org.eclipse.osbp.xtext.reportdsl.CCReportModel=
+org.eclipse.osbp.xtext.reportdsl.CCReportPackage=
+org.eclipse.osbp.xtext.reportdsl.CCReportPackage.externalCssURI=
+org.eclipse.osbp.xtext.reportdsl.CCReportPackage.from\ bundle=
+org.eclipse.osbp.xtext.reportdsl.CCReportPackage.layout-data=
+org.eclipse.osbp.xtext.reportdsl.CCReportPackage.layouts=
+org.eclipse.osbp.xtext.reportdsl.CCReportPackage.package=
+org.eclipse.osbp.xtext.reportdsl.CCReportQualifiedNameWithWildCard=
+org.eclipse.osbp.xtext.reportdsl.CCSomeFormat=
+org.eclipse.osbp.xtext.reportdsl.CCSomeFormats=
+org.eclipse.osbp.xtext.reportdsl.CCSomeFormats.formatters=
+org.eclipse.osbp.xtext.reportdsl.CCStyle=one available style in this report model
+org.eclipse.osbp.xtext.reportdsl.CCStyle.alternate=
+org.eclipse.osbp.xtext.reportdsl.CCStyle.backgroundcolor=background color, unless another background color is set via media
+org.eclipse.osbp.xtext.reportdsl.CCStyle.border-bottom=
+org.eclipse.osbp.xtext.reportdsl.CCStyle.border-left=
+org.eclipse.osbp.xtext.reportdsl.CCStyle.border-right=
+org.eclipse.osbp.xtext.reportdsl.CCStyle.border-top=
+org.eclipse.osbp.xtext.reportdsl.CCStyle.extends=
+org.eclipse.osbp.xtext.reportdsl.CCStyle.font=font definition, unless another font definition is set via media
+org.eclipse.osbp.xtext.reportdsl.CCStyle.formatter=
+org.eclipse.osbp.xtext.reportdsl.CCStyle.margin-bottom=
+org.eclipse.osbp.xtext.reportdsl.CCStyle.margin-left=
+org.eclipse.osbp.xtext.reportdsl.CCStyle.margin-right=
+org.eclipse.osbp.xtext.reportdsl.CCStyle.margin-top=
+org.eclipse.osbp.xtext.reportdsl.CCStyle.media=define different attributes, when a specific media is requested in a report definition
+org.eclipse.osbp.xtext.reportdsl.CCStyle.padding-bottom=
+org.eclipse.osbp.xtext.reportdsl.CCStyle.padding-left=
+org.eclipse.osbp.xtext.reportdsl.CCStyle.padding-right=
+org.eclipse.osbp.xtext.reportdsl.CCStyle.padding-top=
+org.eclipse.osbp.xtext.reportdsl.CCStyle.style=one available style in this report model
+org.eclipse.osbp.xtext.reportdsl.CCStyle.textalign=
+org.eclipse.osbp.xtext.reportdsl.CCStyle.textcolor=text color, unless another text color is set via media
+org.eclipse.osbp.xtext.reportdsl.CCStyles=all available styles in this report model
+org.eclipse.osbp.xtext.reportdsl.CCStyles.styles=
+org.eclipse.osbp.xtext.reportdsl.CCSubSubTitle=
+org.eclipse.osbp.xtext.reportdsl.CCSubSubTitle.style=
+org.eclipse.osbp.xtext.reportdsl.CCSubSubTitle.subsubtitle=
+org.eclipse.osbp.xtext.reportdsl.CCSubTitle=
+org.eclipse.osbp.xtext.reportdsl.CCSubTitle.style=
+org.eclipse.osbp.xtext.reportdsl.CCSubTitle.subtitle=
+org.eclipse.osbp.xtext.reportdsl.CCTableAggregation=
+org.eclipse.osbp.xtext.reportdsl.CCTableAggregation.aggregate=
+org.eclipse.osbp.xtext.reportdsl.CCTableAggregation.on-group=
+org.eclipse.osbp.xtext.reportdsl.CCTableAggregation.title=
+org.eclipse.osbp.xtext.reportdsl.CCTableBaseAggregation=
+org.eclipse.osbp.xtext.reportdsl.CCTableBinaryAggregation=
+org.eclipse.osbp.xtext.reportdsl.CCTableBinaryAggregation.of=
+org.eclipse.osbp.xtext.reportdsl.CCTableCellColor=
+org.eclipse.osbp.xtext.reportdsl.CCTableCellColor.cellcolor=
+org.eclipse.osbp.xtext.reportdsl.CCTableDateDayInterval=
+org.eclipse.osbp.xtext.reportdsl.CCTableDateDayInterval.days\ in\ past=
+org.eclipse.osbp.xtext.reportdsl.CCTableDateDayLookup=
+org.eclipse.osbp.xtext.reportdsl.CCTableDateDayLookup.days\ in\ past=
+org.eclipse.osbp.xtext.reportdsl.CCTableFormatter=
+org.eclipse.osbp.xtext.reportdsl.CCTableFormatter.formatter=
+org.eclipse.osbp.xtext.reportdsl.CCTableIcon=
+org.eclipse.osbp.xtext.reportdsl.CCTableIcon.icon=
+org.eclipse.osbp.xtext.reportdsl.CCTableImage=
+org.eclipse.osbp.xtext.reportdsl.CCTableImage.dynamic=
+org.eclipse.osbp.xtext.reportdsl.CCTableImage.hidelabel=
+org.eclipse.osbp.xtext.reportdsl.CCTableImage.path=
+org.eclipse.osbp.xtext.reportdsl.CCTableImage.resize=
+org.eclipse.osbp.xtext.reportdsl.CCTableInterval=
+org.eclipse.osbp.xtext.reportdsl.CCTableLookup=
+org.eclipse.osbp.xtext.reportdsl.CCTableMultipleAggregation=
+org.eclipse.osbp.xtext.reportdsl.CCTableMultipleAggregation.of=
+org.eclipse.osbp.xtext.reportdsl.CCTableNumberInterval=
+org.eclipse.osbp.xtext.reportdsl.CCTableNumberInterval.up\ to=
+org.eclipse.osbp.xtext.reportdsl.CCTableNumberLookup=
+org.eclipse.osbp.xtext.reportdsl.CCTableNumberLookup.number=
+org.eclipse.osbp.xtext.reportdsl.CCTableProperty=
+org.eclipse.osbp.xtext.reportdsl.CCTableProperty.property=
+org.eclipse.osbp.xtext.reportdsl.CCTablePureAggregation=
+org.eclipse.osbp.xtext.reportdsl.CCTableRangeElement=
+org.eclipse.osbp.xtext.reportdsl.CCTableStringLookup=
+org.eclipse.osbp.xtext.reportdsl.CCTableStringLookup.string=
+org.eclipse.osbp.xtext.reportdsl.CCTableTextColor=
+org.eclipse.osbp.xtext.reportdsl.CCTableTextColor.textcolor=
+org.eclipse.osbp.xtext.reportdsl.CCTableTrend=
+org.eclipse.osbp.xtext.reportdsl.CCTableTrend.trend=
+org.eclipse.osbp.xtext.reportdsl.CCTableUnaryAggregation=
+org.eclipse.osbp.xtext.reportdsl.CCTableUnaryAggregation.of=
+org.eclipse.osbp.xtext.reportdsl.CCTableValueElement=
+org.eclipse.osbp.xtext.reportdsl.CCText=
+org.eclipse.osbp.xtext.reportdsl.CCText.style=
+org.eclipse.osbp.xtext.reportdsl.CCText.text=
+org.eclipse.osbp.xtext.reportdsl.CCTimeFormat=
+org.eclipse.osbp.xtext.reportdsl.CCTimeFormat.report=
+org.eclipse.osbp.xtext.reportdsl.CCTimeFormat.textalign=
+org.eclipse.osbp.xtext.reportdsl.CCTimeFormat.time=
+org.eclipse.osbp.xtext.reportdsl.CCTimeFormat.ui=
+org.eclipse.osbp.xtext.reportdsl.CCTitle=
+org.eclipse.osbp.xtext.reportdsl.CCTitle.style=
+org.eclipse.osbp.xtext.reportdsl.CCTitle.title=
+org.eclipse.osbp.xtext.reportdsl.CCUnaryAggregationType=
+org.eclipse.osbp.xtext.reportdsl.CCUnaryAggregationType.average=
+org.eclipse.osbp.xtext.reportdsl.CCUnaryAggregationType.maximum=
+org.eclipse.osbp.xtext.reportdsl.CCUnaryAggregationType.minimum=
+org.eclipse.osbp.xtext.reportdsl.CCUnaryAggregationType.running-sum=
+org.eclipse.osbp.xtext.reportdsl.CCUnaryAggregationType.sum=
+org.eclipse.osbp.xtext.reportdsl.CCUomoFormat=
+org.eclipse.osbp.xtext.reportdsl.CCUomoFormat.report=
+org.eclipse.osbp.xtext.reportdsl.CCUomoFormat.textalign=
+org.eclipse.osbp.xtext.reportdsl.CCUomoFormat.ui=
+org.eclipse.osbp.xtext.reportdsl.CCUomoFormat.uomo=
+org.eclipse.osbp.xtext.reportdsl.Color=
+org.eclipse.osbp.xtext.reportdsl.Color.by-percent=
+org.eclipse.osbp.xtext.reportdsl.Color.color=
+org.eclipse.osbp.xtext.reportdsl.Color.darkens=
+org.eclipse.osbp.xtext.reportdsl.Color.lightens=
+org.eclipse.osbp.xtext.reportdsl.Color.towards=
+org.eclipse.osbp.xtext.reportdsl.Color.transforms=
+org.eclipse.osbp.xtext.reportdsl.Colors=
+org.eclipse.osbp.xtext.reportdsl.Colors.colors=
+org.eclipse.osbp.xtext.reportdsl.Container=
+org.eclipse.osbp.xtext.reportdsl.CurrencyFormat=
+org.eclipse.osbp.xtext.reportdsl.CurrencyFormat.currency=
+org.eclipse.osbp.xtext.reportdsl.CurrencyFormat.report=
+org.eclipse.osbp.xtext.reportdsl.CurrencyFormat.textalign=
+org.eclipse.osbp.xtext.reportdsl.CurrencyFormat.ui=
+org.eclipse.osbp.xtext.reportdsl.CurrencyFormatCategory=
+org.eclipse.osbp.xtext.reportdsl.CurrencyFormatCategory.currency=
+org.eclipse.osbp.xtext.reportdsl.CurrencyFormatCategory.custom=
+org.eclipse.osbp.xtext.reportdsl.CurrencyFormatCategory.unformatted=
+org.eclipse.osbp.xtext.reportdsl.CurrencyFormatCategoryEnum=
+org.eclipse.osbp.xtext.reportdsl.CurrencyFormatCategoryEnum.currency=
+org.eclipse.osbp.xtext.reportdsl.CurrencyFormatCategoryEnum.custom=
+org.eclipse.osbp.xtext.reportdsl.CurrencyFormatCategoryEnum.unformatted=
+org.eclipse.osbp.xtext.reportdsl.CustomFontFamily=
+org.eclipse.osbp.xtext.reportdsl.DatamartTable=
+org.eclipse.osbp.xtext.reportdsl.DatamartTable.detailfooter=
+org.eclipse.osbp.xtext.reportdsl.DatamartTable.detailheader=
+org.eclipse.osbp.xtext.reportdsl.DatamartTable.style=
+org.eclipse.osbp.xtext.reportdsl.DatamartTable.table=
+org.eclipse.osbp.xtext.reportdsl.DatamartTableDetail=
+org.eclipse.osbp.xtext.reportdsl.DatamartTableDetail.all=
+org.eclipse.osbp.xtext.reportdsl.DatamartTableDetail.details=
+org.eclipse.osbp.xtext.reportdsl.DatamartTableDetail.style=
+org.eclipse.osbp.xtext.reportdsl.DatamartTableGroup=
+org.eclipse.osbp.xtext.reportdsl.DatamartTableGroup.by=
+org.eclipse.osbp.xtext.reportdsl.DatamartTableGroup.detailfooter=
+org.eclipse.osbp.xtext.reportdsl.DatamartTableGroup.detailheader=
+org.eclipse.osbp.xtext.reportdsl.DatamartTableGroup.group=
+org.eclipse.osbp.xtext.reportdsl.DatamartTableGroup.style=
+org.eclipse.osbp.xtext.reportdsl.DatamartTableGroupFooter=
+org.eclipse.osbp.xtext.reportdsl.DatamartTableGroupFooter.footer=
+org.eclipse.osbp.xtext.reportdsl.DatamartTableGroupFooter.style=
+org.eclipse.osbp.xtext.reportdsl.DatamartTableGroupHeader=
+org.eclipse.osbp.xtext.reportdsl.DatamartTableGroupHeader.header=
+org.eclipse.osbp.xtext.reportdsl.DatamartTableGroupHeader.style=
+org.eclipse.osbp.xtext.reportdsl.DatamartTableProperty=
+org.eclipse.osbp.xtext.reportdsl.DatamartTableProperty.hidelabel=
+org.eclipse.osbp.xtext.reportdsl.DatamartTableProperty.image=
+org.eclipse.osbp.xtext.reportdsl.DatamartTableProperty.intervals=
+org.eclipse.osbp.xtext.reportdsl.DatamartTableProperty.lookups=
+org.eclipse.osbp.xtext.reportdsl.DatamartTableProperty.style=
+org.eclipse.osbp.xtext.reportdsl.DateFormat=
+org.eclipse.osbp.xtext.reportdsl.DateFormat.date=
+org.eclipse.osbp.xtext.reportdsl.DateFormat.report=
+org.eclipse.osbp.xtext.reportdsl.DateFormat.textalign=
+org.eclipse.osbp.xtext.reportdsl.DateFormat.ui=
+org.eclipse.osbp.xtext.reportdsl.DateFormatCategory=
+org.eclipse.osbp.xtext.reportdsl.DateFormatCategory.custom=
+org.eclipse.osbp.xtext.reportdsl.DateFormatCategoryEnum=
+org.eclipse.osbp.xtext.reportdsl.DateFormatCategoryEnum.custom=
+org.eclipse.osbp.xtext.reportdsl.DateTimeFormat=
+org.eclipse.osbp.xtext.reportdsl.DateTimeFormat.date+time=
+org.eclipse.osbp.xtext.reportdsl.DateTimeFormat.report=
+org.eclipse.osbp.xtext.reportdsl.DateTimeFormat.textalign=
+org.eclipse.osbp.xtext.reportdsl.DateTimeFormat.ui=
+org.eclipse.osbp.xtext.reportdsl.DateTimeFormatCategory=
+org.eclipse.osbp.xtext.reportdsl.DateTimeFormatCategory.custom=
+org.eclipse.osbp.xtext.reportdsl.DateTimeFormatCategoryEnum=
+org.eclipse.osbp.xtext.reportdsl.DateTimeFormatCategoryEnum.custom=
+org.eclipse.osbp.xtext.reportdsl.Element=
+org.eclipse.osbp.xtext.reportdsl.Font=
+org.eclipse.osbp.xtext.reportdsl.Font.bold=
+org.eclipse.osbp.xtext.reportdsl.Font.extends=
+org.eclipse.osbp.xtext.reportdsl.Font.family=
+org.eclipse.osbp.xtext.reportdsl.Font.font=
+org.eclipse.osbp.xtext.reportdsl.Font.size=
+org.eclipse.osbp.xtext.reportdsl.FontFamily=
+org.eclipse.osbp.xtext.reportdsl.FontStyle=
+org.eclipse.osbp.xtext.reportdsl.FontStyle.italic=
+org.eclipse.osbp.xtext.reportdsl.FontStyle.normal=
+org.eclipse.osbp.xtext.reportdsl.FontStyle.oblique=
+org.eclipse.osbp.xtext.reportdsl.FontStyleEnum=
+org.eclipse.osbp.xtext.reportdsl.FontStyleEnum.italic=
+org.eclipse.osbp.xtext.reportdsl.FontStyleEnum.normal=
+org.eclipse.osbp.xtext.reportdsl.FontStyleEnum.oblique=
+org.eclipse.osbp.xtext.reportdsl.Fonts=
+org.eclipse.osbp.xtext.reportdsl.Fonts.fonts=
+org.eclipse.osbp.xtext.reportdsl.Grid=
+org.eclipse.osbp.xtext.reportdsl.Grid.as=
+org.eclipse.osbp.xtext.reportdsl.Grid.grid=
+org.eclipse.osbp.xtext.reportdsl.GridCell=
+org.eclipse.osbp.xtext.reportdsl.GridCell.as=
+org.eclipse.osbp.xtext.reportdsl.GridCell.cell=
+org.eclipse.osbp.xtext.reportdsl.GridCell.columnspan=
+org.eclipse.osbp.xtext.reportdsl.GridRow=
+org.eclipse.osbp.xtext.reportdsl.GridRow.as=
+org.eclipse.osbp.xtext.reportdsl.GridRow.row=
+org.eclipse.osbp.xtext.reportdsl.GridRow.style=
+org.eclipse.osbp.xtext.reportdsl.Image=
+org.eclipse.osbp.xtext.reportdsl.Image.image=
+org.eclipse.osbp.xtext.reportdsl.Image.scale=
+org.eclipse.osbp.xtext.reportdsl.ImageSizeEnum=
+org.eclipse.osbp.xtext.reportdsl.ImageSizeEnum.clip=
+org.eclipse.osbp.xtext.reportdsl.ImageSizeEnum.scale-to-item=
+org.eclipse.osbp.xtext.reportdsl.ImageSizeEnum.size-to-image=
+org.eclipse.osbp.xtext.reportdsl.ImageSourceEnum=
+org.eclipse.osbp.xtext.reportdsl.ImageSourceEnum.embed=
+org.eclipse.osbp.xtext.reportdsl.ImageSourceEnum.file=
+org.eclipse.osbp.xtext.reportdsl.ImageSourceEnum.url=
+org.eclipse.osbp.xtext.reportdsl.Label=
+org.eclipse.osbp.xtext.reportdsl.Label.label=
+org.eclipse.osbp.xtext.reportdsl.Label.style=
+org.eclipse.osbp.xtext.reportdsl.Media=
+org.eclipse.osbp.xtext.reportdsl.Media.media=
+org.eclipse.osbp.xtext.reportdsl.MediaStyle=
+org.eclipse.osbp.xtext.reportdsl.MediaStyle.alternate=
+org.eclipse.osbp.xtext.reportdsl.MediaStyle.backgroundcolor=
+org.eclipse.osbp.xtext.reportdsl.MediaStyle.border-bottom=
+org.eclipse.osbp.xtext.reportdsl.MediaStyle.border-left=
+org.eclipse.osbp.xtext.reportdsl.MediaStyle.border-right=
+org.eclipse.osbp.xtext.reportdsl.MediaStyle.border-top=
+org.eclipse.osbp.xtext.reportdsl.MediaStyle.font=
+org.eclipse.osbp.xtext.reportdsl.MediaStyle.formatter=
+org.eclipse.osbp.xtext.reportdsl.MediaStyle.margin-bottom=
+org.eclipse.osbp.xtext.reportdsl.MediaStyle.margin-left=
+org.eclipse.osbp.xtext.reportdsl.MediaStyle.margin-right=
+org.eclipse.osbp.xtext.reportdsl.MediaStyle.margin-top=
+org.eclipse.osbp.xtext.reportdsl.MediaStyle.media=
+org.eclipse.osbp.xtext.reportdsl.MediaStyle.padding-bottom=
+org.eclipse.osbp.xtext.reportdsl.MediaStyle.padding-left=
+org.eclipse.osbp.xtext.reportdsl.MediaStyle.padding-right=
+org.eclipse.osbp.xtext.reportdsl.MediaStyle.padding-top=
+org.eclipse.osbp.xtext.reportdsl.MediaStyle.textalign=
+org.eclipse.osbp.xtext.reportdsl.MediaStyle.textcolor=
+org.eclipse.osbp.xtext.reportdsl.Medias=
+org.eclipse.osbp.xtext.reportdsl.Medias.medias=
+org.eclipse.osbp.xtext.reportdsl.MultipleAggregationType=
+org.eclipse.osbp.xtext.reportdsl.MultipleAggregationType.concat=
+org.eclipse.osbp.xtext.reportdsl.MultipleAggregationTypeEnum=
+org.eclipse.osbp.xtext.reportdsl.MultipleAggregationTypeEnum.concat=
+org.eclipse.osbp.xtext.reportdsl.NumberFormat=
+org.eclipse.osbp.xtext.reportdsl.NumberFormat.number=
+org.eclipse.osbp.xtext.reportdsl.NumberFormat.report=
+org.eclipse.osbp.xtext.reportdsl.NumberFormat.textalign=
+org.eclipse.osbp.xtext.reportdsl.NumberFormat.ui=
+org.eclipse.osbp.xtext.reportdsl.NumberFormatCategory=
+org.eclipse.osbp.xtext.reportdsl.NumberFormatCategory.custom=
+org.eclipse.osbp.xtext.reportdsl.NumberFormatCategory.fixed=
+org.eclipse.osbp.xtext.reportdsl.NumberFormatCategory.general-number=
+org.eclipse.osbp.xtext.reportdsl.NumberFormatCategory.percent=
+org.eclipse.osbp.xtext.reportdsl.NumberFormatCategory.scientific=
+org.eclipse.osbp.xtext.reportdsl.NumberFormatCategory.unformatted=
+org.eclipse.osbp.xtext.reportdsl.NumberFormatCategoryEnum=
+org.eclipse.osbp.xtext.reportdsl.NumberFormatCategoryEnum.custom=
+org.eclipse.osbp.xtext.reportdsl.NumberFormatCategoryEnum.fixed=
+org.eclipse.osbp.xtext.reportdsl.NumberFormatCategoryEnum.general-number=
+org.eclipse.osbp.xtext.reportdsl.NumberFormatCategoryEnum.percent=
+org.eclipse.osbp.xtext.reportdsl.NumberFormatCategoryEnum.scientific=
+org.eclipse.osbp.xtext.reportdsl.NumberFormatCategoryEnum.unformatted=
+org.eclipse.osbp.xtext.reportdsl.OrientationEnum=
+org.eclipse.osbp.xtext.reportdsl.OrientationEnum.landscape=
+org.eclipse.osbp.xtext.reportdsl.OrientationEnum.portrait=
+org.eclipse.osbp.xtext.reportdsl.PageDetail=
+org.eclipse.osbp.xtext.reportdsl.PageDetail.detail=
+org.eclipse.osbp.xtext.reportdsl.PageFooter=
+org.eclipse.osbp.xtext.reportdsl.PageFooter.footer=
+org.eclipse.osbp.xtext.reportdsl.PageFooter.height=
+org.eclipse.osbp.xtext.reportdsl.PageFooter.showOnLast=
+org.eclipse.osbp.xtext.reportdsl.PageHeader=
+org.eclipse.osbp.xtext.reportdsl.PageHeader.header=
+org.eclipse.osbp.xtext.reportdsl.PageHeader.height=
+org.eclipse.osbp.xtext.reportdsl.PageHeader.showOnFirst=
+org.eclipse.osbp.xtext.reportdsl.PageSizeEnum=
+org.eclipse.osbp.xtext.reportdsl.PageSizeEnum.a3=
+org.eclipse.osbp.xtext.reportdsl.PageSizeEnum.a4=
+org.eclipse.osbp.xtext.reportdsl.PageSizeEnum.a5=
+org.eclipse.osbp.xtext.reportdsl.PageSizeEnum.us-ledger=
+org.eclipse.osbp.xtext.reportdsl.PageSizeEnum.us-legal=
+org.eclipse.osbp.xtext.reportdsl.PageSizeEnum.us-letter=
+org.eclipse.osbp.xtext.reportdsl.PageSizeEnum.us-super-b=
+org.eclipse.osbp.xtext.reportdsl.PageTemplate=
+org.eclipse.osbp.xtext.reportdsl.PageTemplate.bottommargin=
+org.eclipse.osbp.xtext.reportdsl.PageTemplate.leftmargin=
+org.eclipse.osbp.xtext.reportdsl.PageTemplate.orientation=
+org.eclipse.osbp.xtext.reportdsl.PageTemplate.pagetemplate=
+org.eclipse.osbp.xtext.reportdsl.PageTemplate.rightmargin=
+org.eclipse.osbp.xtext.reportdsl.PageTemplate.topmargin=
+org.eclipse.osbp.xtext.reportdsl.PageTemplate.type=
+org.eclipse.osbp.xtext.reportdsl.PageTemplates=
+org.eclipse.osbp.xtext.reportdsl.PureAggregationType=
+org.eclipse.osbp.xtext.reportdsl.PureAggregationType.count=
+org.eclipse.osbp.xtext.reportdsl.PureAggregationType.running-count=
+org.eclipse.osbp.xtext.reportdsl.PureAggregationTypeEnum=
+org.eclipse.osbp.xtext.reportdsl.PureAggregationTypeEnum.count=
+org.eclipse.osbp.xtext.reportdsl.PureAggregationTypeEnum.running-count=
+org.eclipse.osbp.xtext.reportdsl.RenderingEnum=
+org.eclipse.osbp.xtext.reportdsl.RenderingEnum.html=
+org.eclipse.osbp.xtext.reportdsl.RenderingEnum.pdf=
+org.eclipse.osbp.xtext.reportdsl.Report=
+org.eclipse.osbp.xtext.reportdsl.Report.datamart=
+org.eclipse.osbp.xtext.reportdsl.Report.described\ by=
+org.eclipse.osbp.xtext.reportdsl.Report.externalCssURI=
+org.eclipse.osbp.xtext.reportdsl.Report.from\ bundle=
+org.eclipse.osbp.xtext.reportdsl.Report.media=
+org.eclipse.osbp.xtext.reportdsl.Report.pagetemplate=
+org.eclipse.osbp.xtext.reportdsl.Report.rendering=
+org.eclipse.osbp.xtext.reportdsl.Report.report=
+org.eclipse.osbp.xtext.reportdsl.Report.toolbar=
+org.eclipse.osbp.xtext.reportdsl.ReportBuildInFontFamily=
+org.eclipse.osbp.xtext.reportdsl.ReportDesign=
+org.eclipse.osbp.xtext.reportdsl.ReportDesignFile=
+org.eclipse.osbp.xtext.reportdsl.ReportDesignFile.file=
+org.eclipse.osbp.xtext.reportdsl.ReportDesignTemplate=
+org.eclipse.osbp.xtext.reportdsl.ReportDesignTemplate.described\ by=
+org.eclipse.osbp.xtext.reportdsl.ReportDesignTemplate.template=
+org.eclipse.osbp.xtext.reportdsl.ReportImport=
+org.eclipse.osbp.xtext.reportdsl.ReportImport.import=
+org.eclipse.osbp.xtext.reportdsl.ReportModel=
+org.eclipse.osbp.xtext.reportdsl.ReportPackage=
+org.eclipse.osbp.xtext.reportdsl.ReportPackage.externalCssURI=
+org.eclipse.osbp.xtext.reportdsl.ReportPackage.from\ bundle=
+org.eclipse.osbp.xtext.reportdsl.ReportPackage.layout-data=
+org.eclipse.osbp.xtext.reportdsl.ReportPackage.package=
+org.eclipse.osbp.xtext.reportdsl.ReportQualifiedNameWithWildCard=
+org.eclipse.osbp.xtext.reportdsl.SignedNumber=
+org.eclipse.osbp.xtext.reportdsl.SomeFormat=
+org.eclipse.osbp.xtext.reportdsl.SomeFormats=
+org.eclipse.osbp.xtext.reportdsl.SomeFormats.formatters=
+org.eclipse.osbp.xtext.reportdsl.Style=
+org.eclipse.osbp.xtext.reportdsl.Style.alternate=
+org.eclipse.osbp.xtext.reportdsl.Style.backgroundcolor=
+org.eclipse.osbp.xtext.reportdsl.Style.border-bottom=
+org.eclipse.osbp.xtext.reportdsl.Style.border-left=
+org.eclipse.osbp.xtext.reportdsl.Style.border-right=
+org.eclipse.osbp.xtext.reportdsl.Style.border-top=
+org.eclipse.osbp.xtext.reportdsl.Style.extends=
+org.eclipse.osbp.xtext.reportdsl.Style.font=
+org.eclipse.osbp.xtext.reportdsl.Style.formatter=
+org.eclipse.osbp.xtext.reportdsl.Style.margin-bottom=
+org.eclipse.osbp.xtext.reportdsl.Style.margin-left=
+org.eclipse.osbp.xtext.reportdsl.Style.margin-right=
+org.eclipse.osbp.xtext.reportdsl.Style.margin-top=
+org.eclipse.osbp.xtext.reportdsl.Style.padding-bottom=
+org.eclipse.osbp.xtext.reportdsl.Style.padding-left=
+org.eclipse.osbp.xtext.reportdsl.Style.padding-right=
+org.eclipse.osbp.xtext.reportdsl.Style.padding-top=
+org.eclipse.osbp.xtext.reportdsl.Style.style=
+org.eclipse.osbp.xtext.reportdsl.Style.textalign=
+org.eclipse.osbp.xtext.reportdsl.Style.textcolor=
+org.eclipse.osbp.xtext.reportdsl.Styles=
+org.eclipse.osbp.xtext.reportdsl.Styles.styles=
+org.eclipse.osbp.xtext.reportdsl.SubSubTitle=
+org.eclipse.osbp.xtext.reportdsl.SubSubTitle.style=
+org.eclipse.osbp.xtext.reportdsl.SubSubTitle.subsubtitle=
+org.eclipse.osbp.xtext.reportdsl.SubTitle=
+org.eclipse.osbp.xtext.reportdsl.SubTitle.style=
+org.eclipse.osbp.xtext.reportdsl.SubTitle.subtitle=
+org.eclipse.osbp.xtext.reportdsl.TRANSLATABLESTRING=
+org.eclipse.osbp.xtext.reportdsl.TableAggregation=
+org.eclipse.osbp.xtext.reportdsl.TableAggregation.aggregate=
+org.eclipse.osbp.xtext.reportdsl.TableAggregation.on-group=
+org.eclipse.osbp.xtext.reportdsl.TableAggregation.title=
+org.eclipse.osbp.xtext.reportdsl.TableBaseAggregation=
+org.eclipse.osbp.xtext.reportdsl.TableBinaryAggregation=
+org.eclipse.osbp.xtext.reportdsl.TableBinaryAggregation.of=
+org.eclipse.osbp.xtext.reportdsl.TableCellColor=
+org.eclipse.osbp.xtext.reportdsl.TableCellColor.cellcolor=
+org.eclipse.osbp.xtext.reportdsl.TableDateDayInterval=
+org.eclipse.osbp.xtext.reportdsl.TableDateDayInterval.days\ in\ past=
+org.eclipse.osbp.xtext.reportdsl.TableDateDayLookup=
+org.eclipse.osbp.xtext.reportdsl.TableDateDayLookup.days\ in\ past=
+org.eclipse.osbp.xtext.reportdsl.TableFormatter=
+org.eclipse.osbp.xtext.reportdsl.TableFormatter.formatter=
+org.eclipse.osbp.xtext.reportdsl.TableIcon=
+org.eclipse.osbp.xtext.reportdsl.TableIcon.icon=
+org.eclipse.osbp.xtext.reportdsl.TableImage=
+org.eclipse.osbp.xtext.reportdsl.TableImage.dynamic=
+org.eclipse.osbp.xtext.reportdsl.TableImage.hidelabel=
+org.eclipse.osbp.xtext.reportdsl.TableImage.path=
+org.eclipse.osbp.xtext.reportdsl.TableImage.resize=
+org.eclipse.osbp.xtext.reportdsl.TableInterval=
+org.eclipse.osbp.xtext.reportdsl.TableLookup=
+org.eclipse.osbp.xtext.reportdsl.TableMultipleAggregation=
+org.eclipse.osbp.xtext.reportdsl.TableMultipleAggregation.of=
+org.eclipse.osbp.xtext.reportdsl.TableNumberInterval=
+org.eclipse.osbp.xtext.reportdsl.TableNumberInterval.up\ to=
+org.eclipse.osbp.xtext.reportdsl.TableNumberLookup=
+org.eclipse.osbp.xtext.reportdsl.TableNumberLookup.number=
+org.eclipse.osbp.xtext.reportdsl.TableProperty=
+org.eclipse.osbp.xtext.reportdsl.TableProperty.property=
+org.eclipse.osbp.xtext.reportdsl.TablePureAggregation=
+org.eclipse.osbp.xtext.reportdsl.TableRangeElement=
+org.eclipse.osbp.xtext.reportdsl.TableStringLookup=
+org.eclipse.osbp.xtext.reportdsl.TableStringLookup.string=
+org.eclipse.osbp.xtext.reportdsl.TableTextColor=
+org.eclipse.osbp.xtext.reportdsl.TableTextColor.textcolor=
+org.eclipse.osbp.xtext.reportdsl.TableTrend=
+org.eclipse.osbp.xtext.reportdsl.TableTrend.trend=
+org.eclipse.osbp.xtext.reportdsl.TableUnaryAggregation=
+org.eclipse.osbp.xtext.reportdsl.TableUnaryAggregation.of=
+org.eclipse.osbp.xtext.reportdsl.TableValueElement=
+org.eclipse.osbp.xtext.reportdsl.Text=
+org.eclipse.osbp.xtext.reportdsl.Text.style=
+org.eclipse.osbp.xtext.reportdsl.Text.text=
+org.eclipse.osbp.xtext.reportdsl.TextAlign=
+org.eclipse.osbp.xtext.reportdsl.TextAlign.center=
+org.eclipse.osbp.xtext.reportdsl.TextAlign.left=
+org.eclipse.osbp.xtext.reportdsl.TextAlign.right=
+org.eclipse.osbp.xtext.reportdsl.TextAlignEnum=
+org.eclipse.osbp.xtext.reportdsl.TextAlignEnum.center=
+org.eclipse.osbp.xtext.reportdsl.TextAlignEnum.left=
+org.eclipse.osbp.xtext.reportdsl.TextAlignEnum.right=
+org.eclipse.osbp.xtext.reportdsl.TimeFormat=
+org.eclipse.osbp.xtext.reportdsl.TimeFormat.report=
+org.eclipse.osbp.xtext.reportdsl.TimeFormat.textalign=
+org.eclipse.osbp.xtext.reportdsl.TimeFormat.time=
+org.eclipse.osbp.xtext.reportdsl.TimeFormat.ui=
+org.eclipse.osbp.xtext.reportdsl.TimeFormatCategory=
+org.eclipse.osbp.xtext.reportdsl.TimeFormatCategory.custom=
+org.eclipse.osbp.xtext.reportdsl.TimeFormatCategoryEnum=
+org.eclipse.osbp.xtext.reportdsl.TimeFormatCategoryEnum.custom=
+org.eclipse.osbp.xtext.reportdsl.Title=
+org.eclipse.osbp.xtext.reportdsl.Title.style=
+org.eclipse.osbp.xtext.reportdsl.Title.title=
+org.eclipse.osbp.xtext.reportdsl.TrendIconEnum=
+org.eclipse.osbp.xtext.reportdsl.TrendIconEnum.bad-rising=
+org.eclipse.osbp.xtext.reportdsl.TrendIconEnum.good-sloping=
+org.eclipse.osbp.xtext.reportdsl.TrendIconEnum.rising=
+org.eclipse.osbp.xtext.reportdsl.TrendIconEnum.sloping=
+org.eclipse.osbp.xtext.reportdsl.TrendIconEnum.stagnating=
+org.eclipse.osbp.xtext.reportdsl.UnaryAggregationType=
+org.eclipse.osbp.xtext.reportdsl.UnaryAggregationType.average=
+org.eclipse.osbp.xtext.reportdsl.UnaryAggregationType.maximum=
+org.eclipse.osbp.xtext.reportdsl.UnaryAggregationType.minimum=
+org.eclipse.osbp.xtext.reportdsl.UnaryAggregationType.running-sum=
+org.eclipse.osbp.xtext.reportdsl.UnaryAggregationType.sum=
+org.eclipse.osbp.xtext.reportdsl.UnaryAggregationTypeEnum=
+org.eclipse.osbp.xtext.reportdsl.UnaryAggregationTypeEnum.average=
+org.eclipse.osbp.xtext.reportdsl.UnaryAggregationTypeEnum.maximum=
+org.eclipse.osbp.xtext.reportdsl.UnaryAggregationTypeEnum.minimum=
+org.eclipse.osbp.xtext.reportdsl.UnaryAggregationTypeEnum.running-sum=
+org.eclipse.osbp.xtext.reportdsl.UnaryAggregationTypeEnum.sum=
+org.eclipse.osbp.xtext.reportdsl.UnitEnum=
+org.eclipse.osbp.xtext.reportdsl.UnitEnum.cm=
+org.eclipse.osbp.xtext.reportdsl.UnitEnum.em=
+org.eclipse.osbp.xtext.reportdsl.UnitEnum.ex=
+org.eclipse.osbp.xtext.reportdsl.UnitEnum.inch=
+org.eclipse.osbp.xtext.reportdsl.UnitEnum.mm=
+org.eclipse.osbp.xtext.reportdsl.UnitEnum.pc=
+org.eclipse.osbp.xtext.reportdsl.UnitEnum.pt=
+org.eclipse.osbp.xtext.reportdsl.UnitEnum.px=
+org.eclipse.osbp.xtext.reportdsl.UnsignedNumber=
+org.eclipse.osbp.xtext.reportdsl.UomoFormat=
+org.eclipse.osbp.xtext.reportdsl.UomoFormat.report=
+org.eclipse.osbp.xtext.reportdsl.UomoFormat.textalign=
+org.eclipse.osbp.xtext.reportdsl.UomoFormat.ui=
+org.eclipse.osbp.xtext.reportdsl.UomoFormat.uomo=
diff --git a/org.eclipse.osbp.xtext.reportdsl.ui/icons/aggregate.png b/org.eclipse.osbp.xtext.reportdsl.ui/icons/aggregate.png
new file mode 100644
index 0000000..4df09cb
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl.ui/icons/aggregate.png
Binary files differ
diff --git a/org.eclipse.osbp.xtext.reportdsl.ui/icons/api_tools.gif b/org.eclipse.osbp.xtext.reportdsl.ui/icons/api_tools.gif
new file mode 100644
index 0000000..311b0df
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl.ui/icons/api_tools.gif
Binary files differ
diff --git a/org.eclipse.osbp.xtext.reportdsl.ui/icons/autotext.gif b/org.eclipse.osbp.xtext.reportdsl.ui/icons/autotext.gif
new file mode 100644
index 0000000..59516dd
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl.ui/icons/autotext.gif
Binary files differ
diff --git a/org.eclipse.osbp.xtext.reportdsl.ui/icons/calendar-small.gif b/org.eclipse.osbp.xtext.reportdsl.ui/icons/calendar-small.gif
new file mode 100644
index 0000000..d9629a1
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl.ui/icons/calendar-small.gif
Binary files differ
diff --git a/org.eclipse.osbp.xtext.reportdsl.ui/icons/cell.gif b/org.eclipse.osbp.xtext.reportdsl.ui/icons/cell.gif
new file mode 100644
index 0000000..4a05f2f
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl.ui/icons/cell.gif
Binary files differ
diff --git a/org.eclipse.osbp.xtext.reportdsl.ui/icons/color.gif b/org.eclipse.osbp.xtext.reportdsl.ui/icons/color.gif
new file mode 100644
index 0000000..5ce5799
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl.ui/icons/color.gif
Binary files differ
diff --git a/org.eclipse.osbp.xtext.reportdsl.ui/icons/column.gif b/org.eclipse.osbp.xtext.reportdsl.ui/icons/column.gif
new file mode 100644
index 0000000..5a3db49
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl.ui/icons/column.gif
Binary files differ
diff --git a/org.eclipse.osbp.xtext.reportdsl.ui/icons/currency_euro.png b/org.eclipse.osbp.xtext.reportdsl.ui/icons/currency_euro.png
new file mode 100644
index 0000000..3b7be5b
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl.ui/icons/currency_euro.png
Binary files differ
diff --git a/org.eclipse.osbp.xtext.reportdsl.ui/icons/datetime.gif b/org.eclipse.osbp.xtext.reportdsl.ui/icons/datetime.gif
new file mode 100644
index 0000000..96aae05
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl.ui/icons/datetime.gif
Binary files differ
diff --git a/org.eclipse.osbp.xtext.reportdsl.ui/icons/detail-area.gif b/org.eclipse.osbp.xtext.reportdsl.ui/icons/detail-area.gif
new file mode 100644
index 0000000..ffdc79b
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl.ui/icons/detail-area.gif
Binary files differ
diff --git a/org.eclipse.osbp.xtext.reportdsl.ui/icons/details.gif b/org.eclipse.osbp.xtext.reportdsl.ui/icons/details.gif
new file mode 100644
index 0000000..15f80fd
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl.ui/icons/details.gif
Binary files differ
diff --git a/org.eclipse.osbp.xtext.reportdsl.ui/icons/dsl_chart_2.png b/org.eclipse.osbp.xtext.reportdsl.ui/icons/dsl_chart_2.png
new file mode 100644
index 0000000..3269d86
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl.ui/icons/dsl_chart_2.png
Binary files differ
diff --git a/org.eclipse.osbp.xtext.reportdsl.ui/icons/dsl_datamart.png b/org.eclipse.osbp.xtext.reportdsl.ui/icons/dsl_datamart.png
new file mode 100644
index 0000000..2f20aee
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl.ui/icons/dsl_datamart.png
Binary files differ
diff --git a/org.eclipse.osbp.xtext.reportdsl.ui/icons/dsl_import.png b/org.eclipse.osbp.xtext.reportdsl.ui/icons/dsl_import.png
new file mode 100644
index 0000000..f4fdcc9
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl.ui/icons/dsl_import.png
Binary files differ
diff --git a/org.eclipse.osbp.xtext.reportdsl.ui/icons/dsl_report.gif b/org.eclipse.osbp.xtext.reportdsl.ui/icons/dsl_report.gif
new file mode 100644
index 0000000..4aefb02
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl.ui/icons/dsl_report.gif
Binary files differ
diff --git a/org.eclipse.osbp.xtext.reportdsl.ui/icons/enum_alt_obj.gif b/org.eclipse.osbp.xtext.reportdsl.ui/icons/enum_alt_obj.gif
new file mode 100644
index 0000000..f470d4c
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl.ui/icons/enum_alt_obj.gif
Binary files differ
diff --git a/org.eclipse.osbp.xtext.reportdsl.ui/icons/error.gif b/org.eclipse.osbp.xtext.reportdsl.ui/icons/error.gif
new file mode 100644
index 0000000..9b048d6
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl.ui/icons/error.gif
Binary files differ
diff --git a/org.eclipse.osbp.xtext.reportdsl.ui/icons/finder_descriptor_obj.gif b/org.eclipse.osbp.xtext.reportdsl.ui/icons/finder_descriptor_obj.gif
new file mode 100644
index 0000000..5533c0b
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl.ui/icons/finder_descriptor_obj.gif
Binary files differ
diff --git a/org.eclipse.osbp.xtext.reportdsl.ui/icons/font.gif b/org.eclipse.osbp.xtext.reportdsl.ui/icons/font.gif
new file mode 100644
index 0000000..6538949
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl.ui/icons/font.gif
Binary files differ
diff --git a/org.eclipse.osbp.xtext.reportdsl.ui/icons/font_color.gif b/org.eclipse.osbp.xtext.reportdsl.ui/icons/font_color.gif
new file mode 100644
index 0000000..291a7e3
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl.ui/icons/font_color.gif
Binary files differ
diff --git a/org.eclipse.osbp.xtext.reportdsl.ui/icons/footer.gif b/org.eclipse.osbp.xtext.reportdsl.ui/icons/footer.gif
new file mode 100644
index 0000000..44bf680
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl.ui/icons/footer.gif
Binary files differ
diff --git a/org.eclipse.osbp.xtext.reportdsl.ui/icons/foreground_fill_color.png b/org.eclipse.osbp.xtext.reportdsl.ui/icons/foreground_fill_color.png
new file mode 100644
index 0000000..2d09c36
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl.ui/icons/foreground_fill_color.png
Binary files differ
diff --git a/org.eclipse.osbp.xtext.reportdsl.ui/icons/formatbuilder.gif b/org.eclipse.osbp.xtext.reportdsl.ui/icons/formatbuilder.gif
new file mode 100644
index 0000000..f885931
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl.ui/icons/formatbuilder.gif
Binary files differ
diff --git a/org.eclipse.osbp.xtext.reportdsl.ui/icons/gridlayout_obj.gif b/org.eclipse.osbp.xtext.reportdsl.ui/icons/gridlayout_obj.gif
new file mode 100644
index 0000000..20fa3ef
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl.ui/icons/gridlayout_obj.gif
Binary files differ
diff --git a/org.eclipse.osbp.xtext.reportdsl.ui/icons/group.gif b/org.eclipse.osbp.xtext.reportdsl.ui/icons/group.gif
new file mode 100644
index 0000000..79fbc74
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl.ui/icons/group.gif
Binary files differ
diff --git a/org.eclipse.osbp.xtext.reportdsl.ui/icons/group_footer.gif b/org.eclipse.osbp.xtext.reportdsl.ui/icons/group_footer.gif
new file mode 100644
index 0000000..7de8238
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl.ui/icons/group_footer.gif
Binary files differ
diff --git a/org.eclipse.osbp.xtext.reportdsl.ui/icons/group_header.gif b/org.eclipse.osbp.xtext.reportdsl.ui/icons/group_header.gif
new file mode 100644
index 0000000..47d9e1b
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl.ui/icons/group_header.gif
Binary files differ
diff --git a/org.eclipse.osbp.xtext.reportdsl.ui/icons/header.gif b/org.eclipse.osbp.xtext.reportdsl.ui/icons/header.gif
new file mode 100644
index 0000000..55c0e0a
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl.ui/icons/header.gif
Binary files differ
diff --git a/org.eclipse.osbp.xtext.reportdsl.ui/icons/img.png b/org.eclipse.osbp.xtext.reportdsl.ui/icons/img.png
new file mode 100644
index 0000000..91a4a2b
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl.ui/icons/img.png
Binary files differ
diff --git a/org.eclipse.osbp.xtext.reportdsl.ui/icons/length_measure-16x16.png b/org.eclipse.osbp.xtext.reportdsl.ui/icons/length_measure-16x16.png
new file mode 100644
index 0000000..92d7c5d
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl.ui/icons/length_measure-16x16.png
Binary files differ
diff --git a/org.eclipse.osbp.xtext.reportdsl.ui/icons/master_page.gif b/org.eclipse.osbp.xtext.reportdsl.ui/icons/master_page.gif
new file mode 100644
index 0000000..cb30377
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl.ui/icons/master_page.gif
Binary files differ
diff --git a/org.eclipse.osbp.xtext.reportdsl.ui/icons/model.png b/org.eclipse.osbp.xtext.reportdsl.ui/icons/model.png
new file mode 100644
index 0000000..cffb857
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl.ui/icons/model.png
Binary files differ
diff --git a/org.eclipse.osbp.xtext.reportdsl.ui/icons/null-attribute-mapping.gif b/org.eclipse.osbp.xtext.reportdsl.ui/icons/null-attribute-mapping.gif
new file mode 100644
index 0000000..70a9c23
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl.ui/icons/null-attribute-mapping.gif
Binary files differ
diff --git a/org.eclipse.osbp.xtext.reportdsl.ui/icons/package.gif b/org.eclipse.osbp.xtext.reportdsl.ui/icons/package.gif
new file mode 100644
index 0000000..34506fb
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl.ui/icons/package.gif
Binary files differ
diff --git a/org.eclipse.osbp.xtext.reportdsl.ui/icons/properties.png b/org.eclipse.osbp.xtext.reportdsl.ui/icons/properties.png
new file mode 100644
index 0000000..aa660cc
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl.ui/icons/properties.png
Binary files differ
diff --git a/org.eclipse.osbp.xtext.reportdsl.ui/icons/row.gif b/org.eclipse.osbp.xtext.reportdsl.ui/icons/row.gif
new file mode 100644
index 0000000..cd7141c
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl.ui/icons/row.gif
Binary files differ
diff --git a/org.eclipse.osbp.xtext.reportdsl.ui/icons/style.gif b/org.eclipse.osbp.xtext.reportdsl.ui/icons/style.gif
new file mode 100644
index 0000000..1b5e164
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl.ui/icons/style.gif
Binary files differ
diff --git a/org.eclipse.osbp.xtext.reportdsl.ui/icons/template.gif b/org.eclipse.osbp.xtext.reportdsl.ui/icons/template.gif
new file mode 100644
index 0000000..957a7e0
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl.ui/icons/template.gif
Binary files differ
diff --git a/org.eclipse.osbp.xtext.reportdsl.ui/icons/text.gif b/org.eclipse.osbp.xtext.reportdsl.ui/icons/text.gif
new file mode 100644
index 0000000..7bd0fe3
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl.ui/icons/text.gif
Binary files differ
diff --git a/org.eclipse.osbp.xtext.reportdsl.ui/icons/time.gif b/org.eclipse.osbp.xtext.reportdsl.ui/icons/time.gif
new file mode 100644
index 0000000..6089d52
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl.ui/icons/time.gif
Binary files differ
diff --git a/org.eclipse.osbp.xtext.reportdsl.ui/icons/trend_rising.png b/org.eclipse.osbp.xtext.reportdsl.ui/icons/trend_rising.png
new file mode 100644
index 0000000..5a7686b
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl.ui/icons/trend_rising.png
Binary files differ
diff --git a/org.eclipse.osbp.xtext.reportdsl.ui/license.html b/org.eclipse.osbp.xtext.reportdsl.ui/license.html
new file mode 100644
index 0000000..6e579a5
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl.ui/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.reportdsl.ui/plugin.xml b/org.eclipse.osbp.xtext.reportdsl.ui/plugin.xml
new file mode 100644
index 0000000..97f413b
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl.ui/plugin.xml
@@ -0,0 +1,429 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.0"?>
+
+<plugin>
+
+    <extension
+            point="org.eclipse.ui.editors">
+        <editor
+              class="org.eclipse.osbp.xtext.reportdsl.ui.ReportDSLExecutableExtensionFactory:org.eclipse.xtext.ui.editor.XtextEditor"
+              contributorClass="org.eclipse.ui.editors.text.TextEditorActionContributor"
+              default="true"
+              extensions="report"
+              id="org.eclipse.osbp.xtext.reportdsl.ReportDSL"
+              icon="icons/dsl_report.gif"
+              name="OSBP ReportDSL Editor">
+        </editor>
+    </extension>
+    <extension
+        point="org.eclipse.ui.handlers">
+        <handler
+            class="org.eclipse.osbp.xtext.reportdsl.ui.ReportDSLExecutableExtensionFactory:org.eclipse.xtext.ui.editor.hyperlinking.OpenDeclarationHandler"
+            commandId="org.eclipse.xtext.ui.editor.hyperlinking.OpenDeclaration">
+            <activeWhen>
+                <reference
+                    definitionId="org.eclipse.osbp.xtext.reportdsl.ReportDSL.Editor.opened">
+                </reference>
+            </activeWhen>
+        </handler>
+        <handler
+            class="org.eclipse.osbp.xtext.reportdsl.ui.ReportDSLExecutableExtensionFactory:org.eclipse.xtext.ui.editor.handler.ValidateActionHandler"
+            commandId="org.eclipse.osbp.xtext.reportdsl.ReportDSL.validate">
+         <activeWhen>
+            <reference
+                    definitionId="org.eclipse.osbp.xtext.reportdsl.ReportDSL.Editor.opened">
+            </reference>
+         </activeWhen>
+      	</handler>
+      	<!-- copy qualified name -->
+        <handler
+            class="org.eclipse.osbp.xtext.reportdsl.ui.ReportDSLExecutableExtensionFactory:org.eclipse.xtext.ui.editor.copyqualifiedname.EditorCopyQualifiedNameHandler"
+            commandId="org.eclipse.xtext.ui.editor.copyqualifiedname.EditorCopyQualifiedName">
+            <activeWhen>
+				<reference definitionId="org.eclipse.osbp.xtext.reportdsl.ReportDSL.Editor.opened" />
+            </activeWhen>
+        </handler>
+        <handler
+            class="org.eclipse.osbp.xtext.reportdsl.ui.ReportDSLExecutableExtensionFactory:org.eclipse.xtext.ui.editor.copyqualifiedname.OutlineCopyQualifiedNameHandler"
+            commandId="org.eclipse.xtext.ui.editor.copyqualifiedname.OutlineCopyQualifiedName">
+            <activeWhen>
+            	<and>
+            		<reference definitionId="org.eclipse.osbp.xtext.reportdsl.ReportDSL.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.reportdsl.ReportDSL.Editor.opened">
+            <and>
+                <reference definitionId="isActiveEditorAnInstanceOfXtextEditor"/>
+                <with variable="activeEditor">
+                    <test property="org.eclipse.xtext.ui.editor.XtextEditor.languageName" 
+                        value="org.eclipse.osbp.xtext.reportdsl.ReportDSL" 
+                        forcePluginActivation="true"/>
+                </with>        
+            </and>
+        </definition>
+        <definition id="org.eclipse.osbp.xtext.reportdsl.ReportDSL.XtextEditor.opened">
+            <and>
+                <reference definitionId="isXtextEditorActive"/>
+                <with variable="activeEditor">
+                    <test property="org.eclipse.xtext.ui.editor.XtextEditor.languageName" 
+                        value="org.eclipse.osbp.xtext.reportdsl.ReportDSL" 
+                        forcePluginActivation="true"/>
+                </with>        
+            </and>
+        </definition>
+    </extension>
+    <extension
+            point="org.eclipse.ui.preferencePages">
+        <page
+            class="org.eclipse.osbp.xtext.reportdsl.ui.ReportDSLExecutableExtensionFactory:org.eclipse.xtext.ui.editor.preferences.LanguageRootPreferencePage"
+            icon="icons/dsl_report.gif"
+            id="org.eclipse.osbp.xtext.reportdsl.ReportDSL"
+            name="OSBP ReportDSL">
+            <keywordReference id="org.eclipse.osbp.xtext.reportdsl.ui.keyword_ReportDSL"/>
+        </page>
+        <page
+            category="org.eclipse.osbp.xtext.reportdsl.ReportDSL"
+            class="org.eclipse.osbp.xtext.reportdsl.ui.ReportDSLExecutableExtensionFactory:org.eclipse.xtext.ui.editor.syntaxcoloring.SyntaxColoringPreferencePage"
+            id="org.eclipse.osbp.xtext.reportdsl.ReportDSL.coloring"
+            name="Syntax Coloring">
+            <keywordReference id="org.eclipse.osbp.xtext.reportdsl.ui.keyword_ReportDSL"/>
+        </page>
+        <page
+            category="org.eclipse.osbp.xtext.reportdsl.ReportDSL"
+            class="org.eclipse.osbp.xtext.reportdsl.ui.ReportDSLExecutableExtensionFactory:org.eclipse.xtext.ui.editor.templates.XtextTemplatePreferencePage"
+            id="org.eclipse.osbp.xtext.reportdsl.ReportDSL.templates"
+            name="Templates">
+            <keywordReference id="org.eclipse.osbp.xtext.reportdsl.ui.keyword_ReportDSL"/>
+        </page>
+    </extension>
+    <extension
+            point="org.eclipse.ui.propertyPages">
+        <page
+              class="org.eclipse.osbp.xtext.reportdsl.ui.ReportDSLExecutableExtensionFactory:org.eclipse.xtext.ui.editor.preferences.LanguageRootPreferencePage"
+              icon="icons/dsl_report.gif"
+              id="org.eclipse.osbp.xtext.reportdsl.ReportDSL"
+              name="OSBP ReportDSL">
+            <keywordReference id="org.eclipse.osbp.xtext.reportdsl.ui.keyword_ReportDSL"/>
+            <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.reportdsl.ui.keyword_ReportDSL"
+            label="OSBP ReportDSL"/>
+    </extension>
+    <extension
+         point="org.eclipse.ui.commands">
+      <command
+            description="Trigger expensive validation"
+            id="org.eclipse.osbp.xtext.reportdsl.ReportDSL.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.reportdsl.ReportDSL.validate"
+                 style="push"
+                 tooltip="Trigger expensive validation">
+            <visibleWhen checkEnabled="false">
+                <reference
+                    definitionId="org.eclipse.osbp.xtext.reportdsl.ReportDSL.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.reportdsl.ReportDSL.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.reportdsl.ReportDSL.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.reportdsl.ReportDSL.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 locationURI="popup:#TextEditorContext?endof=group.find">
+			<command commandId="org.eclipse.xtext.ui.editor.FindReferences">
+				<visibleWhen checkEnabled="false">
+                	<reference definitionId="org.eclipse.osbp.xtext.reportdsl.ReportDSL.Editor.opened">
+                	</reference>
+            	</visibleWhen>
+			</command>
+		</menuContribution>
+	</extension>
+	<extension point="org.eclipse.ui.handlers">
+	    <handler
+            class="org.eclipse.osbp.xtext.reportdsl.ui.ReportDSLExecutableExtensionFactory:org.eclipse.xtext.ui.editor.findrefs.FindReferencesHandler"
+            commandId="org.eclipse.xtext.ui.editor.FindReferences">
+            <activeWhen>
+                <reference
+                    definitionId="org.eclipse.osbp.xtext.reportdsl.ReportDSL.Editor.opened">
+                </reference>
+            </activeWhen>
+        </handler>
+    </extension>   
+
+<!-- adding resource factories -->
+
+	<extension
+		point="org.eclipse.emf.ecore.extension_parser">
+		<parser
+			class="org.eclipse.osbp.xtext.reportdsl.ui.ReportDSLExecutableExtensionFactory:org.eclipse.xtext.resource.IResourceFactory"
+			type="report">
+		</parser>
+	</extension>
+	<extension point="org.eclipse.xtext.extension_resourceServiceProvider">
+        <resourceServiceProvider
+            class="org.eclipse.osbp.xtext.reportdsl.ui.ReportDSLExecutableExtensionFactory:org.eclipse.xtext.ui.resource.IResourceUIServiceProvider"
+            uriExtension="report">
+        </resourceServiceProvider>
+    </extension>
+
+
+	<!-- marker definitions for org.eclipse.osbp.xtext.reportdsl.ReportDSL -->
+	<extension
+	        id="reportdsl.check.fast"
+	        name="OSBP ReportDSL Problem"
+	        point="org.eclipse.core.resources.markers">
+	    <super type="org.eclipse.xtext.ui.check.fast"/>
+	    <persistent value="true"/>
+	</extension>
+	<extension
+	        id="reportdsl.check.normal"
+	        name="OSBP ReportDSL Problem"
+	        point="org.eclipse.core.resources.markers">
+	    <super type="org.eclipse.xtext.ui.check.normal"/>
+	    <persistent value="true"/>
+	</extension>
+	<extension
+	        id="reportdsl.check.expensive"
+	        name="OSBP ReportDSL 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.reportdsl.ui.ReportDSLExecutableExtensionFactory:org.eclipse.xtext.builder.IXtextBuilderParticipant">
+      </participant>
+   </extension>
+   <extension
+            point="org.eclipse.ui.preferencePages">
+        <page
+            category="org.eclipse.osbp.xtext.reportdsl.ReportDSL"
+            class="org.eclipse.osbp.xtext.reportdsl.ui.ReportDSLExecutableExtensionFactory:org.eclipse.xtext.builder.preferences.BuilderPreferencePage"
+            icon="icons/dsl_report.gif"
+            id="org.eclipse.osbp.xtext.reportdsl.ReportDSL.compiler.preferencePage"
+            name="Compiler">
+            <keywordReference id="org.eclipse.osbp.xtext.reportdsl.ui.keyword_ReportDSL"/>
+        </page>
+    </extension>
+    <extension
+            point="org.eclipse.ui.propertyPages">
+        <page
+              category="org.eclipse.osbp.xtext.reportdsl.ReportDSL"
+              class="org.eclipse.osbp.xtext.reportdsl.ui.ReportDSLExecutableExtensionFactory:org.eclipse.xtext.builder.preferences.BuilderPreferencePage"
+              icon="icons/dsl_report.gif"
+              id="org.eclipse.osbp.xtext.reportdsl.ReportDSL.compiler.propertyPage"
+              name="Compiler">
+            <keywordReference id="org.eclipse.osbp.xtext.reportdsl.ui.keyword_ReportDSL"/>
+            <enabledWhen>
+	            <adapt type="org.eclipse.core.resources.IProject"/>
+			</enabledWhen>
+	        <filter name="projectNature" value="org.eclipse.xtext.ui.shared.xtextNature"/>
+        </page>
+    </extension>
+
+	<!-- Quick Outline -->
+	<extension
+		point="org.eclipse.ui.handlers">
+		<handler 
+			class="org.eclipse.osbp.xtext.reportdsl.ui.ReportDSLExecutableExtensionFactory:org.eclipse.xtext.ui.editor.outline.quickoutline.ShowQuickOutlineActionHandler"
+			commandId="org.eclipse.xtext.ui.editor.outline.QuickOutline">
+			<activeWhen>
+				<reference
+					definitionId="org.eclipse.osbp.xtext.reportdsl.ReportDSL.Editor.opened">
+				</reference>
+			</activeWhen>
+		</handler>
+	</extension>
+	<extension
+		point="org.eclipse.ui.commands">
+		<command
+			description="Open the quick outline."
+			id="org.eclipse.xtext.ui.editor.outline.QuickOutline"
+			name="Quick Outline">
+		</command>
+	</extension>
+	<extension point="org.eclipse.ui.menus">
+		<menuContribution
+			locationURI="popup:#TextEditorContext?after=group.open">
+			<command commandId="org.eclipse.xtext.ui.editor.outline.QuickOutline"
+				style="push"
+				tooltip="Open Quick Outline">
+				<visibleWhen checkEnabled="false">
+					<reference definitionId="org.eclipse.osbp.xtext.reportdsl.ReportDSL.Editor.opened"/>
+				</visibleWhen>
+			</command>
+		</menuContribution>
+	</extension>
+    <!-- quickfix marker resolution generator for org.eclipse.osbp.xtext.reportdsl.ReportDSL -->
+    <extension
+            point="org.eclipse.ui.ide.markerResolution">
+        <markerResolutionGenerator
+            class="org.eclipse.osbp.xtext.reportdsl.ui.ReportDSLExecutableExtensionFactory:org.eclipse.xtext.ui.editor.quickfix.MarkerResolutionGenerator"
+            markerType="org.eclipse.osbp.xtext.reportdsl.ui.reportdsl.check.fast">
+            <attribute
+                name="FIXABLE_KEY"
+                value="true">
+            </attribute>
+        </markerResolutionGenerator>
+        <markerResolutionGenerator
+            class="org.eclipse.osbp.xtext.reportdsl.ui.ReportDSLExecutableExtensionFactory:org.eclipse.xtext.ui.editor.quickfix.MarkerResolutionGenerator"
+            markerType="org.eclipse.osbp.xtext.reportdsl.ui.reportdsl.check.normal">
+            <attribute
+                name="FIXABLE_KEY"
+                value="true">
+            </attribute>
+        </markerResolutionGenerator>
+        <markerResolutionGenerator
+            class="org.eclipse.osbp.xtext.reportdsl.ui.ReportDSLExecutableExtensionFactory:org.eclipse.xtext.ui.editor.quickfix.MarkerResolutionGenerator"
+            markerType="org.eclipse.osbp.xtext.reportdsl.ui.reportdsl.check.expensive">
+            <attribute
+                name="FIXABLE_KEY"
+                value="true">
+            </attribute>
+        </markerResolutionGenerator>
+    </extension>
+
+	<!-- Project Wizards -->
+	<!--
+    <extension
+         point="org.eclipse.ui.newWizards">
+      <wizard
+            category="org.eclipse.osbp.xtext.wizards.ui.newWizards"
+            class="org.eclipse.osbp.xtext.reportdsl.ui.ReportDSLExecutableExtensionFactory:org.eclipse.osbp.xtext.allinonedsls.ui.wizard.AllInOneDSLsNewProjectWizard"
+            icon="platform:/plugin/org.eclipse.osbp.utils.img/img/dsl_allinone-1.png"
+            id="org.eclipse.osbp.xtext.allinonedsls.ui.wizard.AllInOneDSLsNewProjectWizard"
+            name="All-In-One-DSLs Project"
+            project="true">
+      </wizard>
+      <wizard
+            category="org.eclipse.osbp.xtext.wizards.ui.newWizards"
+            class="org.eclipse.osbp.xtext.reportdsl.ui.ReportDSLExecutableExtensionFactory:org.eclipse.osbp.xtext.allinonedsls.ui.wizard.ScssThemeNewProjectWizard"
+            icon="platform:/plugin/org.eclipse.osbp.utils.img/img/dsl_scsstheme.gif"
+            id="org.eclipse.osbp.xtext.allinonedsls.ui.wizard.ScssThemeNewProjectWizard"
+            name="Valo SASS Theme Project"
+            project="true">
+      </wizard>
+      <category
+            id="org.eclipse.osbp.xtext.wizards.ui.newWizards"
+            icon="platform:/plugin/org.eclipse.osbp.utils.img/img/osbee.png"
+            name="OSBP Projects">
+      </category>
+    </extension>
+    -->
+   	<!-- Rename Refactoring -->
+	<extension point="org.eclipse.ui.handlers">
+		<handler 
+			class="org.eclipse.osbp.xtext.reportdsl.ui.ReportDSLExecutableExtensionFactory:org.eclipse.xtext.ui.refactoring.ui.DefaultRenameElementHandler"
+			commandId="org.eclipse.xtext.ui.refactoring.RenameElement">
+			<activeWhen>
+				<reference
+					definitionId="org.eclipse.osbp.xtext.reportdsl.ReportDSL.Editor.opened">
+				</reference>
+			</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.reportdsl.ReportDSL.Editor.opened">
+               </reference>
+            </visibleWhen>
+         </command>
+      </menuContribution>
+   </extension>
+   <extension point="org.eclipse.ui.preferencePages">
+	    <page
+	        category="org.eclipse.osbp.xtext.reportdsl.ReportDSL"
+	        class="org.eclipse.osbp.xtext.reportdsl.ui.ReportDSLExecutableExtensionFactory:org.eclipse.xtext.ui.refactoring.ui.RefactoringPreferencePage"
+	        id="org.eclipse.osbp.xtext.reportdsl.ReportDSL.refactoring"
+	        name="Refactoring">
+	        <keywordReference id="org.eclipse.osbp.xtext.reportdsl.ui.keyword_ReportDSL"/>
+	    </page>
+	</extension>
+
+  <extension point="org.eclipse.compare.contentViewers">
+    <viewer id="org.eclipse.osbp.xtext.reportdsl.ReportDSL.compare.contentViewers"
+            class="org.eclipse.osbp.xtext.reportdsl.ui.ReportDSLExecutableExtensionFactory:org.eclipse.xtext.ui.compare.InjectableViewerCreator"
+            extensions="report">
+    </viewer>
+  </extension>
+  <extension point="org.eclipse.compare.contentMergeViewers">
+    <viewer id="org.eclipse.osbp.xtext.reportdsl.ReportDSL.compare.contentMergeViewers"
+            class="org.eclipse.osbp.xtext.reportdsl.ui.ReportDSLExecutableExtensionFactory:org.eclipse.xtext.ui.compare.InjectableViewerCreator"
+            extensions="report" label="ReportDSL Compare">
+     </viewer>
+  </extension>
+  <extension point="org.eclipse.ui.editors.documentProviders">
+    <provider id="org.eclipse.osbp.xtext.reportdsl.ReportDSL.editors.documentProviders"
+            class="org.eclipse.osbp.xtext.reportdsl.ui.ReportDSLExecutableExtensionFactory:org.eclipse.xtext.ui.editor.model.XtextDocumentProvider"
+            extensions="report">
+    </provider>
+  </extension>
+
+</plugin>
diff --git a/org.eclipse.osbp.xtext.reportdsl.ui/plugin.xml_gen b/org.eclipse.osbp.xtext.reportdsl.ui/plugin.xml_gen
new file mode 100644
index 0000000..da2de09
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl.ui/plugin.xml_gen
@@ -0,0 +1,562 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.0"?>
+
+<plugin>
+
+    <extension
+            point="org.eclipse.ui.editors">
+        <editor
+            class="org.eclipse.osbp.xtext.reportdsl.ui.ReportDSLExecutableExtensionFactory:org.eclipse.xtext.ui.editor.XtextEditor"
+            contributorClass="org.eclipse.ui.editors.text.TextEditorActionContributor"
+            default="true"
+            extensions="report"
+            id="org.eclipse.osbp.xtext.reportdsl.ReportDSL"
+            matchingStrategy="org.eclipse.osbp.xtext.reportdsl.ui.ReportDSLExecutableExtensionFactory:org.eclipse.xtext.xbase.ui.editor.JavaEditorInputMatcher"
+            name="ReportDSL Editor">
+        </editor>
+    </extension>
+    <extension
+        point="org.eclipse.ui.handlers">
+        <handler
+            class="org.eclipse.osbp.xtext.reportdsl.ui.ReportDSLExecutableExtensionFactory:org.eclipse.xtext.ui.editor.hyperlinking.OpenDeclarationHandler"
+            commandId="org.eclipse.xtext.ui.editor.hyperlinking.OpenDeclaration">
+            <activeWhen>
+                <reference
+                    definitionId="org.eclipse.osbp.xtext.reportdsl.ReportDSL.Editor.opened">
+                </reference>
+            </activeWhen>
+        </handler>
+        <handler
+            class="org.eclipse.osbp.xtext.reportdsl.ui.ReportDSLExecutableExtensionFactory:org.eclipse.xtext.ui.editor.handler.ValidateActionHandler"
+            commandId="org.eclipse.osbp.xtext.reportdsl.ReportDSL.validate">
+         <activeWhen>
+            <reference
+                    definitionId="org.eclipse.osbp.xtext.reportdsl.ReportDSL.Editor.opened">
+            </reference>
+         </activeWhen>
+      	</handler>
+      	<!-- copy qualified name -->
+        <handler
+            class="org.eclipse.osbp.xtext.reportdsl.ui.ReportDSLExecutableExtensionFactory:org.eclipse.xtext.ui.editor.copyqualifiedname.EditorCopyQualifiedNameHandler"
+            commandId="org.eclipse.xtext.ui.editor.copyqualifiedname.EditorCopyQualifiedName">
+            <activeWhen>
+				<reference definitionId="org.eclipse.osbp.xtext.reportdsl.ReportDSL.Editor.opened" />
+            </activeWhen>
+        </handler>
+        <handler
+            class="org.eclipse.osbp.xtext.reportdsl.ui.ReportDSLExecutableExtensionFactory:org.eclipse.xtext.ui.editor.copyqualifiedname.OutlineCopyQualifiedNameHandler"
+            commandId="org.eclipse.xtext.ui.editor.copyqualifiedname.OutlineCopyQualifiedName">
+            <activeWhen>
+            	<and>
+            		<reference definitionId="org.eclipse.osbp.xtext.reportdsl.ReportDSL.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.reportdsl.ReportDSL.Editor.opened">
+            <and>
+                <reference definitionId="isActiveEditorAnInstanceOfXtextEditor"/>
+                <with variable="activeEditor">
+                    <test property="org.eclipse.xtext.ui.editor.XtextEditor.languageName" 
+                        value="org.eclipse.osbp.xtext.reportdsl.ReportDSL" 
+                        forcePluginActivation="true"/>
+                </with>        
+            </and>
+        </definition>
+        <definition id="org.eclipse.osbp.xtext.reportdsl.ReportDSL.XtextEditor.opened">
+            <and>
+                <reference definitionId="isXtextEditorActive"/>
+                <with variable="activeEditor">
+                    <test property="org.eclipse.xtext.ui.editor.XtextEditor.languageName" 
+                        value="org.eclipse.osbp.xtext.reportdsl.ReportDSL" 
+                        forcePluginActivation="true"/>
+                </with>        
+            </and>
+        </definition>
+    </extension>
+    <extension
+            point="org.eclipse.ui.preferencePages">
+        <page
+            class="org.eclipse.osbp.xtext.reportdsl.ui.ReportDSLExecutableExtensionFactory:org.eclipse.xtext.ui.editor.preferences.LanguageRootPreferencePage"
+            id="org.eclipse.osbp.xtext.reportdsl.ReportDSL"
+            name="ReportDSL">
+            <keywordReference id="org.eclipse.osbp.xtext.reportdsl.ui.keyword_ReportDSL"/>
+        </page>
+        <page
+            category="org.eclipse.osbp.xtext.reportdsl.ReportDSL"
+            class="org.eclipse.osbp.xtext.reportdsl.ui.ReportDSLExecutableExtensionFactory:org.eclipse.xtext.ui.editor.syntaxcoloring.SyntaxColoringPreferencePage"
+            id="org.eclipse.osbp.xtext.reportdsl.ReportDSL.coloring"
+            name="Syntax Coloring">
+            <keywordReference id="org.eclipse.osbp.xtext.reportdsl.ui.keyword_ReportDSL"/>
+        </page>
+        <page
+            category="org.eclipse.osbp.xtext.reportdsl.ReportDSL"
+            class="org.eclipse.osbp.xtext.reportdsl.ui.ReportDSLExecutableExtensionFactory:org.eclipse.xtext.ui.editor.templates.XtextTemplatePreferencePage"
+            id="org.eclipse.osbp.xtext.reportdsl.ReportDSL.templates"
+            name="Templates">
+            <keywordReference id="org.eclipse.osbp.xtext.reportdsl.ui.keyword_ReportDSL"/>
+        </page>
+    </extension>
+    <extension
+            point="org.eclipse.ui.propertyPages">
+        <page
+            class="org.eclipse.osbp.xtext.reportdsl.ui.ReportDSLExecutableExtensionFactory:org.eclipse.xtext.ui.editor.preferences.LanguageRootPreferencePage"
+            id="org.eclipse.osbp.xtext.reportdsl.ReportDSL"
+            name="ReportDSL">
+            <keywordReference id="org.eclipse.osbp.xtext.reportdsl.ui.keyword_ReportDSL"/>
+            <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.reportdsl.ui.keyword_ReportDSL"
+            label="ReportDSL"/>
+    </extension>
+    <extension
+         point="org.eclipse.ui.commands">
+      <command
+            description="Trigger expensive validation"
+            id="org.eclipse.osbp.xtext.reportdsl.ReportDSL.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.reportdsl.ReportDSL.validate"
+                 style="push"
+                 tooltip="Trigger expensive validation">
+            <visibleWhen checkEnabled="false">
+                <reference
+                    definitionId="org.eclipse.osbp.xtext.reportdsl.ReportDSL.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.reportdsl.ReportDSL.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.reportdsl.ReportDSL.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.reportdsl.ReportDSL.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 locationURI="popup:#TextEditorContext?endof=group.find">
+			<command commandId="org.eclipse.xtext.ui.editor.FindReferences">
+				<visibleWhen checkEnabled="false">
+                	<reference definitionId="org.eclipse.osbp.xtext.reportdsl.ReportDSL.Editor.opened">
+                	</reference>
+            	</visibleWhen>
+			</command>
+		</menuContribution>
+	</extension>
+	<extension point="org.eclipse.ui.handlers">
+	    <handler
+            class="org.eclipse.osbp.xtext.reportdsl.ui.ReportDSLExecutableExtensionFactory:org.eclipse.xtext.ui.editor.findrefs.FindReferencesHandler"
+            commandId="org.eclipse.xtext.ui.editor.FindReferences">
+            <activeWhen>
+                <reference
+                    definitionId="org.eclipse.osbp.xtext.reportdsl.ReportDSL.Editor.opened">
+                </reference>
+            </activeWhen>
+        </handler>
+    </extension>   
+
+<!-- adding resource factories -->
+
+	<extension
+		point="org.eclipse.emf.ecore.extension_parser">
+		<parser
+			class="org.eclipse.osbp.xtext.reportdsl.ui.ReportDSLExecutableExtensionFactory:org.eclipse.xtext.resource.IResourceFactory"
+			type="report">
+		</parser>
+	</extension>
+	<extension point="org.eclipse.xtext.extension_resourceServiceProvider">
+        <resourceServiceProvider
+            class="org.eclipse.osbp.xtext.reportdsl.ui.ReportDSLExecutableExtensionFactory:org.eclipse.xtext.ui.resource.IResourceUIServiceProvider"
+            uriExtension="report">
+        </resourceServiceProvider>
+    </extension>
+
+
+	<!-- marker definitions for org.eclipse.osbp.xtext.reportdsl.ReportDSL -->
+	<extension
+	        id="reportdsl.check.fast"
+	        name="ReportDSL Problem"
+	        point="org.eclipse.core.resources.markers">
+	    <super type="org.eclipse.xtext.ui.check.fast"/>
+	    <persistent value="true"/>
+	</extension>
+	<extension
+	        id="reportdsl.check.normal"
+	        name="ReportDSL Problem"
+	        point="org.eclipse.core.resources.markers">
+	    <super type="org.eclipse.xtext.ui.check.normal"/>
+	    <persistent value="true"/>
+	</extension>
+	<extension
+	        id="reportdsl.check.expensive"
+	        name="ReportDSL 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.reportdsl.ui.ReportDSLExecutableExtensionFactory:org.eclipse.xtext.builder.IXtextBuilderParticipant"
+            fileExtensions="report"
+            >
+      </participant>
+   </extension>
+   <extension
+            point="org.eclipse.ui.preferencePages">
+        <page
+            category="org.eclipse.osbp.xtext.reportdsl.ReportDSL"
+            class="org.eclipse.osbp.xtext.reportdsl.ui.ReportDSLExecutableExtensionFactory:org.eclipse.xtext.builder.preferences.BuilderPreferencePage"
+            id="org.eclipse.osbp.xtext.reportdsl.ReportDSL.compiler.preferencePage"
+            name="Compiler">
+            <keywordReference id="org.eclipse.osbp.xtext.reportdsl.ui.keyword_ReportDSL"/>
+        </page>
+    </extension>
+    <extension
+            point="org.eclipse.ui.propertyPages">
+        <page
+            category="org.eclipse.osbp.xtext.reportdsl.ReportDSL"
+            class="org.eclipse.osbp.xtext.reportdsl.ui.ReportDSLExecutableExtensionFactory:org.eclipse.xtext.builder.preferences.BuilderPreferencePage"
+            id="org.eclipse.osbp.xtext.reportdsl.ReportDSL.compiler.propertyPage"
+            name="Compiler">
+            <keywordReference id="org.eclipse.osbp.xtext.reportdsl.ui.keyword_ReportDSL"/>
+            <enabledWhen>
+	            <adapt type="org.eclipse.core.resources.IProject"/>
+			</enabledWhen>
+	        <filter name="projectNature" value="org.eclipse.xtext.ui.shared.xtextNature"/>
+        </page>
+    </extension>
+
+	<!-- Quick Outline -->
+	<extension
+		point="org.eclipse.ui.handlers">
+		<handler 
+			class="org.eclipse.osbp.xtext.reportdsl.ui.ReportDSLExecutableExtensionFactory:org.eclipse.xtext.ui.editor.outline.quickoutline.ShowQuickOutlineActionHandler"
+			commandId="org.eclipse.xtext.ui.editor.outline.QuickOutline">
+			<activeWhen>
+				<reference
+					definitionId="org.eclipse.osbp.xtext.reportdsl.ReportDSL.Editor.opened">
+				</reference>
+			</activeWhen>
+		</handler>
+	</extension>
+	<extension
+		point="org.eclipse.ui.commands">
+		<command
+			description="Open the quick outline."
+			id="org.eclipse.xtext.ui.editor.outline.QuickOutline"
+			name="Quick Outline">
+		</command>
+	</extension>
+	<extension point="org.eclipse.ui.menus">
+		<menuContribution
+			locationURI="popup:#TextEditorContext?after=group.open">
+			<command commandId="org.eclipse.xtext.ui.editor.outline.QuickOutline"
+				style="push"
+				tooltip="Open Quick Outline">
+				<visibleWhen checkEnabled="false">
+					<reference definitionId="org.eclipse.osbp.xtext.reportdsl.ReportDSL.Editor.opened"/>
+				</visibleWhen>
+			</command>
+		</menuContribution>
+	</extension>
+    <!-- quickfix marker resolution generator for org.eclipse.osbp.xtext.reportdsl.ReportDSL -->
+    <extension
+            point="org.eclipse.ui.ide.markerResolution">
+        <markerResolutionGenerator
+            class="org.eclipse.osbp.xtext.reportdsl.ui.ReportDSLExecutableExtensionFactory:org.eclipse.xtext.ui.editor.quickfix.MarkerResolutionGenerator"
+            markerType="org.eclipse.osbp.xtext.reportdsl.ui.reportdsl.check.fast">
+            <attribute
+                name="FIXABLE_KEY"
+                value="true">
+            </attribute>
+        </markerResolutionGenerator>
+        <markerResolutionGenerator
+            class="org.eclipse.osbp.xtext.reportdsl.ui.ReportDSLExecutableExtensionFactory:org.eclipse.xtext.ui.editor.quickfix.MarkerResolutionGenerator"
+            markerType="org.eclipse.osbp.xtext.reportdsl.ui.reportdsl.check.normal">
+            <attribute
+                name="FIXABLE_KEY"
+                value="true">
+            </attribute>
+        </markerResolutionGenerator>
+        <markerResolutionGenerator
+            class="org.eclipse.osbp.xtext.reportdsl.ui.ReportDSLExecutableExtensionFactory:org.eclipse.xtext.ui.editor.quickfix.MarkerResolutionGenerator"
+            markerType="org.eclipse.osbp.xtext.reportdsl.ui.reportdsl.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.reportdsl.ui.ReportDSLExecutableExtensionFactory:org.eclipse.xtext.ui.refactoring.ui.DefaultRenameElementHandler"
+			commandId="org.eclipse.xtext.ui.refactoring.RenameElement">
+			<activeWhen>
+				<reference
+					definitionId="org.eclipse.osbp.xtext.reportdsl.ReportDSL.Editor.opened">
+				</reference>
+			</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.reportdsl.ReportDSL.Editor.opened">
+               </reference>
+            </visibleWhen>
+         </command>
+      </menuContribution>
+   </extension>
+   <extension point="org.eclipse.ui.preferencePages">
+	    <page
+	        category="org.eclipse.osbp.xtext.reportdsl.ReportDSL"
+	        class="org.eclipse.osbp.xtext.reportdsl.ui.ReportDSLExecutableExtensionFactory:org.eclipse.xtext.ui.refactoring.ui.RefactoringPreferencePage"
+	        id="org.eclipse.osbp.xtext.reportdsl.ReportDSL.refactoring"
+	        name="Refactoring">
+	        <keywordReference id="org.eclipse.osbp.xtext.reportdsl.ui.keyword_ReportDSL"/>
+	    </page>
+	</extension>
+
+<!-- Type Hierarchy  -->
+	<extension
+		point="org.eclipse.ui.handlers">
+		<handler 
+			class="org.eclipse.osbp.xtext.reportdsl.ui.ReportDSLExecutableExtensionFactory:org.eclipse.xtext.xbase.ui.hierarchy.OpenTypeHierarchyHandler"
+			commandId="org.eclipse.xtext.xbase.ui.hierarchy.OpenTypeHierarchy">
+			<activeWhen>
+				<reference
+					definitionId="org.eclipse.osbp.xtext.reportdsl.ReportDSL.Editor.opened">
+				</reference>
+			</activeWhen>
+		</handler>
+		<handler 
+			class="org.eclipse.osbp.xtext.reportdsl.ui.ReportDSLExecutableExtensionFactory:org.eclipse.xtext.xbase.ui.hierarchy.QuickTypeHierarchyHandler"
+			commandId="org.eclipse.jdt.ui.edit.text.java.open.hierarchy">
+			<activeWhen>
+				<reference
+					definitionId="org.eclipse.osbp.xtext.reportdsl.ReportDSL.Editor.opened">
+				</reference>
+			</activeWhen>
+		</handler>
+	</extension>
+	<extension point="org.eclipse.ui.menus">
+		<menuContribution
+			locationURI="popup:#TextEditorContext?after=group.open">
+			<command commandId="org.eclipse.xtext.xbase.ui.hierarchy.OpenTypeHierarchy"
+				style="push"
+				tooltip="Open Type Hierarchy">
+				<visibleWhen checkEnabled="false">
+					<reference definitionId="org.eclipse.osbp.xtext.reportdsl.ReportDSL.Editor.opened"/>
+				</visibleWhen>
+			</command>
+		</menuContribution>
+		<menuContribution
+			locationURI="popup:#TextEditorContext?after=group.open">
+			<command commandId="org.eclipse.jdt.ui.edit.text.java.open.hierarchy"
+				style="push"
+				tooltip="Quick Type Hierarchy">
+				<visibleWhen checkEnabled="false">
+					<reference definitionId="org.eclipse.osbp.xtext.reportdsl.ReportDSL.Editor.opened"/>
+				</visibleWhen>
+			</command>
+		</menuContribution>
+	</extension>
+	<!-- Call Hierachy -->
+	<extension
+		point="org.eclipse.ui.handlers">
+		<handler 
+			class="org.eclipse.osbp.xtext.reportdsl.ui.ReportDSLExecutableExtensionFactory:org.eclipse.xtext.xbase.ui.hierarchy.OpenCallHierachyHandler"
+			commandId="org.eclipse.xtext.xbase.ui.hierarchy.OpenCallHierarchy">
+			<activeWhen>
+				<reference
+					definitionId="org.eclipse.osbp.xtext.reportdsl.ReportDSL.Editor.opened">
+				</reference>
+			</activeWhen>
+		</handler>
+	</extension>
+	
+	<extension point="org.eclipse.ui.menus">
+		<menuContribution
+			locationURI="popup:#TextEditorContext?after=group.open">
+			<command commandId="org.eclipse.xtext.xbase.ui.hierarchy.OpenCallHierarchy"
+				style="push"
+				tooltip="Open Call Hierarchy">
+				<visibleWhen checkEnabled="false">
+					<reference definitionId="org.eclipse.osbp.xtext.reportdsl.ReportDSL.Editor.opened"/>
+				</visibleWhen>
+			</command>
+		</menuContribution>
+	</extension>
+	<extension
+         point="org.eclipse.core.runtime.adapters">
+      <factory class="org.eclipse.osbp.xtext.reportdsl.ui.ReportDSLExecutableExtensionFactory: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.reportdsl.ReportDSL" 
+                          id="org.eclipse.osbp.xtext.reportdsl.ReportDSL.rulerActions">
+	     <action
+	             label="Not Used"
+	             class="org.eclipse.osbp.xtext.reportdsl.ui.ReportDSLExecutableExtensionFactory:org.eclipse.debug.ui.actions.RulerToggleBreakpointActionDelegate"
+	             style="push"
+	             actionID="RulerDoubleClick"
+	             id="org.eclipse.osbp.xtext.reportdsl.ReportDSL.doubleClickBreakpointAction"/>
+	  </editorContribution>
+   </extension>
+   <extension point="org.eclipse.ui.popupMenus">
+      <viewerContribution
+         targetID="org.eclipse.osbp.xtext.reportdsl.ReportDSL.RulerContext"
+         id="org.eclipse.osbp.xtext.reportdsl.ReportDSL.RulerPopupActions">
+         <action
+            label="Toggle Breakpoint"
+            class="org.eclipse.osbp.xtext.reportdsl.ui.ReportDSLExecutableExtensionFactory:org.eclipse.debug.ui.actions.RulerToggleBreakpointActionDelegate"
+            menubarPath="debug"
+            id="org.eclipse.osbp.xtext.reportdsl.ReportDSL.rulerContextMenu.toggleBreakpointAction">
+         </action>
+         <action
+            label="Not used"
+            class="org.eclipse.osbp.xtext.reportdsl.ui.ReportDSLExecutableExtensionFactory:org.eclipse.debug.ui.actions.RulerEnableDisableBreakpointActionDelegate"
+            menubarPath="debug"
+            id="org.eclipse.osbp.xtext.reportdsl.ReportDSL.rulerContextMenu.enableDisableBreakpointAction">
+         </action>
+         <action
+           label="Breakpoint Properties"
+           helpContextId="breakpoint_properties_action_context"
+           class="org.eclipse.osbp.xtext.reportdsl.ui.ReportDSLExecutableExtensionFactory:org.eclipse.jdt.debug.ui.actions.JavaBreakpointPropertiesRulerActionDelegate"
+           menubarPath="group.properties"
+           id="org.eclipse.osbp.xtext.reportdsl.ReportDSL.rulerContextMenu.openBreapointPropertiesAction">
+         </action>
+      </viewerContribution>
+   </extension>
+    <!-- Introduce Local Variable Refactoring -->
+	<extension point="org.eclipse.ui.handlers">
+		<handler 
+			class="org.eclipse.osbp.xtext.reportdsl.ui.ReportDSLExecutableExtensionFactory:org.eclipse.xtext.xbase.ui.refactoring.ExtractVariableHandler"
+			commandId="org.eclipse.xtext.xbase.ui.refactoring.ExtractLocalVariable">
+			<activeWhen>
+				<reference
+					definitionId="org.eclipse.osbp.xtext.reportdsl.ReportDSL.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.refactoring.ExtractLocalVariable"
+               style="push">
+            <visibleWhen checkEnabled="false">
+               <reference
+                     definitionId="org.eclipse.osbp.xtext.reportdsl.ReportDSL.Editor.opened">
+               </reference>
+            </visibleWhen>
+         </command>
+      </menuContribution>
+   </extension>  
+   <!-- Open implementation -->
+   <extension point="org.eclipse.ui.handlers">
+      <handler
+            class="org.eclipse.osbp.xtext.reportdsl.ui.ReportDSLExecutableExtensionFactory:org.eclipse.xtext.xbase.ui.navigation.OpenImplementationHandler"
+            commandId="org.eclipse.xtext.xbase.ui.OpenImplementationCommand">
+            <activeWhen>
+				<reference
+					definitionId="org.eclipse.osbp.xtext.reportdsl.ReportDSL.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.reportdsl.ReportDSL.Editor.opened">
+              </reference>
+		</visibleWhen>
+         </command>
+      </menuContribution>
+   </extension>
+
+  <extension point="org.eclipse.compare.contentViewers">
+    <viewer id="org.eclipse.osbp.xtext.reportdsl.ReportDSL.compare.contentViewers"
+            class="org.eclipse.osbp.xtext.reportdsl.ui.ReportDSLExecutableExtensionFactory:org.eclipse.xtext.ui.compare.InjectableViewerCreator"
+            extensions="report">
+    </viewer>
+  </extension>
+  <extension point="org.eclipse.compare.contentMergeViewers">
+    <viewer id="org.eclipse.osbp.xtext.reportdsl.ReportDSL.compare.contentMergeViewers"
+            class="org.eclipse.osbp.xtext.reportdsl.ui.ReportDSLExecutableExtensionFactory:org.eclipse.xtext.ui.compare.InjectableViewerCreator"
+            extensions="report" label="ReportDSL Compare">
+     </viewer>
+  </extension>
+  <extension point="org.eclipse.ui.editors.documentProviders">
+    <provider id="org.eclipse.osbp.xtext.reportdsl.ReportDSL.editors.documentProviders"
+            class="org.eclipse.osbp.xtext.reportdsl.ui.ReportDSLExecutableExtensionFactory:org.eclipse.xtext.ui.editor.model.XtextDocumentProvider"
+            extensions="report">
+    </provider>
+  </extension>
+
+</plugin>
diff --git a/org.eclipse.osbp.xtext.reportdsl.ui/pom.xml b/org.eclipse.osbp.xtext.reportdsl.ui/pom.xml
new file mode 100644
index 0000000..95d77ac
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl.ui/pom.xml
@@ -0,0 +1,42 @@
+<?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.reportdsl.ui</artifactId>
+    <build>
+        <sourceDirectory>src</sourceDirectory>
+        <resources>
+            <resource>
+                <directory>src</directory>
+                <excludes>
+                    <exclude>**/*.java</exclude>
+                </excludes>
+            </resource>
+            <resource>
+                <directory>src-gen</directory>
+                <excludes>
+                    <exclude>**/*.java</exclude>
+                </excludes>
+            </resource>
+        </resources>
+        <plugins>
+        </plugins>
+    </build>
+    <packaging>eclipse-plugin</packaging>
+    <parent>
+        <groupId>org.eclipse.osbp.xtext.reportdsl</groupId>
+        <artifactId>org.eclipse.osbp.xtext.reportdsl.aggregator</artifactId>
+        <version>0.9.0-SNAPSHOT</version>
+        <relativePath>..</relativePath>
+    </parent>
+</project>
diff --git a/org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/AbstractReportDSLUiModule.java b/org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/AbstractReportDSLUiModule.java
new file mode 100644
index 0000000..f5a2d17
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/AbstractReportDSLUiModule.java
@@ -0,0 +1,375 @@
+/**
+ *                                                                            
+ *  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.reportdsl.ui;
+
+import org.eclipse.xtext.ui.DefaultUiModule;
+import org.eclipse.ui.plugin.AbstractUIPlugin;
+
+/**
+ * Manual modifications go to {org.eclipse.osbp.xtext.reportdsl.ui.ReportDSLUiModule}
+ */
+@SuppressWarnings("all")
+public abstract class AbstractReportDSLUiModule extends DefaultUiModule {
+	
+	public AbstractReportDSLUiModule(AbstractUIPlugin plugin) {
+		super(plugin);
+	}
+	
+	
+	// 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.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.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.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.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.reportdsl.parser.antlr.internal.InternalReportDSLLexer.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.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.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.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.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.generator.generator.GeneratorFragment
+	public Class<? extends org.eclipse.xtext.builder.IXtextBuilderParticipant> bindIXtextBuilderParticipant() {
+		return org.eclipse.xtext.builder.BuilderParticipant.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.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.ui.generator.labeling.LabelProviderFragment
+	public Class<? extends org.eclipse.jface.viewers.ILabelProvider> bindILabelProvider() {
+		return org.eclipse.osbp.xtext.reportdsl.ui.labeling.ReportDSLLabelProvider.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.reportdsl.ui.labeling.ReportDSLDescriptionLabelProvider.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.reportdsl.ui.outline.ReportDSLOutlineTreeProvider.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.reportdsl.ui.outline.ReportDSLOutlineTreeProvider.class;
+	}
+
+	// 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.reportdsl.ui.quickfix.ReportDSLQuickfixProvider.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.reportdsl.ui.contentassist.ReportDSLProposalProvider.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.generator.parser.antlr.XtextAntlrUiGeneratorFragment
+	public Class<? extends org.eclipse.xtext.ui.editor.contentassist.antlr.IContentAssistParser> bindIContentAssistParser() {
+		return org.eclipse.osbp.xtext.reportdsl.ui.contentassist.antlr.ReportDSLParser.class;
+	}
+
+	// contributed by org.eclipse.xtext.generator.parser.antlr.XtextAntlrUiGeneratorFragment
+	public void configureContentAssistLexerProvider(com.google.inject.Binder binder) {
+		binder.bind(org.eclipse.osbp.xtext.reportdsl.ui.contentassist.antlr.internal.InternalReportDSLLexer.class).toProvider(org.eclipse.xtext.parser.antlr.LexerProvider.create(org.eclipse.osbp.xtext.reportdsl.ui.contentassist.antlr.internal.InternalReportDSLLexer.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.reportdsl.ui.contentassist.antlr.internal.InternalReportDSLLexer.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.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.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.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.generator.types.TypesGeneratorFragment
+	public java.lang.ClassLoader bindClassLoaderToInstance() {
+		return getClass().getClassLoader();
+	}
+
+	// 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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.ui.generator.templates.CodetemplatesGeneratorFragment
+	public Class<? extends org.eclipse.xtext.ui.codetemplates.ui.partialEditing.IPartialContentAssistParser> bindIPartialContentAssistParser() {
+		return org.eclipse.osbp.xtext.reportdsl.ui.contentassist.antlr.PartialReportDSLContentAssistParser.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;
+	}
+
+
+}
diff --git a/org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/ReportDSLExecutableExtensionFactory.java b/org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/ReportDSLExecutableExtensionFactory.java
new file mode 100644
index 0000000..67922f1
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/ReportDSLExecutableExtensionFactory.java
@@ -0,0 +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
+ * 
+ */
+
+package org.eclipse.osbp.xtext.reportdsl.ui;
+
+import org.eclipse.xtext.ui.guice.AbstractGuiceAwareExecutableExtensionFactory;
+import org.osgi.framework.Bundle;
+
+import com.google.inject.Injector;
+
+import org.eclipse.osbp.xtext.reportdsl.ui.internal.ReportDSLActivator;
+
+/**
+ * This class was generated. Customizations should only happen in a newly
+ * introduced subclass. 
+ */
+public class ReportDSLExecutableExtensionFactory extends AbstractGuiceAwareExecutableExtensionFactory {
+
+	@Override
+	protected Bundle getBundle() {
+		return ReportDSLActivator.getInstance().getBundle();
+	}
+	
+	@Override
+	protected Injector getInjector() {
+		return ReportDSLActivator.getInstance().getInjector(ReportDSLActivator.ORG_ECLIPSE_OSBP_XTEXT_REPORTDSL_REPORTDSL);
+	}
+	
+}
diff --git a/org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/AbstractReportDSLProposalProvider.java b/org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/AbstractReportDSLProposalProvider.java
new file mode 100644
index 0000000..aa17d8d
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/AbstractReportDSLProposalProvider.java
@@ -0,0 +1,1066 @@
+/**
+ *                                                                            
+ *  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.reportdsl.ui.contentassist;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.xtext.*;
+import org.eclipse.xtext.ui.editor.contentassist.ICompletionProposalAcceptor;
+import org.eclipse.xtext.ui.editor.contentassist.ContentAssistContext;
+
+/**
+ * Represents a generated, default implementation of superclass {@link org.eclipse.xtext.xbase.annotations.ui.contentassist.XbaseWithAnnotationsProposalProvider}.
+ * Methods are dynamically dispatched on the first parameter, i.e., you can override them 
+ * with a more concrete subtype. 
+ */
+@SuppressWarnings("all")
+public class AbstractReportDSLProposalProvider extends org.eclipse.xtext.xbase.annotations.ui.contentassist.XbaseWithAnnotationsProposalProvider {
+		
+	public void completeReportModel_Pckg(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeReportPackage_Name(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeReportPackage_Imports(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeReportPackage_ExternalCssURI(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeReportPackage_ExternalCssURIBundle(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeReportPackage_Pagetemplates(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeReportPackage_Formatters(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeReportPackage_Colors(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeReportPackage_Fonts(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeReportPackage_Medias(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeReportPackage_Styles(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeReportPackage_Reports(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completePageTemplates_Pagetemplates(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeSomeFormats_Formatters(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeColors_Colors(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeFonts_Fonts(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeMedias_Medias(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeMedia_Name(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeStyles_Styles(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completePageTemplate_Name(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completePageTemplate_Size(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completePageTemplate_Orientation(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completePageTemplate_TopMarginValue(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completePageTemplate_TopMarginUnit(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completePageTemplate_LeftMarginValue(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completePageTemplate_LeftMarginUnit(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completePageTemplate_BottomMarginValue(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completePageTemplate_BottomMarginUnit(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completePageTemplate_RightMarginValue(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completePageTemplate_RightMarginUnit(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completePageTemplate_Header(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completePageTemplate_Footer(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeColor_Name(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeColor_Color(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeColor_Basecolor(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		lookupCrossReference(((CrossReference)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeColor_Darkensby(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeColor_Lightensby(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeColor_Transformsby(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeColor_Targetcolor(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		lookupCrossReference(((CrossReference)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeFont_Name(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeFont_Extends(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		lookupCrossReference(((CrossReference)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeFont_Family(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeFont_Style(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeFont_Bold(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
+	public void completeFont_Sizevalue(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeFont_Sizeunit(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeBuildInFontFamily_Custom(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeCustomFontFamily_Custom(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeBorderStyle_Type(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeBorderStyle_Widthvalue(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeBorderStyle_Widthunit(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeBorderStyle_Color(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		lookupCrossReference(((CrossReference)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeStyle_Name(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeStyle_Extends(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		lookupCrossReference(((CrossReference)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeStyle_Format(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		lookupCrossReference(((CrossReference)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeStyle_Font(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		lookupCrossReference(((CrossReference)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeStyle_Backgroundcolor(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		lookupCrossReference(((CrossReference)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeStyle_Backgroundcolor_alternate(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		lookupCrossReference(((CrossReference)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeStyle_Textcolor(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		lookupCrossReference(((CrossReference)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeStyle_Textalign(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeStyle_BorderTop(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeStyle_BorderBottom(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeStyle_BorderLeft(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeStyle_BorderRight(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeStyle_PaddingTopValue(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeStyle_PaddingTopUnit(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeStyle_PaddingBottomValue(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeStyle_PaddingBottomUnit(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeStyle_PaddingLeftValue(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeStyle_PaddingLeftUnit(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeStyle_PaddingRightValue(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeStyle_PaddingRightUnit(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeStyle_MarginTopValue(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeStyle_MarginTopUnit(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeStyle_MarginBottomValue(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeStyle_MarginBottomUnit(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeStyle_MarginLeftValue(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeStyle_MarginLeftUnit(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeStyle_MarginRightValue(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeStyle_MarginRightUnit(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeStyle_Mediastyles(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeMediaStyle_Media(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		lookupCrossReference(((CrossReference)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeMediaStyle_Format(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		lookupCrossReference(((CrossReference)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeMediaStyle_Font(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		lookupCrossReference(((CrossReference)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeMediaStyle_Backgroundcolor(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		lookupCrossReference(((CrossReference)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeMediaStyle_Backgroundcolor_alternate(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		lookupCrossReference(((CrossReference)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeMediaStyle_Textcolor(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		lookupCrossReference(((CrossReference)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeMediaStyle_Textalign(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeMediaStyle_BorderTop(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeMediaStyle_BorderBottom(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeMediaStyle_BorderLeft(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeMediaStyle_BorderRight(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeMediaStyle_PaddingTopValue(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeMediaStyle_PaddingTopUnit(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeMediaStyle_PaddingBottomValue(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeMediaStyle_PaddingBottomUnit(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeMediaStyle_PaddingLeftValue(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeMediaStyle_PaddingLeftUnit(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeMediaStyle_PaddingRightValue(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeMediaStyle_PaddingRightUnit(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeMediaStyle_MarginTopValue(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeMediaStyle_MarginTopUnit(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeMediaStyle_MarginBottomValue(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeMediaStyle_MarginBottomUnit(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeMediaStyle_MarginLeftValue(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeMediaStyle_MarginLeftUnit(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeMediaStyle_MarginRightValue(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeMediaStyle_MarginRightUnit(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeUomoFormat_Name(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeUomoFormat_Ui_pattern(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeUomoFormat_Report_pattern(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeUomoFormat_Textalign(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeNumberFormat_Name(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeNumberFormat_Ui_pattern(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeNumberFormat_Report_category(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeNumberFormat_Report_pattern(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeNumberFormat_Textalign(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeCurrencyFormat_Name(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeCurrencyFormat_Ui_pattern(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeCurrencyFormat_Report_category(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeCurrencyFormat_Report_pattern(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeCurrencyFormat_Textalign(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeDateFormat_Name(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeDateFormat_Ui_pattern(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeDateFormat_Report_category(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeDateFormat_Report_pattern(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeDateFormat_Textalign(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeDateTimeFormat_Name(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeDateTimeFormat_Ui_pattern(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeDateTimeFormat_Report_category(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeDateTimeFormat_Report_pattern(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeDateTimeFormat_Textalign(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeTimeFormat_Name(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeTimeFormat_Ui_pattern(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeTimeFormat_Report_category(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeTimeFormat_Report_pattern(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeTimeFormat_Textalign(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeReport_Name(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeReport_Description(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
+	public void completeReport_DescriptionValue(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeReport_Toolbar(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		lookupCrossReference(((CrossReference)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeReport_DatamartRef(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		lookupCrossReference(((CrossReference)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeReport_Rendering(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeReport_ExternalCssURI(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeReport_ExternalCssURIBundle(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeReport_PageTemplate(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		lookupCrossReference(((CrossReference)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeReport_Media(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		lookupCrossReference(((CrossReference)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeReport_Design(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeReportDesignFile_Name(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeReportDesignTemplate_Description(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeReportDesignTemplate_Header(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeReportDesignTemplate_Detail(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeReportDesignTemplate_Footer(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completePageHeader_ShowOnFirst(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
+	public void completePageHeader_HeightValue(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completePageHeader_HeightUnit(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completePageHeader_Elements(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completePageDetail_Elements(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completePageFooter_ShowOnLast(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
+	public void completePageFooter_HeightValue(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completePageFooter_HeightUnit(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completePageFooter_Elements(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeGrid_Name(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeGrid_Rows(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeGridRow_Name(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeGridRow_Style(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		lookupCrossReference(((CrossReference)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeGridRow_Cells(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeGridCell_Name(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeGridCell_Columnspan(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeGridCell_Elements(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeDatamartTable_Style(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		lookupCrossReference(((CrossReference)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeDatamartTable_Detailheader(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
+	public void completeDatamartTable_Headerstyle(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		lookupCrossReference(((CrossReference)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeDatamartTable_Detailfooter(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
+	public void completeDatamartTable_Footerstyle(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		lookupCrossReference(((CrossReference)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeDatamartTable_Groups(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeDatamartTable_Detail(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeDatamartTableGroup_Name(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeDatamartTableGroup_GroupingRef(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		lookupCrossReference(((CrossReference)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeDatamartTableGroup_Header(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeDatamartTableGroup_Detailheader(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
+	public void completeDatamartTableGroup_Headerstyle(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		lookupCrossReference(((CrossReference)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeDatamartTableGroup_Detailfooter(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
+	public void completeDatamartTableGroup_Footerstyle(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		lookupCrossReference(((CrossReference)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeDatamartTableGroup_Footer(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeDatamartTableGroupHeader_Style(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		lookupCrossReference(((CrossReference)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeDatamartTableGroupHeader_Rows(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeDatamartTableGroupFooter_Style(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		lookupCrossReference(((CrossReference)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeDatamartTableGroupFooter_Rows(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeDatamartTableDetail_Style(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		lookupCrossReference(((CrossReference)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeDatamartTableDetail_ColumnFormatters(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeDatamartTableProperty_Column(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeDatamartTableProperty_Style(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		lookupCrossReference(((CrossReference)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeDatamartTableProperty_HasImage(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
+	public void completeDatamartTableProperty_Image(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeDatamartTableProperty_HideLabelInterval(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
+	public void completeDatamartTableProperty_Intervals(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeDatamartTableProperty_HideLabelLookup(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
+	public void completeDatamartTableProperty_Lookups(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeTableFormatter_Format(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeTableImage_ImagePathPattern(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeTableImage_HasParameter(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
+	public void completeTableImage_HideImageLabel(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
+	public void completeTableImage_Resize(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
+	public void completeTableImage_ResizeString(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeTableProperty_ValueRef(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		lookupCrossReference(((CrossReference)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeTableAggregation_Aggregation(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeTableAggregation_OnGroup(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		lookupCrossReference(((CrossReference)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeTableAggregation_Text(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeTablePureAggregation_Aggregation(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeTableUnaryAggregation_Aggregation(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeTableUnaryAggregation_ValueRefs(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		lookupCrossReference(((CrossReference)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeTableMultipleAggregation_Aggregation(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeTableMultipleAggregation_ValueRefs(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		lookupCrossReference(((CrossReference)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeTableBinaryAggregation_Aggregation(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeTableBinaryAggregation_ValueRefs(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		lookupCrossReference(((CrossReference)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeTableNumberInterval_NumberIntervalValue(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeTableNumberInterval_NumberRange(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 completeTableNumberLookup_LookupValue(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeTableNumberLookup_Discrete(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeTableStringLookup_LookupValue(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeTableStringLookup_Discrete(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeTableDateDayLookup_LookupValue(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeTableDateDayLookup_Discrete(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeTableTextColor_Color(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		lookupCrossReference(((CrossReference)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeTableCellColor_Color(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		lookupCrossReference(((CrossReference)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeTableIcon_Icon(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeTableTrend_Icon(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeTitle_Text(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeTitle_Style(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		lookupCrossReference(((CrossReference)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeSubTitle_Text(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeSubTitle_Style(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		lookupCrossReference(((CrossReference)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeSubSubTitle_Text(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeSubSubTitle_Style(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		lookupCrossReference(((CrossReference)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeLabel_Text(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeLabel_Style(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		lookupCrossReference(((CrossReference)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeText_Text(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeText_Style(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		lookupCrossReference(((CrossReference)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeAutoText_Type(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeAutoText_Style(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		lookupCrossReference(((CrossReference)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeImage_Size(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeImage_Scale(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeImage_SourceType(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeImage_Filename(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeReportImport_ImportedNamespace(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+    
+	public void complete_ReportModel(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
+	public void complete_ReportPackage(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
+	public void complete_PageTemplates(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
+	public void complete_SomeFormats(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
+	public void complete_Colors(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
+	public void complete_Fonts(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
+	public void complete_Medias(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
+	public void complete_Media(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
+	public void complete_Styles(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
+	public void complete_PageTemplate(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
+	public void complete_UnsignedNumber(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
+	public void complete_UnitEnum(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
+	public void complete_PageSizeEnum(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
+	public void complete_OrientationEnum(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
+	public void complete_Color(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
+	public void complete_Font(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
+	public void complete_FontStyleEnum(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
+	public void complete_FontFamily(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
+	public void complete_BuildInFontFamily(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
+	public void complete_BuildInFontFamilyEnum(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
+	public void complete_CustomFontFamily(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
+	public void complete_BorderStyle(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
+	public void complete_Style(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
+	public void complete_MediaStyle(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
+	public void complete_TextAlignEnum(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
+	public void complete_SomeFormat(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
+	public void complete_UomoFormat(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
+	public void complete_NumberFormat(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
+	public void complete_NumberFormatCategoryEnum(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
+	public void complete_CurrencyFormat(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
+	public void complete_CurrencyFormatCategoryEnum(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
+	public void complete_DateFormat(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
+	public void complete_DateFormatCategoryEnum(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
+	public void complete_DateTimeFormat(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
+	public void complete_DateTimeFormatCategoryEnum(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
+	public void complete_TimeFormat(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
+	public void complete_TimeFormatCategoryEnum(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
+	public void complete_Report(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
+	public void complete_RenderingEnum(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
+	public void complete_ReportDesign(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
+	public void complete_ReportDesignFile(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
+	public void complete_ReportDesignTemplate(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
+	public void complete_Container(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
+	public void complete_PageHeader(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
+	public void complete_PageDetail(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
+	public void complete_PageFooter(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
+	public void complete_Element(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
+	public void complete_Grid(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
+	public void complete_GridRow(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
+	public void complete_GridCell(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
+	public void complete_DatamartTable(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
+	public void complete_DatamartTableGroup(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
+	public void complete_DatamartTableGroupHeader(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
+	public void complete_DatamartTableGroupFooter(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
+	public void complete_DatamartTableDetail(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
+	public void complete_DatamartTableProperty(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
+	public void complete_PureAggregationTypeEnum(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
+	public void complete_UnaryAggregationTypeEnum(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
+	public void complete_BinaryAggregationTypeEnum(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
+	public void complete_MultipleAggregationTypeEnum(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
+	public void complete_TableFormatter(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
+	public void complete_TableImage(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
+	public void complete_TableValueElement(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
+	public void complete_TableProperty(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
+	public void complete_TableAggregation(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
+	public void complete_TableBaseAggregation(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
+	public void complete_TablePureAggregation(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
+	public void complete_TableUnaryAggregation(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
+	public void complete_TableMultipleAggregation(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
+	public void complete_TableBinaryAggregation(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
+	public void complete_TableInterval(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
+	public void complete_TableNumberInterval(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_TableNumberLookup(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
+	public void complete_TableStringLookup(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
+	public void complete_TableDateDayLookup(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
+	public void complete_TableRangeElement(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
+	public void complete_SignedNumber(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
+	public void complete_TableTextColor(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
+	public void complete_TableCellColor(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
+	public void complete_TableIcon(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
+	public void complete_TableTrend(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
+	public void complete_TrendIconEnum(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
+	public void complete_Title(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
+	public void complete_SubTitle(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
+	public void complete_SubSubTitle(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
+	public void complete_Label(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
+	public void complete_Text(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
+	public void complete_AutoText(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
+	public void complete_BorderTypeEnum(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
+	public void complete_AutoTextEnum(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
+	public void complete_Image(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
+	public void complete_ImageSizeEnum(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
+	public void complete_ImageSourceEnum(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
+	public void complete_ReportImport(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
+	public void complete_ReportQualifiedNameWithWildCard(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
+	public void complete_TRANSLATABLESTRING(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
+}
diff --git a/org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/PartialReportDSLContentAssistParser.java b/org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/PartialReportDSLContentAssistParser.java
new file mode 100644
index 0000000..6b7b74c
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/PartialReportDSLContentAssistParser.java
@@ -0,0 +1,49 @@
+/**
+ *                                                                            
+ *  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.reportdsl.ui.contentassist.antlr;
+
+import java.util.Collection;
+import java.util.Collections;
+
+import org.eclipse.xtext.AbstractRule;
+import org.eclipse.xtext.ui.codetemplates.ui.partialEditing.IPartialContentAssistParser;
+import org.eclipse.xtext.ui.editor.contentassist.antlr.FollowElement;
+import org.eclipse.xtext.ui.editor.contentassist.antlr.internal.AbstractInternalContentAssistParser;
+import org.eclipse.xtext.util.PolymorphicDispatcher;
+
+/**
+ * @author Sebastian Zarnekow - Initial contribution and API
+ */
+@SuppressWarnings("restriction")
+public class PartialReportDSLContentAssistParser extends ReportDSLParser implements IPartialContentAssistParser {
+
+	private AbstractRule rule;
+
+	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.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/ReportDSLParser.java b/org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/ReportDSLParser.java
new file mode 100644
index 0000000..0218898
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/ReportDSLParser.java
@@ -0,0 +1,907 @@
+/**
+ *                                                                            
+ *  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.reportdsl.ui.contentassist.antlr;
+
+import java.util.Collection;
+import java.util.Map;
+import java.util.HashMap;
+
+import org.antlr.runtime.RecognitionException;
+import org.eclipse.xtext.AbstractElement;
+import org.eclipse.xtext.ui.editor.contentassist.antlr.AbstractContentAssistParser;
+import org.eclipse.xtext.ui.editor.contentassist.antlr.FollowElement;
+import org.eclipse.xtext.ui.editor.contentassist.antlr.internal.AbstractInternalContentAssistParser;
+
+import com.google.inject.Inject;
+
+import org.eclipse.osbp.xtext.reportdsl.services.ReportDSLGrammarAccess;
+
+public class ReportDSLParser extends AbstractContentAssistParser {
+	
+	@Inject
+	private ReportDSLGrammarAccess grammarAccess;
+	
+	private Map<AbstractElement, String> nameMappings;
+	
+	@Override
+	protected org.eclipse.osbp.xtext.reportdsl.ui.contentassist.antlr.internal.InternalReportDSLParser createParser() {
+		org.eclipse.osbp.xtext.reportdsl.ui.contentassist.antlr.internal.InternalReportDSLParser result = new org.eclipse.osbp.xtext.reportdsl.ui.contentassist.antlr.internal.InternalReportDSLParser(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.getColorAccess().getAlternatives_2(), "rule__Color__Alternatives_2");
+					put(grammarAccess.getFontFamilyAccess().getAlternatives(), "rule__FontFamily__Alternatives");
+					put(grammarAccess.getSomeFormatAccess().getAlternatives(), "rule__SomeFormat__Alternatives");
+					put(grammarAccess.getReportDesignAccess().getAlternatives(), "rule__ReportDesign__Alternatives");
+					put(grammarAccess.getContainerAccess().getAlternatives(), "rule__Container__Alternatives");
+					put(grammarAccess.getElementAccess().getAlternatives(), "rule__Element__Alternatives");
+					put(grammarAccess.getDatamartTableDetailAccess().getAlternatives_3(), "rule__DatamartTableDetail__Alternatives_3");
+					put(grammarAccess.getTableValueElementAccess().getAlternatives(), "rule__TableValueElement__Alternatives");
+					put(grammarAccess.getTableBaseAggregationAccess().getAlternatives(), "rule__TableBaseAggregation__Alternatives");
+					put(grammarAccess.getTableIntervalAccess().getAlternatives(), "rule__TableInterval__Alternatives");
+					put(grammarAccess.getTableLookupAccess().getAlternatives(), "rule__TableLookup__Alternatives");
+					put(grammarAccess.getTableRangeElementAccess().getAlternatives(), "rule__TableRangeElement__Alternatives");
+					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.getXImportDeclarationAccess().getAlternatives_1(), "rule__XImportDeclaration__Alternatives_1");
+					put(grammarAccess.getXImportDeclarationAccess().getAlternatives_1_0_3(), "rule__XImportDeclaration__Alternatives_1_0_3");
+					put(grammarAccess.getUnitEnumAccess().getAlternatives(), "rule__UnitEnum__Alternatives");
+					put(grammarAccess.getPageSizeEnumAccess().getAlternatives(), "rule__PageSizeEnum__Alternatives");
+					put(grammarAccess.getOrientationEnumAccess().getAlternatives(), "rule__OrientationEnum__Alternatives");
+					put(grammarAccess.getFontStyleEnumAccess().getAlternatives(), "rule__FontStyleEnum__Alternatives");
+					put(grammarAccess.getBuildInFontFamilyEnumAccess().getAlternatives(), "rule__BuildInFontFamilyEnum__Alternatives");
+					put(grammarAccess.getTextAlignEnumAccess().getAlternatives(), "rule__TextAlignEnum__Alternatives");
+					put(grammarAccess.getNumberFormatCategoryEnumAccess().getAlternatives(), "rule__NumberFormatCategoryEnum__Alternatives");
+					put(grammarAccess.getCurrencyFormatCategoryEnumAccess().getAlternatives(), "rule__CurrencyFormatCategoryEnum__Alternatives");
+					put(grammarAccess.getRenderingEnumAccess().getAlternatives(), "rule__RenderingEnum__Alternatives");
+					put(grammarAccess.getPureAggregationTypeEnumAccess().getAlternatives(), "rule__PureAggregationTypeEnum__Alternatives");
+					put(grammarAccess.getUnaryAggregationTypeEnumAccess().getAlternatives(), "rule__UnaryAggregationTypeEnum__Alternatives");
+					put(grammarAccess.getTrendIconEnumAccess().getAlternatives(), "rule__TrendIconEnum__Alternatives");
+					put(grammarAccess.getBorderTypeEnumAccess().getAlternatives(), "rule__BorderTypeEnum__Alternatives");
+					put(grammarAccess.getAutoTextEnumAccess().getAlternatives(), "rule__AutoTextEnum__Alternatives");
+					put(grammarAccess.getImageSizeEnumAccess().getAlternatives(), "rule__ImageSizeEnum__Alternatives");
+					put(grammarAccess.getImageSourceEnumAccess().getAlternatives(), "rule__ImageSourceEnum__Alternatives");
+					put(grammarAccess.getReportPackageAccess().getGroup(), "rule__ReportPackage__Group__0");
+					put(grammarAccess.getReportPackageAccess().getGroup_5(), "rule__ReportPackage__Group_5__0");
+					put(grammarAccess.getReportPackageAccess().getGroup_5_2(), "rule__ReportPackage__Group_5_2__0");
+					put(grammarAccess.getReportPackageAccess().getGroup_5_2_2(), "rule__ReportPackage__Group_5_2_2__0");
+					put(grammarAccess.getPageTemplatesAccess().getGroup(), "rule__PageTemplates__Group__0");
+					put(grammarAccess.getSomeFormatsAccess().getGroup(), "rule__SomeFormats__Group__0");
+					put(grammarAccess.getColorsAccess().getGroup(), "rule__Colors__Group__0");
+					put(grammarAccess.getFontsAccess().getGroup(), "rule__Fonts__Group__0");
+					put(grammarAccess.getMediasAccess().getGroup(), "rule__Medias__Group__0");
+					put(grammarAccess.getMediaAccess().getGroup(), "rule__Media__Group__0");
+					put(grammarAccess.getStylesAccess().getGroup(), "rule__Styles__Group__0");
+					put(grammarAccess.getPageTemplateAccess().getGroup(), "rule__PageTemplate__Group__0");
+					put(grammarAccess.getColorAccess().getGroup(), "rule__Color__Group__0");
+					put(grammarAccess.getColorAccess().getGroup_2_1(), "rule__Color__Group_2_1__0");
+					put(grammarAccess.getColorAccess().getGroup_2_2(), "rule__Color__Group_2_2__0");
+					put(grammarAccess.getColorAccess().getGroup_2_3(), "rule__Color__Group_2_3__0");
+					put(grammarAccess.getFontAccess().getGroup_0(), "rule__Font__Group_0__0");
+					put(grammarAccess.getFontAccess().getGroup_0_3(), "rule__Font__Group_0_3__0");
+					put(grammarAccess.getFontAccess().getGroup_0_4(), "rule__Font__Group_0_4__0");
+					put(grammarAccess.getFontAccess().getGroup_3(), "rule__Font__Group_3__0");
+					put(grammarAccess.getFontAccess().getGroup_3_0(), "rule__Font__Group_3_0__0");
+					put(grammarAccess.getBorderStyleAccess().getGroup(), "rule__BorderStyle__Group__0");
+					put(grammarAccess.getStyleAccess().getGroup(), "rule__Style__Group__0");
+					put(grammarAccess.getStyleAccess().getGroup_3(), "rule__Style__Group_3__0");
+					put(grammarAccess.getStyleAccess().getGroup_4_0(), "rule__Style__Group_4_0__0");
+					put(grammarAccess.getStyleAccess().getGroup_4_1(), "rule__Style__Group_4_1__0");
+					put(grammarAccess.getStyleAccess().getGroup_4_2(), "rule__Style__Group_4_2__0");
+					put(grammarAccess.getStyleAccess().getGroup_4_2_2(), "rule__Style__Group_4_2_2__0");
+					put(grammarAccess.getStyleAccess().getGroup_4_3(), "rule__Style__Group_4_3__0");
+					put(grammarAccess.getStyleAccess().getGroup_4_4(), "rule__Style__Group_4_4__0");
+					put(grammarAccess.getStyleAccess().getGroup_4_5(), "rule__Style__Group_4_5__0");
+					put(grammarAccess.getStyleAccess().getGroup_4_6(), "rule__Style__Group_4_6__0");
+					put(grammarAccess.getStyleAccess().getGroup_4_7(), "rule__Style__Group_4_7__0");
+					put(grammarAccess.getStyleAccess().getGroup_4_8(), "rule__Style__Group_4_8__0");
+					put(grammarAccess.getStyleAccess().getGroup_4_9(), "rule__Style__Group_4_9__0");
+					put(grammarAccess.getStyleAccess().getGroup_4_10(), "rule__Style__Group_4_10__0");
+					put(grammarAccess.getStyleAccess().getGroup_4_11(), "rule__Style__Group_4_11__0");
+					put(grammarAccess.getStyleAccess().getGroup_4_12(), "rule__Style__Group_4_12__0");
+					put(grammarAccess.getStyleAccess().getGroup_4_13(), "rule__Style__Group_4_13__0");
+					put(grammarAccess.getStyleAccess().getGroup_4_14(), "rule__Style__Group_4_14__0");
+					put(grammarAccess.getStyleAccess().getGroup_4_15(), "rule__Style__Group_4_15__0");
+					put(grammarAccess.getStyleAccess().getGroup_4_16(), "rule__Style__Group_4_16__0");
+					put(grammarAccess.getMediaStyleAccess().getGroup(), "rule__MediaStyle__Group__0");
+					put(grammarAccess.getMediaStyleAccess().getGroup_3_0(), "rule__MediaStyle__Group_3_0__0");
+					put(grammarAccess.getMediaStyleAccess().getGroup_3_1(), "rule__MediaStyle__Group_3_1__0");
+					put(grammarAccess.getMediaStyleAccess().getGroup_3_2(), "rule__MediaStyle__Group_3_2__0");
+					put(grammarAccess.getMediaStyleAccess().getGroup_3_2_2(), "rule__MediaStyle__Group_3_2_2__0");
+					put(grammarAccess.getMediaStyleAccess().getGroup_3_3(), "rule__MediaStyle__Group_3_3__0");
+					put(grammarAccess.getMediaStyleAccess().getGroup_3_4(), "rule__MediaStyle__Group_3_4__0");
+					put(grammarAccess.getMediaStyleAccess().getGroup_3_5(), "rule__MediaStyle__Group_3_5__0");
+					put(grammarAccess.getMediaStyleAccess().getGroup_3_6(), "rule__MediaStyle__Group_3_6__0");
+					put(grammarAccess.getMediaStyleAccess().getGroup_3_7(), "rule__MediaStyle__Group_3_7__0");
+					put(grammarAccess.getMediaStyleAccess().getGroup_3_8(), "rule__MediaStyle__Group_3_8__0");
+					put(grammarAccess.getMediaStyleAccess().getGroup_3_9(), "rule__MediaStyle__Group_3_9__0");
+					put(grammarAccess.getMediaStyleAccess().getGroup_3_10(), "rule__MediaStyle__Group_3_10__0");
+					put(grammarAccess.getMediaStyleAccess().getGroup_3_11(), "rule__MediaStyle__Group_3_11__0");
+					put(grammarAccess.getMediaStyleAccess().getGroup_3_12(), "rule__MediaStyle__Group_3_12__0");
+					put(grammarAccess.getMediaStyleAccess().getGroup_3_13(), "rule__MediaStyle__Group_3_13__0");
+					put(grammarAccess.getMediaStyleAccess().getGroup_3_14(), "rule__MediaStyle__Group_3_14__0");
+					put(grammarAccess.getMediaStyleAccess().getGroup_3_15(), "rule__MediaStyle__Group_3_15__0");
+					put(grammarAccess.getMediaStyleAccess().getGroup_3_16(), "rule__MediaStyle__Group_3_16__0");
+					put(grammarAccess.getUomoFormatAccess().getGroup(), "rule__UomoFormat__Group__0");
+					put(grammarAccess.getNumberFormatAccess().getGroup(), "rule__NumberFormat__Group__0");
+					put(grammarAccess.getCurrencyFormatAccess().getGroup(), "rule__CurrencyFormat__Group__0");
+					put(grammarAccess.getDateFormatAccess().getGroup(), "rule__DateFormat__Group__0");
+					put(grammarAccess.getDateTimeFormatAccess().getGroup(), "rule__DateTimeFormat__Group__0");
+					put(grammarAccess.getTimeFormatAccess().getGroup(), "rule__TimeFormat__Group__0");
+					put(grammarAccess.getReportAccess().getGroup(), "rule__Report__Group__0");
+					put(grammarAccess.getReportAccess().getGroup_2(), "rule__Report__Group_2__0");
+					put(grammarAccess.getReportAccess().getGroup_3(), "rule__Report__Group_3__0");
+					put(grammarAccess.getReportAccess().getGroup_9(), "rule__Report__Group_9__0");
+					put(grammarAccess.getReportAccess().getGroup_9_2(), "rule__Report__Group_9_2__0");
+					put(grammarAccess.getReportDesignFileAccess().getGroup(), "rule__ReportDesignFile__Group__0");
+					put(grammarAccess.getReportDesignTemplateAccess().getGroup(), "rule__ReportDesignTemplate__Group__0");
+					put(grammarAccess.getReportDesignTemplateAccess().getGroup_2(), "rule__ReportDesignTemplate__Group_2__0");
+					put(grammarAccess.getPageHeaderAccess().getGroup(), "rule__PageHeader__Group__0");
+					put(grammarAccess.getPageDetailAccess().getGroup(), "rule__PageDetail__Group__0");
+					put(grammarAccess.getPageFooterAccess().getGroup(), "rule__PageFooter__Group__0");
+					put(grammarAccess.getGridAccess().getGroup(), "rule__Grid__Group__0");
+					put(grammarAccess.getGridAccess().getGroup_2(), "rule__Grid__Group_2__0");
+					put(grammarAccess.getGridRowAccess().getGroup(), "rule__GridRow__Group__0");
+					put(grammarAccess.getGridRowAccess().getGroup_2(), "rule__GridRow__Group_2__0");
+					put(grammarAccess.getGridRowAccess().getGroup_3(), "rule__GridRow__Group_3__0");
+					put(grammarAccess.getGridCellAccess().getGroup(), "rule__GridCell__Group__0");
+					put(grammarAccess.getGridCellAccess().getGroup_2(), "rule__GridCell__Group_2__0");
+					put(grammarAccess.getGridCellAccess().getGroup_3(), "rule__GridCell__Group_3__0");
+					put(grammarAccess.getDatamartTableAccess().getGroup(), "rule__DatamartTable__Group__0");
+					put(grammarAccess.getDatamartTableAccess().getGroup_1(), "rule__DatamartTable__Group_1__0");
+					put(grammarAccess.getDatamartTableAccess().getGroup_3(), "rule__DatamartTable__Group_3__0");
+					put(grammarAccess.getDatamartTableAccess().getGroup_3_1(), "rule__DatamartTable__Group_3_1__0");
+					put(grammarAccess.getDatamartTableAccess().getGroup_4(), "rule__DatamartTable__Group_4__0");
+					put(grammarAccess.getDatamartTableAccess().getGroup_4_1(), "rule__DatamartTable__Group_4_1__0");
+					put(grammarAccess.getDatamartTableGroupAccess().getGroup(), "rule__DatamartTableGroup__Group__0");
+					put(grammarAccess.getDatamartTableGroupAccess().getGroup_6(), "rule__DatamartTableGroup__Group_6__0");
+					put(grammarAccess.getDatamartTableGroupAccess().getGroup_6_1(), "rule__DatamartTableGroup__Group_6_1__0");
+					put(grammarAccess.getDatamartTableGroupAccess().getGroup_7(), "rule__DatamartTableGroup__Group_7__0");
+					put(grammarAccess.getDatamartTableGroupAccess().getGroup_7_1(), "rule__DatamartTableGroup__Group_7_1__0");
+					put(grammarAccess.getDatamartTableGroupHeaderAccess().getGroup(), "rule__DatamartTableGroupHeader__Group__0");
+					put(grammarAccess.getDatamartTableGroupHeaderAccess().getGroup_2(), "rule__DatamartTableGroupHeader__Group_2__0");
+					put(grammarAccess.getDatamartTableGroupFooterAccess().getGroup(), "rule__DatamartTableGroupFooter__Group__0");
+					put(grammarAccess.getDatamartTableGroupFooterAccess().getGroup_2(), "rule__DatamartTableGroupFooter__Group_2__0");
+					put(grammarAccess.getDatamartTableDetailAccess().getGroup(), "rule__DatamartTableDetail__Group__0");
+					put(grammarAccess.getDatamartTableDetailAccess().getGroup_2(), "rule__DatamartTableDetail__Group_2__0");
+					put(grammarAccess.getDatamartTableDetailAccess().getGroup_3_1(), "rule__DatamartTableDetail__Group_3_1__0");
+					put(grammarAccess.getDatamartTablePropertyAccess().getGroup(), "rule__DatamartTableProperty__Group__0");
+					put(grammarAccess.getDatamartTablePropertyAccess().getGroup_1_0(), "rule__DatamartTableProperty__Group_1_0__0");
+					put(grammarAccess.getDatamartTablePropertyAccess().getGroup_1_1(), "rule__DatamartTableProperty__Group_1_1__0");
+					put(grammarAccess.getDatamartTablePropertyAccess().getGroup_1_2(), "rule__DatamartTableProperty__Group_1_2__0");
+					put(grammarAccess.getDatamartTablePropertyAccess().getGroup_1_3(), "rule__DatamartTableProperty__Group_1_3__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.getTablePropertyAccess().getGroup(), "rule__TableProperty__Group__0");
+					put(grammarAccess.getTableAggregationAccess().getGroup(), "rule__TableAggregation__Group__0");
+					put(grammarAccess.getTableAggregationAccess().getGroup_2_0(), "rule__TableAggregation__Group_2_0__0");
+					put(grammarAccess.getTableAggregationAccess().getGroup_2_1(), "rule__TableAggregation__Group_2_1__0");
+					put(grammarAccess.getTableUnaryAggregationAccess().getGroup(), "rule__TableUnaryAggregation__Group__0");
+					put(grammarAccess.getTableMultipleAggregationAccess().getGroup(), "rule__TableMultipleAggregation__Group__0");
+					put(grammarAccess.getTableBinaryAggregationAccess().getGroup(), "rule__TableBinaryAggregation__Group__0");
+					put(grammarAccess.getTableNumberIntervalAccess().getGroup(), "rule__TableNumberInterval__Group__0");
+					put(grammarAccess.getTableDateDayIntervalAccess().getGroup(), "rule__TableDateDayInterval__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.getSignedNumberAccess().getGroup(), "rule__SignedNumber__Group__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.getTitleAccess().getGroup(), "rule__Title__Group__0");
+					put(grammarAccess.getTitleAccess().getGroup_3(), "rule__Title__Group_3__0");
+					put(grammarAccess.getSubTitleAccess().getGroup(), "rule__SubTitle__Group__0");
+					put(grammarAccess.getSubTitleAccess().getGroup_3(), "rule__SubTitle__Group_3__0");
+					put(grammarAccess.getSubSubTitleAccess().getGroup(), "rule__SubSubTitle__Group__0");
+					put(grammarAccess.getSubSubTitleAccess().getGroup_3(), "rule__SubSubTitle__Group_3__0");
+					put(grammarAccess.getLabelAccess().getGroup(), "rule__Label__Group__0");
+					put(grammarAccess.getLabelAccess().getGroup_3(), "rule__Label__Group_3__0");
+					put(grammarAccess.getTextAccess().getGroup(), "rule__Text__Group__0");
+					put(grammarAccess.getTextAccess().getGroup_3(), "rule__Text__Group_3__0");
+					put(grammarAccess.getAutoTextAccess().getGroup(), "rule__AutoText__Group__0");
+					put(grammarAccess.getAutoTextAccess().getGroup_2(), "rule__AutoText__Group_2__0");
+					put(grammarAccess.getImageAccess().getGroup(), "rule__Image__Group__0");
+					put(grammarAccess.getImageAccess().getGroup_2(), "rule__Image__Group_2__0");
+					put(grammarAccess.getReportImportAccess().getGroup(), "rule__ReportImport__Group__0");
+					put(grammarAccess.getReportQualifiedNameWithWildCardAccess().getGroup(), "rule__ReportQualifiedNameWithWildCard__Group__0");
+					put(grammarAccess.getReportQualifiedNameWithWildCardAccess().getGroup_1(), "rule__ReportQualifiedNameWithWildCard__Group_1__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.getXImportDeclarationAccess().getGroup(), "rule__XImportDeclaration__Group__0");
+					put(grammarAccess.getXImportDeclarationAccess().getGroup_1_0(), "rule__XImportDeclaration__Group_1_0__0");
+					put(grammarAccess.getQualifiedNameInStaticImportAccess().getGroup(), "rule__QualifiedNameInStaticImport__Group__0");
+					put(grammarAccess.getReportModelAccess().getPckgAssignment(), "rule__ReportModel__PckgAssignment");
+					put(grammarAccess.getReportPackageAccess().getNameAssignment_2(), "rule__ReportPackage__NameAssignment_2");
+					put(grammarAccess.getReportPackageAccess().getImportsAssignment_4(), "rule__ReportPackage__ImportsAssignment_4");
+					put(grammarAccess.getReportPackageAccess().getExternalCssURIAssignment_5_2_1(), "rule__ReportPackage__ExternalCssURIAssignment_5_2_1");
+					put(grammarAccess.getReportPackageAccess().getExternalCssURIBundleAssignment_5_2_2_1(), "rule__ReportPackage__ExternalCssURIBundleAssignment_5_2_2_1");
+					put(grammarAccess.getReportPackageAccess().getPagetemplatesAssignment_5_3(), "rule__ReportPackage__PagetemplatesAssignment_5_3");
+					put(grammarAccess.getReportPackageAccess().getFormattersAssignment_5_4(), "rule__ReportPackage__FormattersAssignment_5_4");
+					put(grammarAccess.getReportPackageAccess().getColorsAssignment_5_5(), "rule__ReportPackage__ColorsAssignment_5_5");
+					put(grammarAccess.getReportPackageAccess().getFontsAssignment_5_6(), "rule__ReportPackage__FontsAssignment_5_6");
+					put(grammarAccess.getReportPackageAccess().getMediasAssignment_5_7(), "rule__ReportPackage__MediasAssignment_5_7");
+					put(grammarAccess.getReportPackageAccess().getStylesAssignment_5_8(), "rule__ReportPackage__StylesAssignment_5_8");
+					put(grammarAccess.getReportPackageAccess().getReportsAssignment_6(), "rule__ReportPackage__ReportsAssignment_6");
+					put(grammarAccess.getPageTemplatesAccess().getPagetemplatesAssignment_1(), "rule__PageTemplates__PagetemplatesAssignment_1");
+					put(grammarAccess.getSomeFormatsAccess().getFormattersAssignment_3(), "rule__SomeFormats__FormattersAssignment_3");
+					put(grammarAccess.getColorsAccess().getColorsAssignment_3(), "rule__Colors__ColorsAssignment_3");
+					put(grammarAccess.getFontsAccess().getFontsAssignment_3(), "rule__Fonts__FontsAssignment_3");
+					put(grammarAccess.getMediasAccess().getMediasAssignment_3(), "rule__Medias__MediasAssignment_3");
+					put(grammarAccess.getMediaAccess().getNameAssignment_1(), "rule__Media__NameAssignment_1");
+					put(grammarAccess.getStylesAccess().getStylesAssignment_3(), "rule__Styles__StylesAssignment_3");
+					put(grammarAccess.getPageTemplateAccess().getNameAssignment_1(), "rule__PageTemplate__NameAssignment_1");
+					put(grammarAccess.getPageTemplateAccess().getSizeAssignment_4(), "rule__PageTemplate__SizeAssignment_4");
+					put(grammarAccess.getPageTemplateAccess().getOrientationAssignment_6(), "rule__PageTemplate__OrientationAssignment_6");
+					put(grammarAccess.getPageTemplateAccess().getTopMarginValueAssignment_8(), "rule__PageTemplate__TopMarginValueAssignment_8");
+					put(grammarAccess.getPageTemplateAccess().getTopMarginUnitAssignment_9(), "rule__PageTemplate__TopMarginUnitAssignment_9");
+					put(grammarAccess.getPageTemplateAccess().getLeftMarginValueAssignment_11(), "rule__PageTemplate__LeftMarginValueAssignment_11");
+					put(grammarAccess.getPageTemplateAccess().getLeftMarginUnitAssignment_12(), "rule__PageTemplate__LeftMarginUnitAssignment_12");
+					put(grammarAccess.getPageTemplateAccess().getBottomMarginValueAssignment_14(), "rule__PageTemplate__BottomMarginValueAssignment_14");
+					put(grammarAccess.getPageTemplateAccess().getBottomMarginUnitAssignment_15(), "rule__PageTemplate__BottomMarginUnitAssignment_15");
+					put(grammarAccess.getPageTemplateAccess().getRightMarginValueAssignment_17(), "rule__PageTemplate__RightMarginValueAssignment_17");
+					put(grammarAccess.getPageTemplateAccess().getRightMarginUnitAssignment_18(), "rule__PageTemplate__RightMarginUnitAssignment_18");
+					put(grammarAccess.getPageTemplateAccess().getHeaderAssignment_19(), "rule__PageTemplate__HeaderAssignment_19");
+					put(grammarAccess.getPageTemplateAccess().getFooterAssignment_20(), "rule__PageTemplate__FooterAssignment_20");
+					put(grammarAccess.getColorAccess().getNameAssignment_1(), "rule__Color__NameAssignment_1");
+					put(grammarAccess.getColorAccess().getColorAssignment_2_0(), "rule__Color__ColorAssignment_2_0");
+					put(grammarAccess.getColorAccess().getBasecolorAssignment_2_1_1(), "rule__Color__BasecolorAssignment_2_1_1");
+					put(grammarAccess.getColorAccess().getDarkensbyAssignment_2_1_3(), "rule__Color__DarkensbyAssignment_2_1_3");
+					put(grammarAccess.getColorAccess().getBasecolorAssignment_2_2_1(), "rule__Color__BasecolorAssignment_2_2_1");
+					put(grammarAccess.getColorAccess().getLightensbyAssignment_2_2_3(), "rule__Color__LightensbyAssignment_2_2_3");
+					put(grammarAccess.getColorAccess().getBasecolorAssignment_2_3_1(), "rule__Color__BasecolorAssignment_2_3_1");
+					put(grammarAccess.getColorAccess().getTransformsbyAssignment_2_3_3(), "rule__Color__TransformsbyAssignment_2_3_3");
+					put(grammarAccess.getColorAccess().getTargetcolorAssignment_2_3_5(), "rule__Color__TargetcolorAssignment_2_3_5");
+					put(grammarAccess.getFontAccess().getNameAssignment_0_1(), "rule__Font__NameAssignment_0_1");
+					put(grammarAccess.getFontAccess().getExtendsAssignment_0_3_1(), "rule__Font__ExtendsAssignment_0_3_1");
+					put(grammarAccess.getFontAccess().getFamilyAssignment_0_4_1(), "rule__Font__FamilyAssignment_0_4_1");
+					put(grammarAccess.getFontAccess().getStyleAssignment_1(), "rule__Font__StyleAssignment_1");
+					put(grammarAccess.getFontAccess().getBoldAssignment_2(), "rule__Font__BoldAssignment_2");
+					put(grammarAccess.getFontAccess().getSizevalueAssignment_3_0_1(), "rule__Font__SizevalueAssignment_3_0_1");
+					put(grammarAccess.getFontAccess().getSizeunitAssignment_3_0_2(), "rule__Font__SizeunitAssignment_3_0_2");
+					put(grammarAccess.getBuildInFontFamilyAccess().getCustomAssignment(), "rule__BuildInFontFamily__CustomAssignment");
+					put(grammarAccess.getCustomFontFamilyAccess().getCustomAssignment(), "rule__CustomFontFamily__CustomAssignment");
+					put(grammarAccess.getBorderStyleAccess().getTypeAssignment_0(), "rule__BorderStyle__TypeAssignment_0");
+					put(grammarAccess.getBorderStyleAccess().getWidthvalueAssignment_1(), "rule__BorderStyle__WidthvalueAssignment_1");
+					put(grammarAccess.getBorderStyleAccess().getWidthunitAssignment_2(), "rule__BorderStyle__WidthunitAssignment_2");
+					put(grammarAccess.getBorderStyleAccess().getColorAssignment_3(), "rule__BorderStyle__ColorAssignment_3");
+					put(grammarAccess.getStyleAccess().getNameAssignment_1(), "rule__Style__NameAssignment_1");
+					put(grammarAccess.getStyleAccess().getExtendsAssignment_3_1(), "rule__Style__ExtendsAssignment_3_1");
+					put(grammarAccess.getStyleAccess().getFormatAssignment_4_0_1(), "rule__Style__FormatAssignment_4_0_1");
+					put(grammarAccess.getStyleAccess().getFontAssignment_4_1_1(), "rule__Style__FontAssignment_4_1_1");
+					put(grammarAccess.getStyleAccess().getBackgroundcolorAssignment_4_2_1(), "rule__Style__BackgroundcolorAssignment_4_2_1");
+					put(grammarAccess.getStyleAccess().getBackgroundcolor_alternateAssignment_4_2_2_1(), "rule__Style__Backgroundcolor_alternateAssignment_4_2_2_1");
+					put(grammarAccess.getStyleAccess().getTextcolorAssignment_4_3_1(), "rule__Style__TextcolorAssignment_4_3_1");
+					put(grammarAccess.getStyleAccess().getTextalignAssignment_4_4_1(), "rule__Style__TextalignAssignment_4_4_1");
+					put(grammarAccess.getStyleAccess().getBorderTopAssignment_4_5_1(), "rule__Style__BorderTopAssignment_4_5_1");
+					put(grammarAccess.getStyleAccess().getBorderBottomAssignment_4_6_1(), "rule__Style__BorderBottomAssignment_4_6_1");
+					put(grammarAccess.getStyleAccess().getBorderLeftAssignment_4_7_1(), "rule__Style__BorderLeftAssignment_4_7_1");
+					put(grammarAccess.getStyleAccess().getBorderRightAssignment_4_8_1(), "rule__Style__BorderRightAssignment_4_8_1");
+					put(grammarAccess.getStyleAccess().getPaddingTopValueAssignment_4_9_1(), "rule__Style__PaddingTopValueAssignment_4_9_1");
+					put(grammarAccess.getStyleAccess().getPaddingTopUnitAssignment_4_9_2(), "rule__Style__PaddingTopUnitAssignment_4_9_2");
+					put(grammarAccess.getStyleAccess().getPaddingBottomValueAssignment_4_10_1(), "rule__Style__PaddingBottomValueAssignment_4_10_1");
+					put(grammarAccess.getStyleAccess().getPaddingBottomUnitAssignment_4_10_2(), "rule__Style__PaddingBottomUnitAssignment_4_10_2");
+					put(grammarAccess.getStyleAccess().getPaddingLeftValueAssignment_4_11_1(), "rule__Style__PaddingLeftValueAssignment_4_11_1");
+					put(grammarAccess.getStyleAccess().getPaddingLeftUnitAssignment_4_11_2(), "rule__Style__PaddingLeftUnitAssignment_4_11_2");
+					put(grammarAccess.getStyleAccess().getPaddingRightValueAssignment_4_12_1(), "rule__Style__PaddingRightValueAssignment_4_12_1");
+					put(grammarAccess.getStyleAccess().getPaddingRightUnitAssignment_4_12_2(), "rule__Style__PaddingRightUnitAssignment_4_12_2");
+					put(grammarAccess.getStyleAccess().getMarginTopValueAssignment_4_13_1(), "rule__Style__MarginTopValueAssignment_4_13_1");
+					put(grammarAccess.getStyleAccess().getMarginTopUnitAssignment_4_13_2(), "rule__Style__MarginTopUnitAssignment_4_13_2");
+					put(grammarAccess.getStyleAccess().getMarginBottomValueAssignment_4_14_1(), "rule__Style__MarginBottomValueAssignment_4_14_1");
+					put(grammarAccess.getStyleAccess().getMarginBottomUnitAssignment_4_14_2(), "rule__Style__MarginBottomUnitAssignment_4_14_2");
+					put(grammarAccess.getStyleAccess().getMarginLeftValueAssignment_4_15_1(), "rule__Style__MarginLeftValueAssignment_4_15_1");
+					put(grammarAccess.getStyleAccess().getMarginLeftUnitAssignment_4_15_2(), "rule__Style__MarginLeftUnitAssignment_4_15_2");
+					put(grammarAccess.getStyleAccess().getMarginRightValueAssignment_4_16_1(), "rule__Style__MarginRightValueAssignment_4_16_1");
+					put(grammarAccess.getStyleAccess().getMarginRightUnitAssignment_4_16_2(), "rule__Style__MarginRightUnitAssignment_4_16_2");
+					put(grammarAccess.getStyleAccess().getMediastylesAssignment_5(), "rule__Style__MediastylesAssignment_5");
+					put(grammarAccess.getMediaStyleAccess().getMediaAssignment_1(), "rule__MediaStyle__MediaAssignment_1");
+					put(grammarAccess.getMediaStyleAccess().getFormatAssignment_3_0_1(), "rule__MediaStyle__FormatAssignment_3_0_1");
+					put(grammarAccess.getMediaStyleAccess().getFontAssignment_3_1_1(), "rule__MediaStyle__FontAssignment_3_1_1");
+					put(grammarAccess.getMediaStyleAccess().getBackgroundcolorAssignment_3_2_1(), "rule__MediaStyle__BackgroundcolorAssignment_3_2_1");
+					put(grammarAccess.getMediaStyleAccess().getBackgroundcolor_alternateAssignment_3_2_2_1(), "rule__MediaStyle__Backgroundcolor_alternateAssignment_3_2_2_1");
+					put(grammarAccess.getMediaStyleAccess().getTextcolorAssignment_3_3_1(), "rule__MediaStyle__TextcolorAssignment_3_3_1");
+					put(grammarAccess.getMediaStyleAccess().getTextalignAssignment_3_4_1(), "rule__MediaStyle__TextalignAssignment_3_4_1");
+					put(grammarAccess.getMediaStyleAccess().getBorderTopAssignment_3_5_1(), "rule__MediaStyle__BorderTopAssignment_3_5_1");
+					put(grammarAccess.getMediaStyleAccess().getBorderBottomAssignment_3_6_1(), "rule__MediaStyle__BorderBottomAssignment_3_6_1");
+					put(grammarAccess.getMediaStyleAccess().getBorderLeftAssignment_3_7_1(), "rule__MediaStyle__BorderLeftAssignment_3_7_1");
+					put(grammarAccess.getMediaStyleAccess().getBorderRightAssignment_3_8_1(), "rule__MediaStyle__BorderRightAssignment_3_8_1");
+					put(grammarAccess.getMediaStyleAccess().getPaddingTopValueAssignment_3_9_1(), "rule__MediaStyle__PaddingTopValueAssignment_3_9_1");
+					put(grammarAccess.getMediaStyleAccess().getPaddingTopUnitAssignment_3_9_2(), "rule__MediaStyle__PaddingTopUnitAssignment_3_9_2");
+					put(grammarAccess.getMediaStyleAccess().getPaddingBottomValueAssignment_3_10_1(), "rule__MediaStyle__PaddingBottomValueAssignment_3_10_1");
+					put(grammarAccess.getMediaStyleAccess().getPaddingBottomUnitAssignment_3_10_2(), "rule__MediaStyle__PaddingBottomUnitAssignment_3_10_2");
+					put(grammarAccess.getMediaStyleAccess().getPaddingLeftValueAssignment_3_11_1(), "rule__MediaStyle__PaddingLeftValueAssignment_3_11_1");
+					put(grammarAccess.getMediaStyleAccess().getPaddingLeftUnitAssignment_3_11_2(), "rule__MediaStyle__PaddingLeftUnitAssignment_3_11_2");
+					put(grammarAccess.getMediaStyleAccess().getPaddingRightValueAssignment_3_12_1(), "rule__MediaStyle__PaddingRightValueAssignment_3_12_1");
+					put(grammarAccess.getMediaStyleAccess().getPaddingRightUnitAssignment_3_12_2(), "rule__MediaStyle__PaddingRightUnitAssignment_3_12_2");
+					put(grammarAccess.getMediaStyleAccess().getMarginTopValueAssignment_3_13_1(), "rule__MediaStyle__MarginTopValueAssignment_3_13_1");
+					put(grammarAccess.getMediaStyleAccess().getMarginTopUnitAssignment_3_13_2(), "rule__MediaStyle__MarginTopUnitAssignment_3_13_2");
+					put(grammarAccess.getMediaStyleAccess().getMarginBottomValueAssignment_3_14_1(), "rule__MediaStyle__MarginBottomValueAssignment_3_14_1");
+					put(grammarAccess.getMediaStyleAccess().getMarginBottomUnitAssignment_3_14_2(), "rule__MediaStyle__MarginBottomUnitAssignment_3_14_2");
+					put(grammarAccess.getMediaStyleAccess().getMarginLeftValueAssignment_3_15_1(), "rule__MediaStyle__MarginLeftValueAssignment_3_15_1");
+					put(grammarAccess.getMediaStyleAccess().getMarginLeftUnitAssignment_3_15_2(), "rule__MediaStyle__MarginLeftUnitAssignment_3_15_2");
+					put(grammarAccess.getMediaStyleAccess().getMarginRightValueAssignment_3_16_1(), "rule__MediaStyle__MarginRightValueAssignment_3_16_1");
+					put(grammarAccess.getMediaStyleAccess().getMarginRightUnitAssignment_3_16_2(), "rule__MediaStyle__MarginRightUnitAssignment_3_16_2");
+					put(grammarAccess.getUomoFormatAccess().getNameAssignment_1(), "rule__UomoFormat__NameAssignment_1");
+					put(grammarAccess.getUomoFormatAccess().getUi_patternAssignment_4(), "rule__UomoFormat__Ui_patternAssignment_4");
+					put(grammarAccess.getUomoFormatAccess().getReport_patternAssignment_6(), "rule__UomoFormat__Report_patternAssignment_6");
+					put(grammarAccess.getUomoFormatAccess().getTextalignAssignment_8(), "rule__UomoFormat__TextalignAssignment_8");
+					put(grammarAccess.getNumberFormatAccess().getNameAssignment_1(), "rule__NumberFormat__NameAssignment_1");
+					put(grammarAccess.getNumberFormatAccess().getUi_patternAssignment_4(), "rule__NumberFormat__Ui_patternAssignment_4");
+					put(grammarAccess.getNumberFormatAccess().getReport_categoryAssignment_6(), "rule__NumberFormat__Report_categoryAssignment_6");
+					put(grammarAccess.getNumberFormatAccess().getReport_patternAssignment_7(), "rule__NumberFormat__Report_patternAssignment_7");
+					put(grammarAccess.getNumberFormatAccess().getTextalignAssignment_9(), "rule__NumberFormat__TextalignAssignment_9");
+					put(grammarAccess.getCurrencyFormatAccess().getNameAssignment_1(), "rule__CurrencyFormat__NameAssignment_1");
+					put(grammarAccess.getCurrencyFormatAccess().getUi_patternAssignment_4(), "rule__CurrencyFormat__Ui_patternAssignment_4");
+					put(grammarAccess.getCurrencyFormatAccess().getReport_categoryAssignment_6(), "rule__CurrencyFormat__Report_categoryAssignment_6");
+					put(grammarAccess.getCurrencyFormatAccess().getReport_patternAssignment_7(), "rule__CurrencyFormat__Report_patternAssignment_7");
+					put(grammarAccess.getCurrencyFormatAccess().getTextalignAssignment_9(), "rule__CurrencyFormat__TextalignAssignment_9");
+					put(grammarAccess.getDateFormatAccess().getNameAssignment_1(), "rule__DateFormat__NameAssignment_1");
+					put(grammarAccess.getDateFormatAccess().getUi_patternAssignment_4(), "rule__DateFormat__Ui_patternAssignment_4");
+					put(grammarAccess.getDateFormatAccess().getReport_categoryAssignment_6(), "rule__DateFormat__Report_categoryAssignment_6");
+					put(grammarAccess.getDateFormatAccess().getReport_patternAssignment_7(), "rule__DateFormat__Report_patternAssignment_7");
+					put(grammarAccess.getDateFormatAccess().getTextalignAssignment_9(), "rule__DateFormat__TextalignAssignment_9");
+					put(grammarAccess.getDateTimeFormatAccess().getNameAssignment_1(), "rule__DateTimeFormat__NameAssignment_1");
+					put(grammarAccess.getDateTimeFormatAccess().getUi_patternAssignment_4(), "rule__DateTimeFormat__Ui_patternAssignment_4");
+					put(grammarAccess.getDateTimeFormatAccess().getReport_categoryAssignment_6(), "rule__DateTimeFormat__Report_categoryAssignment_6");
+					put(grammarAccess.getDateTimeFormatAccess().getReport_patternAssignment_7(), "rule__DateTimeFormat__Report_patternAssignment_7");
+					put(grammarAccess.getDateTimeFormatAccess().getTextalignAssignment_9(), "rule__DateTimeFormat__TextalignAssignment_9");
+					put(grammarAccess.getTimeFormatAccess().getNameAssignment_1(), "rule__TimeFormat__NameAssignment_1");
+					put(grammarAccess.getTimeFormatAccess().getUi_patternAssignment_4(), "rule__TimeFormat__Ui_patternAssignment_4");
+					put(grammarAccess.getTimeFormatAccess().getReport_categoryAssignment_6(), "rule__TimeFormat__Report_categoryAssignment_6");
+					put(grammarAccess.getTimeFormatAccess().getReport_patternAssignment_7(), "rule__TimeFormat__Report_patternAssignment_7");
+					put(grammarAccess.getTimeFormatAccess().getTextalignAssignment_9(), "rule__TimeFormat__TextalignAssignment_9");
+					put(grammarAccess.getReportAccess().getNameAssignment_1(), "rule__Report__NameAssignment_1");
+					put(grammarAccess.getReportAccess().getDescriptionAssignment_2_0(), "rule__Report__DescriptionAssignment_2_0");
+					put(grammarAccess.getReportAccess().getDescriptionValueAssignment_2_1(), "rule__Report__DescriptionValueAssignment_2_1");
+					put(grammarAccess.getReportAccess().getToolbarAssignment_3_1(), "rule__Report__ToolbarAssignment_3_1");
+					put(grammarAccess.getReportAccess().getDatamartRefAssignment_6(), "rule__Report__DatamartRefAssignment_6");
+					put(grammarAccess.getReportAccess().getRenderingAssignment_8(), "rule__Report__RenderingAssignment_8");
+					put(grammarAccess.getReportAccess().getExternalCssURIAssignment_9_1(), "rule__Report__ExternalCssURIAssignment_9_1");
+					put(grammarAccess.getReportAccess().getExternalCssURIBundleAssignment_9_2_1(), "rule__Report__ExternalCssURIBundleAssignment_9_2_1");
+					put(grammarAccess.getReportAccess().getPageTemplateAssignment_11(), "rule__Report__PageTemplateAssignment_11");
+					put(grammarAccess.getReportAccess().getMediaAssignment_13(), "rule__Report__MediaAssignment_13");
+					put(grammarAccess.getReportAccess().getDesignAssignment_14(), "rule__Report__DesignAssignment_14");
+					put(grammarAccess.getReportDesignFileAccess().getNameAssignment_1(), "rule__ReportDesignFile__NameAssignment_1");
+					put(grammarAccess.getReportDesignTemplateAccess().getDescriptionAssignment_2_1(), "rule__ReportDesignTemplate__DescriptionAssignment_2_1");
+					put(grammarAccess.getReportDesignTemplateAccess().getHeaderAssignment_3(), "rule__ReportDesignTemplate__HeaderAssignment_3");
+					put(grammarAccess.getReportDesignTemplateAccess().getDetailAssignment_4(), "rule__ReportDesignTemplate__DetailAssignment_4");
+					put(grammarAccess.getReportDesignTemplateAccess().getFooterAssignment_5(), "rule__ReportDesignTemplate__FooterAssignment_5");
+					put(grammarAccess.getPageHeaderAccess().getShowOnFirstAssignment_3(), "rule__PageHeader__ShowOnFirstAssignment_3");
+					put(grammarAccess.getPageHeaderAccess().getHeightValueAssignment_5(), "rule__PageHeader__HeightValueAssignment_5");
+					put(grammarAccess.getPageHeaderAccess().getHeightUnitAssignment_6(), "rule__PageHeader__HeightUnitAssignment_6");
+					put(grammarAccess.getPageHeaderAccess().getElementsAssignment_7(), "rule__PageHeader__ElementsAssignment_7");
+					put(grammarAccess.getPageDetailAccess().getElementsAssignment_3(), "rule__PageDetail__ElementsAssignment_3");
+					put(grammarAccess.getPageFooterAccess().getShowOnLastAssignment_3(), "rule__PageFooter__ShowOnLastAssignment_3");
+					put(grammarAccess.getPageFooterAccess().getHeightValueAssignment_5(), "rule__PageFooter__HeightValueAssignment_5");
+					put(grammarAccess.getPageFooterAccess().getHeightUnitAssignment_6(), "rule__PageFooter__HeightUnitAssignment_6");
+					put(grammarAccess.getPageFooterAccess().getElementsAssignment_7(), "rule__PageFooter__ElementsAssignment_7");
+					put(grammarAccess.getGridAccess().getNameAssignment_2_1(), "rule__Grid__NameAssignment_2_1");
+					put(grammarAccess.getGridAccess().getRowsAssignment_4(), "rule__Grid__RowsAssignment_4");
+					put(grammarAccess.getGridRowAccess().getNameAssignment_2_1(), "rule__GridRow__NameAssignment_2_1");
+					put(grammarAccess.getGridRowAccess().getStyleAssignment_3_1(), "rule__GridRow__StyleAssignment_3_1");
+					put(grammarAccess.getGridRowAccess().getCellsAssignment_5(), "rule__GridRow__CellsAssignment_5");
+					put(grammarAccess.getGridCellAccess().getNameAssignment_2_1(), "rule__GridCell__NameAssignment_2_1");
+					put(grammarAccess.getGridCellAccess().getColumnspanAssignment_3_1(), "rule__GridCell__ColumnspanAssignment_3_1");
+					put(grammarAccess.getGridCellAccess().getElementsAssignment_5(), "rule__GridCell__ElementsAssignment_5");
+					put(grammarAccess.getDatamartTableAccess().getStyleAssignment_1_1(), "rule__DatamartTable__StyleAssignment_1_1");
+					put(grammarAccess.getDatamartTableAccess().getDetailheaderAssignment_3_0(), "rule__DatamartTable__DetailheaderAssignment_3_0");
+					put(grammarAccess.getDatamartTableAccess().getHeaderstyleAssignment_3_1_1(), "rule__DatamartTable__HeaderstyleAssignment_3_1_1");
+					put(grammarAccess.getDatamartTableAccess().getDetailfooterAssignment_4_0(), "rule__DatamartTable__DetailfooterAssignment_4_0");
+					put(grammarAccess.getDatamartTableAccess().getFooterstyleAssignment_4_1_1(), "rule__DatamartTable__FooterstyleAssignment_4_1_1");
+					put(grammarAccess.getDatamartTableAccess().getGroupsAssignment_5(), "rule__DatamartTable__GroupsAssignment_5");
+					put(grammarAccess.getDatamartTableAccess().getDetailAssignment_6(), "rule__DatamartTable__DetailAssignment_6");
+					put(grammarAccess.getDatamartTableGroupAccess().getNameAssignment_1(), "rule__DatamartTableGroup__NameAssignment_1");
+					put(grammarAccess.getDatamartTableGroupAccess().getGroupingRefAssignment_3(), "rule__DatamartTableGroup__GroupingRefAssignment_3");
+					put(grammarAccess.getDatamartTableGroupAccess().getHeaderAssignment_5(), "rule__DatamartTableGroup__HeaderAssignment_5");
+					put(grammarAccess.getDatamartTableGroupAccess().getDetailheaderAssignment_6_0(), "rule__DatamartTableGroup__DetailheaderAssignment_6_0");
+					put(grammarAccess.getDatamartTableGroupAccess().getHeaderstyleAssignment_6_1_1(), "rule__DatamartTableGroup__HeaderstyleAssignment_6_1_1");
+					put(grammarAccess.getDatamartTableGroupAccess().getDetailfooterAssignment_7_0(), "rule__DatamartTableGroup__DetailfooterAssignment_7_0");
+					put(grammarAccess.getDatamartTableGroupAccess().getFooterstyleAssignment_7_1_1(), "rule__DatamartTableGroup__FooterstyleAssignment_7_1_1");
+					put(grammarAccess.getDatamartTableGroupAccess().getFooterAssignment_8(), "rule__DatamartTableGroup__FooterAssignment_8");
+					put(grammarAccess.getDatamartTableGroupHeaderAccess().getStyleAssignment_2_1(), "rule__DatamartTableGroupHeader__StyleAssignment_2_1");
+					put(grammarAccess.getDatamartTableGroupHeaderAccess().getRowsAssignment_4(), "rule__DatamartTableGroupHeader__RowsAssignment_4");
+					put(grammarAccess.getDatamartTableGroupFooterAccess().getStyleAssignment_2_1(), "rule__DatamartTableGroupFooter__StyleAssignment_2_1");
+					put(grammarAccess.getDatamartTableGroupFooterAccess().getRowsAssignment_4(), "rule__DatamartTableGroupFooter__RowsAssignment_4");
+					put(grammarAccess.getDatamartTableDetailAccess().getStyleAssignment_2_1(), "rule__DatamartTableDetail__StyleAssignment_2_1");
+					put(grammarAccess.getDatamartTableDetailAccess().getColumnFormattersAssignment_3_1_1(), "rule__DatamartTableDetail__ColumnFormattersAssignment_3_1_1");
+					put(grammarAccess.getDatamartTablePropertyAccess().getColumnAssignment_0(), "rule__DatamartTableProperty__ColumnAssignment_0");
+					put(grammarAccess.getDatamartTablePropertyAccess().getStyleAssignment_1_0_1(), "rule__DatamartTableProperty__StyleAssignment_1_0_1");
+					put(grammarAccess.getDatamartTablePropertyAccess().getHasImageAssignment_1_1_0(), "rule__DatamartTableProperty__HasImageAssignment_1_1_0");
+					put(grammarAccess.getDatamartTablePropertyAccess().getImageAssignment_1_1_1(), "rule__DatamartTableProperty__ImageAssignment_1_1_1");
+					put(grammarAccess.getDatamartTablePropertyAccess().getHideLabelIntervalAssignment_1_2_1(), "rule__DatamartTableProperty__HideLabelIntervalAssignment_1_2_1");
+					put(grammarAccess.getDatamartTablePropertyAccess().getIntervalsAssignment_1_2_3(), "rule__DatamartTableProperty__IntervalsAssignment_1_2_3");
+					put(grammarAccess.getDatamartTablePropertyAccess().getHideLabelLookupAssignment_1_3_1(), "rule__DatamartTableProperty__HideLabelLookupAssignment_1_3_1");
+					put(grammarAccess.getDatamartTablePropertyAccess().getLookupsAssignment_1_3_3(), "rule__DatamartTableProperty__LookupsAssignment_1_3_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.getTablePropertyAccess().getValueRefAssignment_1(), "rule__TableProperty__ValueRefAssignment_1");
+					put(grammarAccess.getTableAggregationAccess().getAggregationAssignment_1(), "rule__TableAggregation__AggregationAssignment_1");
+					put(grammarAccess.getTableAggregationAccess().getOnGroupAssignment_2_0_1(), "rule__TableAggregation__OnGroupAssignment_2_0_1");
+					put(grammarAccess.getTableAggregationAccess().getTextAssignment_2_1_1(), "rule__TableAggregation__TextAssignment_2_1_1");
+					put(grammarAccess.getTablePureAggregationAccess().getAggregationAssignment(), "rule__TablePureAggregation__AggregationAssignment");
+					put(grammarAccess.getTableUnaryAggregationAccess().getAggregationAssignment_0(), "rule__TableUnaryAggregation__AggregationAssignment_0");
+					put(grammarAccess.getTableUnaryAggregationAccess().getValueRefsAssignment_2(), "rule__TableUnaryAggregation__ValueRefsAssignment_2");
+					put(grammarAccess.getTableMultipleAggregationAccess().getAggregationAssignment_0(), "rule__TableMultipleAggregation__AggregationAssignment_0");
+					put(grammarAccess.getTableMultipleAggregationAccess().getValueRefsAssignment_3(), "rule__TableMultipleAggregation__ValueRefsAssignment_3");
+					put(grammarAccess.getTableBinaryAggregationAccess().getAggregationAssignment_0(), "rule__TableBinaryAggregation__AggregationAssignment_0");
+					put(grammarAccess.getTableBinaryAggregationAccess().getValueRefsAssignment_3(), "rule__TableBinaryAggregation__ValueRefsAssignment_3");
+					put(grammarAccess.getTableBinaryAggregationAccess().getValueRefsAssignment_4(), "rule__TableBinaryAggregation__ValueRefsAssignment_4");
+					put(grammarAccess.getTableNumberIntervalAccess().getNumberIntervalValueAssignment_2(), "rule__TableNumberInterval__NumberIntervalValueAssignment_2");
+					put(grammarAccess.getTableNumberIntervalAccess().getNumberRangeAssignment_3(), "rule__TableNumberInterval__NumberRangeAssignment_3");
+					put(grammarAccess.getTableDateDayIntervalAccess().getDateIntervalValueAssignment_2(), "rule__TableDateDayInterval__DateIntervalValueAssignment_2");
+					put(grammarAccess.getTableDateDayIntervalAccess().getDateRangeAssignment_3(), "rule__TableDateDayInterval__DateRangeAssignment_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.getTableTextColorAccess().getColorAssignment_1(), "rule__TableTextColor__ColorAssignment_1");
+					put(grammarAccess.getTableCellColorAccess().getColorAssignment_1(), "rule__TableCellColor__ColorAssignment_1");
+					put(grammarAccess.getTableIconAccess().getIconAssignment_1(), "rule__TableIcon__IconAssignment_1");
+					put(grammarAccess.getTableTrendAccess().getIconAssignment_1(), "rule__TableTrend__IconAssignment_1");
+					put(grammarAccess.getTitleAccess().getTextAssignment_2(), "rule__Title__TextAssignment_2");
+					put(grammarAccess.getTitleAccess().getStyleAssignment_3_1(), "rule__Title__StyleAssignment_3_1");
+					put(grammarAccess.getSubTitleAccess().getTextAssignment_2(), "rule__SubTitle__TextAssignment_2");
+					put(grammarAccess.getSubTitleAccess().getStyleAssignment_3_1(), "rule__SubTitle__StyleAssignment_3_1");
+					put(grammarAccess.getSubSubTitleAccess().getTextAssignment_2(), "rule__SubSubTitle__TextAssignment_2");
+					put(grammarAccess.getSubSubTitleAccess().getStyleAssignment_3_1(), "rule__SubSubTitle__StyleAssignment_3_1");
+					put(grammarAccess.getLabelAccess().getTextAssignment_2(), "rule__Label__TextAssignment_2");
+					put(grammarAccess.getLabelAccess().getStyleAssignment_3_1(), "rule__Label__StyleAssignment_3_1");
+					put(grammarAccess.getTextAccess().getTextAssignment_2(), "rule__Text__TextAssignment_2");
+					put(grammarAccess.getTextAccess().getStyleAssignment_3_1(), "rule__Text__StyleAssignment_3_1");
+					put(grammarAccess.getAutoTextAccess().getTypeAssignment_1(), "rule__AutoText__TypeAssignment_1");
+					put(grammarAccess.getAutoTextAccess().getStyleAssignment_2_1(), "rule__AutoText__StyleAssignment_2_1");
+					put(grammarAccess.getImageAccess().getSizeAssignment_1(), "rule__Image__SizeAssignment_1");
+					put(grammarAccess.getImageAccess().getScaleAssignment_2_1(), "rule__Image__ScaleAssignment_2_1");
+					put(grammarAccess.getImageAccess().getSourceTypeAssignment_3(), "rule__Image__SourceTypeAssignment_3");
+					put(grammarAccess.getImageAccess().getFilenameAssignment_4(), "rule__Image__FilenameAssignment_4");
+					put(grammarAccess.getReportImportAccess().getImportedNamespaceAssignment_1(), "rule__ReportImport__ImportedNamespaceAssignment_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.getXImportDeclarationAccess().getStaticAssignment_1_0_0(), "rule__XImportDeclaration__StaticAssignment_1_0_0");
+					put(grammarAccess.getXImportDeclarationAccess().getExtensionAssignment_1_0_1(), "rule__XImportDeclaration__ExtensionAssignment_1_0_1");
+					put(grammarAccess.getXImportDeclarationAccess().getImportedTypeAssignment_1_0_2(), "rule__XImportDeclaration__ImportedTypeAssignment_1_0_2");
+					put(grammarAccess.getXImportDeclarationAccess().getWildcardAssignment_1_0_3_0(), "rule__XImportDeclaration__WildcardAssignment_1_0_3_0");
+					put(grammarAccess.getXImportDeclarationAccess().getMemberNameAssignment_1_0_3_1(), "rule__XImportDeclaration__MemberNameAssignment_1_0_3_1");
+					put(grammarAccess.getXImportDeclarationAccess().getImportedTypeAssignment_1_1(), "rule__XImportDeclaration__ImportedTypeAssignment_1_1");
+					put(grammarAccess.getXImportDeclarationAccess().getImportedNamespaceAssignment_1_2(), "rule__XImportDeclaration__ImportedNamespaceAssignment_1_2");
+					put(grammarAccess.getFontAccess().getUnorderedGroup(), "rule__Font__UnorderedGroup");
+					put(grammarAccess.getStyleAccess().getUnorderedGroup_4(), "rule__Style__UnorderedGroup_4");
+					put(grammarAccess.getMediaStyleAccess().getUnorderedGroup_3(), "rule__MediaStyle__UnorderedGroup_3");
+					put(grammarAccess.getDatamartTablePropertyAccess().getUnorderedGroup_1(), "rule__DatamartTableProperty__UnorderedGroup_1");
+					put(grammarAccess.getTableImageAccess().getUnorderedGroup_3(), "rule__TableImage__UnorderedGroup_3");
+					put(grammarAccess.getTableAggregationAccess().getUnorderedGroup_2(), "rule__TableAggregation__UnorderedGroup_2");
+				}
+			};
+		}
+		return nameMappings.get(element);
+	}
+	
+	@Override
+	protected Collection<FollowElement> getFollowElements(AbstractInternalContentAssistParser parser) {
+		try {
+			org.eclipse.osbp.xtext.reportdsl.ui.contentassist.antlr.internal.InternalReportDSLParser typedParser = (org.eclipse.osbp.xtext.reportdsl.ui.contentassist.antlr.internal.InternalReportDSLParser) parser;
+			typedParser.entryRuleReportModel();
+			return typedParser.getFollowElements();
+		} catch(RecognitionException ex) {
+			throw new RuntimeException(ex);
+		}		
+	}
+	
+	@Override
+	protected String[] getInitialHiddenTokens() {
+		return new String[] { "RULE_WS", "RULE_ML_COMMENT", "RULE_SL_COMMENT" };
+	}
+	
+	public ReportDSLGrammarAccess getGrammarAccess() {
+		return this.grammarAccess;
+	}
+	
+	public void setGrammarAccess(ReportDSLGrammarAccess grammarAccess) {
+		this.grammarAccess = grammarAccess;
+	}
+}
diff --git a/org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g b/org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g
new file mode 100644
index 0000000..c553ed8
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g
@@ -0,0 +1,10015 @@
+/**
+ *                                                                            
+ *  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
+ * 
+ */
+
+grammar InternalReportDSL;
+
+options {
+	superClass=AbstractInternalContentAssistParser;
+	backtrack=true;
+	
+}
+
+@lexer::header {
+package org.eclipse.osbp.xtext.reportdsl.ui.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.ui.editor.contentassist.antlr.internal.Lexer;
+}
+
+@parser::header {
+package org.eclipse.osbp.xtext.reportdsl.ui.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.ui.editor.contentassist.antlr.internal.AbstractInternalContentAssistParser;
+import org.eclipse.xtext.ui.editor.contentassist.antlr.internal.DFA;
+import org.eclipse.osbp.xtext.reportdsl.services.ReportDSLGrammarAccess;
+
+}
+
+@parser::members {
+ 
+ 	private ReportDSLGrammarAccess grammarAccess;
+ 	
+    public void setGrammarAccess(ReportDSLGrammarAccess grammarAccess) {
+    	this.grammarAccess = grammarAccess;
+    }
+    
+    @Override
+    protected Grammar getGrammar() {
+    	return grammarAccess.getGrammar();
+    }
+    
+    @Override
+    protected String getValueForTokenName(String tokenName) {
+    	return tokenName;
+    }
+
+}
+
+
+
+
+// Entry rule entryRuleReportModel
+entryRuleReportModel 
+:
+{ before(grammarAccess.getReportModelRule()); }
+	 ruleReportModel
+{ after(grammarAccess.getReportModelRule()); } 
+	 EOF 
+;
+
+// Rule ReportModel
+ruleReportModel
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getReportModelAccess().getPckgAssignment()); }
+(rule__ReportModel__PckgAssignment)*
+{ after(grammarAccess.getReportModelAccess().getPckgAssignment()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleReportPackage
+entryRuleReportPackage 
+:
+{ before(grammarAccess.getReportPackageRule()); }
+	 ruleReportPackage
+{ after(grammarAccess.getReportPackageRule()); } 
+	 EOF 
+;
+
+// Rule ReportPackage
+ruleReportPackage
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getReportPackageAccess().getGroup()); }
+(rule__ReportPackage__Group__0)
+{ after(grammarAccess.getReportPackageAccess().getGroup()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRulePageTemplates
+entryRulePageTemplates 
+:
+{ before(grammarAccess.getPageTemplatesRule()); }
+	 rulePageTemplates
+{ after(grammarAccess.getPageTemplatesRule()); } 
+	 EOF 
+;
+
+// Rule PageTemplates
+rulePageTemplates
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getPageTemplatesAccess().getGroup()); }
+(rule__PageTemplates__Group__0)
+{ after(grammarAccess.getPageTemplatesAccess().getGroup()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleSomeFormats
+entryRuleSomeFormats 
+:
+{ before(grammarAccess.getSomeFormatsRule()); }
+	 ruleSomeFormats
+{ after(grammarAccess.getSomeFormatsRule()); } 
+	 EOF 
+;
+
+// Rule SomeFormats
+ruleSomeFormats
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getSomeFormatsAccess().getGroup()); }
+(rule__SomeFormats__Group__0)
+{ after(grammarAccess.getSomeFormatsAccess().getGroup()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleColors
+entryRuleColors 
+:
+{ before(grammarAccess.getColorsRule()); }
+	 ruleColors
+{ after(grammarAccess.getColorsRule()); } 
+	 EOF 
+;
+
+// Rule Colors
+ruleColors
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getColorsAccess().getGroup()); }
+(rule__Colors__Group__0)
+{ after(grammarAccess.getColorsAccess().getGroup()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleFonts
+entryRuleFonts 
+:
+{ before(grammarAccess.getFontsRule()); }
+	 ruleFonts
+{ after(grammarAccess.getFontsRule()); } 
+	 EOF 
+;
+
+// Rule Fonts
+ruleFonts
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getFontsAccess().getGroup()); }
+(rule__Fonts__Group__0)
+{ after(grammarAccess.getFontsAccess().getGroup()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleMedias
+entryRuleMedias 
+:
+{ before(grammarAccess.getMediasRule()); }
+	 ruleMedias
+{ after(grammarAccess.getMediasRule()); } 
+	 EOF 
+;
+
+// Rule Medias
+ruleMedias
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getMediasAccess().getGroup()); }
+(rule__Medias__Group__0)
+{ after(grammarAccess.getMediasAccess().getGroup()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleMedia
+entryRuleMedia 
+:
+{ before(grammarAccess.getMediaRule()); }
+	 ruleMedia
+{ after(grammarAccess.getMediaRule()); } 
+	 EOF 
+;
+
+// Rule Media
+ruleMedia
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getMediaAccess().getGroup()); }
+(rule__Media__Group__0)
+{ after(grammarAccess.getMediaAccess().getGroup()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleStyles
+entryRuleStyles 
+:
+{ before(grammarAccess.getStylesRule()); }
+	 ruleStyles
+{ after(grammarAccess.getStylesRule()); } 
+	 EOF 
+;
+
+// Rule Styles
+ruleStyles
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getStylesAccess().getGroup()); }
+(rule__Styles__Group__0)
+{ after(grammarAccess.getStylesAccess().getGroup()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRulePageTemplate
+entryRulePageTemplate 
+:
+{ before(grammarAccess.getPageTemplateRule()); }
+	 rulePageTemplate
+{ after(grammarAccess.getPageTemplateRule()); } 
+	 EOF 
+;
+
+// Rule PageTemplate
+rulePageTemplate
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getPageTemplateAccess().getGroup()); }
+(rule__PageTemplate__Group__0)
+{ after(grammarAccess.getPageTemplateAccess().getGroup()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleUnsignedNumber
+entryRuleUnsignedNumber 
+:
+{ before(grammarAccess.getUnsignedNumberRule()); }
+	 ruleUnsignedNumber
+{ after(grammarAccess.getUnsignedNumberRule()); } 
+	 EOF 
+;
+
+// Rule UnsignedNumber
+ruleUnsignedNumber
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getUnsignedNumberAccess().getNumberParserRuleCall()); }
+	ruleNumber
+{ after(grammarAccess.getUnsignedNumberAccess().getNumberParserRuleCall()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleColor
+entryRuleColor 
+:
+{ before(grammarAccess.getColorRule()); }
+	 ruleColor
+{ after(grammarAccess.getColorRule()); } 
+	 EOF 
+;
+
+// Rule Color
+ruleColor
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getColorAccess().getGroup()); }
+(rule__Color__Group__0)
+{ after(grammarAccess.getColorAccess().getGroup()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleFont
+entryRuleFont 
+:
+{ before(grammarAccess.getFontRule()); }
+	 ruleFont
+{ after(grammarAccess.getFontRule()); } 
+	 EOF 
+;
+
+// Rule Font
+ruleFont
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getFontAccess().getUnorderedGroup()); }
+(rule__Font__UnorderedGroup)
+{ after(grammarAccess.getFontAccess().getUnorderedGroup()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleFontFamily
+entryRuleFontFamily 
+:
+{ before(grammarAccess.getFontFamilyRule()); }
+	 ruleFontFamily
+{ after(grammarAccess.getFontFamilyRule()); } 
+	 EOF 
+;
+
+// Rule FontFamily
+ruleFontFamily
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getFontFamilyAccess().getAlternatives()); }
+(rule__FontFamily__Alternatives)
+{ after(grammarAccess.getFontFamilyAccess().getAlternatives()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleBuildInFontFamily
+entryRuleBuildInFontFamily 
+:
+{ before(grammarAccess.getBuildInFontFamilyRule()); }
+	 ruleBuildInFontFamily
+{ after(grammarAccess.getBuildInFontFamilyRule()); } 
+	 EOF 
+;
+
+// Rule BuildInFontFamily
+ruleBuildInFontFamily
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getBuildInFontFamilyAccess().getCustomAssignment()); }
+(rule__BuildInFontFamily__CustomAssignment)
+{ after(grammarAccess.getBuildInFontFamilyAccess().getCustomAssignment()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleCustomFontFamily
+entryRuleCustomFontFamily 
+:
+{ before(grammarAccess.getCustomFontFamilyRule()); }
+	 ruleCustomFontFamily
+{ after(grammarAccess.getCustomFontFamilyRule()); } 
+	 EOF 
+;
+
+// Rule CustomFontFamily
+ruleCustomFontFamily
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getCustomFontFamilyAccess().getCustomAssignment()); }
+(rule__CustomFontFamily__CustomAssignment)
+{ after(grammarAccess.getCustomFontFamilyAccess().getCustomAssignment()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleBorderStyle
+entryRuleBorderStyle 
+:
+{ before(grammarAccess.getBorderStyleRule()); }
+	 ruleBorderStyle
+{ after(grammarAccess.getBorderStyleRule()); } 
+	 EOF 
+;
+
+// Rule BorderStyle
+ruleBorderStyle
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getBorderStyleAccess().getGroup()); }
+(rule__BorderStyle__Group__0)
+{ after(grammarAccess.getBorderStyleAccess().getGroup()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleStyle
+entryRuleStyle 
+:
+{ before(grammarAccess.getStyleRule()); }
+	 ruleStyle
+{ after(grammarAccess.getStyleRule()); } 
+	 EOF 
+;
+
+// Rule Style
+ruleStyle
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getStyleAccess().getGroup()); }
+(rule__Style__Group__0)
+{ after(grammarAccess.getStyleAccess().getGroup()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleMediaStyle
+entryRuleMediaStyle 
+:
+{ before(grammarAccess.getMediaStyleRule()); }
+	 ruleMediaStyle
+{ after(grammarAccess.getMediaStyleRule()); } 
+	 EOF 
+;
+
+// Rule MediaStyle
+ruleMediaStyle
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getMediaStyleAccess().getGroup()); }
+(rule__MediaStyle__Group__0)
+{ after(grammarAccess.getMediaStyleAccess().getGroup()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleSomeFormat
+entryRuleSomeFormat 
+:
+{ before(grammarAccess.getSomeFormatRule()); }
+	 ruleSomeFormat
+{ after(grammarAccess.getSomeFormatRule()); } 
+	 EOF 
+;
+
+// Rule SomeFormat
+ruleSomeFormat
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getSomeFormatAccess().getAlternatives()); }
+(rule__SomeFormat__Alternatives)
+{ after(grammarAccess.getSomeFormatAccess().getAlternatives()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleUomoFormat
+entryRuleUomoFormat 
+:
+{ before(grammarAccess.getUomoFormatRule()); }
+	 ruleUomoFormat
+{ after(grammarAccess.getUomoFormatRule()); } 
+	 EOF 
+;
+
+// Rule UomoFormat
+ruleUomoFormat
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getUomoFormatAccess().getGroup()); }
+(rule__UomoFormat__Group__0)
+{ after(grammarAccess.getUomoFormatAccess().getGroup()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleNumberFormat
+entryRuleNumberFormat 
+:
+{ before(grammarAccess.getNumberFormatRule()); }
+	 ruleNumberFormat
+{ after(grammarAccess.getNumberFormatRule()); } 
+	 EOF 
+;
+
+// Rule NumberFormat
+ruleNumberFormat
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getNumberFormatAccess().getGroup()); }
+(rule__NumberFormat__Group__0)
+{ after(grammarAccess.getNumberFormatAccess().getGroup()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleCurrencyFormat
+entryRuleCurrencyFormat 
+:
+{ before(grammarAccess.getCurrencyFormatRule()); }
+	 ruleCurrencyFormat
+{ after(grammarAccess.getCurrencyFormatRule()); } 
+	 EOF 
+;
+
+// Rule CurrencyFormat
+ruleCurrencyFormat
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getCurrencyFormatAccess().getGroup()); }
+(rule__CurrencyFormat__Group__0)
+{ after(grammarAccess.getCurrencyFormatAccess().getGroup()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleDateFormat
+entryRuleDateFormat 
+:
+{ before(grammarAccess.getDateFormatRule()); }
+	 ruleDateFormat
+{ after(grammarAccess.getDateFormatRule()); } 
+	 EOF 
+;
+
+// Rule DateFormat
+ruleDateFormat
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getDateFormatAccess().getGroup()); }
+(rule__DateFormat__Group__0)
+{ after(grammarAccess.getDateFormatAccess().getGroup()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleDateTimeFormat
+entryRuleDateTimeFormat 
+:
+{ before(grammarAccess.getDateTimeFormatRule()); }
+	 ruleDateTimeFormat
+{ after(grammarAccess.getDateTimeFormatRule()); } 
+	 EOF 
+;
+
+// Rule DateTimeFormat
+ruleDateTimeFormat
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getDateTimeFormatAccess().getGroup()); }
+(rule__DateTimeFormat__Group__0)
+{ after(grammarAccess.getDateTimeFormatAccess().getGroup()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleTimeFormat
+entryRuleTimeFormat 
+:
+{ before(grammarAccess.getTimeFormatRule()); }
+	 ruleTimeFormat
+{ after(grammarAccess.getTimeFormatRule()); } 
+	 EOF 
+;
+
+// Rule TimeFormat
+ruleTimeFormat
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getTimeFormatAccess().getGroup()); }
+(rule__TimeFormat__Group__0)
+{ after(grammarAccess.getTimeFormatAccess().getGroup()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleReport
+entryRuleReport 
+:
+{ before(grammarAccess.getReportRule()); }
+	 ruleReport
+{ after(grammarAccess.getReportRule()); } 
+	 EOF 
+;
+
+// Rule Report
+ruleReport
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getReportAccess().getGroup()); }
+(rule__Report__Group__0)
+{ after(grammarAccess.getReportAccess().getGroup()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleReportDesign
+entryRuleReportDesign 
+:
+{ before(grammarAccess.getReportDesignRule()); }
+	 ruleReportDesign
+{ after(grammarAccess.getReportDesignRule()); } 
+	 EOF 
+;
+
+// Rule ReportDesign
+ruleReportDesign
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getReportDesignAccess().getAlternatives()); }
+(rule__ReportDesign__Alternatives)
+{ after(grammarAccess.getReportDesignAccess().getAlternatives()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleReportDesignFile
+entryRuleReportDesignFile 
+:
+{ before(grammarAccess.getReportDesignFileRule()); }
+	 ruleReportDesignFile
+{ after(grammarAccess.getReportDesignFileRule()); } 
+	 EOF 
+;
+
+// Rule ReportDesignFile
+ruleReportDesignFile
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getReportDesignFileAccess().getGroup()); }
+(rule__ReportDesignFile__Group__0)
+{ after(grammarAccess.getReportDesignFileAccess().getGroup()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleReportDesignTemplate
+entryRuleReportDesignTemplate 
+:
+{ before(grammarAccess.getReportDesignTemplateRule()); }
+	 ruleReportDesignTemplate
+{ after(grammarAccess.getReportDesignTemplateRule()); } 
+	 EOF 
+;
+
+// Rule ReportDesignTemplate
+ruleReportDesignTemplate
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getReportDesignTemplateAccess().getGroup()); }
+(rule__ReportDesignTemplate__Group__0)
+{ after(grammarAccess.getReportDesignTemplateAccess().getGroup()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+// Entry rule entryRulePageHeader
+entryRulePageHeader 
+:
+{ before(grammarAccess.getPageHeaderRule()); }
+	 rulePageHeader
+{ after(grammarAccess.getPageHeaderRule()); } 
+	 EOF 
+;
+
+// Rule PageHeader
+rulePageHeader
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getPageHeaderAccess().getGroup()); }
+(rule__PageHeader__Group__0)
+{ after(grammarAccess.getPageHeaderAccess().getGroup()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRulePageDetail
+entryRulePageDetail 
+:
+{ before(grammarAccess.getPageDetailRule()); }
+	 rulePageDetail
+{ after(grammarAccess.getPageDetailRule()); } 
+	 EOF 
+;
+
+// Rule PageDetail
+rulePageDetail
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getPageDetailAccess().getGroup()); }
+(rule__PageDetail__Group__0)
+{ after(grammarAccess.getPageDetailAccess().getGroup()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRulePageFooter
+entryRulePageFooter 
+:
+{ before(grammarAccess.getPageFooterRule()); }
+	 rulePageFooter
+{ after(grammarAccess.getPageFooterRule()); } 
+	 EOF 
+;
+
+// Rule PageFooter
+rulePageFooter
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getPageFooterAccess().getGroup()); }
+(rule__PageFooter__Group__0)
+{ after(grammarAccess.getPageFooterAccess().getGroup()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleElement
+entryRuleElement 
+:
+{ before(grammarAccess.getElementRule()); }
+	 ruleElement
+{ after(grammarAccess.getElementRule()); } 
+	 EOF 
+;
+
+// Rule Element
+ruleElement
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getElementAccess().getAlternatives()); }
+(rule__Element__Alternatives)
+{ after(grammarAccess.getElementAccess().getAlternatives()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleGrid
+entryRuleGrid 
+:
+{ before(grammarAccess.getGridRule()); }
+	 ruleGrid
+{ after(grammarAccess.getGridRule()); } 
+	 EOF 
+;
+
+// Rule Grid
+ruleGrid
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getGridAccess().getGroup()); }
+(rule__Grid__Group__0)
+{ after(grammarAccess.getGridAccess().getGroup()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleGridRow
+entryRuleGridRow 
+:
+{ before(grammarAccess.getGridRowRule()); }
+	 ruleGridRow
+{ after(grammarAccess.getGridRowRule()); } 
+	 EOF 
+;
+
+// Rule GridRow
+ruleGridRow
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getGridRowAccess().getGroup()); }
+(rule__GridRow__Group__0)
+{ after(grammarAccess.getGridRowAccess().getGroup()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleGridCell
+entryRuleGridCell 
+:
+{ before(grammarAccess.getGridCellRule()); }
+	 ruleGridCell
+{ after(grammarAccess.getGridCellRule()); } 
+	 EOF 
+;
+
+// Rule GridCell
+ruleGridCell
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getGridCellAccess().getGroup()); }
+(rule__GridCell__Group__0)
+{ after(grammarAccess.getGridCellAccess().getGroup()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleDatamartTable
+entryRuleDatamartTable 
+:
+{ before(grammarAccess.getDatamartTableRule()); }
+	 ruleDatamartTable
+{ after(grammarAccess.getDatamartTableRule()); } 
+	 EOF 
+;
+
+// Rule DatamartTable
+ruleDatamartTable
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getDatamartTableAccess().getGroup()); }
+(rule__DatamartTable__Group__0)
+{ after(grammarAccess.getDatamartTableAccess().getGroup()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleDatamartTableGroup
+entryRuleDatamartTableGroup 
+:
+{ before(grammarAccess.getDatamartTableGroupRule()); }
+	 ruleDatamartTableGroup
+{ after(grammarAccess.getDatamartTableGroupRule()); } 
+	 EOF 
+;
+
+// Rule DatamartTableGroup
+ruleDatamartTableGroup
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getDatamartTableGroupAccess().getGroup()); }
+(rule__DatamartTableGroup__Group__0)
+{ after(grammarAccess.getDatamartTableGroupAccess().getGroup()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleDatamartTableGroupHeader
+entryRuleDatamartTableGroupHeader 
+:
+{ before(grammarAccess.getDatamartTableGroupHeaderRule()); }
+	 ruleDatamartTableGroupHeader
+{ after(grammarAccess.getDatamartTableGroupHeaderRule()); } 
+	 EOF 
+;
+
+// Rule DatamartTableGroupHeader
+ruleDatamartTableGroupHeader
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getDatamartTableGroupHeaderAccess().getGroup()); }
+(rule__DatamartTableGroupHeader__Group__0)
+{ after(grammarAccess.getDatamartTableGroupHeaderAccess().getGroup()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleDatamartTableGroupFooter
+entryRuleDatamartTableGroupFooter 
+:
+{ before(grammarAccess.getDatamartTableGroupFooterRule()); }
+	 ruleDatamartTableGroupFooter
+{ after(grammarAccess.getDatamartTableGroupFooterRule()); } 
+	 EOF 
+;
+
+// Rule DatamartTableGroupFooter
+ruleDatamartTableGroupFooter
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getDatamartTableGroupFooterAccess().getGroup()); }
+(rule__DatamartTableGroupFooter__Group__0)
+{ after(grammarAccess.getDatamartTableGroupFooterAccess().getGroup()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleDatamartTableDetail
+entryRuleDatamartTableDetail 
+:
+{ before(grammarAccess.getDatamartTableDetailRule()); }
+	 ruleDatamartTableDetail
+{ after(grammarAccess.getDatamartTableDetailRule()); } 
+	 EOF 
+;
+
+// Rule DatamartTableDetail
+ruleDatamartTableDetail
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getDatamartTableDetailAccess().getGroup()); }
+(rule__DatamartTableDetail__Group__0)
+{ after(grammarAccess.getDatamartTableDetailAccess().getGroup()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleDatamartTableProperty
+entryRuleDatamartTableProperty 
+:
+{ before(grammarAccess.getDatamartTablePropertyRule()); }
+	 ruleDatamartTableProperty
+{ after(grammarAccess.getDatamartTablePropertyRule()); } 
+	 EOF 
+;
+
+// Rule DatamartTableProperty
+ruleDatamartTableProperty
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getDatamartTablePropertyAccess().getGroup()); }
+(rule__DatamartTableProperty__Group__0)
+{ after(grammarAccess.getDatamartTablePropertyAccess().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 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 entryRuleTableProperty
+entryRuleTableProperty 
+:
+{ before(grammarAccess.getTablePropertyRule()); }
+	 ruleTableProperty
+{ after(grammarAccess.getTablePropertyRule()); } 
+	 EOF 
+;
+
+// Rule TableProperty
+ruleTableProperty
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getTablePropertyAccess().getGroup()); }
+(rule__TableProperty__Group__0)
+{ after(grammarAccess.getTablePropertyAccess().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 entryRuleTableBaseAggregation
+entryRuleTableBaseAggregation 
+:
+{ before(grammarAccess.getTableBaseAggregationRule()); }
+	 ruleTableBaseAggregation
+{ after(grammarAccess.getTableBaseAggregationRule()); } 
+	 EOF 
+;
+
+// Rule TableBaseAggregation
+ruleTableBaseAggregation
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getTableBaseAggregationAccess().getAlternatives()); }
+(rule__TableBaseAggregation__Alternatives)
+{ after(grammarAccess.getTableBaseAggregationAccess().getAlternatives()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleTablePureAggregation
+entryRuleTablePureAggregation 
+:
+{ before(grammarAccess.getTablePureAggregationRule()); }
+	 ruleTablePureAggregation
+{ after(grammarAccess.getTablePureAggregationRule()); } 
+	 EOF 
+;
+
+// Rule TablePureAggregation
+ruleTablePureAggregation
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getTablePureAggregationAccess().getAggregationAssignment()); }
+(rule__TablePureAggregation__AggregationAssignment)
+{ after(grammarAccess.getTablePureAggregationAccess().getAggregationAssignment()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleTableUnaryAggregation
+entryRuleTableUnaryAggregation 
+:
+{ before(grammarAccess.getTableUnaryAggregationRule()); }
+	 ruleTableUnaryAggregation
+{ after(grammarAccess.getTableUnaryAggregationRule()); } 
+	 EOF 
+;
+
+// Rule TableUnaryAggregation
+ruleTableUnaryAggregation
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getTableUnaryAggregationAccess().getGroup()); }
+(rule__TableUnaryAggregation__Group__0)
+{ after(grammarAccess.getTableUnaryAggregationAccess().getGroup()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleTableMultipleAggregation
+entryRuleTableMultipleAggregation 
+:
+{ before(grammarAccess.getTableMultipleAggregationRule()); }
+	 ruleTableMultipleAggregation
+{ after(grammarAccess.getTableMultipleAggregationRule()); } 
+	 EOF 
+;
+
+// Rule TableMultipleAggregation
+ruleTableMultipleAggregation
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getTableMultipleAggregationAccess().getGroup()); }
+(rule__TableMultipleAggregation__Group__0)
+{ after(grammarAccess.getTableMultipleAggregationAccess().getGroup()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleTableBinaryAggregation
+entryRuleTableBinaryAggregation 
+:
+{ before(grammarAccess.getTableBinaryAggregationRule()); }
+	 ruleTableBinaryAggregation
+{ after(grammarAccess.getTableBinaryAggregationRule()); } 
+	 EOF 
+;
+
+// Rule TableBinaryAggregation
+ruleTableBinaryAggregation
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getTableBinaryAggregationAccess().getGroup()); }
+(rule__TableBinaryAggregation__Group__0)
+{ after(grammarAccess.getTableBinaryAggregationAccess().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 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 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 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 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 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 entryRuleTitle
+entryRuleTitle 
+:
+{ before(grammarAccess.getTitleRule()); }
+	 ruleTitle
+{ after(grammarAccess.getTitleRule()); } 
+	 EOF 
+;
+
+// Rule Title
+ruleTitle
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getTitleAccess().getGroup()); }
+(rule__Title__Group__0)
+{ after(grammarAccess.getTitleAccess().getGroup()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleSubTitle
+entryRuleSubTitle 
+:
+{ before(grammarAccess.getSubTitleRule()); }
+	 ruleSubTitle
+{ after(grammarAccess.getSubTitleRule()); } 
+	 EOF 
+;
+
+// Rule SubTitle
+ruleSubTitle
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getSubTitleAccess().getGroup()); }
+(rule__SubTitle__Group__0)
+{ after(grammarAccess.getSubTitleAccess().getGroup()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleSubSubTitle
+entryRuleSubSubTitle 
+:
+{ before(grammarAccess.getSubSubTitleRule()); }
+	 ruleSubSubTitle
+{ after(grammarAccess.getSubSubTitleRule()); } 
+	 EOF 
+;
+
+// Rule SubSubTitle
+ruleSubSubTitle
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getSubSubTitleAccess().getGroup()); }
+(rule__SubSubTitle__Group__0)
+{ after(grammarAccess.getSubSubTitleAccess().getGroup()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleLabel
+entryRuleLabel 
+:
+{ before(grammarAccess.getLabelRule()); }
+	 ruleLabel
+{ after(grammarAccess.getLabelRule()); } 
+	 EOF 
+;
+
+// Rule Label
+ruleLabel
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getLabelAccess().getGroup()); }
+(rule__Label__Group__0)
+{ after(grammarAccess.getLabelAccess().getGroup()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleText
+entryRuleText 
+:
+{ before(grammarAccess.getTextRule()); }
+	 ruleText
+{ after(grammarAccess.getTextRule()); } 
+	 EOF 
+;
+
+// Rule Text
+ruleText
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getTextAccess().getGroup()); }
+(rule__Text__Group__0)
+{ after(grammarAccess.getTextAccess().getGroup()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleAutoText
+entryRuleAutoText 
+:
+{ before(grammarAccess.getAutoTextRule()); }
+	 ruleAutoText
+{ after(grammarAccess.getAutoTextRule()); } 
+	 EOF 
+;
+
+// Rule AutoText
+ruleAutoText
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getAutoTextAccess().getGroup()); }
+(rule__AutoText__Group__0)
+{ after(grammarAccess.getAutoTextAccess().getGroup()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleImage
+entryRuleImage 
+:
+{ before(grammarAccess.getImageRule()); }
+	 ruleImage
+{ after(grammarAccess.getImageRule()); } 
+	 EOF 
+;
+
+// Rule Image
+ruleImage
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getImageAccess().getGroup()); }
+(rule__Image__Group__0)
+{ after(grammarAccess.getImageAccess().getGroup()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleReportImport
+entryRuleReportImport 
+:
+{ before(grammarAccess.getReportImportRule()); }
+	 ruleReportImport
+{ after(grammarAccess.getReportImportRule()); } 
+	 EOF 
+;
+
+// Rule ReportImport
+ruleReportImport
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getReportImportAccess().getGroup()); }
+(rule__ReportImport__Group__0)
+{ after(grammarAccess.getReportImportAccess().getGroup()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleReportQualifiedNameWithWildCard
+entryRuleReportQualifiedNameWithWildCard 
+:
+{ before(grammarAccess.getReportQualifiedNameWithWildCardRule()); }
+	 ruleReportQualifiedNameWithWildCard
+{ after(grammarAccess.getReportQualifiedNameWithWildCardRule()); } 
+	 EOF 
+;
+
+// Rule ReportQualifiedNameWithWildCard
+ruleReportQualifiedNameWithWildCard
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getReportQualifiedNameWithWildCardAccess().getGroup()); }
+(rule__ReportQualifiedNameWithWildCard__Group__0)
+{ after(grammarAccess.getReportQualifiedNameWithWildCardAccess().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 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 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 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 UnitEnum
+ruleUnitEnum
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getUnitEnumAccess().getAlternatives()); }
+(rule__UnitEnum__Alternatives)
+{ after(grammarAccess.getUnitEnumAccess().getAlternatives()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Rule PageSizeEnum
+rulePageSizeEnum
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getPageSizeEnumAccess().getAlternatives()); }
+(rule__PageSizeEnum__Alternatives)
+{ after(grammarAccess.getPageSizeEnumAccess().getAlternatives()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Rule OrientationEnum
+ruleOrientationEnum
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getOrientationEnumAccess().getAlternatives()); }
+(rule__OrientationEnum__Alternatives)
+{ after(grammarAccess.getOrientationEnumAccess().getAlternatives()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Rule FontStyleEnum
+ruleFontStyleEnum
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getFontStyleEnumAccess().getAlternatives()); }
+(rule__FontStyleEnum__Alternatives)
+{ after(grammarAccess.getFontStyleEnumAccess().getAlternatives()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Rule BuildInFontFamilyEnum
+ruleBuildInFontFamilyEnum
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getBuildInFontFamilyEnumAccess().getAlternatives()); }
+(rule__BuildInFontFamilyEnum__Alternatives)
+{ after(grammarAccess.getBuildInFontFamilyEnumAccess().getAlternatives()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Rule TextAlignEnum
+ruleTextAlignEnum
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getTextAlignEnumAccess().getAlternatives()); }
+(rule__TextAlignEnum__Alternatives)
+{ after(grammarAccess.getTextAlignEnumAccess().getAlternatives()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Rule NumberFormatCategoryEnum
+ruleNumberFormatCategoryEnum
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getNumberFormatCategoryEnumAccess().getAlternatives()); }
+(rule__NumberFormatCategoryEnum__Alternatives)
+{ after(grammarAccess.getNumberFormatCategoryEnumAccess().getAlternatives()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Rule CurrencyFormatCategoryEnum
+ruleCurrencyFormatCategoryEnum
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getCurrencyFormatCategoryEnumAccess().getAlternatives()); }
+(rule__CurrencyFormatCategoryEnum__Alternatives)
+{ after(grammarAccess.getCurrencyFormatCategoryEnumAccess().getAlternatives()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Rule DateFormatCategoryEnum
+ruleDateFormatCategoryEnum
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getDateFormatCategoryEnumAccess().getCUSTOMEnumLiteralDeclaration()); }
+(	'custom' 
+)
+{ after(grammarAccess.getDateFormatCategoryEnumAccess().getCUSTOMEnumLiteralDeclaration()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Rule DateTimeFormatCategoryEnum
+ruleDateTimeFormatCategoryEnum
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getDateTimeFormatCategoryEnumAccess().getCUSTOMEnumLiteralDeclaration()); }
+(	'custom' 
+)
+{ after(grammarAccess.getDateTimeFormatCategoryEnumAccess().getCUSTOMEnumLiteralDeclaration()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Rule TimeFormatCategoryEnum
+ruleTimeFormatCategoryEnum
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getTimeFormatCategoryEnumAccess().getCUSTOMEnumLiteralDeclaration()); }
+(	'custom' 
+)
+{ after(grammarAccess.getTimeFormatCategoryEnumAccess().getCUSTOMEnumLiteralDeclaration()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Rule RenderingEnum
+ruleRenderingEnum
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getRenderingEnumAccess().getAlternatives()); }
+(rule__RenderingEnum__Alternatives)
+{ after(grammarAccess.getRenderingEnumAccess().getAlternatives()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Rule PureAggregationTypeEnum
+rulePureAggregationTypeEnum
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getPureAggregationTypeEnumAccess().getAlternatives()); }
+(rule__PureAggregationTypeEnum__Alternatives)
+{ after(grammarAccess.getPureAggregationTypeEnumAccess().getAlternatives()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Rule UnaryAggregationTypeEnum
+ruleUnaryAggregationTypeEnum
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getUnaryAggregationTypeEnumAccess().getAlternatives()); }
+(rule__UnaryAggregationTypeEnum__Alternatives)
+{ after(grammarAccess.getUnaryAggregationTypeEnumAccess().getAlternatives()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Rule BinaryAggregationTypeEnum
+ruleBinaryAggregationTypeEnum
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getBinaryAggregationTypeEnumAccess().getDIVEnumLiteralDeclaration()); }
+(	'divide' 
+)
+{ after(grammarAccess.getBinaryAggregationTypeEnumAccess().getDIVEnumLiteralDeclaration()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Rule MultipleAggregationTypeEnum
+ruleMultipleAggregationTypeEnum
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getMultipleAggregationTypeEnumAccess().getCONCATEnumLiteralDeclaration()); }
+(	'concat' 
+)
+{ after(grammarAccess.getMultipleAggregationTypeEnumAccess().getCONCATEnumLiteralDeclaration()); }
+)
+
+;
+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 BorderTypeEnum
+ruleBorderTypeEnum
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getBorderTypeEnumAccess().getAlternatives()); }
+(rule__BorderTypeEnum__Alternatives)
+{ after(grammarAccess.getBorderTypeEnumAccess().getAlternatives()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Rule AutoTextEnum
+ruleAutoTextEnum
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getAutoTextEnumAccess().getAlternatives()); }
+(rule__AutoTextEnum__Alternatives)
+{ after(grammarAccess.getAutoTextEnumAccess().getAlternatives()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Rule ImageSizeEnum
+ruleImageSizeEnum
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getImageSizeEnumAccess().getAlternatives()); }
+(rule__ImageSizeEnum__Alternatives)
+{ after(grammarAccess.getImageSizeEnumAccess().getAlternatives()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Rule ImageSourceEnum
+ruleImageSourceEnum
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getImageSourceEnumAccess().getAlternatives()); }
+(rule__ImageSourceEnum__Alternatives)
+{ after(grammarAccess.getImageSourceEnumAccess().getAlternatives()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+rule__Color__Alternatives_2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getColorAccess().getColorAssignment_2_0()); }
+(rule__Color__ColorAssignment_2_0)
+{ after(grammarAccess.getColorAccess().getColorAssignment_2_0()); }
+)
+
+    |(
+{ before(grammarAccess.getColorAccess().getGroup_2_1()); }
+(rule__Color__Group_2_1__0)
+{ after(grammarAccess.getColorAccess().getGroup_2_1()); }
+)
+
+    |(
+{ before(grammarAccess.getColorAccess().getGroup_2_2()); }
+(rule__Color__Group_2_2__0)
+{ after(grammarAccess.getColorAccess().getGroup_2_2()); }
+)
+
+    |(
+{ before(grammarAccess.getColorAccess().getGroup_2_3()); }
+(rule__Color__Group_2_3__0)
+{ after(grammarAccess.getColorAccess().getGroup_2_3()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__FontFamily__Alternatives
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getFontFamilyAccess().getBuildInFontFamilyParserRuleCall_0()); }
+	ruleBuildInFontFamily
+{ after(grammarAccess.getFontFamilyAccess().getBuildInFontFamilyParserRuleCall_0()); }
+)
+
+    |(
+{ before(grammarAccess.getFontFamilyAccess().getCustomFontFamilyParserRuleCall_1()); }
+	ruleCustomFontFamily
+{ after(grammarAccess.getFontFamilyAccess().getCustomFontFamilyParserRuleCall_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__SomeFormat__Alternatives
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getSomeFormatAccess().getUomoFormatParserRuleCall_0()); }
+	ruleUomoFormat
+{ after(grammarAccess.getSomeFormatAccess().getUomoFormatParserRuleCall_0()); }
+)
+
+    |(
+{ before(grammarAccess.getSomeFormatAccess().getNumberFormatParserRuleCall_1()); }
+	ruleNumberFormat
+{ after(grammarAccess.getSomeFormatAccess().getNumberFormatParserRuleCall_1()); }
+)
+
+    |(
+{ before(grammarAccess.getSomeFormatAccess().getCurrencyFormatParserRuleCall_2()); }
+	ruleCurrencyFormat
+{ after(grammarAccess.getSomeFormatAccess().getCurrencyFormatParserRuleCall_2()); }
+)
+
+    |(
+{ before(grammarAccess.getSomeFormatAccess().getDateFormatParserRuleCall_3()); }
+	ruleDateFormat
+{ after(grammarAccess.getSomeFormatAccess().getDateFormatParserRuleCall_3()); }
+)
+
+    |(
+{ before(grammarAccess.getSomeFormatAccess().getDateTimeFormatParserRuleCall_4()); }
+	ruleDateTimeFormat
+{ after(grammarAccess.getSomeFormatAccess().getDateTimeFormatParserRuleCall_4()); }
+)
+
+    |(
+{ before(grammarAccess.getSomeFormatAccess().getTimeFormatParserRuleCall_5()); }
+	ruleTimeFormat
+{ after(grammarAccess.getSomeFormatAccess().getTimeFormatParserRuleCall_5()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ReportDesign__Alternatives
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getReportDesignAccess().getReportDesignFileParserRuleCall_0()); }
+	ruleReportDesignFile
+{ after(grammarAccess.getReportDesignAccess().getReportDesignFileParserRuleCall_0()); }
+)
+
+    |(
+{ before(grammarAccess.getReportDesignAccess().getReportDesignTemplateParserRuleCall_1()); }
+	ruleReportDesignTemplate
+{ after(grammarAccess.getReportDesignAccess().getReportDesignTemplateParserRuleCall_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Element__Alternatives
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getElementAccess().getTitleParserRuleCall_0()); }
+	ruleTitle
+{ after(grammarAccess.getElementAccess().getTitleParserRuleCall_0()); }
+)
+
+    |(
+{ before(grammarAccess.getElementAccess().getSubTitleParserRuleCall_1()); }
+	ruleSubTitle
+{ after(grammarAccess.getElementAccess().getSubTitleParserRuleCall_1()); }
+)
+
+    |(
+{ before(grammarAccess.getElementAccess().getSubSubTitleParserRuleCall_2()); }
+	ruleSubSubTitle
+{ after(grammarAccess.getElementAccess().getSubSubTitleParserRuleCall_2()); }
+)
+
+    |(
+{ before(grammarAccess.getElementAccess().getLabelParserRuleCall_3()); }
+	ruleLabel
+{ after(grammarAccess.getElementAccess().getLabelParserRuleCall_3()); }
+)
+
+    |(
+{ before(grammarAccess.getElementAccess().getTextParserRuleCall_4()); }
+	ruleText
+{ after(grammarAccess.getElementAccess().getTextParserRuleCall_4()); }
+)
+
+    |(
+{ before(grammarAccess.getElementAccess().getAutoTextParserRuleCall_5()); }
+	ruleAutoText
+{ after(grammarAccess.getElementAccess().getAutoTextParserRuleCall_5()); }
+)
+
+    |(
+{ before(grammarAccess.getElementAccess().getImageParserRuleCall_6()); }
+	ruleImage
+{ after(grammarAccess.getElementAccess().getImageParserRuleCall_6()); }
+)
+
+    |(
+{ before(grammarAccess.getElementAccess().getDatamartTableParserRuleCall_7()); }
+	ruleDatamartTable
+{ after(grammarAccess.getElementAccess().getDatamartTableParserRuleCall_7()); }
+)
+
+    |(
+{ before(grammarAccess.getElementAccess().getDatamartTablePropertyParserRuleCall_8()); }
+	ruleDatamartTableProperty
+{ after(grammarAccess.getElementAccess().getDatamartTablePropertyParserRuleCall_8()); }
+)
+
+    |(
+{ before(grammarAccess.getElementAccess().getGridParserRuleCall_9()); }
+	ruleGrid
+{ after(grammarAccess.getElementAccess().getGridParserRuleCall_9()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatamartTableDetail__Alternatives_3
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getDatamartTableDetailAccess().getAllKeyword_3_0()); }
+
+	'all' 
+
+{ after(grammarAccess.getDatamartTableDetailAccess().getAllKeyword_3_0()); }
+)
+
+    |(
+{ before(grammarAccess.getDatamartTableDetailAccess().getGroup_3_1()); }
+(rule__DatamartTableDetail__Group_3_1__0)
+{ after(grammarAccess.getDatamartTableDetailAccess().getGroup_3_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableValueElement__Alternatives
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getTableValueElementAccess().getTablePropertyParserRuleCall_0()); }
+	ruleTableProperty
+{ after(grammarAccess.getTableValueElementAccess().getTablePropertyParserRuleCall_0()); }
+)
+
+    |(
+{ before(grammarAccess.getTableValueElementAccess().getTableAggregationParserRuleCall_1()); }
+	ruleTableAggregation
+{ after(grammarAccess.getTableValueElementAccess().getTableAggregationParserRuleCall_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableBaseAggregation__Alternatives
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getTableBaseAggregationAccess().getTablePureAggregationParserRuleCall_0()); }
+	ruleTablePureAggregation
+{ after(grammarAccess.getTableBaseAggregationAccess().getTablePureAggregationParserRuleCall_0()); }
+)
+
+    |(
+{ before(grammarAccess.getTableBaseAggregationAccess().getTableUnaryAggregationParserRuleCall_1()); }
+	ruleTableUnaryAggregation
+{ after(grammarAccess.getTableBaseAggregationAccess().getTableUnaryAggregationParserRuleCall_1()); }
+)
+
+    |(
+{ before(grammarAccess.getTableBaseAggregationAccess().getTableMultipleAggregationParserRuleCall_2()); }
+	ruleTableMultipleAggregation
+{ after(grammarAccess.getTableBaseAggregationAccess().getTableMultipleAggregationParserRuleCall_2()); }
+)
+
+    |(
+{ before(grammarAccess.getTableBaseAggregationAccess().getTableBinaryAggregationParserRuleCall_3()); }
+	ruleTableBinaryAggregation
+{ after(grammarAccess.getTableBaseAggregationAccess().getTableBinaryAggregationParserRuleCall_3()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableInterval__Alternatives
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getTableIntervalAccess().getTableNumberIntervalParserRuleCall_0()); }
+	ruleTableNumberInterval
+{ after(grammarAccess.getTableIntervalAccess().getTableNumberIntervalParserRuleCall_0()); }
+)
+
+    |(
+{ before(grammarAccess.getTableIntervalAccess().getTableDateDayIntervalParserRuleCall_1()); }
+	ruleTableDateDayInterval
+{ after(grammarAccess.getTableIntervalAccess().getTableDateDayIntervalParserRuleCall_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TableLookup__Alternatives
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getTableLookupAccess().getTableNumberLookupParserRuleCall_0()); }
+	ruleTableNumberLookup
+{ after(grammarAccess.getTableLookupAccess().getTableNumberLookupParserRuleCall_0()); }
+)
+
+    |(
+{ before(grammarAccess.getTableLookupAccess().getTableStringLookupParserRuleCall_1()); }
+	ruleTableStringLookup
+{ after(grammarAccess.getTableLookupAccess().getTableStringLookupParserRuleCall_1()); }
+)
+
+    |(
+{ before(grammarAccess.getTableLookupAccess().getTableDateDayLookupParserRuleCall_2()); }
+	ruleTableDateDayLookup
+{ after(grammarAccess.getTableLookupAccess().getTableDateDayLookupParserRuleCall_2()); }
+)
+
+;
+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()); }
+)
+
+;
+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__XImportDeclaration__Alternatives_1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getXImportDeclarationAccess().getGroup_1_0()); }
+(rule__XImportDeclaration__Group_1_0__0)
+{ after(grammarAccess.getXImportDeclarationAccess().getGroup_1_0()); }
+)
+
+    |(
+{ before(grammarAccess.getXImportDeclarationAccess().getImportedTypeAssignment_1_1()); }
+(rule__XImportDeclaration__ImportedTypeAssignment_1_1)
+{ after(grammarAccess.getXImportDeclarationAccess().getImportedTypeAssignment_1_1()); }
+)
+
+    |(
+{ before(grammarAccess.getXImportDeclarationAccess().getImportedNamespaceAssignment_1_2()); }
+(rule__XImportDeclaration__ImportedNamespaceAssignment_1_2)
+{ after(grammarAccess.getXImportDeclarationAccess().getImportedNamespaceAssignment_1_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XImportDeclaration__Alternatives_1_0_3
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getXImportDeclarationAccess().getWildcardAssignment_1_0_3_0()); }
+(rule__XImportDeclaration__WildcardAssignment_1_0_3_0)
+{ after(grammarAccess.getXImportDeclarationAccess().getWildcardAssignment_1_0_3_0()); }
+)
+
+    |(
+{ before(grammarAccess.getXImportDeclarationAccess().getMemberNameAssignment_1_0_3_1()); }
+(rule__XImportDeclaration__MemberNameAssignment_1_0_3_1)
+{ after(grammarAccess.getXImportDeclarationAccess().getMemberNameAssignment_1_0_3_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__UnitEnum__Alternatives
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getUnitEnumAccess().getMMEnumLiteralDeclaration_0()); }
+(	'mm' 
+)
+{ after(grammarAccess.getUnitEnumAccess().getMMEnumLiteralDeclaration_0()); }
+)
+
+    |(
+{ before(grammarAccess.getUnitEnumAccess().getCMEnumLiteralDeclaration_1()); }
+(	'cm' 
+)
+{ after(grammarAccess.getUnitEnumAccess().getCMEnumLiteralDeclaration_1()); }
+)
+
+    |(
+{ before(grammarAccess.getUnitEnumAccess().getPTEnumLiteralDeclaration_2()); }
+(	'pt' 
+)
+{ after(grammarAccess.getUnitEnumAccess().getPTEnumLiteralDeclaration_2()); }
+)
+
+    |(
+{ before(grammarAccess.getUnitEnumAccess().getINEnumLiteralDeclaration_3()); }
+(	'inch' 
+)
+{ after(grammarAccess.getUnitEnumAccess().getINEnumLiteralDeclaration_3()); }
+)
+
+    |(
+{ before(grammarAccess.getUnitEnumAccess().getPCEnumLiteralDeclaration_4()); }
+(	'pc' 
+)
+{ after(grammarAccess.getUnitEnumAccess().getPCEnumLiteralDeclaration_4()); }
+)
+
+    |(
+{ before(grammarAccess.getUnitEnumAccess().getEMEnumLiteralDeclaration_5()); }
+(	'em' 
+)
+{ after(grammarAccess.getUnitEnumAccess().getEMEnumLiteralDeclaration_5()); }
+)
+
+    |(
+{ before(grammarAccess.getUnitEnumAccess().getEXEnumLiteralDeclaration_6()); }
+(	'ex' 
+)
+{ after(grammarAccess.getUnitEnumAccess().getEXEnumLiteralDeclaration_6()); }
+)
+
+    |(
+{ before(grammarAccess.getUnitEnumAccess().getPXEnumLiteralDeclaration_7()); }
+(	'px' 
+)
+{ after(grammarAccess.getUnitEnumAccess().getPXEnumLiteralDeclaration_7()); }
+)
+
+    |(
+{ before(grammarAccess.getUnitEnumAccess().getPERCENTAGEEnumLiteralDeclaration_8()); }
+(	'%' 
+)
+{ after(grammarAccess.getUnitEnumAccess().getPERCENTAGEEnumLiteralDeclaration_8()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PageSizeEnum__Alternatives
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getPageSizeEnumAccess().getA4EnumLiteralDeclaration_0()); }
+(	'a4' 
+)
+{ after(grammarAccess.getPageSizeEnumAccess().getA4EnumLiteralDeclaration_0()); }
+)
+
+    |(
+{ before(grammarAccess.getPageSizeEnumAccess().getA3EnumLiteralDeclaration_1()); }
+(	'a3' 
+)
+{ after(grammarAccess.getPageSizeEnumAccess().getA3EnumLiteralDeclaration_1()); }
+)
+
+    |(
+{ before(grammarAccess.getPageSizeEnumAccess().getA5EnumLiteralDeclaration_2()); }
+(	'a5' 
+)
+{ after(grammarAccess.getPageSizeEnumAccess().getA5EnumLiteralDeclaration_2()); }
+)
+
+    |(
+{ before(grammarAccess.getPageSizeEnumAccess().getUS_LETTEREnumLiteralDeclaration_3()); }
+(	'us-letter' 
+)
+{ after(grammarAccess.getPageSizeEnumAccess().getUS_LETTEREnumLiteralDeclaration_3()); }
+)
+
+    |(
+{ before(grammarAccess.getPageSizeEnumAccess().getUS_LEGALEnumLiteralDeclaration_4()); }
+(	'us-legal' 
+)
+{ after(grammarAccess.getPageSizeEnumAccess().getUS_LEGALEnumLiteralDeclaration_4()); }
+)
+
+    |(
+{ before(grammarAccess.getPageSizeEnumAccess().getUS_LEDGEREnumLiteralDeclaration_5()); }
+(	'us-ledger' 
+)
+{ after(grammarAccess.getPageSizeEnumAccess().getUS_LEDGEREnumLiteralDeclaration_5()); }
+)
+
+    |(
+{ before(grammarAccess.getPageSizeEnumAccess().getUS_SUPER_BEnumLiteralDeclaration_6()); }
+(	'us-super-b' 
+)
+{ after(grammarAccess.getPageSizeEnumAccess().getUS_SUPER_BEnumLiteralDeclaration_6()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__OrientationEnum__Alternatives
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getOrientationEnumAccess().getPORTRAITEnumLiteralDeclaration_0()); }
+(	'portrait' 
+)
+{ after(grammarAccess.getOrientationEnumAccess().getPORTRAITEnumLiteralDeclaration_0()); }
+)
+
+    |(
+{ before(grammarAccess.getOrientationEnumAccess().getLANDSCAPEEnumLiteralDeclaration_1()); }
+(	'landscape' 
+)
+{ after(grammarAccess.getOrientationEnumAccess().getLANDSCAPEEnumLiteralDeclaration_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__FontStyleEnum__Alternatives
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getFontStyleEnumAccess().getNORMALEnumLiteralDeclaration_0()); }
+(	'normal' 
+)
+{ after(grammarAccess.getFontStyleEnumAccess().getNORMALEnumLiteralDeclaration_0()); }
+)
+
+    |(
+{ before(grammarAccess.getFontStyleEnumAccess().getITALICEnumLiteralDeclaration_1()); }
+(	'italic' 
+)
+{ after(grammarAccess.getFontStyleEnumAccess().getITALICEnumLiteralDeclaration_1()); }
+)
+
+    |(
+{ before(grammarAccess.getFontStyleEnumAccess().getOBLIQUEEnumLiteralDeclaration_2()); }
+(	'oblique' 
+)
+{ after(grammarAccess.getFontStyleEnumAccess().getOBLIQUEEnumLiteralDeclaration_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__BuildInFontFamilyEnum__Alternatives
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getBuildInFontFamilyEnumAccess().getMONOSPACEEnumLiteralDeclaration_0()); }
+(	'monospace' 
+)
+{ after(grammarAccess.getBuildInFontFamilyEnumAccess().getMONOSPACEEnumLiteralDeclaration_0()); }
+)
+
+    |(
+{ before(grammarAccess.getBuildInFontFamilyEnumAccess().getSANS_SERIFEnumLiteralDeclaration_1()); }
+(	'sans-serif' 
+)
+{ after(grammarAccess.getBuildInFontFamilyEnumAccess().getSANS_SERIFEnumLiteralDeclaration_1()); }
+)
+
+    |(
+{ before(grammarAccess.getBuildInFontFamilyEnumAccess().getSERIFEnumLiteralDeclaration_2()); }
+(	'serif' 
+)
+{ after(grammarAccess.getBuildInFontFamilyEnumAccess().getSERIFEnumLiteralDeclaration_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TextAlignEnum__Alternatives
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getTextAlignEnumAccess().getLEFTEnumLiteralDeclaration_0()); }
+(	'left' 
+)
+{ after(grammarAccess.getTextAlignEnumAccess().getLEFTEnumLiteralDeclaration_0()); }
+)
+
+    |(
+{ before(grammarAccess.getTextAlignEnumAccess().getCENTEREnumLiteralDeclaration_1()); }
+(	'center' 
+)
+{ after(grammarAccess.getTextAlignEnumAccess().getCENTEREnumLiteralDeclaration_1()); }
+)
+
+    |(
+{ before(grammarAccess.getTextAlignEnumAccess().getRIGHTEnumLiteralDeclaration_2()); }
+(	'right' 
+)
+{ after(grammarAccess.getTextAlignEnumAccess().getRIGHTEnumLiteralDeclaration_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__NumberFormatCategoryEnum__Alternatives
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getNumberFormatCategoryEnumAccess().getUNFORMATTEDEnumLiteralDeclaration_0()); }
+(	'unformatted' 
+)
+{ after(grammarAccess.getNumberFormatCategoryEnumAccess().getUNFORMATTEDEnumLiteralDeclaration_0()); }
+)
+
+    |(
+{ before(grammarAccess.getNumberFormatCategoryEnumAccess().getGENERAL_NUMBEREnumLiteralDeclaration_1()); }
+(	'general-number' 
+)
+{ after(grammarAccess.getNumberFormatCategoryEnumAccess().getGENERAL_NUMBEREnumLiteralDeclaration_1()); }
+)
+
+    |(
+{ before(grammarAccess.getNumberFormatCategoryEnumAccess().getFIXEDEnumLiteralDeclaration_2()); }
+(	'fixed' 
+)
+{ after(grammarAccess.getNumberFormatCategoryEnumAccess().getFIXEDEnumLiteralDeclaration_2()); }
+)
+
+    |(
+{ before(grammarAccess.getNumberFormatCategoryEnumAccess().getPERCENTEnumLiteralDeclaration_3()); }
+(	'percent' 
+)
+{ after(grammarAccess.getNumberFormatCategoryEnumAccess().getPERCENTEnumLiteralDeclaration_3()); }
+)
+
+    |(
+{ before(grammarAccess.getNumberFormatCategoryEnumAccess().getSCIENTIFICEnumLiteralDeclaration_4()); }
+(	'scientific' 
+)
+{ after(grammarAccess.getNumberFormatCategoryEnumAccess().getSCIENTIFICEnumLiteralDeclaration_4()); }
+)
+
+    |(
+{ before(grammarAccess.getNumberFormatCategoryEnumAccess().getCUSTOMEnumLiteralDeclaration_5()); }
+(	'custom' 
+)
+{ after(grammarAccess.getNumberFormatCategoryEnumAccess().getCUSTOMEnumLiteralDeclaration_5()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__CurrencyFormatCategoryEnum__Alternatives
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getCurrencyFormatCategoryEnumAccess().getUNFORMATTEDEnumLiteralDeclaration_0()); }
+(	'unformatted' 
+)
+{ after(grammarAccess.getCurrencyFormatCategoryEnumAccess().getUNFORMATTEDEnumLiteralDeclaration_0()); }
+)
+
+    |(
+{ before(grammarAccess.getCurrencyFormatCategoryEnumAccess().getCURRENCYEnumLiteralDeclaration_1()); }
+(	'currency' 
+)
+{ after(grammarAccess.getCurrencyFormatCategoryEnumAccess().getCURRENCYEnumLiteralDeclaration_1()); }
+)
+
+    |(
+{ before(grammarAccess.getCurrencyFormatCategoryEnumAccess().getCUSTOMEnumLiteralDeclaration_2()); }
+(	'custom' 
+)
+{ after(grammarAccess.getCurrencyFormatCategoryEnumAccess().getCUSTOMEnumLiteralDeclaration_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__RenderingEnum__Alternatives
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getRenderingEnumAccess().getHTMLEnumLiteralDeclaration_0()); }
+(	'html' 
+)
+{ after(grammarAccess.getRenderingEnumAccess().getHTMLEnumLiteralDeclaration_0()); }
+)
+
+    |(
+{ before(grammarAccess.getRenderingEnumAccess().getPDFEnumLiteralDeclaration_1()); }
+(	'pdf' 
+)
+{ after(grammarAccess.getRenderingEnumAccess().getPDFEnumLiteralDeclaration_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PureAggregationTypeEnum__Alternatives
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getPureAggregationTypeEnumAccess().getCOUNTEnumLiteralDeclaration_0()); }
+(	'count' 
+)
+{ after(grammarAccess.getPureAggregationTypeEnumAccess().getCOUNTEnumLiteralDeclaration_0()); }
+)
+
+    |(
+{ before(grammarAccess.getPureAggregationTypeEnumAccess().getRUNNINGCOUNTEnumLiteralDeclaration_1()); }
+(	'running-count' 
+)
+{ after(grammarAccess.getPureAggregationTypeEnumAccess().getRUNNINGCOUNTEnumLiteralDeclaration_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__UnaryAggregationTypeEnum__Alternatives
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getUnaryAggregationTypeEnumAccess().getSUMEnumLiteralDeclaration_0()); }
+(	'sum' 
+)
+{ after(grammarAccess.getUnaryAggregationTypeEnumAccess().getSUMEnumLiteralDeclaration_0()); }
+)
+
+    |(
+{ before(grammarAccess.getUnaryAggregationTypeEnumAccess().getAVEEnumLiteralDeclaration_1()); }
+(	'average' 
+)
+{ after(grammarAccess.getUnaryAggregationTypeEnumAccess().getAVEEnumLiteralDeclaration_1()); }
+)
+
+    |(
+{ before(grammarAccess.getUnaryAggregationTypeEnumAccess().getMINEnumLiteralDeclaration_2()); }
+(	'minimum' 
+)
+{ after(grammarAccess.getUnaryAggregationTypeEnumAccess().getMINEnumLiteralDeclaration_2()); }
+)
+
+    |(
+{ before(grammarAccess.getUnaryAggregationTypeEnumAccess().getMAXEnumLiteralDeclaration_3()); }
+(	'maximum' 
+)
+{ after(grammarAccess.getUnaryAggregationTypeEnumAccess().getMAXEnumLiteralDeclaration_3()); }
+)
+
+    |(
+{ before(grammarAccess.getUnaryAggregationTypeEnumAccess().getRUNNINGSUMEnumLiteralDeclaration_4()); }
+(	'running-sum' 
+)
+{ after(grammarAccess.getUnaryAggregationTypeEnumAccess().getRUNNINGSUMEnumLiteralDeclaration_4()); }
+)
+
+;
+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__BorderTypeEnum__Alternatives
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getBorderTypeEnumAccess().getNONEEnumLiteralDeclaration_0()); }
+(	'none' 
+)
+{ after(grammarAccess.getBorderTypeEnumAccess().getNONEEnumLiteralDeclaration_0()); }
+)
+
+    |(
+{ before(grammarAccess.getBorderTypeEnumAccess().getSOLIDEnumLiteralDeclaration_1()); }
+(	'solid' 
+)
+{ after(grammarAccess.getBorderTypeEnumAccess().getSOLIDEnumLiteralDeclaration_1()); }
+)
+
+    |(
+{ before(grammarAccess.getBorderTypeEnumAccess().getDOTTEDEnumLiteralDeclaration_2()); }
+(	'dotted' 
+)
+{ after(grammarAccess.getBorderTypeEnumAccess().getDOTTEDEnumLiteralDeclaration_2()); }
+)
+
+    |(
+{ before(grammarAccess.getBorderTypeEnumAccess().getDASHEDEnumLiteralDeclaration_3()); }
+(	'dashed' 
+)
+{ after(grammarAccess.getBorderTypeEnumAccess().getDASHEDEnumLiteralDeclaration_3()); }
+)
+
+    |(
+{ before(grammarAccess.getBorderTypeEnumAccess().getDOUBLEEnumLiteralDeclaration_4()); }
+(	'double' 
+)
+{ after(grammarAccess.getBorderTypeEnumAccess().getDOUBLEEnumLiteralDeclaration_4()); }
+)
+
+    |(
+{ before(grammarAccess.getBorderTypeEnumAccess().getGROOVEEnumLiteralDeclaration_5()); }
+(	'groove' 
+)
+{ after(grammarAccess.getBorderTypeEnumAccess().getGROOVEEnumLiteralDeclaration_5()); }
+)
+
+    |(
+{ before(grammarAccess.getBorderTypeEnumAccess().getRIDGEEnumLiteralDeclaration_6()); }
+(	'ridge' 
+)
+{ after(grammarAccess.getBorderTypeEnumAccess().getRIDGEEnumLiteralDeclaration_6()); }
+)
+
+    |(
+{ before(grammarAccess.getBorderTypeEnumAccess().getINSETEnumLiteralDeclaration_7()); }
+(	'inset' 
+)
+{ after(grammarAccess.getBorderTypeEnumAccess().getINSETEnumLiteralDeclaration_7()); }
+)
+
+    |(
+{ before(grammarAccess.getBorderTypeEnumAccess().getOUTSETEnumLiteralDeclaration_8()); }
+(	'outset' 
+)
+{ after(grammarAccess.getBorderTypeEnumAccess().getOUTSETEnumLiteralDeclaration_8()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__AutoTextEnum__Alternatives
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getAutoTextEnumAccess().getPAGE_NUMBEREnumLiteralDeclaration_0()); }
+(	'page-number' 
+)
+{ after(grammarAccess.getAutoTextEnumAccess().getPAGE_NUMBEREnumLiteralDeclaration_0()); }
+)
+
+    |(
+{ before(grammarAccess.getAutoTextEnumAccess().getTOTAL_PAGEEnumLiteralDeclaration_1()); }
+(	'total-page' 
+)
+{ after(grammarAccess.getAutoTextEnumAccess().getTOTAL_PAGEEnumLiteralDeclaration_1()); }
+)
+
+    |(
+{ before(grammarAccess.getAutoTextEnumAccess().getPAGE_NUMBER_UNFILTEREDEnumLiteralDeclaration_2()); }
+(	'page-number-unfiltered' 
+)
+{ after(grammarAccess.getAutoTextEnumAccess().getPAGE_NUMBER_UNFILTEREDEnumLiteralDeclaration_2()); }
+)
+
+    |(
+{ before(grammarAccess.getAutoTextEnumAccess().getTOTAL_PAGE_UNFILTEREDEnumLiteralDeclaration_3()); }
+(	'total-page-unfiltered' 
+)
+{ after(grammarAccess.getAutoTextEnumAccess().getTOTAL_PAGE_UNFILTEREDEnumLiteralDeclaration_3()); }
+)
+
+    |(
+{ before(grammarAccess.getAutoTextEnumAccess().getPAGE_VARIABLEEnumLiteralDeclaration_4()); }
+(	'page-variable' 
+)
+{ after(grammarAccess.getAutoTextEnumAccess().getPAGE_VARIABLEEnumLiteralDeclaration_4()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ImageSizeEnum__Alternatives
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getImageSizeEnumAccess().getSIZE_TO_IMAGEEnumLiteralDeclaration_0()); }
+(	'size-to-image' 
+)
+{ after(grammarAccess.getImageSizeEnumAccess().getSIZE_TO_IMAGEEnumLiteralDeclaration_0()); }
+)
+
+    |(
+{ before(grammarAccess.getImageSizeEnumAccess().getSCALE_TO_ITEMEnumLiteralDeclaration_1()); }
+(	'scale-to-item' 
+)
+{ after(grammarAccess.getImageSizeEnumAccess().getSCALE_TO_ITEMEnumLiteralDeclaration_1()); }
+)
+
+    |(
+{ before(grammarAccess.getImageSizeEnumAccess().getCLIPEnumLiteralDeclaration_2()); }
+(	'clip' 
+)
+{ after(grammarAccess.getImageSizeEnumAccess().getCLIPEnumLiteralDeclaration_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ImageSourceEnum__Alternatives
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getImageSourceEnumAccess().getFILEEnumLiteralDeclaration_0()); }
+(	'file' 
+)
+{ after(grammarAccess.getImageSourceEnumAccess().getFILEEnumLiteralDeclaration_0()); }
+)
+
+    |(
+{ before(grammarAccess.getImageSourceEnumAccess().getURLEnumLiteralDeclaration_1()); }
+(	'url' 
+)
+{ after(grammarAccess.getImageSourceEnumAccess().getURLEnumLiteralDeclaration_1()); }
+)
+
+    |(
+{ before(grammarAccess.getImageSourceEnumAccess().getEMBEDEnumLiteralDeclaration_2()); }
+(	'embed' 
+)
+{ after(grammarAccess.getImageSourceEnumAccess().getEMBEDEnumLiteralDeclaration_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+rule__ReportPackage__Group__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ReportPackage__Group__0__Impl
+	rule__ReportPackage__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ReportPackage__Group__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getReportPackageAccess().getReportPackageAction_0()); }
+(
+
+)
+{ after(grammarAccess.getReportPackageAccess().getReportPackageAction_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ReportPackage__Group__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ReportPackage__Group__1__Impl
+	rule__ReportPackage__Group__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ReportPackage__Group__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getReportPackageAccess().getPackageKeyword_1()); }
+
+	'package' 
+
+{ after(grammarAccess.getReportPackageAccess().getPackageKeyword_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ReportPackage__Group__2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ReportPackage__Group__2__Impl
+	rule__ReportPackage__Group__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ReportPackage__Group__2__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getReportPackageAccess().getNameAssignment_2()); }
+(rule__ReportPackage__NameAssignment_2)
+{ after(grammarAccess.getReportPackageAccess().getNameAssignment_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ReportPackage__Group__3
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ReportPackage__Group__3__Impl
+	rule__ReportPackage__Group__4
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ReportPackage__Group__3__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getReportPackageAccess().getLeftCurlyBracketKeyword_3()); }
+
+	'{' 
+
+{ after(grammarAccess.getReportPackageAccess().getLeftCurlyBracketKeyword_3()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ReportPackage__Group__4
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ReportPackage__Group__4__Impl
+	rule__ReportPackage__Group__5
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ReportPackage__Group__4__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getReportPackageAccess().getImportsAssignment_4()); }
+(rule__ReportPackage__ImportsAssignment_4)*
+{ after(grammarAccess.getReportPackageAccess().getImportsAssignment_4()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ReportPackage__Group__5
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ReportPackage__Group__5__Impl
+	rule__ReportPackage__Group__6
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ReportPackage__Group__5__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getReportPackageAccess().getGroup_5()); }
+(rule__ReportPackage__Group_5__0)?
+{ after(grammarAccess.getReportPackageAccess().getGroup_5()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ReportPackage__Group__6
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ReportPackage__Group__6__Impl
+	rule__ReportPackage__Group__7
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ReportPackage__Group__6__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getReportPackageAccess().getReportsAssignment_6()); }
+(rule__ReportPackage__ReportsAssignment_6)*
+{ after(grammarAccess.getReportPackageAccess().getReportsAssignment_6()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ReportPackage__Group__7
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ReportPackage__Group__7__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ReportPackage__Group__7__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getReportPackageAccess().getRightCurlyBracketKeyword_7()); }
+
+	'}' 
+
+{ after(grammarAccess.getReportPackageAccess().getRightCurlyBracketKeyword_7()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+rule__ReportPackage__Group_5__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ReportPackage__Group_5__0__Impl
+	rule__ReportPackage__Group_5__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ReportPackage__Group_5__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getReportPackageAccess().getLayoutDataKeyword_5_0()); }
+
+	'layout-data' 
+
+{ after(grammarAccess.getReportPackageAccess().getLayoutDataKeyword_5_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ReportPackage__Group_5__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ReportPackage__Group_5__1__Impl
+	rule__ReportPackage__Group_5__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ReportPackage__Group_5__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getReportPackageAccess().getLeftCurlyBracketKeyword_5_1()); }
+
+	'{' 
+
+{ after(grammarAccess.getReportPackageAccess().getLeftCurlyBracketKeyword_5_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ReportPackage__Group_5__2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ReportPackage__Group_5__2__Impl
+	rule__ReportPackage__Group_5__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ReportPackage__Group_5__2__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getReportPackageAccess().getGroup_5_2()); }
+(rule__ReportPackage__Group_5_2__0)?
+{ after(grammarAccess.getReportPackageAccess().getGroup_5_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ReportPackage__Group_5__3
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ReportPackage__Group_5__3__Impl
+	rule__ReportPackage__Group_5__4
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ReportPackage__Group_5__3__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getReportPackageAccess().getPagetemplatesAssignment_5_3()); }
+(rule__ReportPackage__PagetemplatesAssignment_5_3)
+{ after(grammarAccess.getReportPackageAccess().getPagetemplatesAssignment_5_3()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ReportPackage__Group_5__4
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ReportPackage__Group_5__4__Impl
+	rule__ReportPackage__Group_5__5
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ReportPackage__Group_5__4__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getReportPackageAccess().getFormattersAssignment_5_4()); }
+(rule__ReportPackage__FormattersAssignment_5_4)
+{ after(grammarAccess.getReportPackageAccess().getFormattersAssignment_5_4()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ReportPackage__Group_5__5
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ReportPackage__Group_5__5__Impl
+	rule__ReportPackage__Group_5__6
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ReportPackage__Group_5__5__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getReportPackageAccess().getColorsAssignment_5_5()); }
+(rule__ReportPackage__ColorsAssignment_5_5)
+{ after(grammarAccess.getReportPackageAccess().getColorsAssignment_5_5()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ReportPackage__Group_5__6
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ReportPackage__Group_5__6__Impl
+	rule__ReportPackage__Group_5__7
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ReportPackage__Group_5__6__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getReportPackageAccess().getFontsAssignment_5_6()); }
+(rule__ReportPackage__FontsAssignment_5_6)
+{ after(grammarAccess.getReportPackageAccess().getFontsAssignment_5_6()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ReportPackage__Group_5__7
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ReportPackage__Group_5__7__Impl
+	rule__ReportPackage__Group_5__8
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ReportPackage__Group_5__7__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getReportPackageAccess().getMediasAssignment_5_7()); }
+(rule__ReportPackage__MediasAssignment_5_7)
+{ after(grammarAccess.getReportPackageAccess().getMediasAssignment_5_7()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ReportPackage__Group_5__8
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ReportPackage__Group_5__8__Impl
+	rule__ReportPackage__Group_5__9
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ReportPackage__Group_5__8__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getReportPackageAccess().getStylesAssignment_5_8()); }
+(rule__ReportPackage__StylesAssignment_5_8)
+{ after(grammarAccess.getReportPackageAccess().getStylesAssignment_5_8()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ReportPackage__Group_5__9
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ReportPackage__Group_5__9__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ReportPackage__Group_5__9__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getReportPackageAccess().getRightCurlyBracketKeyword_5_9()); }
+
+	'}' 
+
+{ after(grammarAccess.getReportPackageAccess().getRightCurlyBracketKeyword_5_9()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+rule__ReportPackage__Group_5_2__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ReportPackage__Group_5_2__0__Impl
+	rule__ReportPackage__Group_5_2__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ReportPackage__Group_5_2__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getReportPackageAccess().getExternalCssURIKeyword_5_2_0()); }
+
+	'externalCssURI' 
+
+{ after(grammarAccess.getReportPackageAccess().getExternalCssURIKeyword_5_2_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ReportPackage__Group_5_2__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ReportPackage__Group_5_2__1__Impl
+	rule__ReportPackage__Group_5_2__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ReportPackage__Group_5_2__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getReportPackageAccess().getExternalCssURIAssignment_5_2_1()); }
+(rule__ReportPackage__ExternalCssURIAssignment_5_2_1)
+{ after(grammarAccess.getReportPackageAccess().getExternalCssURIAssignment_5_2_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ReportPackage__Group_5_2__2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ReportPackage__Group_5_2__2__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ReportPackage__Group_5_2__2__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getReportPackageAccess().getGroup_5_2_2()); }
+(rule__ReportPackage__Group_5_2_2__0)?
+{ after(grammarAccess.getReportPackageAccess().getGroup_5_2_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+rule__ReportPackage__Group_5_2_2__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ReportPackage__Group_5_2_2__0__Impl
+	rule__ReportPackage__Group_5_2_2__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ReportPackage__Group_5_2_2__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getReportPackageAccess().getFromBundleKeyword_5_2_2_0()); }
+
+	'from bundle' 
+
+{ after(grammarAccess.getReportPackageAccess().getFromBundleKeyword_5_2_2_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ReportPackage__Group_5_2_2__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ReportPackage__Group_5_2_2__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ReportPackage__Group_5_2_2__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getReportPackageAccess().getExternalCssURIBundleAssignment_5_2_2_1()); }
+(rule__ReportPackage__ExternalCssURIBundleAssignment_5_2_2_1)
+{ after(grammarAccess.getReportPackageAccess().getExternalCssURIBundleAssignment_5_2_2_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__PageTemplates__Group__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__PageTemplates__Group__0__Impl
+	rule__PageTemplates__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PageTemplates__Group__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getPageTemplatesAccess().getPageTemplatesAction_0()); }
+(
+
+)
+{ after(grammarAccess.getPageTemplatesAccess().getPageTemplatesAction_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__PageTemplates__Group__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__PageTemplates__Group__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PageTemplates__Group__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getPageTemplatesAccess().getPagetemplatesAssignment_1()); }
+(rule__PageTemplates__PagetemplatesAssignment_1)*
+{ after(grammarAccess.getPageTemplatesAccess().getPagetemplatesAssignment_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__SomeFormats__Group__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__SomeFormats__Group__0__Impl
+	rule__SomeFormats__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__SomeFormats__Group__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getSomeFormatsAccess().getSomeFormatsAction_0()); }
+(
+
+)
+{ after(grammarAccess.getSomeFormatsAccess().getSomeFormatsAction_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__SomeFormats__Group__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__SomeFormats__Group__1__Impl
+	rule__SomeFormats__Group__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__SomeFormats__Group__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getSomeFormatsAccess().getFormattersKeyword_1()); }
+
+	'formatters' 
+
+{ after(grammarAccess.getSomeFormatsAccess().getFormattersKeyword_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__SomeFormats__Group__2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__SomeFormats__Group__2__Impl
+	rule__SomeFormats__Group__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__SomeFormats__Group__2__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getSomeFormatsAccess().getLeftCurlyBracketKeyword_2()); }
+
+	'{' 
+
+{ after(grammarAccess.getSomeFormatsAccess().getLeftCurlyBracketKeyword_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__SomeFormats__Group__3
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__SomeFormats__Group__3__Impl
+	rule__SomeFormats__Group__4
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__SomeFormats__Group__3__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getSomeFormatsAccess().getFormattersAssignment_3()); }
+(rule__SomeFormats__FormattersAssignment_3)*
+{ after(grammarAccess.getSomeFormatsAccess().getFormattersAssignment_3()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__SomeFormats__Group__4
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__SomeFormats__Group__4__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__SomeFormats__Group__4__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getSomeFormatsAccess().getRightCurlyBracketKeyword_4()); }
+
+	'}' 
+
+{ after(grammarAccess.getSomeFormatsAccess().getRightCurlyBracketKeyword_4()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+
+
+rule__Colors__Group__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Colors__Group__0__Impl
+	rule__Colors__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Colors__Group__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getColorsAccess().getColorsAction_0()); }
+(
+
+)
+{ after(grammarAccess.getColorsAccess().getColorsAction_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Colors__Group__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Colors__Group__1__Impl
+	rule__Colors__Group__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Colors__Group__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getColorsAccess().getColorsKeyword_1()); }
+
+	'colors' 
+
+{ after(grammarAccess.getColorsAccess().getColorsKeyword_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Colors__Group__2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Colors__Group__2__Impl
+	rule__Colors__Group__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Colors__Group__2__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getColorsAccess().getLeftCurlyBracketKeyword_2()); }
+
+	'{' 
+
+{ after(grammarAccess.getColorsAccess().getLeftCurlyBracketKeyword_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Colors__Group__3
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Colors__Group__3__Impl
+	rule__Colors__Group__4
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Colors__Group__3__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getColorsAccess().getColorsAssignment_3()); }
+(rule__Colors__ColorsAssignment_3)*
+{ after(grammarAccess.getColorsAccess().getColorsAssignment_3()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Colors__Group__4
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Colors__Group__4__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Colors__Group__4__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getColorsAccess().getRightCurlyBracketKeyword_4()); }
+
+	'}' 
+
+{ after(grammarAccess.getColorsAccess().getRightCurlyBracketKeyword_4()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+
+
+rule__Fonts__Group__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Fonts__Group__0__Impl
+	rule__Fonts__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Fonts__Group__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getFontsAccess().getFontsAction_0()); }
+(
+
+)
+{ after(grammarAccess.getFontsAccess().getFontsAction_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Fonts__Group__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Fonts__Group__1__Impl
+	rule__Fonts__Group__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Fonts__Group__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getFontsAccess().getFontsKeyword_1()); }
+
+	'fonts' 
+
+{ after(grammarAccess.getFontsAccess().getFontsKeyword_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Fonts__Group__2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Fonts__Group__2__Impl
+	rule__Fonts__Group__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Fonts__Group__2__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getFontsAccess().getLeftCurlyBracketKeyword_2()); }
+
+	'{' 
+
+{ after(grammarAccess.getFontsAccess().getLeftCurlyBracketKeyword_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Fonts__Group__3
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Fonts__Group__3__Impl
+	rule__Fonts__Group__4
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Fonts__Group__3__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getFontsAccess().getFontsAssignment_3()); }
+(rule__Fonts__FontsAssignment_3)*
+{ after(grammarAccess.getFontsAccess().getFontsAssignment_3()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Fonts__Group__4
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Fonts__Group__4__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Fonts__Group__4__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getFontsAccess().getRightCurlyBracketKeyword_4()); }
+
+	'}' 
+
+{ after(grammarAccess.getFontsAccess().getRightCurlyBracketKeyword_4()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+
+
+rule__Medias__Group__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Medias__Group__0__Impl
+	rule__Medias__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Medias__Group__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getMediasAccess().getMediasAction_0()); }
+(
+
+)
+{ after(grammarAccess.getMediasAccess().getMediasAction_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Medias__Group__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Medias__Group__1__Impl
+	rule__Medias__Group__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Medias__Group__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getMediasAccess().getMediasKeyword_1()); }
+
+	'medias' 
+
+{ after(grammarAccess.getMediasAccess().getMediasKeyword_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Medias__Group__2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Medias__Group__2__Impl
+	rule__Medias__Group__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Medias__Group__2__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getMediasAccess().getLeftCurlyBracketKeyword_2()); }
+
+	'{' 
+
+{ after(grammarAccess.getMediasAccess().getLeftCurlyBracketKeyword_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Medias__Group__3
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Medias__Group__3__Impl
+	rule__Medias__Group__4
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Medias__Group__3__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getMediasAccess().getMediasAssignment_3()); }
+(rule__Medias__MediasAssignment_3)*
+{ after(grammarAccess.getMediasAccess().getMediasAssignment_3()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Medias__Group__4
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Medias__Group__4__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Medias__Group__4__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getMediasAccess().getRightCurlyBracketKeyword_4()); }
+
+	'}' 
+
+{ after(grammarAccess.getMediasAccess().getRightCurlyBracketKeyword_4()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+
+
+rule__Media__Group__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Media__Group__0__Impl
+	rule__Media__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Media__Group__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getMediaAccess().getMediaKeyword_0()); }
+
+	'media' 
+
+{ after(grammarAccess.getMediaAccess().getMediaKeyword_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Media__Group__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Media__Group__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Media__Group__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getMediaAccess().getNameAssignment_1()); }
+(rule__Media__NameAssignment_1)
+{ after(grammarAccess.getMediaAccess().getNameAssignment_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__Styles__Group__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Styles__Group__0__Impl
+	rule__Styles__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Styles__Group__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getStylesAccess().getStylesAction_0()); }
+(
+
+)
+{ after(grammarAccess.getStylesAccess().getStylesAction_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Styles__Group__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Styles__Group__1__Impl
+	rule__Styles__Group__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Styles__Group__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getStylesAccess().getStylesKeyword_1()); }
+
+	'styles' 
+
+{ after(grammarAccess.getStylesAccess().getStylesKeyword_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Styles__Group__2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Styles__Group__2__Impl
+	rule__Styles__Group__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Styles__Group__2__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getStylesAccess().getLeftCurlyBracketKeyword_2()); }
+
+	'{' 
+
+{ after(grammarAccess.getStylesAccess().getLeftCurlyBracketKeyword_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Styles__Group__3
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Styles__Group__3__Impl
+	rule__Styles__Group__4
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Styles__Group__3__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getStylesAccess().getStylesAssignment_3()); }
+(rule__Styles__StylesAssignment_3)*
+{ after(grammarAccess.getStylesAccess().getStylesAssignment_3()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Styles__Group__4
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Styles__Group__4__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Styles__Group__4__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getStylesAccess().getRightCurlyBracketKeyword_4()); }
+
+	'}' 
+
+{ after(grammarAccess.getStylesAccess().getRightCurlyBracketKeyword_4()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+
+
+rule__PageTemplate__Group__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__PageTemplate__Group__0__Impl
+	rule__PageTemplate__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PageTemplate__Group__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getPageTemplateAccess().getPagetemplateKeyword_0()); }
+
+	'pagetemplate' 
+
+{ after(grammarAccess.getPageTemplateAccess().getPagetemplateKeyword_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__PageTemplate__Group__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__PageTemplate__Group__1__Impl
+	rule__PageTemplate__Group__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PageTemplate__Group__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getPageTemplateAccess().getNameAssignment_1()); }
+(rule__PageTemplate__NameAssignment_1)
+{ after(grammarAccess.getPageTemplateAccess().getNameAssignment_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__PageTemplate__Group__2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__PageTemplate__Group__2__Impl
+	rule__PageTemplate__Group__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PageTemplate__Group__2__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getPageTemplateAccess().getLeftCurlyBracketKeyword_2()); }
+
+	'{' 
+
+{ after(grammarAccess.getPageTemplateAccess().getLeftCurlyBracketKeyword_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__PageTemplate__Group__3
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__PageTemplate__Group__3__Impl
+	rule__PageTemplate__Group__4
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PageTemplate__Group__3__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getPageTemplateAccess().getTypeKeyword_3()); }
+
+	'type' 
+
+{ after(grammarAccess.getPageTemplateAccess().getTypeKeyword_3()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__PageTemplate__Group__4
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__PageTemplate__Group__4__Impl
+	rule__PageTemplate__Group__5
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PageTemplate__Group__4__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getPageTemplateAccess().getSizeAssignment_4()); }
+(rule__PageTemplate__SizeAssignment_4)
+{ after(grammarAccess.getPageTemplateAccess().getSizeAssignment_4()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__PageTemplate__Group__5
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__PageTemplate__Group__5__Impl
+	rule__PageTemplate__Group__6
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PageTemplate__Group__5__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getPageTemplateAccess().getOrientationKeyword_5()); }
+
+	'orientation' 
+
+{ after(grammarAccess.getPageTemplateAccess().getOrientationKeyword_5()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__PageTemplate__Group__6
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__PageTemplate__Group__6__Impl
+	rule__PageTemplate__Group__7
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PageTemplate__Group__6__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getPageTemplateAccess().getOrientationAssignment_6()); }
+(rule__PageTemplate__OrientationAssignment_6)
+{ after(grammarAccess.getPageTemplateAccess().getOrientationAssignment_6()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__PageTemplate__Group__7
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__PageTemplate__Group__7__Impl
+	rule__PageTemplate__Group__8
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PageTemplate__Group__7__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getPageTemplateAccess().getTopmarginKeyword_7()); }
+
+	'topmargin' 
+
+{ after(grammarAccess.getPageTemplateAccess().getTopmarginKeyword_7()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__PageTemplate__Group__8
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__PageTemplate__Group__8__Impl
+	rule__PageTemplate__Group__9
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PageTemplate__Group__8__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getPageTemplateAccess().getTopMarginValueAssignment_8()); }
+(rule__PageTemplate__TopMarginValueAssignment_8)
+{ after(grammarAccess.getPageTemplateAccess().getTopMarginValueAssignment_8()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__PageTemplate__Group__9
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__PageTemplate__Group__9__Impl
+	rule__PageTemplate__Group__10
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PageTemplate__Group__9__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getPageTemplateAccess().getTopMarginUnitAssignment_9()); }
+(rule__PageTemplate__TopMarginUnitAssignment_9)
+{ after(grammarAccess.getPageTemplateAccess().getTopMarginUnitAssignment_9()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__PageTemplate__Group__10
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__PageTemplate__Group__10__Impl
+	rule__PageTemplate__Group__11
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PageTemplate__Group__10__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getPageTemplateAccess().getLeftmarginKeyword_10()); }
+
+	'leftmargin' 
+
+{ after(grammarAccess.getPageTemplateAccess().getLeftmarginKeyword_10()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__PageTemplate__Group__11
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__PageTemplate__Group__11__Impl
+	rule__PageTemplate__Group__12
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PageTemplate__Group__11__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getPageTemplateAccess().getLeftMarginValueAssignment_11()); }
+(rule__PageTemplate__LeftMarginValueAssignment_11)
+{ after(grammarAccess.getPageTemplateAccess().getLeftMarginValueAssignment_11()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__PageTemplate__Group__12
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__PageTemplate__Group__12__Impl
+	rule__PageTemplate__Group__13
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PageTemplate__Group__12__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getPageTemplateAccess().getLeftMarginUnitAssignment_12()); }
+(rule__PageTemplate__LeftMarginUnitAssignment_12)
+{ after(grammarAccess.getPageTemplateAccess().getLeftMarginUnitAssignment_12()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__PageTemplate__Group__13
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__PageTemplate__Group__13__Impl
+	rule__PageTemplate__Group__14
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PageTemplate__Group__13__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getPageTemplateAccess().getBottommarginKeyword_13()); }
+
+	'bottommargin' 
+
+{ after(grammarAccess.getPageTemplateAccess().getBottommarginKeyword_13()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__PageTemplate__Group__14
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__PageTemplate__Group__14__Impl
+	rule__PageTemplate__Group__15
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PageTemplate__Group__14__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getPageTemplateAccess().getBottomMarginValueAssignment_14()); }
+(rule__PageTemplate__BottomMarginValueAssignment_14)
+{ after(grammarAccess.getPageTemplateAccess().getBottomMarginValueAssignment_14()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__PageTemplate__Group__15
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__PageTemplate__Group__15__Impl
+	rule__PageTemplate__Group__16
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PageTemplate__Group__15__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getPageTemplateAccess().getBottomMarginUnitAssignment_15()); }
+(rule__PageTemplate__BottomMarginUnitAssignment_15)
+{ after(grammarAccess.getPageTemplateAccess().getBottomMarginUnitAssignment_15()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__PageTemplate__Group__16
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__PageTemplate__Group__16__Impl
+	rule__PageTemplate__Group__17
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PageTemplate__Group__16__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getPageTemplateAccess().getRightmarginKeyword_16()); }
+
+	'rightmargin' 
+
+{ after(grammarAccess.getPageTemplateAccess().getRightmarginKeyword_16()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__PageTemplate__Group__17
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__PageTemplate__Group__17__Impl
+	rule__PageTemplate__Group__18
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PageTemplate__Group__17__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getPageTemplateAccess().getRightMarginValueAssignment_17()); }
+(rule__PageTemplate__RightMarginValueAssignment_17)
+{ after(grammarAccess.getPageTemplateAccess().getRightMarginValueAssignment_17()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__PageTemplate__Group__18
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__PageTemplate__Group__18__Impl
+	rule__PageTemplate__Group__19
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PageTemplate__Group__18__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getPageTemplateAccess().getRightMarginUnitAssignment_18()); }
+(rule__PageTemplate__RightMarginUnitAssignment_18)
+{ after(grammarAccess.getPageTemplateAccess().getRightMarginUnitAssignment_18()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__PageTemplate__Group__19
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__PageTemplate__Group__19__Impl
+	rule__PageTemplate__Group__20
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PageTemplate__Group__19__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getPageTemplateAccess().getHeaderAssignment_19()); }
+(rule__PageTemplate__HeaderAssignment_19)?
+{ after(grammarAccess.getPageTemplateAccess().getHeaderAssignment_19()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__PageTemplate__Group__20
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__PageTemplate__Group__20__Impl
+	rule__PageTemplate__Group__21
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PageTemplate__Group__20__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getPageTemplateAccess().getFooterAssignment_20()); }
+(rule__PageTemplate__FooterAssignment_20)?
+{ after(grammarAccess.getPageTemplateAccess().getFooterAssignment_20()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__PageTemplate__Group__21
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__PageTemplate__Group__21__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__PageTemplate__Group__21__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getPageTemplateAccess().getRightCurlyBracketKeyword_21()); }
+
+	'}' 
+
+{ after(grammarAccess.getPageTemplateAccess().getRightCurlyBracketKeyword_21()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+rule__Color__Group__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Color__Group__0__Impl
+	rule__Color__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Color__Group__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getColorAccess().getColorKeyword_0()); }
+
+	'color' 
+
+{ after(grammarAccess.getColorAccess().getColorKeyword_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Color__Group__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Color__Group__1__Impl
+	rule__Color__Group__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Color__Group__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getColorAccess().getNameAssignment_1()); }
+(rule__Color__NameAssignment_1)
+{ after(grammarAccess.getColorAccess().getNameAssignment_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Color__Group__2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Color__Group__2__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Color__Group__2__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getColorAccess().getAlternatives_2()); }
+(rule__Color__Alternatives_2)
+{ after(grammarAccess.getColorAccess().getAlternatives_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+rule__Color__Group_2_1__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Color__Group_2_1__0__Impl
+	rule__Color__Group_2_1__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Color__Group_2_1__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getColorAccess().getDarkensKeyword_2_1_0()); }
+
+	'darkens' 
+
+{ after(grammarAccess.getColorAccess().getDarkensKeyword_2_1_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Color__Group_2_1__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Color__Group_2_1__1__Impl
+	rule__Color__Group_2_1__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Color__Group_2_1__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getColorAccess().getBasecolorAssignment_2_1_1()); }
+(rule__Color__BasecolorAssignment_2_1_1)
+{ after(grammarAccess.getColorAccess().getBasecolorAssignment_2_1_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Color__Group_2_1__2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Color__Group_2_1__2__Impl
+	rule__Color__Group_2_1__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Color__Group_2_1__2__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getColorAccess().getByPercentKeyword_2_1_2()); }
+
+	'by-percent' 
+
+{ after(grammarAccess.getColorAccess().getByPercentKeyword_2_1_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Color__Group_2_1__3
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Color__Group_2_1__3__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Color__Group_2_1__3__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getColorAccess().getDarkensbyAssignment_2_1_3()); }
+(rule__Color__DarkensbyAssignment_2_1_3)
+{ after(grammarAccess.getColorAccess().getDarkensbyAssignment_2_1_3()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+rule__Color__Group_2_2__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Color__Group_2_2__0__Impl
+	rule__Color__Group_2_2__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Color__Group_2_2__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getColorAccess().getLightensKeyword_2_2_0()); }
+
+	'lightens' 
+
+{ after(grammarAccess.getColorAccess().getLightensKeyword_2_2_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Color__Group_2_2__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Color__Group_2_2__1__Impl
+	rule__Color__Group_2_2__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Color__Group_2_2__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getColorAccess().getBasecolorAssignment_2_2_1()); }
+(rule__Color__BasecolorAssignment_2_2_1)
+{ after(grammarAccess.getColorAccess().getBasecolorAssignment_2_2_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Color__Group_2_2__2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Color__Group_2_2__2__Impl
+	rule__Color__Group_2_2__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Color__Group_2_2__2__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getColorAccess().getByPercentKeyword_2_2_2()); }
+
+	'by-percent' 
+
+{ after(grammarAccess.getColorAccess().getByPercentKeyword_2_2_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Color__Group_2_2__3
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Color__Group_2_2__3__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Color__Group_2_2__3__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getColorAccess().getLightensbyAssignment_2_2_3()); }
+(rule__Color__LightensbyAssignment_2_2_3)
+{ after(grammarAccess.getColorAccess().getLightensbyAssignment_2_2_3()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+rule__Color__Group_2_3__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Color__Group_2_3__0__Impl
+	rule__Color__Group_2_3__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Color__Group_2_3__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getColorAccess().getTransformsKeyword_2_3_0()); }
+
+	'transforms' 
+
+{ after(grammarAccess.getColorAccess().getTransformsKeyword_2_3_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Color__Group_2_3__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Color__Group_2_3__1__Impl
+	rule__Color__Group_2_3__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Color__Group_2_3__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getColorAccess().getBasecolorAssignment_2_3_1()); }
+(rule__Color__BasecolorAssignment_2_3_1)
+{ after(grammarAccess.getColorAccess().getBasecolorAssignment_2_3_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Color__Group_2_3__2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Color__Group_2_3__2__Impl
+	rule__Color__Group_2_3__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Color__Group_2_3__2__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getColorAccess().getByPercentKeyword_2_3_2()); }
+
+	'by-percent' 
+
+{ after(grammarAccess.getColorAccess().getByPercentKeyword_2_3_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Color__Group_2_3__3
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Color__Group_2_3__3__Impl
+	rule__Color__Group_2_3__4
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Color__Group_2_3__3__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getColorAccess().getTransformsbyAssignment_2_3_3()); }
+(rule__Color__TransformsbyAssignment_2_3_3)
+{ after(grammarAccess.getColorAccess().getTransformsbyAssignment_2_3_3()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Color__Group_2_3__4
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Color__Group_2_3__4__Impl
+	rule__Color__Group_2_3__5
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__Color__Group_2_3__4__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getColorAccess().getTowardsKeyword_2_3_4()); }
+
+	'towards' 
+
+{ after(grammarAccess.getColorAccess().getTowardsKeyword_2_3_4()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__Color__Group_2_3__5
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__Color__Group_2_3__5__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
diff --git a/org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.tokens b/org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.tokens
new file mode 100644
index 0000000..b8db516
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.tokens
@@ -0,0 +1,493 @@
+'!'=44
+'!='=26
+'!=='=28
+'#'=218
+'%'=43
+'%='=24
+'&&'=15
+'&'=241
+'('=200
+')'=201
+'*'=40
+'**'=41
+'*='=22
+'+'=38
+'++'=45
+'+='=20
+','=216
+'-'=39
+'--'=46
+'-='=21
+'->'=32
+'.'=47
+'..'=34
+'..<'=33
+'/'=42
+'/='=23
+':'=225
+'::'=250
+';'=221
+'<'=31
+'<>'=36
+'='=13
+'=='=25
+'==='=27
+'=>'=35
+'>'=30
+'>='=29
+'?'=240
+'?.'=251
+'?:'=37
+'@'=215
+'['=219
+']'=217
+'a3'=64
+'a4'=63
+'a5'=65
+'aggregate'=196
+'all'=19
+'alternate'=152
+'as'=184
+'autotext'=212
+'average'=92
+'backgroundcolor'=151
+'bad-rising'=97
+'bold'=242
+'border-bottom'=156
+'border-left'=157
+'border-right'=158
+'border-top'=155
+'bottommargin'=138
+'by'=190
+'by-percent'=142
+'case'=227
+'catch'=239
+'cell'=186
+'cellcolor'=205
+'center'=79
+'clip'=117
+'cm'=56
+'color'=140
+'colors'=128
+'columnspan'=187
+'concat'=18
+'count'=89
+'currency'=86
+'custom'=16
+'darkens'=141
+'dashed'=104
+'datamart'=174
+'date'=171
+'date+time'=172
+'days in past'=203
+'default'=226
+'described by'=178
+'detail'=181
+'detailfooter'=246
+'detailheader'=245
+'details'=191
+'divide'=17
+'do'=230
+'dotted'=103
+'double'=105
+'dynamic'=248
+'else'=223
+'em'=60
+'embed'=120
+'ex'=61
+'extends'=49
+'extension'=52
+'externalCssURI'=125
+'false'=54
+'family'=147
+'file'=118
+'finally'=237
+'fixed'=83
+'font'=146
+'fonts'=129
+'footer'=182
+'for'=228
+'formatter'=150
+'formatters'=127
+'from bundle'=126
+'general-number'=82
+'good-sloping'=99
+'grid'=183
+'groove'=106
+'group'=189
+'header'=179
+'height'=180
+'hidelabel'=247
+'html'=87
+'icon'=206
+'if'=222
+'image'=213
+'import'=51
+'inch'=58
+'inset'=108
+'instanceof'=220
+'intervals'=192
+'italic'=73
+'label'=210
+'landscape'=71
+'layout-data'=124
+'left'=78
+'leftmargin'=137
+'lightens'=143
+'lookups'=193
+'margin-bottom'=164
+'margin-left'=165
+'margin-right'=166
+'margin-top'=163
+'maximum'=94
+'media'=131
+'medias'=130
+'minimum'=93
+'mm'=55
+'monospace'=75
+'new'=231
+'none'=101
+'normal'=72
+'null'=232
+'number'=170
+'oblique'=74
+'of'=199
+'on-group'=197
+'orientation'=135
+'outset'=109
+'package'=121
+'padding-bottom'=160
+'padding-left'=161
+'padding-right'=162
+'padding-top'=159
+'page-number'=110
+'page-number-unfiltered'=112
+'page-variable'=114
+'pagetemplate'=133
+'path'=194
+'pc'=59
+'pdf'=88
+'percent'=84
+'portrait'=70
+'property'=195
+'pt'=57
+'px'=62
+'rendering'=175
+'report'=169
+'resize'=249
+'return'=235
+'ridge'=107
+'right'=80
+'rightmargin'=139
+'rising'=96
+'row'=185
+'running-count'=90
+'running-sum'=95
+'sans-serif'=76
+'scale'=214
+'scale-to-item'=116
+'scientific'=85
+'serif'=77
+'showOnFirst'=243
+'showOnLast'=244
+'size'=148
+'size-to-image'=115
+'sloping'=98
+'solid'=102
+'stagnating'=100
+'static'=50
+'string'=204
+'style'=149
+'styles'=132
+'subsubtitle'=209
+'subtitle'=208
+'sum'=91
+'super'=53
+'switch'=224
+'synchronized'=238
+'table'=188
+'template'=177
+'text'=211
+'textalign'=154
+'textcolor'=153
+'throw'=234
+'time'=173
+'title'=198
+'toolbar'=176
+'topmargin'=136
+'total-page'=111
+'total-page-unfiltered'=113
+'towards'=145
+'transforms'=144
+'trend'=207
+'true'=254
+'try'=236
+'type'=134
+'typeof'=233
+'ui'=168
+'unformatted'=81
+'uomo'=167
+'up to'=202
+'url'=119
+'us-ledger'=68
+'us-legal'=67
+'us-letter'=66
+'us-super-b'=69
+'val'=48
+'var'=253
+'while'=229
+'{'=122
+'|'=252
+'||'=14
+'}'=123
+RULE_ANY_OTHER=12
+RULE_DECIMAL=8
+RULE_HEX=6
+RULE_ID=5
+RULE_INT=7
+RULE_ML_COMMENT=9
+RULE_SL_COMMENT=10
+RULE_STRING=4
+RULE_WS=11
+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__13=13
+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__14=14
+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__189=189
+T__18=18
+T__190=190
+T__191=191
+T__192=192
+T__193=193
+T__194=194
+T__195=195
+T__196=196
+T__197=197
+T__198=198
+T__199=199
+T__19=19
+T__200=200
+T__201=201
+T__202=202
+T__203=203
+T__204=204
+T__205=205
+T__206=206
+T__207=207
+T__208=208
+T__209=209
+T__20=20
+T__210=210
+T__211=211
+T__212=212
+T__213=213
+T__214=214
+T__215=215
+T__216=216
+T__217=217
+T__218=218
+T__219=219
+T__21=21
+T__220=220
+T__221=221
+T__222=222
+T__223=223
+T__224=224
+T__225=225
+T__226=226
+T__227=227
+T__228=228
+T__229=229
+T__22=22
+T__230=230
+T__231=231
+T__232=232
+T__233=233
+T__234=234
+T__235=235
+T__236=236
+T__237=237
+T__238=238
+T__239=239
+T__23=23
+T__240=240
+T__241=241
+T__242=242
+T__243=243
+T__244=244
+T__245=245
+T__246=246
+T__247=247
+T__248=248
+T__249=249
+T__24=24
+T__250=250
+T__251=251
+T__252=252
+T__253=253
+T__254=254
+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.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSLLexer.java b/org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSLLexer.java
new file mode 100644
index 0000000..634251a
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSLLexer.java
@@ -0,0 +1,9633 @@
+/**
+ *                                                                            
+ *  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.reportdsl.ui.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.ui.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 InternalReportDSLLexer 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__254=254;
+    public static final int T__132=132;
+    public static final int T__253=253;
+    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 T__250=250;
+    public static final int RULE_ID=5;
+    public static final int T__131=131;
+    public static final int T__252=252;
+    public static final int T__130=130;
+    public static final int T__251=251;
+    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__247=247;
+    public static final int T__63=63;
+    public static final int T__125=125;
+    public static final int T__246=246;
+    public static final int T__64=64;
+    public static final int T__128=128;
+    public static final int T__249=249;
+    public static final int T__65=65;
+    public static final int T__127=127;
+    public static final int T__248=248;
+    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__221=221;
+    public static final int T__220=220;
+    public static final int T__102=102;
+    public static final int T__223=223;
+    public static final int T__101=101;
+    public static final int T__222=222;
+    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 T__218=218;
+    public static final int T__217=217;
+    public static final int T__13=13;
+    public static final int T__14=14;
+    public static final int T__219=219;
+    public static final int T__214=214;
+    public static final int T__213=213;
+    public static final int T__216=216;
+    public static final int T__215=215;
+    public static final int T__210=210;
+    public static final int T__212=212;
+    public static final int T__211=211;
+    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__207=207;
+    public static final int T__23=23;
+    public static final int T__206=206;
+    public static final int T__24=24;
+    public static final int T__209=209;
+    public static final int T__25=25;
+    public static final int T__208=208;
+    public static final int T__203=203;
+    public static final int T__202=202;
+    public static final int T__20=20;
+    public static final int T__205=205;
+    public static final int T__21=21;
+    public static final int T__204=204;
+    public static final int T__122=122;
+    public static final int T__243=243;
+    public static final int T__121=121;
+    public static final int T__242=242;
+    public static final int T__124=124;
+    public static final int T__245=245;
+    public static final int T__123=123;
+    public static final int T__244=244;
+    public static final int T__120=120;
+    public static final int T__241=241;
+    public static final int T__240=240;
+    public static final int RULE_SL_COMMENT=10;
+    public static final int T__119=119;
+    public static final int T__118=118;
+    public static final int T__239=239;
+    public static final int T__115=115;
+    public static final int T__236=236;
+    public static final int EOF=-1;
+    public static final int T__114=114;
+    public static final int T__235=235;
+    public static final int T__117=117;
+    public static final int T__238=238;
+    public static final int T__116=116;
+    public static final int T__237=237;
+    public static final int T__111=111;
+    public static final int T__232=232;
+    public static final int T__110=110;
+    public static final int T__231=231;
+    public static final int T__113=113;
+    public static final int T__234=234;
+    public static final int T__112=112;
+    public static final int T__233=233;
+    public static final int T__230=230;
+    public static final int T__108=108;
+    public static final int T__229=229;
+    public static final int T__107=107;
+    public static final int T__228=228;
+    public static final int T__109=109;
+    public static final int T__104=104;
+    public static final int T__225=225;
+    public static final int T__103=103;
+    public static final int T__224=224;
+    public static final int T__106=106;
+    public static final int T__227=227;
+    public static final int T__105=105;
+    public static final int T__226=226;
+    public static final int RULE_HEX=6;
+    public static final int RULE_ML_COMMENT=9;
+    public static final int T__201=201;
+    public static final int T__200=200;
+    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__189=189;
+    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__199=199;
+    public static final int T__81=81;
+    public static final int T__198=198;
+    public static final int T__82=82;
+    public static final int T__83=83;
+    public static final int T__195=195;
+    public static final int T__194=194;
+    public static final int RULE_WS=11;
+    public static final int T__197=197;
+    public static final int T__196=196;
+    public static final int T__191=191;
+    public static final int T__190=190;
+    public static final int T__193=193;
+    public static final int T__192=192;
+    public static final int RULE_ANY_OTHER=12;
+    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 InternalReportDSLLexer() {;} 
+    public InternalReportDSLLexer(CharStream input) {
+        this(input, new RecognizerSharedState());
+    }
+    public InternalReportDSLLexer(CharStream input, RecognizerSharedState state) {
+        super(input,state);
+
+    }
+    public String getGrammarFileName() { return "../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g"; }
+
+    // $ANTLR start "T__13"
+    public final void mT__13() throws RecognitionException {
+        try {
+            int _type = T__13;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:11:7: ( '=' )
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:11:9: '='
+            {
+            match('='); 
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__13"
+
+    // $ANTLR start "T__14"
+    public final void mT__14() throws RecognitionException {
+        try {
+            int _type = T__14;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:12:7: ( '||' )
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:12:9: '||'
+            {
+            match("||"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__14"
+
+    // $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.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:13:7: ( '&&' )
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:13: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;
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:14:7: ( 'custom' )
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:14:9: 'custom'
+            {
+            match("custom"); 
+
+
+            }
+
+            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;
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:15:7: ( 'divide' )
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:15:9: 'divide'
+            {
+            match("divide"); 
+
+
+            }
+
+            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;
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:16:7: ( 'concat' )
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:16:9: 'concat'
+            {
+            match("concat"); 
+
+
+            }
+
+            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;
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:17:7: ( 'all' )
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:17:9: 'all'
+            {
+            match("all"); 
+
+
+            }
+
+            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;
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:18:7: ( '+=' )
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:18: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;
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:19:7: ( '-=' )
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:19: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;
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:20:7: ( '*=' )
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:20: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;
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:21:7: ( '/=' )
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:21: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;
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:22:7: ( '%=' )
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:22: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;
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:23:7: ( '==' )
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:23: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;
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:24:7: ( '!=' )
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:24: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;
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:25:7: ( '===' )
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:25: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;
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:26:7: ( '!==' )
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:26: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;
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:27:7: ( '>=' )
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:27: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;
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:28:7: ( '>' )
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:28: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;
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:29:7: ( '<' )
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:29: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;
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:30:7: ( '->' )
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:30: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;
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:31:7: ( '..<' )
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:31: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;
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:32:7: ( '..' )
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:32: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;
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:33:7: ( '=>' )
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:33: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;
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:34:7: ( '<>' )
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:34: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;
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:35:7: ( '?:' )
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:35: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;
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:36:7: ( '+' )
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:36: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;
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:37:7: ( '-' )
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:37: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;
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:38:7: ( '*' )
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:38: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;
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:39:7: ( '**' )
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:39: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;
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:40:7: ( '/' )
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:40: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;
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:41:7: ( '%' )
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:41: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;
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:42:7: ( '!' )
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:42: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;
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:43:7: ( '++' )
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:43: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;
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:44:7: ( '--' )
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:44: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;
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:45:7: ( '.' )
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:45:9: '.'
+            {
+            match('.'); 
+
+            }
+
+            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;
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:46:7: ( 'val' )
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:46:9: 'val'
+            {
+            match("val"); 
+
+
+            }
+
+            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;
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:47:7: ( 'extends' )
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:47:9: 'extends'
+            {
+            match("extends"); 
+
+
+            }
+
+            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;
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:48:7: ( 'static' )
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:48:9: 'static'
+            {
+            match("static"); 
+
+
+            }
+
+            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;
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:49:7: ( 'import' )
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:49:9: 'import'
+            {
+            match("import"); 
+
+
+            }
+
+            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;
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:50:7: ( 'extension' )
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:50:9: 'extension'
+            {
+            match("extension"); 
+
+
+            }
+
+            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;
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:51:7: ( 'super' )
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:51:9: 'super'
+            {
+            match("super"); 
+
+
+            }
+
+            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;
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:52:7: ( 'false' )
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:52:9: 'false'
+            {
+            match("false"); 
+
+
+            }
+
+            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;
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:53:7: ( 'mm' )
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:53:9: 'mm'
+            {
+            match("mm"); 
+
+
+            }
+
+            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;
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:54:7: ( 'cm' )
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:54:9: 'cm'
+            {
+            match("cm"); 
+
+
+            }
+
+            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;
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:55:7: ( 'pt' )
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:55:9: 'pt'
+            {
+            match("pt"); 
+
+
+            }
+
+            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;
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:56:7: ( 'inch' )
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:56:9: 'inch'
+            {
+            match("inch"); 
+
+
+            }
+
+            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;
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:57:7: ( 'pc' )
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:57:9: 'pc'
+            {
+            match("pc"); 
+
+
+            }
+
+            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;
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:58:7: ( 'em' )
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:58:9: 'em'
+            {
+            match("em"); 
+
+
+            }
+
+            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;
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:59:7: ( 'ex' )
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:59:9: 'ex'
+            {
+            match("ex"); 
+
+
+            }
+
+            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;
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:60:7: ( 'px' )
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:60:9: 'px'
+            {
+            match("px"); 
+
+
+            }
+
+            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;
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:61:7: ( 'a4' )
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:61:9: 'a4'
+            {
+            match("a4"); 
+
+
+            }
+
+            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;
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:62:7: ( 'a3' )
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:62:9: 'a3'
+            {
+            match("a3"); 
+
+
+            }
+
+            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;
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:63:7: ( 'a5' )
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:63:9: 'a5'
+            {
+            match("a5"); 
+
+
+            }
+
+            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;
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:64:7: ( 'us-letter' )
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:64:9: 'us-letter'
+            {
+            match("us-letter"); 
+
+
+            }
+
+            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;
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:65:7: ( 'us-legal' )
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:65:9: 'us-legal'
+            {
+            match("us-legal"); 
+
+
+            }
+
+            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;
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:66:7: ( 'us-ledger' )
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:66:9: 'us-ledger'
+            {
+            match("us-ledger"); 
+
+
+            }
+
+            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;
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:67:7: ( 'us-super-b' )
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:67:9: 'us-super-b'
+            {
+            match("us-super-b"); 
+
+
+            }
+
+            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;
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:68:7: ( 'portrait' )
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:68:9: 'portrait'
+            {
+            match("portrait"); 
+
+
+            }
+
+            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;
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:69:7: ( 'landscape' )
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:69:9: 'landscape'
+            {
+            match("landscape"); 
+
+
+            }
+
+            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;
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:70:7: ( 'normal' )
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:70:9: 'normal'
+            {
+            match("normal"); 
+
+
+            }
+
+            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;
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:71:7: ( 'italic' )
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:71:9: 'italic'
+            {
+            match("italic"); 
+
+
+            }
+
+            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;
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:72:7: ( 'oblique' )
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:72:9: 'oblique'
+            {
+            match("oblique"); 
+
+
+            }
+
+            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;
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:73:7: ( 'monospace' )
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:73:9: 'monospace'
+            {
+            match("monospace"); 
+
+
+            }
+
+            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;
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:74:7: ( 'sans-serif' )
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:74:9: 'sans-serif'
+            {
+            match("sans-serif"); 
+
+
+            }
+
+            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;
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:75:7: ( 'serif' )
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:75:9: 'serif'
+            {
+            match("serif"); 
+
+
+            }
+
+            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;
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:76:7: ( 'left' )
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:76:9: 'left'
+            {
+            match("left"); 
+
+
+            }
+
+            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;
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:77:7: ( 'center' )
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:77:9: 'center'
+            {
+            match("center"); 
+
+
+            }
+
+            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;
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:78:7: ( 'right' )
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:78:9: 'right'
+            {
+            match("right"); 
+
+
+            }
+
+            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;
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:79:7: ( 'unformatted' )
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:79:9: 'unformatted'
+            {
+            match("unformatted"); 
+
+
+            }
+
+            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;
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:80:7: ( 'general-number' )
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:80:9: 'general-number'
+            {
+            match("general-number"); 
+
+
+            }
+
+            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;
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:81:7: ( 'fixed' )
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:81:9: 'fixed'
+            {
+            match("fixed"); 
+
+
+            }
+
+            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;
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:82:7: ( 'percent' )
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:82:9: 'percent'
+            {
+            match("percent"); 
+
+
+            }
+
+            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;
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:83:7: ( 'scientific' )
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:83:9: 'scientific'
+            {
+            match("scientific"); 
+
+
+            }
+
+            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;
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:84:7: ( 'currency' )
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:84:9: 'currency'
+            {
+            match("currency"); 
+
+
+            }
+
+            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;
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:85:7: ( 'html' )
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:85:9: 'html'
+            {
+            match("html"); 
+
+
+            }
+
+            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;
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:86:7: ( 'pdf' )
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:86:9: 'pdf'
+            {
+            match("pdf"); 
+
+
+            }
+
+            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;
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:87:7: ( 'count' )
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:87:9: 'count'
+            {
+            match("count"); 
+
+
+            }
+
+            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;
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:88:7: ( 'running-count' )
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:88:9: 'running-count'
+            {
+            match("running-count"); 
+
+
+            }
+
+            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;
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:89:7: ( 'sum' )
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:89:9: 'sum'
+            {
+            match("sum"); 
+
+
+            }
+
+            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;
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:90:7: ( 'average' )
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:90:9: 'average'
+            {
+            match("average"); 
+
+
+            }
+
+            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;
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:91:7: ( 'minimum' )
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:91:9: 'minimum'
+            {
+            match("minimum"); 
+
+
+            }
+
+            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;
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:92:7: ( 'maximum' )
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:92:9: 'maximum'
+            {
+            match("maximum"); 
+
+
+            }
+
+            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;
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:93:7: ( 'running-sum' )
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:93:9: 'running-sum'
+            {
+            match("running-sum"); 
+
+
+            }
+
+            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;
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:94:7: ( 'rising' )
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:94:9: 'rising'
+            {
+            match("rising"); 
+
+
+            }
+
+            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;
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:95:7: ( 'bad-rising' )
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:95:9: 'bad-rising'
+            {
+            match("bad-rising"); 
+
+
+            }
+
+            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;
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:96:7: ( 'sloping' )
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:96:9: 'sloping'
+            {
+            match("sloping"); 
+
+
+            }
+
+            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;
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:97:7: ( 'good-sloping' )
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:97:9: 'good-sloping'
+            {
+            match("good-sloping"); 
+
+
+            }
+
+            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;
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:98:8: ( 'stagnating' )
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:98:10: 'stagnating'
+            {
+            match("stagnating"); 
+
+
+            }
+
+            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;
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:99:8: ( 'none' )
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:99:10: 'none'
+            {
+            match("none"); 
+
+
+            }
+
+            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;
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:100:8: ( 'solid' )
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:100:10: 'solid'
+            {
+            match("solid"); 
+
+
+            }
+
+            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;
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:101:8: ( 'dotted' )
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:101:10: 'dotted'
+            {
+            match("dotted"); 
+
+
+            }
+
+            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;
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:102:8: ( 'dashed' )
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:102:10: 'dashed'
+            {
+            match("dashed"); 
+
+
+            }
+
+            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;
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:103:8: ( 'double' )
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:103:10: 'double'
+            {
+            match("double"); 
+
+
+            }
+
+            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;
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:104:8: ( 'groove' )
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:104:10: 'groove'
+            {
+            match("groove"); 
+
+
+            }
+
+            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;
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:105:8: ( 'ridge' )
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:105:10: 'ridge'
+            {
+            match("ridge"); 
+
+
+            }
+
+            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;
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:106:8: ( 'inset' )
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:106:10: 'inset'
+            {
+            match("inset"); 
+
+
+            }
+
+            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;
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:107:8: ( 'outset' )
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:107:10: 'outset'
+            {
+            match("outset"); 
+
+
+            }
+
+            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;
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:108:8: ( 'page-number' )
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:108:10: 'page-number'
+            {
+            match("page-number"); 
+
+
+            }
+
+            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;
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:109:8: ( 'total-page' )
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:109:10: 'total-page'
+            {
+            match("total-page"); 
+
+
+            }
+
+            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;
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:110:8: ( 'page-number-unfiltered' )
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:110:10: 'page-number-unfiltered'
+            {
+            match("page-number-unfiltered"); 
+
+
+            }
+
+            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;
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:111:8: ( 'total-page-unfiltered' )
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:111:10: 'total-page-unfiltered'
+            {
+            match("total-page-unfiltered"); 
+
+
+            }
+
+            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;
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:112:8: ( 'page-variable' )
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:112:10: 'page-variable'
+            {
+            match("page-variable"); 
+
+
+            }
+
+            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;
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:113:8: ( 'size-to-image' )
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:113:10: 'size-to-image'
+            {
+            match("size-to-image"); 
+
+
+            }
+
+            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;
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:114:8: ( 'scale-to-item' )
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:114:10: 'scale-to-item'
+            {
+            match("scale-to-item"); 
+
+
+            }
+
+            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;
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:115:8: ( 'clip' )
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:115:10: 'clip'
+            {
+            match("clip"); 
+
+
+            }
+
+            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;
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:116:8: ( 'file' )
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:116:10: 'file'
+            {
+            match("file"); 
+
+
+            }
+
+            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;
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:117:8: ( 'url' )
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:117:10: 'url'
+            {
+            match("url"); 
+
+
+            }
+
+            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;
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:118:8: ( 'embed' )
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:118:10: 'embed'
+            {
+            match("embed"); 
+
+
+            }
+
+            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;
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:119:8: ( 'package' )
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:119:10: 'package'
+            {
+            match("package"); 
+
+
+            }
+
+            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;
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:120:8: ( '{' )
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:120:10: '{'
+            {
+            match('{'); 
+
+            }
+
+            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;
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:121:8: ( '}' )
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:121:10: '}'
+            {
+            match('}'); 
+
+            }
+
+            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;
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:122:8: ( 'layout-data' )
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:122:10: 'layout-data'
+            {
+            match("layout-data"); 
+
+
+            }
+
+            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;
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:123:8: ( 'externalCssURI' )
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:123:10: 'externalCssURI'
+            {
+            match("externalCssURI"); 
+
+
+            }
+
+            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;
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:124:8: ( 'from bundle' )
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:124:10: 'from bundle'
+            {
+            match("from bundle"); 
+
+
+            }
+
+            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;
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:125:8: ( 'formatters' )
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:125:10: 'formatters'
+            {
+            match("formatters"); 
+
+
+            }
+
+            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;
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:126:8: ( 'colors' )
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:126:10: 'colors'
+            {
+            match("colors"); 
+
+
+            }
+
+            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;
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:127:8: ( 'fonts' )
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:127:10: 'fonts'
+            {
+            match("fonts"); 
+
+
+            }
+
+            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;
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:128:8: ( 'medias' )
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:128:10: 'medias'
+            {
+            match("medias"); 
+
+
+            }
+
+            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;
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:129:8: ( 'media' )
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:129:10: 'media'
+            {
+            match("media"); 
+
+
+            }
+
+            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;
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:130:8: ( 'styles' )
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:130:10: 'styles'
+            {
+            match("styles"); 
+
+
+            }
+
+            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;
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:131:8: ( 'pagetemplate' )
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:131:10: 'pagetemplate'
+            {
+            match("pagetemplate"); 
+
+
+            }
+
+            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;
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:132:8: ( 'type' )
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:132:10: 'type'
+            {
+            match("type"); 
+
+
+            }
+
+            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;
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:133:8: ( 'orientation' )
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:133:10: 'orientation'
+            {
+            match("orientation"); 
+
+
+            }
+
+            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;
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:134:8: ( 'topmargin' )
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:134:10: 'topmargin'
+            {
+            match("topmargin"); 
+
+
+            }
+
+            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;
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:135:8: ( 'leftmargin' )
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:135:10: 'leftmargin'
+            {
+            match("leftmargin"); 
+
+
+            }
+
+            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;
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:136:8: ( 'bottommargin' )
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:136:10: 'bottommargin'
+            {
+            match("bottommargin"); 
+
+
+            }
+
+            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;
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:137:8: ( 'rightmargin' )
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:137:10: 'rightmargin'
+            {
+            match("rightmargin"); 
+
+
+            }
+
+            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;
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:138:8: ( 'color' )
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:138:10: 'color'
+            {
+            match("color"); 
+
+
+            }
+
+            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;
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:139:8: ( 'darkens' )
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:139:10: 'darkens'
+            {
+            match("darkens"); 
+
+
+            }
+
+            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;
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:140:8: ( 'by-percent' )
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:140:10: 'by-percent'
+            {
+            match("by-percent"); 
+
+
+            }
+
+            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;
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:141:8: ( 'lightens' )
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:141:10: 'lightens'
+            {
+            match("lightens"); 
+
+
+            }
+
+            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;
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:142:8: ( 'transforms' )
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:142:10: 'transforms'
+            {
+            match("transforms"); 
+
+
+            }
+
+            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;
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:143:8: ( 'towards' )
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:143:10: 'towards'
+            {
+            match("towards"); 
+
+
+            }
+
+            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;
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:144:8: ( 'font' )
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:144:10: 'font'
+            {
+            match("font"); 
+
+
+            }
+
+            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;
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:145:8: ( 'family' )
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:145:10: 'family'
+            {
+            match("family"); 
+
+
+            }
+
+            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;
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:146:8: ( 'size' )
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:146:10: 'size'
+            {
+            match("size"); 
+
+
+            }
+
+            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;
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:147:8: ( 'style' )
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:147:10: 'style'
+            {
+            match("style"); 
+
+
+            }
+
+            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;
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:148:8: ( 'formatter' )
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:148:10: 'formatter'
+            {
+            match("formatter"); 
+
+
+            }
+
+            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;
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:149:8: ( 'backgroundcolor' )
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:149:10: 'backgroundcolor'
+            {
+            match("backgroundcolor"); 
+
+
+            }
+
+            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;
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:150:8: ( 'alternate' )
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:150:10: 'alternate'
+            {
+            match("alternate"); 
+
+
+            }
+
+            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;
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:151:8: ( 'textcolor' )
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:151:10: 'textcolor'
+            {
+            match("textcolor"); 
+
+
+            }
+
+            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;
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:152:8: ( 'textalign' )
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:152:10: 'textalign'
+            {
+            match("textalign"); 
+
+
+            }
+
+            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;
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:153:8: ( 'border-top' )
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:153:10: 'border-top'
+            {
+            match("border-top"); 
+
+
+            }
+
+            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;
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:154:8: ( 'border-bottom' )
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:154:10: 'border-bottom'
+            {
+            match("border-bottom"); 
+
+
+            }
+
+            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;
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:155:8: ( 'border-left' )
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:155:10: 'border-left'
+            {
+            match("border-left"); 
+
+
+            }
+
+            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;
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:156:8: ( 'border-right' )
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:156:10: 'border-right'
+            {
+            match("border-right"); 
+
+
+            }
+
+            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;
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:157:8: ( 'padding-top' )
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:157:10: 'padding-top'
+            {
+            match("padding-top"); 
+
+
+            }
+
+            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;
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:158:8: ( 'padding-bottom' )
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:158:10: 'padding-bottom'
+            {
+            match("padding-bottom"); 
+
+
+            }
+
+            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;
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:159:8: ( 'padding-left' )
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:159:10: 'padding-left'
+            {
+            match("padding-left"); 
+
+
+            }
+
+            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;
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:160:8: ( 'padding-right' )
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:160:10: 'padding-right'
+            {
+            match("padding-right"); 
+
+
+            }
+
+            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;
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:161:8: ( 'margin-top' )
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:161:10: 'margin-top'
+            {
+            match("margin-top"); 
+
+
+            }
+
+            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;
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:162:8: ( 'margin-bottom' )
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:162:10: 'margin-bottom'
+            {
+            match("margin-bottom"); 
+
+
+            }
+
+            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;
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:163:8: ( 'margin-left' )
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:163:10: 'margin-left'
+            {
+            match("margin-left"); 
+
+
+            }
+
+            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;
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:164:8: ( 'margin-right' )
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:164:10: 'margin-right'
+            {
+            match("margin-right"); 
+
+
+            }
+
+            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;
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:165:8: ( 'uomo' )
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:165:10: 'uomo'
+            {
+            match("uomo"); 
+
+
+            }
+
+            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;
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:166:8: ( 'ui' )
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:166:10: 'ui'
+            {
+            match("ui"); 
+
+
+            }
+
+            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;
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:167:8: ( 'report' )
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:167:10: 'report'
+            {
+            match("report"); 
+
+
+            }
+
+            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;
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:168:8: ( 'number' )
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:168:10: 'number'
+            {
+            match("number"); 
+
+
+            }
+
+            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;
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:169:8: ( 'date' )
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:169:10: 'date'
+            {
+            match("date"); 
+
+
+            }
+
+            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;
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:170:8: ( 'date+time' )
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:170:10: 'date+time'
+            {
+            match("date+time"); 
+
+
+            }
+
+            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;
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:171:8: ( 'time' )
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:171:10: 'time'
+            {
+            match("time"); 
+
+
+            }
+
+            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;
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:172:8: ( 'datamart' )
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:172:10: 'datamart'
+            {
+            match("datamart"); 
+
+
+            }
+
+            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;
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:173:8: ( 'rendering' )
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:173:10: 'rendering'
+            {
+            match("rendering"); 
+
+
+            }
+
+            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;
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:174:8: ( 'toolbar' )
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:174:10: 'toolbar'
+            {
+            match("toolbar"); 
+
+
+            }
+
+            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;
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:175:8: ( 'template' )
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:175:10: 'template'
+            {
+            match("template"); 
+
+
+            }
+
+            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;
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:176:8: ( 'described by' )
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:176:10: 'described by'
+            {
+            match("described by"); 
+
+
+            }
+
+            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;
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:177:8: ( 'header' )
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:177:10: 'header'
+            {
+            match("header"); 
+
+
+            }
+
+            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;
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:178:8: ( 'height' )
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:178:10: 'height'
+            {
+            match("height"); 
+
+
+            }
+
+            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;
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:179:8: ( 'detail' )
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:179:10: 'detail'
+            {
+            match("detail"); 
+
+
+            }
+
+            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;
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:180:8: ( 'footer' )
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:180:10: 'footer'
+            {
+            match("footer"); 
+
+
+            }
+
+            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;
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:181:8: ( 'grid' )
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:181:10: 'grid'
+            {
+            match("grid"); 
+
+
+            }
+
+            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;
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:182:8: ( 'as' )
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:182:10: 'as'
+            {
+            match("as"); 
+
+
+            }
+
+            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;
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:183:8: ( 'row' )
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:183:10: 'row'
+            {
+            match("row"); 
+
+
+            }
+
+            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;
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:184:8: ( 'cell' )
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:184:10: 'cell'
+            {
+            match("cell"); 
+
+
+            }
+
+            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;
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:185:8: ( 'columnspan' )
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:185:10: 'columnspan'
+            {
+            match("columnspan"); 
+
+
+            }
+
+            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;
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:186:8: ( 'table' )
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:186:10: 'table'
+            {
+            match("table"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__188"
+
+    // $ANTLR start "T__189"
+    public final void mT__189() throws RecognitionException {
+        try {
+            int _type = T__189;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:187:8: ( 'group' )
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:187:10: 'group'
+            {
+            match("group"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__189"
+
+    // $ANTLR start "T__190"
+    public final void mT__190() throws RecognitionException {
+        try {
+            int _type = T__190;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:188:8: ( 'by' )
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:188:10: 'by'
+            {
+            match("by"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__190"
+
+    // $ANTLR start "T__191"
+    public final void mT__191() throws RecognitionException {
+        try {
+            int _type = T__191;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:189:8: ( 'details' )
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:189:10: 'details'
+            {
+            match("details"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__191"
+
+    // $ANTLR start "T__192"
+    public final void mT__192() throws RecognitionException {
+        try {
+            int _type = T__192;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:190:8: ( 'intervals' )
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:190:10: 'intervals'
+            {
+            match("intervals"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__192"
+
+    // $ANTLR start "T__193"
+    public final void mT__193() throws RecognitionException {
+        try {
+            int _type = T__193;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:191:8: ( 'lookups' )
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:191:10: 'lookups'
+            {
+            match("lookups"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__193"
+
+    // $ANTLR start "T__194"
+    public final void mT__194() throws RecognitionException {
+        try {
+            int _type = T__194;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:192:8: ( 'path' )
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:192:10: 'path'
+            {
+            match("path"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__194"
+
+    // $ANTLR start "T__195"
+    public final void mT__195() throws RecognitionException {
+        try {
+            int _type = T__195;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:193:8: ( 'property' )
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:193:10: 'property'
+            {
+            match("property"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__195"
+
+    // $ANTLR start "T__196"
+    public final void mT__196() throws RecognitionException {
+        try {
+            int _type = T__196;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:194:8: ( 'aggregate' )
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:194:10: 'aggregate'
+            {
+            match("aggregate"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__196"
+
+    // $ANTLR start "T__197"
+    public final void mT__197() throws RecognitionException {
+        try {
+            int _type = T__197;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:195:8: ( 'on-group' )
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:195:10: 'on-group'
+            {
+            match("on-group"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__197"
+
+    // $ANTLR start "T__198"
+    public final void mT__198() throws RecognitionException {
+        try {
+            int _type = T__198;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:196:8: ( 'title' )
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:196:10: 'title'
+            {
+            match("title"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__198"
+
+    // $ANTLR start "T__199"
+    public final void mT__199() throws RecognitionException {
+        try {
+            int _type = T__199;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:197:8: ( 'of' )
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:197:10: 'of'
+            {
+            match("of"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__199"
+
+    // $ANTLR start "T__200"
+    public final void mT__200() throws RecognitionException {
+        try {
+            int _type = T__200;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:198:8: ( '(' )
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:198:10: '('
+            {
+            match('('); 
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__200"
+
+    // $ANTLR start "T__201"
+    public final void mT__201() throws RecognitionException {
+        try {
+            int _type = T__201;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:199:8: ( ')' )
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:199:10: ')'
+            {
+            match(')'); 
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__201"
+
+    // $ANTLR start "T__202"
+    public final void mT__202() throws RecognitionException {
+        try {
+            int _type = T__202;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:200:8: ( 'up to' )
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:200:10: 'up to'
+            {
+            match("up to"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__202"
+
+    // $ANTLR start "T__203"
+    public final void mT__203() throws RecognitionException {
+        try {
+            int _type = T__203;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:201:8: ( 'days in past' )
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:201:10: 'days in past'
+            {
+            match("days in past"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__203"
+
+    // $ANTLR start "T__204"
+    public final void mT__204() throws RecognitionException {
+        try {
+            int _type = T__204;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:202:8: ( 'string' )
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:202:10: 'string'
+            {
+            match("string"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__204"
+
+    // $ANTLR start "T__205"
+    public final void mT__205() throws RecognitionException {
+        try {
+            int _type = T__205;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:203:8: ( 'cellcolor' )
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:203:10: 'cellcolor'
+            {
+            match("cellcolor"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__205"
+
+    // $ANTLR start "T__206"
+    public final void mT__206() throws RecognitionException {
+        try {
+            int _type = T__206;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:204:8: ( 'icon' )
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:204:10: 'icon'
+            {
+            match("icon"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__206"
+
+    // $ANTLR start "T__207"
+    public final void mT__207() throws RecognitionException {
+        try {
+            int _type = T__207;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:205:8: ( 'trend' )
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:205:10: 'trend'
+            {
+            match("trend"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__207"
+
+    // $ANTLR start "T__208"
+    public final void mT__208() throws RecognitionException {
+        try {
+            int _type = T__208;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:206:8: ( 'subtitle' )
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:206:10: 'subtitle'
+            {
+            match("subtitle"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__208"
+
+    // $ANTLR start "T__209"
+    public final void mT__209() throws RecognitionException {
+        try {
+            int _type = T__209;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:207:8: ( 'subsubtitle' )
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:207:10: 'subsubtitle'
+            {
+            match("subsubtitle"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__209"
+
+    // $ANTLR start "T__210"
+    public final void mT__210() throws RecognitionException {
+        try {
+            int _type = T__210;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:208:8: ( 'label' )
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:208:10: 'label'
+            {
+            match("label"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__210"
+
+    // $ANTLR start "T__211"
+    public final void mT__211() throws RecognitionException {
+        try {
+            int _type = T__211;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:209:8: ( 'text' )
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:209:10: 'text'
+            {
+            match("text"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__211"
+
+    // $ANTLR start "T__212"
+    public final void mT__212() throws RecognitionException {
+        try {
+            int _type = T__212;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:210:8: ( 'autotext' )
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:210:10: 'autotext'
+            {
+            match("autotext"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__212"
+
+    // $ANTLR start "T__213"
+    public final void mT__213() throws RecognitionException {
+        try {
+            int _type = T__213;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:211:8: ( 'image' )
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:211:10: 'image'
+            {
+            match("image"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__213"
+
+    // $ANTLR start "T__214"
+    public final void mT__214() throws RecognitionException {
+        try {
+            int _type = T__214;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:212:8: ( 'scale' )
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:212:10: 'scale'
+            {
+            match("scale"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__214"
+
+    // $ANTLR start "T__215"
+    public final void mT__215() throws RecognitionException {
+        try {
+            int _type = T__215;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:213:8: ( '@' )
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:213:10: '@'
+            {
+            match('@'); 
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__215"
+
+    // $ANTLR start "T__216"
+    public final void mT__216() throws RecognitionException {
+        try {
+            int _type = T__216;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:214:8: ( ',' )
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:214:10: ','
+            {
+            match(','); 
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__216"
+
+    // $ANTLR start "T__217"
+    public final void mT__217() throws RecognitionException {
+        try {
+            int _type = T__217;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:215:8: ( ']' )
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:215:10: ']'
+            {
+            match(']'); 
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__217"
+
+    // $ANTLR start "T__218"
+    public final void mT__218() throws RecognitionException {
+        try {
+            int _type = T__218;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:216:8: ( '#' )
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:216:10: '#'
+            {
+            match('#'); 
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__218"
+
+    // $ANTLR start "T__219"
+    public final void mT__219() throws RecognitionException {
+        try {
+            int _type = T__219;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:217:8: ( '[' )
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:217:10: '['
+            {
+            match('['); 
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__219"
+
+    // $ANTLR start "T__220"
+    public final void mT__220() throws RecognitionException {
+        try {
+            int _type = T__220;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:218:8: ( 'instanceof' )
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:218:10: 'instanceof'
+            {
+            match("instanceof"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__220"
+
+    // $ANTLR start "T__221"
+    public final void mT__221() throws RecognitionException {
+        try {
+            int _type = T__221;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:219:8: ( ';' )
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:219:10: ';'
+            {
+            match(';'); 
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__221"
+
+    // $ANTLR start "T__222"
+    public final void mT__222() throws RecognitionException {
+        try {
+            int _type = T__222;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:220:8: ( 'if' )
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:220:10: 'if'
+            {
+            match("if"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__222"
+
+    // $ANTLR start "T__223"
+    public final void mT__223() throws RecognitionException {
+        try {
+            int _type = T__223;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:221:8: ( 'else' )
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:221:10: 'else'
+            {
+            match("else"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__223"
+
+    // $ANTLR start "T__224"
+    public final void mT__224() throws RecognitionException {
+        try {
+            int _type = T__224;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:222:8: ( 'switch' )
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:222:10: 'switch'
+            {
+            match("switch"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__224"
+
+    // $ANTLR start "T__225"
+    public final void mT__225() throws RecognitionException {
+        try {
+            int _type = T__225;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:223:8: ( ':' )
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:223:10: ':'
+            {
+            match(':'); 
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__225"
+
+    // $ANTLR start "T__226"
+    public final void mT__226() throws RecognitionException {
+        try {
+            int _type = T__226;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:224:8: ( 'default' )
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:224:10: 'default'
+            {
+            match("default"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__226"
+
+    // $ANTLR start "T__227"
+    public final void mT__227() throws RecognitionException {
+        try {
+            int _type = T__227;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:225:8: ( 'case' )
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:225:10: 'case'
+            {
+            match("case"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__227"
+
+    // $ANTLR start "T__228"
+    public final void mT__228() throws RecognitionException {
+        try {
+            int _type = T__228;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:226:8: ( 'for' )
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:226:10: 'for'
+            {
+            match("for"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__228"
+
+    // $ANTLR start "T__229"
+    public final void mT__229() throws RecognitionException {
+        try {
+            int _type = T__229;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:227:8: ( 'while' )
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:227:10: 'while'
+            {
+            match("while"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__229"
+
+    // $ANTLR start "T__230"
+    public final void mT__230() throws RecognitionException {
+        try {
+            int _type = T__230;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:228:8: ( 'do' )
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:228:10: 'do'
+            {
+            match("do"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__230"
+
+    // $ANTLR start "T__231"
+    public final void mT__231() throws RecognitionException {
+        try {
+            int _type = T__231;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:229:8: ( 'new' )
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:229:10: 'new'
+            {
+            match("new"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__231"
+
+    // $ANTLR start "T__232"
+    public final void mT__232() throws RecognitionException {
+        try {
+            int _type = T__232;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:230:8: ( 'null' )
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:230:10: 'null'
+            {
+            match("null"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__232"
+
+    // $ANTLR start "T__233"
+    public final void mT__233() throws RecognitionException {
+        try {
+            int _type = T__233;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:231:8: ( 'typeof' )
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:231:10: 'typeof'
+            {
+            match("typeof"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__233"
+
+    // $ANTLR start "T__234"
+    public final void mT__234() throws RecognitionException {
+        try {
+            int _type = T__234;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:232:8: ( 'throw' )
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:232:10: 'throw'
+            {
+            match("throw"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__234"
+
+    // $ANTLR start "T__235"
+    public final void mT__235() throws RecognitionException {
+        try {
+            int _type = T__235;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:233:8: ( 'return' )
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:233:10: 'return'
+            {
+            match("return"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__235"
+
+    // $ANTLR start "T__236"
+    public final void mT__236() throws RecognitionException {
+        try {
+            int _type = T__236;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:234:8: ( 'try' )
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:234:10: 'try'
+            {
+            match("try"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__236"
+
+    // $ANTLR start "T__237"
+    public final void mT__237() throws RecognitionException {
+        try {
+            int _type = T__237;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:235:8: ( 'finally' )
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:235:10: 'finally'
+            {
+            match("finally"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__237"
+
+    // $ANTLR start "T__238"
+    public final void mT__238() throws RecognitionException {
+        try {
+            int _type = T__238;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:236:8: ( 'synchronized' )
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:236:10: 'synchronized'
+            {
+            match("synchronized"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__238"
+
+    // $ANTLR start "T__239"
+    public final void mT__239() throws RecognitionException {
+        try {
+            int _type = T__239;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:237:8: ( 'catch' )
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:237:10: 'catch'
+            {
+            match("catch"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__239"
+
+    // $ANTLR start "T__240"
+    public final void mT__240() throws RecognitionException {
+        try {
+            int _type = T__240;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:238:8: ( '?' )
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:238:10: '?'
+            {
+            match('?'); 
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__240"
+
+    // $ANTLR start "T__241"
+    public final void mT__241() throws RecognitionException {
+        try {
+            int _type = T__241;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:239:8: ( '&' )
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:239:10: '&'
+            {
+            match('&'); 
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__241"
+
+    // $ANTLR start "T__242"
+    public final void mT__242() throws RecognitionException {
+        try {
+            int _type = T__242;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:240:8: ( 'bold' )
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:240:10: 'bold'
+            {
+            match("bold"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__242"
+
+    // $ANTLR start "T__243"
+    public final void mT__243() throws RecognitionException {
+        try {
+            int _type = T__243;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:241:8: ( 'showOnFirst' )
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:241:10: 'showOnFirst'
+            {
+            match("showOnFirst"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__243"
+
+    // $ANTLR start "T__244"
+    public final void mT__244() throws RecognitionException {
+        try {
+            int _type = T__244;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:242:8: ( 'showOnLast' )
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:242:10: 'showOnLast'
+            {
+            match("showOnLast"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__244"
+
+    // $ANTLR start "T__245"
+    public final void mT__245() throws RecognitionException {
+        try {
+            int _type = T__245;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:243:8: ( 'detailheader' )
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:243:10: 'detailheader'
+            {
+            match("detailheader"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__245"
+
+    // $ANTLR start "T__246"
+    public final void mT__246() throws RecognitionException {
+        try {
+            int _type = T__246;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:244:8: ( 'detailfooter' )
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:244:10: 'detailfooter'
+            {
+            match("detailfooter"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__246"
+
+    // $ANTLR start "T__247"
+    public final void mT__247() throws RecognitionException {
+        try {
+            int _type = T__247;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:245:8: ( 'hidelabel' )
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:245:10: 'hidelabel'
+            {
+            match("hidelabel"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__247"
+
+    // $ANTLR start "T__248"
+    public final void mT__248() throws RecognitionException {
+        try {
+            int _type = T__248;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:246:8: ( 'dynamic' )
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:246:10: 'dynamic'
+            {
+            match("dynamic"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__248"
+
+    // $ANTLR start "T__249"
+    public final void mT__249() throws RecognitionException {
+        try {
+            int _type = T__249;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:247:8: ( 'resize' )
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:247:10: 'resize'
+            {
+            match("resize"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__249"
+
+    // $ANTLR start "T__250"
+    public final void mT__250() throws RecognitionException {
+        try {
+            int _type = T__250;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:248:8: ( '::' )
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:248:10: '::'
+            {
+            match("::"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__250"
+
+    // $ANTLR start "T__251"
+    public final void mT__251() throws RecognitionException {
+        try {
+            int _type = T__251;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:249:8: ( '?.' )
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:249:10: '?.'
+            {
+            match("?."); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__251"
+
+    // $ANTLR start "T__252"
+    public final void mT__252() throws RecognitionException {
+        try {
+            int _type = T__252;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:250:8: ( '|' )
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:250:10: '|'
+            {
+            match('|'); 
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__252"
+
+    // $ANTLR start "T__253"
+    public final void mT__253() throws RecognitionException {
+        try {
+            int _type = T__253;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:251:8: ( 'var' )
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:251:10: 'var'
+            {
+            match("var"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__253"
+
+    // $ANTLR start "T__254"
+    public final void mT__254() throws RecognitionException {
+        try {
+            int _type = T__254;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:252:8: ( 'true' )
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:252:10: 'true'
+            {
+            match("true"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__254"
+
+    // $ANTLR start "RULE_HEX"
+    public final void mRULE_HEX() throws RecognitionException {
+        try {
+            int _type = RULE_HEX;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:47720:10: ( ( '0x' | '0X' ) ( '0' .. '9' | 'a' .. 'f' | 'A' .. 'F' | '_' )+ ( '#' ( ( 'b' | 'B' ) ( 'i' | 'I' ) | ( 'l' | 'L' ) ) )? )
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:47720:12: ( '0x' | '0X' ) ( '0' .. '9' | 'a' .. 'f' | 'A' .. 'F' | '_' )+ ( '#' ( ( 'b' | 'B' ) ( 'i' | 'I' ) | ( 'l' | 'L' ) ) )?
+            {
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:47720:12: ( '0x' | '0X' )
+            int alt1=2;
+            int LA1_0 = input.LA(1);
+
+            if ( (LA1_0=='0') ) {
+                int LA1_1 = input.LA(2);
+
+                if ( (LA1_1=='x') ) {
+                    alt1=1;
+                }
+                else if ( (LA1_1=='X') ) {
+                    alt1=2;
+                }
+                else {
+                    NoViableAltException nvae =
+                        new NoViableAltException("", 1, 1, input);
+
+                    throw nvae;
+                }
+            }
+            else {
+                NoViableAltException nvae =
+                    new NoViableAltException("", 1, 0, input);
+
+                throw nvae;
+            }
+            switch (alt1) {
+                case 1 :
+                    // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:47720:13: '0x'
+                    {
+                    match("0x"); 
+
+
+                    }
+                    break;
+                case 2 :
+                    // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:47720:18: '0X'
+                    {
+                    match("0X"); 
+
+
+                    }
+                    break;
+
+            }
+
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:47720:24: ( '0' .. '9' | 'a' .. 'f' | 'A' .. 'F' | '_' )+
+            int cnt2=0;
+            loop2:
+            do {
+                int alt2=2;
+                int LA2_0 = input.LA(1);
+
+                if ( ((LA2_0>='0' && LA2_0<='9')||(LA2_0>='A' && LA2_0<='F')||LA2_0=='_'||(LA2_0>='a' && LA2_0<='f')) ) {
+                    alt2=1;
+                }
+
+
+                switch (alt2) {
+            	case 1 :
+            	    // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.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 ( cnt2 >= 1 ) break loop2;
+                        EarlyExitException eee =
+                            new EarlyExitException(2, input);
+                        throw eee;
+                }
+                cnt2++;
+            } while (true);
+
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:47720:58: ( '#' ( ( 'b' | 'B' ) ( 'i' | 'I' ) | ( 'l' | 'L' ) ) )?
+            int alt4=2;
+            int LA4_0 = input.LA(1);
+
+            if ( (LA4_0=='#') ) {
+                alt4=1;
+            }
+            switch (alt4) {
+                case 1 :
+                    // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:47720:59: '#' ( ( 'b' | 'B' ) ( 'i' | 'I' ) | ( 'l' | 'L' ) )
+                    {
+                    match('#'); 
+                    // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:47720:63: ( ( 'b' | 'B' ) ( 'i' | 'I' ) | ( 'l' | 'L' ) )
+                    int alt3=2;
+                    int LA3_0 = input.LA(1);
+
+                    if ( (LA3_0=='B'||LA3_0=='b') ) {
+                        alt3=1;
+                    }
+                    else if ( (LA3_0=='L'||LA3_0=='l') ) {
+                        alt3=2;
+                    }
+                    else {
+                        NoViableAltException nvae =
+                            new NoViableAltException("", 3, 0, input);
+
+                        throw nvae;
+                    }
+                    switch (alt3) {
+                        case 1 :
+                            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:47720: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 :
+                            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:47720: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;
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:47722:10: ( '0' .. '9' ( '0' .. '9' | '_' )* )
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:47722:12: '0' .. '9' ( '0' .. '9' | '_' )*
+            {
+            matchRange('0','9'); 
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:47722:21: ( '0' .. '9' | '_' )*
+            loop5:
+            do {
+                int alt5=2;
+                int LA5_0 = input.LA(1);
+
+                if ( ((LA5_0>='0' && LA5_0<='9')||LA5_0=='_') ) {
+                    alt5=1;
+                }
+
+
+                switch (alt5) {
+            	case 1 :
+            	    // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.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 loop5;
+                }
+            } 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.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:47724:14: ( RULE_INT ( ( 'e' | 'E' ) ( '+' | '-' )? RULE_INT )? ( ( 'b' | 'B' ) ( 'i' | 'I' | 'd' | 'D' ) | ( 'l' | 'L' | 'd' | 'D' | 'f' | 'F' ) )? )
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:47724: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.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:47724:25: ( ( 'e' | 'E' ) ( '+' | '-' )? RULE_INT )?
+            int alt7=2;
+            int LA7_0 = input.LA(1);
+
+            if ( (LA7_0=='E'||LA7_0=='e') ) {
+                alt7=1;
+            }
+            switch (alt7) {
+                case 1 :
+                    // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:47724: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;}
+
+                    // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:47724:36: ( '+' | '-' )?
+                    int alt6=2;
+                    int LA6_0 = input.LA(1);
+
+                    if ( (LA6_0=='+'||LA6_0=='-') ) {
+                        alt6=1;
+                    }
+                    switch (alt6) {
+                        case 1 :
+                            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.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;
+
+            }
+
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:47724:58: ( ( 'b' | 'B' ) ( 'i' | 'I' | 'd' | 'D' ) | ( 'l' | 'L' | 'd' | 'D' | 'f' | 'F' ) )?
+            int alt8=3;
+            int LA8_0 = input.LA(1);
+
+            if ( (LA8_0=='B'||LA8_0=='b') ) {
+                alt8=1;
+            }
+            else if ( (LA8_0=='D'||LA8_0=='F'||LA8_0=='L'||LA8_0=='d'||LA8_0=='f'||LA8_0=='l') ) {
+                alt8=2;
+            }
+            switch (alt8) {
+                case 1 :
+                    // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:47724: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 :
+                    // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:47724: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;
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:47726:9: ( ( '^' )? ( 'a' .. 'z' | 'A' .. 'Z' | '$' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '$' | '_' | '0' .. '9' )* )
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:47726:11: ( '^' )? ( 'a' .. 'z' | 'A' .. 'Z' | '$' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '$' | '_' | '0' .. '9' )*
+            {
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:47726:11: ( '^' )?
+            int alt9=2;
+            int LA9_0 = input.LA(1);
+
+            if ( (LA9_0=='^') ) {
+                alt9=1;
+            }
+            switch (alt9) {
+                case 1 :
+                    // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:47726: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.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:47726:44: ( 'a' .. 'z' | 'A' .. 'Z' | '$' | '_' | '0' .. '9' )*
+            loop10:
+            do {
+                int alt10=2;
+                int LA10_0 = input.LA(1);
+
+                if ( (LA10_0=='$'||(LA10_0>='0' && LA10_0<='9')||(LA10_0>='A' && LA10_0<='Z')||LA10_0=='_'||(LA10_0>='a' && LA10_0<='z')) ) {
+                    alt10=1;
+                }
+
+
+                switch (alt10) {
+            	case 1 :
+            	    // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.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 loop10;
+                }
+            } 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.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:47728:13: ( ( '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* ( '\"' )? | '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* ( '\\'' )? ) )
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:47728:15: ( '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* ( '\"' )? | '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* ( '\\'' )? )
+            {
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:47728:15: ( '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* ( '\"' )? | '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* ( '\\'' )? )
+            int alt15=2;
+            int LA15_0 = input.LA(1);
+
+            if ( (LA15_0=='\"') ) {
+                alt15=1;
+            }
+            else if ( (LA15_0=='\'') ) {
+                alt15=2;
+            }
+            else {
+                NoViableAltException nvae =
+                    new NoViableAltException("", 15, 0, input);
+
+                throw nvae;
+            }
+            switch (alt15) {
+                case 1 :
+                    // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:47728:16: '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* ( '\"' )?
+                    {
+                    match('\"'); 
+                    // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:47728:20: ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )*
+                    loop11:
+                    do {
+                        int alt11=3;
+                        int LA11_0 = input.LA(1);
+
+                        if ( (LA11_0=='\\') ) {
+                            alt11=1;
+                        }
+                        else if ( ((LA11_0>='\u0000' && LA11_0<='!')||(LA11_0>='#' && LA11_0<='[')||(LA11_0>=']' && LA11_0<='\uFFFF')) ) {
+                            alt11=2;
+                        }
+
+
+                        switch (alt11) {
+                    	case 1 :
+                    	    // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:47728:21: '\\\\' .
+                    	    {
+                    	    match('\\'); 
+                    	    matchAny(); 
+
+                    	    }
+                    	    break;
+                    	case 2 :
+                    	    // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:47728: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 loop11;
+                        }
+                    } while (true);
+
+                    // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:47728:44: ( '\"' )?
+                    int alt12=2;
+                    int LA12_0 = input.LA(1);
+
+                    if ( (LA12_0=='\"') ) {
+                        alt12=1;
+                    }
+                    switch (alt12) {
+                        case 1 :
+                            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:47728:44: '\"'
+                            {
+                            match('\"'); 
+
+                            }
+                            break;
+
+                    }
+
+
+                    }
+                    break;
+                case 2 :
+                    // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:47728:49: '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* ( '\\'' )?
+                    {
+                    match('\''); 
+                    // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:47728:54: ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )*
+                    loop13:
+                    do {
+                        int alt13=3;
+                        int LA13_0 = input.LA(1);
+
+                        if ( (LA13_0=='\\') ) {
+                            alt13=1;
+                        }
+                        else if ( ((LA13_0>='\u0000' && LA13_0<='&')||(LA13_0>='(' && LA13_0<='[')||(LA13_0>=']' && LA13_0<='\uFFFF')) ) {
+                            alt13=2;
+                        }
+
+
+                        switch (alt13) {
+                    	case 1 :
+                    	    // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:47728:55: '\\\\' .
+                    	    {
+                    	    match('\\'); 
+                    	    matchAny(); 
+
+                    	    }
+                    	    break;
+                    	case 2 :
+                    	    // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:47728: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 loop13;
+                        }
+                    } while (true);
+
+                    // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:47728:79: ( '\\'' )?
+                    int alt14=2;
+                    int LA14_0 = input.LA(1);
+
+                    if ( (LA14_0=='\'') ) {
+                        alt14=1;
+                    }
+                    switch (alt14) {
+                        case 1 :
+                            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:47728: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;
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:47730:17: ( '/*' ( options {greedy=false; } : . )* '*/' )
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:47730:19: '/*' ( options {greedy=false; } : . )* '*/'
+            {
+            match("/*"); 
+
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:47730:24: ( options {greedy=false; } : . )*
+            loop16:
+            do {
+                int alt16=2;
+                int LA16_0 = input.LA(1);
+
+                if ( (LA16_0=='*') ) {
+                    int LA16_1 = input.LA(2);
+
+                    if ( (LA16_1=='/') ) {
+                        alt16=2;
+                    }
+                    else if ( ((LA16_1>='\u0000' && LA16_1<='.')||(LA16_1>='0' && LA16_1<='\uFFFF')) ) {
+                        alt16=1;
+                    }
+
+
+                }
+                else if ( ((LA16_0>='\u0000' && LA16_0<=')')||(LA16_0>='+' && LA16_0<='\uFFFF')) ) {
+                    alt16=1;
+                }
+
+
+                switch (alt16) {
+            	case 1 :
+            	    // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:47730:52: .
+            	    {
+            	    matchAny(); 
+
+            	    }
+            	    break;
+
+            	default :
+            	    break loop16;
+                }
+            } 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;
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:47732:17: ( '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )? )
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:47732:19: '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )?
+            {
+            match("//"); 
+
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:47732:24: (~ ( ( '\\n' | '\\r' ) ) )*
+            loop17:
+            do {
+                int alt17=2;
+                int LA17_0 = input.LA(1);
+
+                if ( ((LA17_0>='\u0000' && LA17_0<='\t')||(LA17_0>='\u000B' && LA17_0<='\f')||(LA17_0>='\u000E' && LA17_0<='\uFFFF')) ) {
+                    alt17=1;
+                }
+
+
+                switch (alt17) {
+            	case 1 :
+            	    // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:47732: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 loop17;
+                }
+            } while (true);
+
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:47732:40: ( ( '\\r' )? '\\n' )?
+            int alt19=2;
+            int LA19_0 = input.LA(1);
+
+            if ( (LA19_0=='\n'||LA19_0=='\r') ) {
+                alt19=1;
+            }
+            switch (alt19) {
+                case 1 :
+                    // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:47732:41: ( '\\r' )? '\\n'
+                    {
+                    // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:47732:41: ( '\\r' )?
+                    int alt18=2;
+                    int LA18_0 = input.LA(1);
+
+                    if ( (LA18_0=='\r') ) {
+                        alt18=1;
+                    }
+                    switch (alt18) {
+                        case 1 :
+                            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:47732: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;
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:47734:9: ( ( ' ' | '\\t' | '\\r' | '\\n' )+ )
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:47734:11: ( ' ' | '\\t' | '\\r' | '\\n' )+
+            {
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:47734:11: ( ' ' | '\\t' | '\\r' | '\\n' )+
+            int cnt20=0;
+            loop20:
+            do {
+                int alt20=2;
+                int LA20_0 = input.LA(1);
+
+                if ( ((LA20_0>='\t' && LA20_0<='\n')||LA20_0=='\r'||LA20_0==' ') ) {
+                    alt20=1;
+                }
+
+
+                switch (alt20) {
+            	case 1 :
+            	    // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.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 ( cnt20 >= 1 ) break loop20;
+                        EarlyExitException eee =
+                            new EarlyExitException(20, input);
+                        throw eee;
+                }
+                cnt20++;
+            } 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;
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:47736:16: ( . )
+            // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:47736:18: .
+            {
+            matchAny(); 
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "RULE_ANY_OTHER"
+
+    public void mTokens() throws RecognitionException {
+        // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:1:8: ( T__13 | T__14 | T__15 | T__16 | T__17 | T__18 | T__19 | T__20 | T__21 | T__22 | T__23 | T__24 | T__25 | T__26 | T__27 | T__28 | T__29 | T__30 | T__31 | T__32 | T__33 | T__34 | T__35 | T__36 | T__37 | T__38 | T__39 | T__40 | T__41 | T__42 | T__43 | T__44 | T__45 | T__46 | T__47 | T__48 | T__49 | T__50 | T__51 | T__52 | T__53 | T__54 | T__55 | T__56 | T__57 | T__58 | T__59 | T__60 | T__61 | T__62 | T__63 | T__64 | T__65 | T__66 | T__67 | T__68 | T__69 | T__70 | T__71 | T__72 | T__73 | T__74 | T__75 | T__76 | T__77 | T__78 | T__79 | T__80 | T__81 | T__82 | T__83 | T__84 | T__85 | T__86 | T__87 | T__88 | T__89 | T__90 | T__91 | T__92 | T__93 | T__94 | T__95 | T__96 | T__97 | T__98 | T__99 | T__100 | T__101 | T__102 | T__103 | T__104 | T__105 | T__106 | T__107 | T__108 | T__109 | T__110 | T__111 | T__112 | T__113 | T__114 | T__115 | T__116 | T__117 | T__118 | T__119 | T__120 | T__121 | T__122 | T__123 | T__124 | T__125 | T__126 | T__127 | T__128 | T__129 | T__130 | T__131 | T__132 | T__133 | T__134 | T__135 | T__136 | T__137 | T__138 | T__139 | T__140 | T__141 | T__142 | T__143 | T__144 | T__145 | T__146 | T__147 | T__148 | T__149 | T__150 | T__151 | T__152 | T__153 | T__154 | T__155 | T__156 | T__157 | T__158 | T__159 | T__160 | T__161 | T__162 | T__163 | T__164 | T__165 | T__166 | T__167 | T__168 | T__169 | T__170 | T__171 | 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 | T__189 | T__190 | T__191 | T__192 | T__193 | T__194 | T__195 | T__196 | T__197 | T__198 | T__199 | T__200 | T__201 | T__202 | T__203 | T__204 | T__205 | T__206 | T__207 | T__208 | T__209 | T__210 | T__211 | T__212 | T__213 | T__214 | T__215 | T__216 | T__217 | T__218 | T__219 | T__220 | T__221 | T__222 | T__223 | T__224 | T__225 | T__226 | T__227 | T__228 | T__229 | T__230 | T__231 | T__232 | T__233 | T__234 | T__235 | T__236 | T__237 | T__238 | T__239 | T__240 | T__241 | T__242 | T__243 | T__244 | T__245 | T__246 | T__247 | T__248 | T__249 | T__250 | T__251 | T__252 | T__253 | T__254 | RULE_HEX | RULE_INT | RULE_DECIMAL | RULE_ID | RULE_STRING | RULE_ML_COMMENT | RULE_SL_COMMENT | RULE_WS | RULE_ANY_OTHER )
+        int alt21=251;
+        alt21 = dfa21.predict(input);
+        switch (alt21) {
+            case 1 :
+                // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:1:10: T__13
+                {
+                mT__13(); 
+
+                }
+                break;
+            case 2 :
+                // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:1:16: T__14
+                {
+                mT__14(); 
+
+                }
+                break;
+            case 3 :
+                // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:1:22: T__15
+                {
+                mT__15(); 
+
+                }
+                break;
+            case 4 :
+                // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:1:28: T__16
+                {
+                mT__16(); 
+
+                }
+                break;
+            case 5 :
+                // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:1:34: T__17
+                {
+                mT__17(); 
+
+                }
+                break;
+            case 6 :
+                // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:1:40: T__18
+                {
+                mT__18(); 
+
+                }
+                break;
+            case 7 :
+                // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:1:46: T__19
+                {
+                mT__19(); 
+
+                }
+                break;
+            case 8 :
+                // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:1:52: T__20
+                {
+                mT__20(); 
+
+                }
+                break;
+            case 9 :
+                // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:1:58: T__21
+                {
+                mT__21(); 
+
+                }
+                break;
+            case 10 :
+                // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:1:64: T__22
+                {
+                mT__22(); 
+
+                }
+                break;
+            case 11 :
+                // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:1:70: T__23
+                {
+                mT__23(); 
+
+                }
+                break;
+            case 12 :
+                // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:1:76: T__24
+                {
+                mT__24(); 
+
+                }
+                break;
+            case 13 :
+                // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:1:82: T__25
+                {
+                mT__25(); 
+
+                }
+                break;
+            case 14 :
+                // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:1:88: T__26
+                {
+                mT__26(); 
+
+                }
+                break;
+            case 15 :
+                // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:1:94: T__27
+                {
+                mT__27(); 
+
+                }
+                break;
+            case 16 :
+                // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:1:100: T__28
+                {
+                mT__28(); 
+
+                }
+                break;
+            case 17 :
+                // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:1:106: T__29
+                {
+                mT__29(); 
+
+                }
+                break;
+            case 18 :
+                // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:1:112: T__30
+                {
+                mT__30(); 
+
+                }
+                break;
+            case 19 :
+                // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:1:118: T__31
+                {
+                mT__31(); 
+
+                }
+                break;
+            case 20 :
+                // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:1:124: T__32
+                {
+                mT__32(); 
+
+                }
+                break;
+            case 21 :
+                // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:1:130: T__33
+                {
+                mT__33(); 
+
+                }
+                break;
+            case 22 :
+                // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:1:136: T__34
+                {
+                mT__34(); 
+
+                }
+                break;
+            case 23 :
+                // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:1:142: T__35
+                {
+                mT__35(); 
+
+                }
+                break;
+            case 24 :
+                // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:1:148: T__36
+                {
+                mT__36(); 
+
+                }
+                break;
+            case 25 :
+                // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:1:154: T__37
+                {
+                mT__37(); 
+
+                }
+                break;
+            case 26 :
+                // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:1:160: T__38
+                {
+                mT__38(); 
+
+                }
+                break;
+            case 27 :
+                // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:1:166: T__39
+                {
+                mT__39(); 
+
+                }
+                break;
+            case 28 :
+                // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:1:172: T__40
+                {
+                mT__40(); 
+
+                }
+                break;
+            case 29 :
+                // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:1:178: T__41
+                {
+                mT__41(); 
+
+                }
+                break;
+            case 30 :
+                // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:1:184: T__42
+                {
+                mT__42(); 
+
+                }
+                break;
+            case 31 :
+                // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:1:190: T__43
+                {
+                mT__43(); 
+
+                }
+                break;
+            case 32 :
+                // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:1:196: T__44
+                {
+                mT__44(); 
+
+                }
+                break;
+            case 33 :
+                // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:1:202: T__45
+                {
+                mT__45(); 
+
+                }
+                break;
+            case 34 :
+                // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:1:208: T__46
+                {
+                mT__46(); 
+
+                }
+                break;
+            case 35 :
+                // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:1:214: T__47
+                {
+                mT__47(); 
+
+                }
+                break;
+            case 36 :
+                // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:1:220: T__48
+                {
+                mT__48(); 
+
+                }
+                break;
+            case 37 :
+                // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:1:226: T__49
+                {
+                mT__49(); 
+
+                }
+                break;
+            case 38 :
+                // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:1:232: T__50
+                {
+                mT__50(); 
+
+                }
+                break;
+            case 39 :
+                // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:1:238: T__51
+                {
+                mT__51(); 
+
+                }
+                break;
+            case 40 :
+                // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:1:244: T__52
+                {
+                mT__52(); 
+
+                }
+                break;
+            case 41 :
+                // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:1:250: T__53
+                {
+                mT__53(); 
+
+                }
+                break;
+            case 42 :
+                // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:1:256: T__54
+                {
+                mT__54(); 
+
+                }
+                break;
+            case 43 :
+                // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:1:262: T__55
+                {
+                mT__55(); 
+
+                }
+                break;
+            case 44 :
+                // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:1:268: T__56
+                {
+                mT__56(); 
+
+                }
+                break;
+            case 45 :
+                // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:1:274: T__57
+                {
+                mT__57(); 
+
+                }
+                break;
+            case 46 :
+                // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:1:280: T__58
+                {
+                mT__58(); 
+
+                }
+                break;
+            case 47 :
+                // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:1:286: T__59
+                {
+                mT__59(); 
+
+                }
+                break;
+            case 48 :
+                // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:1:292: T__60
+                {
+                mT__60(); 
+
+                }
+                break;
+            case 49 :
+                // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:1:298: T__61
+                {
+                mT__61(); 
+
+                }
+                break;
+            case 50 :
+                // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:1:304: T__62
+                {
+                mT__62(); 
+
+                }
+                break;
+            case 51 :
+                // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:1:310: T__63
+                {
+                mT__63(); 
+
+                }
+                break;
+            case 52 :
+                // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:1:316: T__64
+                {
+                mT__64(); 
+
+                }
+                break;
+            case 53 :
+                // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:1:322: T__65
+                {
+                mT__65(); 
+
+                }
+                break;
+            case 54 :
+                // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:1:328: T__66
+                {
+                mT__66(); 
+
+                }
+                break;
+            case 55 :
+                // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:1:334: T__67
+                {
+                mT__67(); 
+
+                }
+                break;
+            case 56 :
+                // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:1:340: T__68
+                {
+                mT__68(); 
+
+                }
+                break;
+            case 57 :
+                // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:1:346: T__69
+                {
+                mT__69(); 
+
+                }
+                break;
+            case 58 :
+                // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:1:352: T__70
+                {
+                mT__70(); 
+
+                }
+                break;
+            case 59 :
+                // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:1:358: T__71
+                {
+                mT__71(); 
+
+                }
+                break;
+            case 60 :
+                // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:1:364: T__72
+                {
+                mT__72(); 
+
+                }
+                break;
+            case 61 :
+                // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:1:370: T__73
+                {
+                mT__73(); 
+
+                }
+                break;
+            case 62 :
+                // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:1:376: T__74
+                {
+                mT__74(); 
+
+                }
+                break;
+            case 63 :
+                // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:1:382: T__75
+                {
+                mT__75(); 
+
+                }
+                break;
+            case 64 :
+                // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:1:388: T__76
+                {
+                mT__76(); 
+
+                }
+                break;
+            case 65 :
+                // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:1:394: T__77
+                {
+                mT__77(); 
+
+                }
+                break;
+            case 66 :
+                // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:1:400: T__78
+                {
+                mT__78(); 
+
+                }
+                break;
+            case 67 :
+                // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:1:406: T__79
+                {
+                mT__79(); 
+
+                }
+                break;
+            case 68 :
+                // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:1:412: T__80
+                {
+                mT__80(); 
+
+                }
+                break;
+            case 69 :
+                // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:1:418: T__81
+                {
+                mT__81(); 
+
+                }
+                break;
+            case 70 :
+                // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:1:424: T__82
+                {
+                mT__82(); 
+
+                }
+                break;
+            case 71 :
+                // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:1:430: T__83
+                {
+                mT__83(); 
+
+                }
+                break;
+            case 72 :
+                // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:1:436: T__84
+                {
+                mT__84(); 
+
+                }
+                break;
+            case 73 :
+                // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:1:442: T__85
+                {
+                mT__85(); 
+
+                }
+                break;
+            case 74 :
+                // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:1:448: T__86
+                {
+                mT__86(); 
+
+                }
+                break;
+            case 75 :
+                // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:1:454: T__87
+                {
+                mT__87(); 
+
+                }
+                break;
+            case 76 :
+                // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:1:460: T__88
+                {
+                mT__88(); 
+
+                }
+                break;
+            case 77 :
+                // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:1:466: T__89
+                {
+                mT__89(); 
+
+                }
+                break;
+            case 78 :
+                // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:1:472: T__90
+                {
+                mT__90(); 
+
+                }
+                break;
+            case 79 :
+                // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:1:478: T__91
+                {
+                mT__91(); 
+
+                }
+                break;
+            case 80 :
+                // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:1:484: T__92
+                {
+                mT__92(); 
+
+                }
+                break;
+            case 81 :
+                // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:1:490: T__93
+                {
+                mT__93(); 
+
+                }
+                break;
+            case 82 :
+                // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:1:496: T__94
+                {
+                mT__94(); 
+
+                }
+                break;
+            case 83 :
+                // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:1:502: T__95
+                {
+                mT__95(); 
+
+                }
+                break;
+            case 84 :
+                // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:1:508: T__96
+                {
+                mT__96(); 
+
+                }
+                break;
+            case 85 :
+                // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:1:514: T__97
+                {
+                mT__97(); 
+
+                }
+                break;
+            case 86 :
+                // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:1:520: T__98
+                {
+                mT__98(); 
+
+                }
+                break;
+            case 87 :
+                // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:1:526: T__99
+                {
+                mT__99(); 
+
+                }
+                break;
+            case 88 :
+                // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:1:532: T__100
+                {
+                mT__100(); 
+
+                }
+                break;
+            case 89 :
+                // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:1:539: T__101
+                {
+                mT__101(); 
+
+                }
+                break;
+            case 90 :
+                // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:1:546: T__102
+                {
+                mT__102(); 
+
+                }
+                break;
+            case 91 :
+                // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:1:553: T__103
+                {
+                mT__103(); 
+
+                }
+                break;
+            case 92 :
+                // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:1:560: T__104
+                {
+                mT__104(); 
+
+                }
+                break;
+            case 93 :
+                // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:1:567: T__105
+                {
+                mT__105(); 
+
+                }
+                break;
+            case 94 :
+                // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:1:574: T__106
+                {
+                mT__106(); 
+
+                }
+                break;
+            case 95 :
+                // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:1:581: T__107
+                {
+                mT__107(); 
+
+                }
+                break;
+            case 96 :
+                // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:1:588: T__108
+                {
+                mT__108(); 
+
+                }
+                break;
+            case 97 :
+                // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:1:595: T__109
+                {
+                mT__109(); 
+
+                }
+                break;
+            case 98 :
+                // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:1:602: T__110
+                {
+                mT__110(); 
+
+                }
+                break;
+            case 99 :
+                // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:1:609: T__111
+                {
+                mT__111(); 
+
+                }
+                break;
+            case 100 :
+                // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:1:616: T__112
+                {
+                mT__112(); 
+
+                }
+                break;
+            case 101 :
+                // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:1:623: T__113
+                {
+                mT__113(); 
+
+                }
+                break;
+            case 102 :
+                // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:1:630: T__114
+                {
+                mT__114(); 
+
+                }
+                break;
+            case 103 :
+                // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:1:637: T__115
+                {
+                mT__115(); 
+
+                }
+                break;
+            case 104 :
+                // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:1:644: T__116
+                {
+                mT__116(); 
+
+                }
+                break;
+            case 105 :
+                // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:1:651: T__117
+                {
+                mT__117(); 
+
+                }
+                break;
+            case 106 :
+                // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:1:658: T__118
+                {
+                mT__118(); 
+
+                }
+                break;
+            case 107 :
+                // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:1:665: T__119
+                {
+                mT__119(); 
+
+                }
+                break;
+            case 108 :
+                // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:1:672: T__120
+                {
+                mT__120(); 
+
+                }
+                break;
+            case 109 :
+                // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:1:679: T__121
+                {
+                mT__121(); 
+
+                }
+                break;
+            case 110 :
+                // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:1:686: T__122
+                {
+                mT__122(); 
+
+                }
+                break;
+            case 111 :
+                // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:1:693: T__123
+                {
+                mT__123(); 
+
+                }
+                break;
+            case 112 :
+                // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:1:700: T__124
+                {
+                mT__124(); 
+
+                }
+                break;
+            case 113 :
+                // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:1:707: T__125
+                {
+                mT__125(); 
+
+                }
+                break;
+            case 114 :
+                // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:1:714: T__126
+                {
+                mT__126(); 
+
+                }
+                break;
+            case 115 :
+                // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:1:721: T__127
+                {
+                mT__127(); 
+
+                }
+                break;
+            case 116 :
+                // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:1:728: T__128
+                {
+                mT__128(); 
+
+                }
+                break;
+            case 117 :
+                // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:1:735: T__129
+                {
+                mT__129(); 
+
+                }
+                break;
+            case 118 :
+                // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:1:742: T__130
+                {
+                mT__130(); 
+
+                }
+                break;
+            case 119 :
+                // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:1:749: T__131
+                {
+                mT__131(); 
+
+                }
+                break;
+            case 120 :
+                // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:1:756: T__132
+                {
+                mT__132(); 
+
+                }
+                break;
+            case 121 :
+                // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:1:763: T__133
+                {
+                mT__133(); 
+
+                }
+                break;
+            case 122 :
+                // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:1:770: T__134
+                {
+                mT__134(); 
+
+                }
+                break;
+            case 123 :
+                // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:1:777: T__135
+                {
+                mT__135(); 
+
+                }
+                break;
+            case 124 :
+                // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:1:784: T__136
+                {
+                mT__136(); 
+
+                }
+                break;
+            case 125 :
+                // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:1:791: T__137
+                {
+                mT__137(); 
+
+                }
+                break;
+            case 126 :
+                // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:1:798: T__138
+                {
+                mT__138(); 
+
+                }
+                break;
+            case 127 :
+                // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:1:805: T__139
+                {
+                mT__139(); 
+
+                }
+                break;
+            case 128 :
+                // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:1:812: T__140
+                {
+                mT__140(); 
+
+                }
+                break;
+            case 129 :
+                // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:1:819: T__141
+                {
+                mT__141(); 
+
+                }
+                break;
+            case 130 :
+                // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:1:826: T__142
+                {
+                mT__142(); 
+
+                }
+                break;
+            case 131 :
+                // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:1:833: T__143
+                {
+                mT__143(); 
+
+                }
+                break;
+            case 132 :
+                // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:1:840: T__144
+                {
+                mT__144(); 
+
+                }
+                break;
+            case 133 :
+                // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:1:847: T__145
+                {
+                mT__145(); 
+
+                }
+                break;
+            case 134 :
+                // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:1:854: T__146
+                {
+                mT__146(); 
+
+                }
+                break;
+            case 135 :
+                // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:1:861: T__147
+                {
+                mT__147(); 
+
+                }
+                break;
+            case 136 :
+                // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:1:868: T__148
+                {
+                mT__148(); 
+
+                }
+                break;
+            case 137 :
+                // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:1:875: T__149
+                {
+                mT__149(); 
+
+                }
+                break;
+            case 138 :
+                // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:1:882: T__150
+                {
+                mT__150(); 
+
+                }
+                break;
+            case 139 :
+                // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:1:889: T__151
+                {
+                mT__151(); 
+
+                }
+                break;
+            case 140 :
+                // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:1:896: T__152
+                {
+                mT__152(); 
+
+                }
+                break;
+            case 141 :
+                // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:1:903: T__153
+                {
+                mT__153(); 
+
+                }
+                break;
+            case 142 :
+                // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:1:910: T__154
+                {
+                mT__154(); 
+
+                }
+                break;
+            case 143 :
+                // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:1:917: T__155
+                {
+                mT__155(); 
+
+                }
+                break;
+            case 144 :
+                // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:1:924: T__156
+                {
+                mT__156(); 
+
+                }
+                break;
+            case 145 :
+                // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:1:931: T__157
+                {
+                mT__157(); 
+
+                }
+                break;
+            case 146 :
+                // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:1:938: T__158
+                {
+                mT__158(); 
+
+                }
+                break;
+            case 147 :
+                // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:1:945: T__159
+                {
+                mT__159(); 
+
+                }
+                break;
+            case 148 :
+                // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:1:952: T__160
+                {
+                mT__160(); 
+
+                }
+                break;
+            case 149 :
+                // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:1:959: T__161
+                {
+                mT__161(); 
+
+                }
+                break;
+            case 150 :
+                // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:1:966: T__162
+                {
+                mT__162(); 
+
+                }
+                break;
+            case 151 :
+                // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:1:973: T__163
+                {
+                mT__163(); 
+
+                }
+                break;
+            case 152 :
+                // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:1:980: T__164
+                {
+                mT__164(); 
+
+                }
+                break;
+            case 153 :
+                // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:1:987: T__165
+                {
+                mT__165(); 
+
+                }
+                break;
+            case 154 :
+                // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:1:994: T__166
+                {
+                mT__166(); 
+
+                }
+                break;
+            case 155 :
+                // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:1:1001: T__167
+                {
+                mT__167(); 
+
+                }
+                break;
+            case 156 :
+                // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:1:1008: T__168
+                {
+                mT__168(); 
+
+                }
+                break;
+            case 157 :
+                // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:1:1015: T__169
+                {
+                mT__169(); 
+
+                }
+                break;
+            case 158 :
+                // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:1:1022: T__170
+                {
+                mT__170(); 
+
+                }
+                break;
+            case 159 :
+                // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:1:1029: T__171
+                {
+                mT__171(); 
+
+                }
+                break;
+            case 160 :
+                // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:1:1036: T__172
+                {
+                mT__172(); 
+
+                }
+                break;
+            case 161 :
+                // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:1:1043: T__173
+                {
+                mT__173(); 
+
+                }
+                break;
+            case 162 :
+                // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:1:1050: T__174
+                {
+                mT__174(); 
+
+                }
+                break;
+            case 163 :
+                // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:1:1057: T__175
+                {
+                mT__175(); 
+
+                }
+                break;
+            case 164 :
+                // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:1:1064: T__176
+                {
+                mT__176(); 
+
+                }
+                break;
+            case 165 :
+                // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:1:1071: T__177
+                {
+                mT__177(); 
+
+                }
+                break;
+            case 166 :
+                // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:1:1078: T__178
+                {
+                mT__178(); 
+
+                }
+                break;
+            case 167 :
+                // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:1:1085: T__179
+                {
+                mT__179(); 
+
+                }
+                break;
+            case 168 :
+                // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:1:1092: T__180
+                {
+                mT__180(); 
+
+                }
+                break;
+            case 169 :
+                // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:1:1099: T__181
+                {
+                mT__181(); 
+
+                }
+                break;
+            case 170 :
+                // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:1:1106: T__182
+                {
+                mT__182(); 
+
+                }
+                break;
+            case 171 :
+                // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:1:1113: T__183
+                {
+                mT__183(); 
+
+                }
+                break;
+            case 172 :
+                // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:1:1120: T__184
+                {
+                mT__184(); 
+
+                }
+                break;
+            case 173 :
+                // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:1:1127: T__185
+                {
+                mT__185(); 
+
+                }
+                break;
+            case 174 :
+                // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:1:1134: T__186
+                {
+                mT__186(); 
+
+                }
+                break;
+            case 175 :
+                // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:1:1141: T__187
+                {
+                mT__187(); 
+
+                }
+                break;
+            case 176 :
+                // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:1:1148: T__188
+                {
+                mT__188(); 
+
+                }
+                break;
+            case 177 :
+                // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:1:1155: T__189
+                {
+                mT__189(); 
+
+                }
+                break;
+            case 178 :
+                // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:1:1162: T__190
+                {
+                mT__190(); 
+
+                }
+                break;
+            case 179 :
+                // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:1:1169: T__191
+                {
+                mT__191(); 
+
+                }
+                break;
+            case 180 :
+                // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:1:1176: T__192
+                {
+                mT__192(); 
+
+                }
+                break;
+            case 181 :
+                // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:1:1183: T__193
+                {
+                mT__193(); 
+
+                }
+                break;
+            case 182 :
+                // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:1:1190: T__194
+                {
+                mT__194(); 
+
+                }
+                break;
+            case 183 :
+                // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:1:1197: T__195
+                {
+                mT__195(); 
+
+                }
+                break;
+            case 184 :
+                // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:1:1204: T__196
+                {
+                mT__196(); 
+
+                }
+                break;
+            case 185 :
+                // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:1:1211: T__197
+                {
+                mT__197(); 
+
+                }
+                break;
+            case 186 :
+                // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:1:1218: T__198
+                {
+                mT__198(); 
+
+                }
+                break;
+            case 187 :
+                // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:1:1225: T__199
+                {
+                mT__199(); 
+
+                }
+                break;
+            case 188 :
+                // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:1:1232: T__200
+                {
+                mT__200(); 
+
+                }
+                break;
+            case 189 :
+                // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:1:1239: T__201
+                {
+                mT__201(); 
+
+                }
+                break;
+            case 190 :
+                // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:1:1246: T__202
+                {
+                mT__202(); 
+
+                }
+                break;
+            case 191 :
+                // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:1:1253: T__203
+                {
+                mT__203(); 
+
+                }
+                break;
+            case 192 :
+                // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:1:1260: T__204
+                {
+                mT__204(); 
+
+                }
+                break;
+            case 193 :
+                // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:1:1267: T__205
+                {
+                mT__205(); 
+
+                }
+                break;
+            case 194 :
+                // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:1:1274: T__206
+                {
+                mT__206(); 
+
+                }
+                break;
+            case 195 :
+                // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:1:1281: T__207
+                {
+                mT__207(); 
+
+                }
+                break;
+            case 196 :
+                // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:1:1288: T__208
+                {
+                mT__208(); 
+
+                }
+                break;
+            case 197 :
+                // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:1:1295: T__209
+                {
+                mT__209(); 
+
+                }
+                break;
+            case 198 :
+                // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:1:1302: T__210
+                {
+                mT__210(); 
+
+                }
+                break;
+            case 199 :
+                // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:1:1309: T__211
+                {
+                mT__211(); 
+
+                }
+                break;
+            case 200 :
+                // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:1:1316: T__212
+                {
+                mT__212(); 
+
+                }
+                break;
+            case 201 :
+                // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:1:1323: T__213
+                {
+                mT__213(); 
+
+                }
+                break;
+            case 202 :
+                // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:1:1330: T__214
+                {
+                mT__214(); 
+
+                }
+                break;
+            case 203 :
+                // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:1:1337: T__215
+                {
+                mT__215(); 
+
+                }
+                break;
+            case 204 :
+                // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:1:1344: T__216
+                {
+                mT__216(); 
+
+                }
+                break;
+            case 205 :
+                // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:1:1351: T__217
+                {
+                mT__217(); 
+
+                }
+                break;
+            case 206 :
+                // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:1:1358: T__218
+                {
+                mT__218(); 
+
+                }
+                break;
+            case 207 :
+                // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:1:1365: T__219
+                {
+                mT__219(); 
+
+                }
+                break;
+            case 208 :
+                // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:1:1372: T__220
+                {
+                mT__220(); 
+
+                }
+                break;
+            case 209 :
+                // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:1:1379: T__221
+                {
+                mT__221(); 
+
+                }
+                break;
+            case 210 :
+                // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:1:1386: T__222
+                {
+                mT__222(); 
+
+                }
+                break;
+            case 211 :
+                // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:1:1393: T__223
+                {
+                mT__223(); 
+
+                }
+                break;
+            case 212 :
+                // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:1:1400: T__224
+                {
+                mT__224(); 
+
+                }
+                break;
+            case 213 :
+                // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:1:1407: T__225
+                {
+                mT__225(); 
+
+                }
+                break;
+            case 214 :
+                // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:1:1414: T__226
+                {
+                mT__226(); 
+
+                }
+                break;
+            case 215 :
+                // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:1:1421: T__227
+                {
+                mT__227(); 
+
+                }
+                break;
+            case 216 :
+                // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:1:1428: T__228
+                {
+                mT__228(); 
+
+                }
+                break;
+            case 217 :
+                // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:1:1435: T__229
+                {
+                mT__229(); 
+
+                }
+                break;
+            case 218 :
+                // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:1:1442: T__230
+                {
+                mT__230(); 
+
+                }
+                break;
+            case 219 :
+                // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:1:1449: T__231
+                {
+                mT__231(); 
+
+                }
+                break;
+            case 220 :
+                // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:1:1456: T__232
+                {
+                mT__232(); 
+
+                }
+                break;
+            case 221 :
+                // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:1:1463: T__233
+                {
+                mT__233(); 
+
+                }
+                break;
+            case 222 :
+                // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:1:1470: T__234
+                {
+                mT__234(); 
+
+                }
+                break;
+            case 223 :
+                // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:1:1477: T__235
+                {
+                mT__235(); 
+
+                }
+                break;
+            case 224 :
+                // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:1:1484: T__236
+                {
+                mT__236(); 
+
+                }
+                break;
+            case 225 :
+                // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:1:1491: T__237
+                {
+                mT__237(); 
+
+                }
+                break;
+            case 226 :
+                // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:1:1498: T__238
+                {
+                mT__238(); 
+
+                }
+                break;
+            case 227 :
+                // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:1:1505: T__239
+                {
+                mT__239(); 
+
+                }
+                break;
+            case 228 :
+                // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:1:1512: T__240
+                {
+                mT__240(); 
+
+                }
+                break;
+            case 229 :
+                // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:1:1519: T__241
+                {
+                mT__241(); 
+
+                }
+                break;
+            case 230 :
+                // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:1:1526: T__242
+                {
+                mT__242(); 
+
+                }
+                break;
+            case 231 :
+                // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:1:1533: T__243
+                {
+                mT__243(); 
+
+                }
+                break;
+            case 232 :
+                // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:1:1540: T__244
+                {
+                mT__244(); 
+
+                }
+                break;
+            case 233 :
+                // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:1:1547: T__245
+                {
+                mT__245(); 
+
+                }
+                break;
+            case 234 :
+                // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:1:1554: T__246
+                {
+                mT__246(); 
+
+                }
+                break;
+            case 235 :
+                // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:1:1561: T__247
+                {
+                mT__247(); 
+
+                }
+                break;
+            case 236 :
+                // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:1:1568: T__248
+                {
+                mT__248(); 
+
+                }
+                break;
+            case 237 :
+                // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:1:1575: T__249
+                {
+                mT__249(); 
+
+                }
+                break;
+            case 238 :
+                // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:1:1582: T__250
+                {
+                mT__250(); 
+
+                }
+                break;
+            case 239 :
+                // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:1:1589: T__251
+                {
+                mT__251(); 
+
+                }
+                break;
+            case 240 :
+                // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:1:1596: T__252
+                {
+                mT__252(); 
+
+                }
+                break;
+            case 241 :
+                // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:1:1603: T__253
+                {
+                mT__253(); 
+
+                }
+                break;
+            case 242 :
+                // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:1:1610: T__254
+                {
+                mT__254(); 
+
+                }
+                break;
+            case 243 :
+                // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:1:1617: RULE_HEX
+                {
+                mRULE_HEX(); 
+
+                }
+                break;
+            case 244 :
+                // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:1:1626: RULE_INT
+                {
+                mRULE_INT(); 
+
+                }
+                break;
+            case 245 :
+                // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:1:1635: RULE_DECIMAL
+                {
+                mRULE_DECIMAL(); 
+
+                }
+                break;
+            case 246 :
+                // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:1:1648: RULE_ID
+                {
+                mRULE_ID(); 
+
+                }
+                break;
+            case 247 :
+                // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:1:1656: RULE_STRING
+                {
+                mRULE_STRING(); 
+
+                }
+                break;
+            case 248 :
+                // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:1:1668: RULE_ML_COMMENT
+                {
+                mRULE_ML_COMMENT(); 
+
+                }
+                break;
+            case 249 :
+                // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:1:1684: RULE_SL_COMMENT
+                {
+                mRULE_SL_COMMENT(); 
+
+                }
+                break;
+            case 250 :
+                // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:1:1700: RULE_WS
+                {
+                mRULE_WS(); 
+
+                }
+                break;
+            case 251 :
+                // ../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g:1:1708: RULE_ANY_OTHER
+                {
+                mRULE_ANY_OTHER(); 
+
+                }
+                break;
+
+        }
+
+    }
+
+
+    protected DFA21 dfa21 = new DFA21(this);
+    static final String DFA21_eotS =
+        "\1\uffff\1\67\1\71\1\73\3\102\1\122\1\126\1\131\1\135\1\137\1\141"+
+        "\1\143\1\145\1\147\1\152\20\102\12\uffff\1\u00c1\1\102\2\u00c5\1"+
+        "\64\5\uffff\1\u00ca\6\uffff\2\102\1\u00d0\3\102\1\uffff\1\102\1"+
+        "\u00d9\4\102\1\u00e4\1\u00e5\1\u00e6\1\102\1\u00e8\2\102\20\uffff"+
+        "\1\u00ec\5\uffff\1\u00ee\4\uffff\1\102\1\u00f2\1\u00f4\20\102\1"+
+        "\u010d\4\102\1\u0117\4\102\1\u011d\1\u011e\1\u011f\11\102\1\u012c"+
+        "\14\102\1\u013d\14\102\1\u0155\7\102\14\uffff\1\102\1\uffff\1\u00c5"+
+        "\6\uffff\5\102\1\uffff\10\102\1\uffff\10\102\1\u017d\1\102\3\uffff"+
+        "\1\102\1\uffff\2\102\4\uffff\1\u0182\1\u0183\1\102\1\uffff\1\102"+
+        "\1\uffff\5\102\1\u018c\22\102\1\uffff\6\102\1\u01a8\2\102\1\uffff"+
+        "\5\102\3\uffff\2\102\1\u01b2\5\102\1\uffff\1\102\1\u01bb\1\102\2"+
+        "\uffff\12\102\1\u01c7\3\102\2\uffff\10\102\1\u01d3\15\102\2\uffff"+
+        "\7\102\1\u01e9\17\102\1\u01fa\1\u01fb\1\u01fc\6\102\1\u0204\6\102"+
+        "\1\uffff\4\102\2\uffff\2\102\1\u0212\5\102\1\uffff\10\102\1\u0221"+
+        "\5\102\1\u0227\4\102\1\u022c\3\102\1\u0230\3\102\1\uffff\1\u0235"+
+        "\10\102\1\uffff\3\102\1\u0242\1\102\2\uffff\1\102\1\uffff\1\u0246"+
+        "\3\102\1\u024b\3\102\1\u024f\1\102\1\u0251\1\uffff\13\102\1\uffff"+
+        "\4\102\1\u0261\1\u0262\3\102\1\uffff\3\102\1\u0269\4\102\1\u026f"+
+        "\2\102\1\uffff\1\u0272\1\u0275\1\102\1\u0277\7\102\1\u027f\1\u0281"+
+        "\3\102\3\uffff\1\u0285\5\102\2\uffff\1\102\1\uffff\12\102\1\u0297"+
+        "\1\uffff\2\102\1\u029b\1\102\1\u029d\2\102\1\uffff\1\u02a0\1\102"+
+        "\1\u02a3\1\102\1\u02a5\2\uffff\4\102\1\u02aa\1\uffff\1\u02ab\3\102"+
+        "\1\uffff\1\u02af\1\102\1\u02b1\1\uffff\1\102\1\uffff\1\102\1\u02b4"+
+        "\1\uffff\5\102\1\u02bb\2\102\1\uffff\3\102\1\uffff\1\102\1\uffff"+
+        "\1\102\1\uffff\2\102\1\u02ca\1\102\1\uffff\3\102\1\uffff\1\102\1"+
+        "\uffff\3\102\1\u02d4\1\102\1\u02d6\6\102\1\uffff\1\102\1\u02de\2"+
+        "\uffff\6\102\1\uffff\5\102\1\uffff\1\102\1\u02eb\1\uffff\2\102\1"+
+        "\uffff\1\102\1\uffff\1\u02ef\1\u02f0\1\u02f1\1\u02f2\1\u02f3\1\102"+
+        "\1\u02f5\1\uffff\1\u02f6\1\uffff\1\102\1\u02f8\1\102\1\uffff\1\u02fa"+
+        "\1\u02fb\1\u02fc\1\u02fd\3\102\1\u0304\11\102\1\uffff\1\u030e\1"+
+        "\102\1\u0310\1\uffff\1\u0311\1\uffff\2\102\1\uffff\1\102\2\uffff"+
+        "\1\102\1\uffff\1\u0316\2\102\1\u031a\2\uffff\2\102\1\u031d\1\uffff"+
+        "\1\u031e\1\uffff\2\102\1\uffff\1\u0321\4\102\1\u0326\1\uffff\2\102"+
+        "\2\uffff\4\102\3\uffff\3\102\1\uffff\3\102\1\u0334\1\u0335\1\102"+
+        "\1\u0337\2\102\1\uffff\1\u033a\1\uffff\1\102\1\u033c\1\102\1\u033e"+
+        "\1\u033f\1\102\1\u0341\1\uffff\1\u0342\1\u0343\4\102\1\uffff\3\102"+
+        "\1\u034c\1\102\1\uffff\3\102\5\uffff\1\102\2\uffff\1\102\1\uffff"+
+        "\1\102\4\uffff\1\u0354\2\102\1\u0357\2\102\1\uffff\1\u035a\1\u035b"+
+        "\1\102\1\u035d\2\102\1\u0360\2\102\1\uffff\1\102\2\uffff\3\102\1"+
+        "\u0367\1\uffff\3\102\1\uffff\2\102\2\uffff\1\u036d\1\102\1\uffff"+
+        "\1\102\1\u0370\1\u0371\2\uffff\1\102\1\u0377\1\uffff\1\102\1\u037a"+
+        "\4\102\1\uffff\2\102\1\u0381\2\uffff\1\u0382\1\uffff\2\102\1\uffff"+
+        "\1\102\1\uffff\1\102\2\uffff\1\102\3\uffff\3\102\2\uffff\1\102\1"+
+        "\u0391\1\u0392\1\uffff\4\102\1\u0397\2\102\1\uffff\1\u039a\1\102"+
+        "\1\uffff\2\102\2\uffff\1\102\1\uffff\1\102\1\u03a0\1\uffff\3\102"+
+        "\1\u03a4\2\102\1\uffff\5\102\1\uffff\2\102\6\uffff\1\u03ae\2\uffff"+
+        "\1\102\2\uffff\1\u03b5\3\102\1\u03b9\2\uffff\2\102\1\uffff\1\102"+
+        "\1\uffff\3\102\5\uffff\1\102\2\uffff\3\102\1\u03c7\1\uffff\1\102"+
+        "\1\u03c9\1\uffff\3\102\1\u03cd\1\u03ce\1\uffff\1\u03cf\2\102\1\uffff"+
+        "\6\102\1\u03d8\1\u03da\1\u03db\2\uffff\1\102\5\uffff\1\102\1\u03df"+
+        "\1\102\1\uffff\2\102\2\uffff\1\u03e3\1\u03e4\2\102\1\uffff\1\u03e8"+
+        "\1\102\1\u03ea\1\u03eb\1\uffff\1\u03ec\2\uffff\2\102\3\uffff\1\102"+
+        "\1\u03f0\1\102\1\u03f2\2\102\1\u03f5\1\u03f6\1\uffff\1\u03f7\3\uffff"+
+        "\2\102\1\uffff\1\u03fb\2\102\2\uffff\2\102\1\u0401\1\uffff\1\u0402"+
+        "\3\uffff\3\102\1\uffff\1\u0406\1\uffff\1\102\1\u0408\3\uffff\1\u040a"+
+        "\1\102\1\u040c\1\uffff\1\u040d\1\u040e\2\102\3\uffff\1\u0411\1\u0412"+
+        "\1\102\1\uffff\1\u0414\3\uffff\1\u0415\3\uffff\1\102\1\u0417\2\uffff"+
+        "\1\102\2\uffff\1\102\1\uffff\1\u041a\1\102\1\uffff\1\u041c\1\uffff";
+    static final String DFA21_eofS =
+        "\u041d\uffff";
+    static final String DFA21_minS =
+        "\1\0\1\75\1\174\1\46\2\141\1\63\1\53\1\55\2\52\3\75\1\76\2\56\1"+
+        "\141\1\154\1\141\1\143\3\141\1\151\1\141\1\145\1\142\3\145\2\141"+
+        "\12\uffff\1\72\1\150\2\60\1\44\5\uffff\1\75\6\uffff\1\162\1\154"+
+        "\1\44\1\154\1\151\1\163\1\uffff\1\166\1\44\1\162\1\146\1\156\1\154"+
+        "\3\44\1\145\1\44\1\147\1\164\20\uffff\1\75\5\uffff\1\74\4\uffff"+
+        "\1\154\2\44\1\163\1\141\1\142\1\156\1\162\1\141\1\157\1\154\1\172"+
+        "\1\151\1\156\1\157\1\141\1\143\1\141\1\157\1\44\2\154\1\157\1\156"+
+        "\1\44\2\156\1\162\1\144\3\44\2\162\1\146\1\143\1\157\1\55\1\146"+
+        "\1\154\1\155\1\44\1\40\1\142\1\146\1\147\1\157\1\156\1\154\1\167"+
+        "\1\154\1\164\1\151\1\55\1\44\1\144\2\156\1\167\1\156\1\157\1\151"+
+        "\1\155\1\141\1\144\1\143\1\154\1\44\1\157\1\160\1\141\2\155\1\142"+
+        "\1\162\14\uffff\1\151\1\uffff\1\60\6\uffff\1\164\1\162\1\143\1\156"+
+        "\1\157\1\uffff\1\164\1\154\1\160\1\145\1\143\1\151\1\164\1\142\1"+
+        "\uffff\1\150\1\153\1\141\1\163\1\143\3\141\1\44\1\145\3\uffff\1"+
+        "\162\1\uffff\1\162\1\157\4\uffff\2\44\1\145\1\uffff\1\145\1\uffff"+
+        "\1\145\1\147\1\154\1\151\1\145\1\44\2\163\1\151\1\145\1\154\1\160"+
+        "\1\151\1\145\1\164\1\143\1\167\1\157\1\147\1\150\2\145\1\154\1\156"+
+        "\1\uffff\1\163\1\151\2\145\1\141\1\155\1\44\2\164\1\uffff\1\157"+
+        "\2\151\1\147\1\151\3\uffff\1\164\1\143\1\44\1\145\1\153\1\144\1"+
+        "\150\1\160\1\154\1\157\1\44\1\157\2\uffff\1\144\1\157\1\145\1\164"+
+        "\1\150\1\153\1\155\1\145\1\142\1\154\1\44\1\151\1\163\1\145\2\uffff"+
+        "\1\150\1\151\1\147\1\156\1\157\1\144\1\165\1\151\1\44\1\145\1\144"+
+        "\1\157\1\144\1\154\1\144\1\147\1\145\1\55\1\153\1\164\2\144\2\uffff"+
+        "\1\141\1\155\1\141\1\154\1\145\2\156\1\44\1\145\1\164\1\160\1\145"+
+        "\2\154\1\157\1\154\1\157\1\145\1\141\1\164\1\162\1\155\1\145\3\44"+
+        "\1\150\1\144\1\145\1\154\2\145\1\44\1\155\1\40\1\162\1\151\1\165"+
+        "\1\155\1\uffff\1\162\1\141\1\145\1\164\2\uffff\1\156\1\144\1\44"+
+        "\1\151\1\156\1\145\1\156\1\162\1\uffff\1\151\1\165\1\55\1\146\1"+
+        "\156\1\145\1\151\1\144\1\44\1\143\1\150\1\117\1\162\1\145\1\44\1"+
+        "\164\1\141\1\162\1\151\1\44\1\145\1\154\1\144\1\44\1\154\1\40\1"+
+        "\141\1\uffff\1\44\1\145\1\163\2\155\1\151\1\141\1\162\1\145\1\uffff"+
+        "\1\55\1\141\1\151\1\44\2\145\1\uffff\1\162\1\uffff\1\44\1\163\1"+
+        "\165\1\154\1\44\1\164\1\165\1\141\1\44\1\145\1\44\1\uffff\1\161"+
+        "\1\145\1\156\1\164\1\156\1\145\1\151\1\162\1\145\1\162\1\172\1\uffff"+
+        "\1\162\1\55\1\166\1\160\2\44\1\145\1\150\1\154\1\uffff\1\147\1\157"+
+        "\1\145\1\44\1\154\1\141\1\162\1\142\1\44\1\163\1\144\1\uffff\2\44"+
+        "\1\154\1\44\2\145\1\167\1\145\1\155\1\156\1\164\2\44\1\156\1\162"+
+        "\1\157\3\uffff\1\44\1\145\1\144\1\145\1\144\1\156\2\uffff\1\141"+
+        "\1\uffff\1\151\2\154\1\151\1\156\2\147\1\145\1\144\1\156\1\44\1"+
+        "\uffff\1\143\1\141\1\44\1\147\1\44\1\164\1\142\1\uffff\1\44\1\164"+
+        "\1\44\1\156\1\44\2\uffff\1\150\1\162\1\156\1\164\1\44\1\uffff\1"+
+        "\44\1\156\1\166\1\143\1\uffff\1\44\1\171\1\44\1\uffff\1\154\1\uffff"+
+        "\1\164\1\44\1\uffff\1\162\1\160\2\165\1\156\1\44\1\141\2\156\1\145"+
+        "\1\147\1\156\1\uffff\1\162\1\144\1\155\1\uffff\1\143\1\164\1\44"+
+        "\1\141\1\uffff\1\145\1\160\1\154\1\uffff\1\162\1\uffff\1\165\2\164"+
+        "\1\44\1\147\1\44\1\156\1\164\1\162\1\156\1\145\1\141\1\uffff\1\145"+
+        "\1\44\2\uffff\1\162\1\164\1\141\1\162\1\155\1\162\1\uffff\1\55\1"+
+        "\162\1\144\1\141\1\146\1\uffff\1\146\1\44\1\uffff\1\157\1\154\1"+
+        "\uffff\1\141\1\uffff\5\44\1\143\1\44\1\uffff\1\44\1\uffff\1\163"+
+        "\1\44\1\154\1\uffff\4\44\1\163\1\162\1\142\1\44\1\164\1\143\1\141"+
+        "\1\145\1\141\1\170\1\163\1\151\1\141\1\uffff\1\44\1\164\1\44\1\uffff"+
+        "\1\44\1\uffff\1\154\1\164\1\uffff\1\151\2\uffff\1\147\1\uffff\1"+
+        "\44\1\157\1\106\1\44\2\uffff\1\143\1\141\1\44\1\uffff\1\44\1\uffff"+
+        "\1\171\1\164\1\uffff\1\44\1\141\2\155\1\55\1\44\1\uffff\1\151\1"+
+        "\164\1\165\1\uffff\1\155\1\145\1\147\1\164\3\uffff\2\141\1\55\1"+
+        "\uffff\1\162\1\156\1\163\2\44\1\145\1\44\2\141\1\uffff\1\44\1\uffff"+
+        "\1\147\1\44\1\151\2\44\1\154\1\44\1\uffff\2\44\1\142\1\157\1\155"+
+        "\1\55\1\160\1\147\1\163\1\162\1\44\1\157\1\uffff\1\154\1\151\1\164"+
+        "\5\uffff\1\171\2\uffff\1\160\1\uffff\1\157\4\uffff\1\44\1\164\1"+
+        "\145\1\44\1\145\1\157\1\uffff\2\44\1\164\1\44\2\164\1\44\1\157\1"+
+        "\154\1\uffff\1\151\2\uffff\1\145\1\151\1\146\1\44\1\uffff\1\156"+
+        "\1\151\1\141\1\uffff\1\145\1\154\2\uffff\1\44\1\145\1\uffff\1\143"+
+        "\2\44\1\142\1\uffff\1\164\1\44\1\155\1\160\1\44\1\55\1\171\1\164"+
+        "\1\160\1\uffff\1\147\1\163\1\44\2\uffff\1\44\1\uffff\1\164\1\162"+
+        "\1\uffff\1\55\1\uffff\1\156\2\uffff\1\55\3\uffff\1\145\1\165\1\141"+
+        "\1\142\1\141\1\151\2\44\1\uffff\1\162\1\157\1\147\1\145\1\44\1\141"+
+        "\1\162\1\uffff\1\44\1\144\1\uffff\1\141\1\157\2\uffff\1\145\1\uffff"+
+        "\1\145\1\44\1\uffff\1\156\1\103\1\156\1\44\1\164\1\151\1\uffff\1"+
+        "\151\1\162\1\163\1\157\1\163\1\uffff\1\162\1\145\6\uffff\1\44\1"+
+        "\uffff\1\142\1\154\1\uffff\1\142\1\44\1\164\1\145\1\151\1\44\2\uffff"+
+        "\1\151\1\147\1\143\1\147\1\uffff\1\154\1\156\1\162\4\uffff\1\147"+
+        "\1\156\2\uffff\1\155\1\162\1\156\1\44\1\uffff\1\156\1\44\1\uffff"+
+        "\1\40\1\144\1\164\2\44\1\uffff\1\44\1\163\1\147\1\uffff\1\154\1"+
+        "\143\1\172\1\163\1\164\1\146\3\44\1\uffff\1\145\1\141\5\uffff\1"+
+        "\145\1\44\1\156\1\uffff\1\157\1\151\2\uffff\2\44\1\144\1\147\1\145"+
+        "\1\44\1\163\2\44\1\uffff\1\44\2\uffff\2\145\3\uffff\1\163\1\44\1"+
+        "\145\1\44\1\145\1\164\2\44\1\uffff\1\44\2\uffff\1\162\1\164\1\144"+
+        "\1\uffff\1\44\2\156\2\uffff\1\143\1\151\1\55\1\uffff\1\44\3\uffff"+
+        "\2\162\1\125\1\uffff\1\44\1\uffff\1\144\1\44\3\uffff\1\55\1\145"+
+        "\1\44\1\uffff\2\44\1\157\1\156\3\uffff\2\44\1\122\1\uffff\1\44\3"+
+        "\uffff\1\44\3\uffff\1\154\1\44\2\uffff\1\111\2\uffff\1\157\1\uffff"+
+        "\1\44\1\162\1\uffff\1\44\1\uffff";
+    static final String DFA21_maxS =
+        "\1\uffff\1\76\1\174\1\46\1\165\1\171\1\166\1\75\1\76\5\75\1\76"+
+        "\1\56\1\72\1\141\1\170\1\171\1\164\1\162\1\157\1\170\1\163\1\157"+
+        "\3\165\1\162\1\164\2\171\12\uffff\1\72\1\150\1\170\1\154\1\172\5"+
+        "\uffff\1\75\6\uffff\1\163\1\165\1\172\1\156\1\151\1\164\1\uffff"+
+        "\1\166\1\172\1\171\1\164\1\156\1\164\3\172\1\145\1\172\1\147\1\164"+
+        "\20\uffff\1\75\5\uffff\1\74\4\uffff\1\162\2\172\1\163\1\171\1\160"+
+        "\1\156\1\162\1\151\1\157\1\154\1\172\1\151\1\156\1\157\1\160\1\164"+
+        "\1\141\1\157\1\172\1\155\1\170\1\157\1\162\1\172\2\156\1\170\1\144"+
+        "\3\172\2\162\1\146\1\164\1\157\1\55\1\146\1\154\1\155\1\172\1\40"+
+        "\1\171\1\146\1\147\1\157\1\162\1\155\1\167\1\154\1\164\1\151\1\55"+
+        "\1\172\1\163\1\156\1\164\1\167\1\156\2\157\1\155\1\151\2\144\1\164"+
+        "\1\172\1\167\1\160\1\171\1\170\1\164\1\142\1\162\14\uffff\1\151"+
+        "\1\uffff\1\154\6\uffff\1\164\1\162\1\143\1\156\1\165\1\uffff\1\164"+
+        "\1\154\1\160\1\145\1\143\1\151\1\164\1\142\1\uffff\1\150\1\153\1"+
+        "\145\1\163\1\143\3\141\1\172\1\145\3\uffff\1\162\1\uffff\1\162\1"+
+        "\157\4\uffff\2\172\1\145\1\uffff\1\145\1\uffff\1\145\1\164\1\154"+
+        "\1\151\1\145\1\172\1\164\1\163\1\151\1\145\1\154\1\160\1\151\1\145"+
+        "\1\164\1\143\1\167\1\157\1\147\1\150\1\164\1\145\1\154\1\156\1\uffff"+
+        "\1\163\1\151\2\145\1\141\1\155\1\172\2\164\1\uffff\1\157\2\151\1"+
+        "\147\1\151\3\uffff\1\164\1\143\1\172\1\145\1\153\1\144\1\150\1\160"+
+        "\1\163\1\157\1\172\1\157\2\uffff\1\144\1\157\1\145\1\164\1\150\1"+
+        "\153\1\155\1\145\1\142\1\154\1\172\1\151\1\163\1\145\2\uffff\1\150"+
+        "\1\151\1\147\1\156\1\157\1\144\1\165\1\151\1\172\1\145\1\144\1\165"+
+        "\1\144\1\154\1\144\1\147\1\145\1\55\1\153\1\164\2\144\2\uffff\1"+
+        "\141\1\155\1\141\1\154\1\145\2\156\1\172\1\145\1\164\1\160\1\145"+
+        "\2\154\1\157\1\154\1\157\1\145\1\141\1\164\1\162\1\155\1\145\3\172"+
+        "\1\150\1\144\1\145\1\154\2\145\1\172\1\155\1\40\1\162\1\151\1\165"+
+        "\1\155\1\uffff\1\162\1\141\1\145\1\164\2\uffff\1\162\1\144\1\172"+
+        "\1\151\1\156\1\145\1\156\1\162\1\uffff\1\151\1\165\1\55\1\146\1"+
+        "\156\1\145\1\151\1\144\1\172\1\143\1\150\1\117\1\162\1\145\1\172"+
+        "\1\164\1\141\1\162\1\151\1\172\1\145\1\154\1\144\1\172\1\154\1\40"+
+        "\1\141\1\uffff\1\172\1\145\1\163\2\155\1\151\1\141\1\162\1\145\1"+
+        "\uffff\1\164\1\141\1\151\1\172\2\145\1\uffff\1\162\1\uffff\1\172"+
+        "\1\163\1\165\1\154\1\172\1\164\1\165\1\141\1\172\1\145\1\172\1\uffff"+
+        "\1\161\1\145\1\156\1\164\1\156\1\145\1\151\1\162\1\145\1\162\1\172"+
+        "\1\uffff\1\162\1\55\1\166\1\160\2\172\1\145\1\150\1\154\1\uffff"+
+        "\1\147\1\157\1\145\1\172\1\154\1\141\1\162\1\142\1\172\1\163\1\144"+
+        "\1\uffff\2\172\1\154\1\172\2\145\1\167\1\145\1\155\1\156\1\164\2"+
+        "\172\1\156\1\162\1\157\3\uffff\1\172\1\145\1\144\1\145\1\144\1\156"+
+        "\2\uffff\1\141\1\uffff\1\151\2\154\1\151\1\156\2\147\1\145\1\163"+
+        "\1\156\1\172\1\uffff\1\143\1\141\1\172\1\147\1\172\1\164\1\142\1"+
+        "\uffff\1\172\1\164\1\172\1\156\1\172\2\uffff\1\150\1\162\1\156\1"+
+        "\164\1\172\1\uffff\1\172\1\156\1\166\1\143\1\uffff\1\172\1\171\1"+
+        "\172\1\uffff\1\154\1\uffff\1\164\1\172\1\uffff\1\162\1\160\2\165"+
+        "\1\156\1\172\1\141\1\156\1\166\1\145\1\147\1\156\1\uffff\1\162\1"+
+        "\164\1\155\1\uffff\1\143\1\164\1\172\1\141\1\uffff\1\145\1\160\1"+
+        "\154\1\uffff\1\162\1\uffff\1\165\2\164\1\172\1\147\1\172\1\156\1"+
+        "\164\1\162\1\156\1\145\1\141\1\uffff\1\145\1\172\2\uffff\1\162\1"+
+        "\164\1\141\1\162\1\155\1\162\1\uffff\1\55\1\162\1\144\1\141\1\146"+
+        "\1\uffff\1\146\1\172\1\uffff\1\157\1\154\1\uffff\1\141\1\uffff\5"+
+        "\172\1\143\1\172\1\uffff\1\172\1\uffff\1\163\1\172\1\154\1\uffff"+
+        "\4\172\1\163\1\162\1\142\1\172\1\164\1\143\1\141\1\145\1\141\1\170"+
+        "\1\163\1\151\1\141\1\uffff\1\172\1\164\1\172\1\uffff\1\172\1\uffff"+
+        "\1\154\1\164\1\uffff\1\151\2\uffff\1\147\1\uffff\1\172\1\157\1\114"+
+        "\1\172\2\uffff\1\143\1\141\1\172\1\uffff\1\172\1\uffff\1\171\1\164"+
+        "\1\uffff\1\172\1\141\2\155\1\55\1\172\1\uffff\1\151\1\164\1\165"+
+        "\1\uffff\1\155\1\145\1\147\1\164\3\uffff\2\141\1\55\1\uffff\1\162"+
+        "\1\156\1\163\2\172\1\145\1\172\2\141\1\uffff\1\172\1\uffff\1\147"+
+        "\1\172\1\151\2\172\1\154\1\172\1\uffff\2\172\1\142\1\157\1\155\1"+
+        "\55\1\160\1\147\1\163\1\162\1\172\1\157\1\uffff\1\154\1\151\1\164"+
+        "\5\uffff\1\171\2\uffff\1\160\1\uffff\1\157\4\uffff\1\172\1\164\1"+
+        "\145\1\172\1\145\1\157\1\uffff\2\172\1\164\1\172\2\164\1\172\1\157"+
+        "\1\154\1\uffff\1\151\2\uffff\1\145\1\151\1\146\1\172\1\uffff\1\156"+
+        "\1\151\1\141\1\uffff\1\145\1\154\2\uffff\1\172\1\145\1\uffff\1\143"+
+        "\2\172\1\164\1\uffff\1\164\1\172\1\155\1\160\1\172\1\55\1\171\1"+
+        "\164\1\160\1\uffff\1\147\1\163\1\172\2\uffff\1\172\1\uffff\1\164"+
+        "\1\162\1\uffff\1\55\1\uffff\1\156\2\uffff\1\55\3\uffff\1\145\1\165"+
+        "\1\141\1\164\1\141\1\151\2\172\1\uffff\1\162\1\157\1\147\1\145\1"+
+        "\172\1\141\1\162\1\uffff\1\172\1\144\1\uffff\1\141\1\157\2\uffff"+
+        "\1\145\1\uffff\1\145\1\172\1\uffff\1\156\1\103\1\156\1\172\1\164"+
+        "\1\151\1\uffff\1\151\1\162\1\163\1\157\1\163\1\uffff\1\162\1\145"+
+        "\6\uffff\1\172\1\uffff\1\142\1\154\1\uffff\1\164\1\172\1\164\1\145"+
+        "\1\151\1\172\2\uffff\1\151\1\147\1\163\1\147\1\uffff\1\154\1\156"+
+        "\1\162\4\uffff\1\147\1\156\2\uffff\1\155\1\162\1\156\1\172\1\uffff"+
+        "\1\156\1\172\1\uffff\1\40\1\144\1\164\2\172\1\uffff\1\172\1\163"+
+        "\1\147\1\uffff\1\154\1\143\1\172\1\163\1\164\1\146\3\172\1\uffff"+
+        "\1\145\1\141\5\uffff\1\145\1\172\1\156\1\uffff\1\157\1\151\2\uffff"+
+        "\2\172\1\144\1\147\1\145\1\172\1\163\2\172\1\uffff\1\172\2\uffff"+
+        "\2\145\3\uffff\1\163\1\172\1\145\1\172\1\145\1\164\2\172\1\uffff"+
+        "\1\172\2\uffff\1\162\1\164\1\144\1\uffff\1\172\2\156\2\uffff\1\143"+
+        "\1\151\1\55\1\uffff\1\172\3\uffff\2\162\1\125\1\uffff\1\172\1\uffff"+
+        "\1\144\1\172\3\uffff\1\55\1\145\1\172\1\uffff\2\172\1\157\1\156"+
+        "\3\uffff\2\172\1\122\1\uffff\1\172\3\uffff\1\172\3\uffff\1\154\1"+
+        "\172\2\uffff\1\111\2\uffff\1\157\1\uffff\1\172\1\162\1\uffff\1\172"+
+        "\1\uffff";
+    static final String DFA21_acceptS =
+        "\41\uffff\1\156\1\157\1\u00bc\1\u00bd\1\u00cb\1\u00cc\1\u00cd\1"+
+        "\u00ce\1\u00cf\1\u00d1\5\uffff\1\u00f6\2\u00f7\1\u00fa\1\u00fb\1"+
+        "\uffff\1\27\1\1\1\2\1\u00f0\1\3\1\u00e5\6\uffff\1\u00f6\15\uffff"+
+        "\1\10\1\41\1\32\1\11\1\24\1\42\1\33\1\12\1\35\1\34\1\13\1\u00f8"+
+        "\1\u00f9\1\36\1\14\1\37\1\uffff\1\40\1\21\1\22\1\30\1\23\1\uffff"+
+        "\1\43\1\31\1\u00ef\1\u00e4\113\uffff\1\156\1\157\1\u00bc\1\u00bd"+
+        "\1\u00cb\1\u00cc\1\u00cd\1\u00ce\1\u00cf\1\u00d1\1\u00ee\1\u00d5"+
+        "\1\uffff\1\u00f3\1\uffff\1\u00f4\1\u00f5\1\u00f7\1\u00fa\1\17\1"+
+        "\15\5\uffff\1\54\10\uffff\1\u00da\12\uffff\1\63\1\64\1\65\1\uffff"+
+        "\1\u00ac\2\uffff\1\20\1\16\1\25\1\26\3\uffff\1\61\1\uffff\1\60\30"+
+        "\uffff\1\u00d2\11\uffff\1\53\5\uffff\1\55\1\57\1\62\14\uffff\1\u009c"+
+        "\1\u00be\16\uffff\1\u00b9\1\u00bb\26\uffff\1\u0082\1\u00b2\47\uffff"+
+        "\1\7\4\uffff\1\44\1\u00f1\10\uffff\1\117\33\uffff\1\u00d8\11\uffff"+
+        "\1\114\6\uffff\1\71\1\uffff\1\153\13\uffff\1\u00db\13\uffff\1\u00ad"+
+        "\11\uffff\1\125\13\uffff\1\u00e0\20\uffff\1\u00ae\1\151\1\u00d7"+
+        "\6\uffff\1\u00a0\1\u009f\1\uffff\1\u00bf\13\uffff\1\u00d3\7\uffff"+
+        "\1\100\5\uffff\1\147\1\u0088\5\uffff\1\56\4\uffff\1\u00c2\3\uffff"+
+        "\1\152\1\uffff\1\162\2\uffff\1\u0086\14\uffff\1\u00b6\3\uffff\1"+
+        "\u009b\4\uffff\1\102\3\uffff\1\131\1\uffff\1\u00dc\14\uffff\1\127"+
+        "\2\uffff\1\u00ab\1\113\6\uffff\1\u00e6\5\uffff\1\172\2\uffff\1\u00f2"+
+        "\2\uffff\1\u00c7\1\uffff\1\u00a1\7\uffff\1\115\1\uffff\1\u0080\3"+
+        "\uffff\1\u00e3\21\uffff\1\154\3\uffff\1\u0089\1\uffff\1\51\2\uffff"+
+        "\1\101\1\uffff\1\150\1\u00ca\1\uffff\1\132\4\uffff\1\u00c9\1\140"+
+        "\3\uffff\1\52\1\uffff\1\107\2\uffff\1\165\6\uffff\1\167\3\uffff"+
+        "\1\146\4\uffff\1\66\1\67\1\70\3\uffff\1\u00c6\11\uffff\1\104\1\uffff"+
+        "\1\137\7\uffff\1\u00b1\14\uffff\1\u00c3\3\uffff\1\u00ba\1\u00b0"+
+        "\1\u00de\1\u00d9\1\4\1\uffff\1\6\1\164\1\uffff\1\103\1\uffff\1\5"+
+        "\1\133\1\135\1\134\6\uffff\1\u00a9\11\uffff\1\46\1\uffff\1\170\1"+
+        "\u00c0\4\uffff\1\u00d4\3\uffff\1\47\2\uffff\1\75\1\u0087\2\uffff"+
+        "\1\u00aa\4\uffff\1\166\11\uffff\1\160\3\uffff\1\74\1\u009e\1\uffff"+
+        "\1\141\2\uffff\1\124\1\uffff\1\u009d\1\uffff\1\u00df\1\u00ed\1\uffff"+
+        "\1\136\1\u00a7\1\u00a8\10\uffff\1\u00dd\7\uffff\1\u0081\2\uffff"+
+        "\1\u00b3\2\uffff\1\u00d6\1\u00ec\1\uffff\1\120\2\uffff\1\45\6\uffff"+
+        "\1\126\5\uffff\1\u00e1\2\uffff\1\121\1\122\1\u0097\1\u0098\1\u0099"+
+        "\1\u009a\1\uffff\1\110\2\uffff\1\155\6\uffff\1\u00b5\1\76\4\uffff"+
+        "\1\106\3\uffff\1\u008f\1\u0090\1\u0091\1\u0092\2\uffff\1\u0085\1"+
+        "\u00a4\4\uffff\1\112\2\uffff\1\u00a2\5\uffff\1\u00c8\3\uffff\1\u00c4"+
+        "\11\uffff\1\72\2\uffff\1\u0093\1\u0094\1\u0095\1\u0096\1\u00b7\3"+
+        "\uffff\1\u0083\2\uffff\1\116\1\123\11\uffff\1\u00a5\1\uffff\1\u00c1"+
+        "\1\u00a6\2\uffff\1\u008c\1\u00b8\1\50\10\uffff\1\u00b4\1\uffff\1"+
+        "\u008a\1\77\3\uffff\1\73\3\uffff\1\u00a3\1\u00eb\3\uffff\1\174\1"+
+        "\uffff\1\u008d\1\u008e\1\u00af\3\uffff\1\130\1\uffff\1\111\2\uffff"+
+        "\1\u00e8\1\u00d0\1\163\3\uffff\1\175\4\uffff\1\145\1\143\1\u0084"+
+        "\3\uffff\1\u00c5\1\uffff\1\u00e7\1\144\1\142\1\uffff\1\105\1\173"+
+        "\1\177\2\uffff\1\u00e9\1\u00ea\1\uffff\1\u00e2\1\171\1\uffff\1\176"+
+        "\2\uffff\1\161\1\uffff\1\u008b";
+    static final String DFA21_specialS =
+        "\1\0\u041c\uffff}>";
+    static final String[] DFA21_transitionS = {
+            "\11\64\2\63\2\64\1\63\22\64\1\63\1\14\1\61\1\50\1\60\1\13\1"+
+            "\3\1\62\1\43\1\44\1\11\1\7\1\46\1\10\1\17\1\12\1\55\11\56\1"+
+            "\53\1\52\1\16\1\1\1\15\1\20\1\45\32\60\1\51\1\64\1\47\1\57\1"+
+            "\60\1\64\1\6\1\37\1\4\1\5\1\22\1\25\1\35\1\36\1\24\2\60\1\31"+
+            "\1\26\1\32\1\33\1\27\1\60\1\34\1\23\1\40\1\30\1\21\1\54\3\60"+
+            "\1\41\1\2\1\42\uff82\64",
+            "\1\65\1\66",
+            "\1\70",
+            "\1\72",
+            "\1\101\3\uffff\1\77\6\uffff\1\100\1\76\1\uffff\1\75\5\uffff"+
+            "\1\74",
+            "\1\105\3\uffff\1\106\3\uffff\1\103\5\uffff\1\104\11\uffff"+
+            "\1\107",
+            "\1\112\1\111\1\113\61\uffff\1\116\4\uffff\1\110\6\uffff\1"+
+            "\115\1\uffff\1\117\1\114",
+            "\1\121\21\uffff\1\120",
+            "\1\125\17\uffff\1\123\1\124",
+            "\1\130\22\uffff\1\127",
+            "\1\133\4\uffff\1\134\15\uffff\1\132",
+            "\1\136",
+            "\1\140",
+            "\1\142",
+            "\1\144",
+            "\1\146",
+            "\1\151\13\uffff\1\150",
+            "\1\153",
+            "\1\156\1\155\12\uffff\1\154",
+            "\1\161\1\uffff\1\163\1\uffff\1\162\2\uffff\1\171\1\166\2\uffff"+
+            "\1\164\2\uffff\1\165\4\uffff\1\157\1\160\1\uffff\1\167\1\uffff"+
+            "\1\170",
+            "\1\175\2\uffff\1\176\6\uffff\1\172\1\173\5\uffff\1\174",
+            "\1\177\7\uffff\1\u0080\5\uffff\1\u0082\2\uffff\1\u0081",
+            "\1\u0086\3\uffff\1\u0087\3\uffff\1\u0085\3\uffff\1\u0083\1"+
+            "\uffff\1\u0084",
+            "\1\u008e\1\uffff\1\u0089\1\u008d\1\u008c\11\uffff\1\u008b"+
+            "\2\uffff\1\u008f\1\uffff\1\u0088\3\uffff\1\u008a",
+            "\1\u0094\4\uffff\1\u0091\1\u0093\1\u0095\1\uffff\1\u0092\1"+
+            "\u0090",
+            "\1\u0096\3\uffff\1\u0097\3\uffff\1\u0098\5\uffff\1\u0099",
+            "\1\u009c\11\uffff\1\u009a\5\uffff\1\u009b",
+            "\1\u009d\3\uffff\1\u00a1\7\uffff\1\u00a0\3\uffff\1\u009f\2"+
+            "\uffff\1\u009e",
+            "\1\u00a4\3\uffff\1\u00a2\5\uffff\1\u00a5\5\uffff\1\u00a3",
+            "\1\u00a6\11\uffff\1\u00a7\2\uffff\1\u00a8",
+            "\1\u00aa\3\uffff\1\u00ab\12\uffff\1\u00a9",
+            "\1\u00ac\15\uffff\1\u00ad\11\uffff\1\u00ae",
+            "\1\u00b4\3\uffff\1\u00b2\2\uffff\1\u00b5\1\u00b3\5\uffff\1"+
+            "\u00af\2\uffff\1\u00b1\6\uffff\1\u00b0",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "\1\u00c0",
+            "\1\u00c2",
+            "\12\u00c4\10\uffff\1\u00c6\1\uffff\3\u00c6\5\uffff\1\u00c6"+
+            "\13\uffff\1\u00c3\6\uffff\1\u00c4\2\uffff\1\u00c6\1\uffff\3"+
+            "\u00c6\5\uffff\1\u00c6\13\uffff\1\u00c3",
+            "\12\u00c4\10\uffff\1\u00c6\1\uffff\3\u00c6\5\uffff\1\u00c6"+
+            "\22\uffff\1\u00c4\2\uffff\1\u00c6\1\uffff\3\u00c6\5\uffff\1"+
+            "\u00c6",
+            "\1\102\34\uffff\32\102\4\uffff\1\102\1\uffff\32\102",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "\1\u00c9",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "\1\u00cc\1\u00cb",
+            "\1\u00cf\1\uffff\1\u00cd\6\uffff\1\u00ce",
+            "\1\102\13\uffff\12\102\7\uffff\32\102\4\uffff\1\102\1\uffff"+
+            "\32\102",
+            "\1\u00d2\1\uffff\1\u00d1",
+            "\1\u00d3",
+            "\1\u00d4\1\u00d5",
+            "",
+            "\1\u00d6",
+            "\1\102\13\uffff\12\102\7\uffff\32\102\4\uffff\1\102\1\uffff"+
+            "\23\102\1\u00d7\1\u00d8\5\102",
+            "\1\u00db\1\u00da\1\u00dc\4\uffff\1\u00dd",
+            "\1\u00e0\14\uffff\1\u00de\1\u00df",
+            "\1\u00e1",
+            "\1\u00e2\7\uffff\1\u00e3",
+            "\1\102\13\uffff\12\102\7\uffff\32\102\4\uffff\1\102\1\uffff"+
+            "\32\102",
+            "\1\102\13\uffff\12\102\7\uffff\32\102\4\uffff\1\102\1\uffff"+
+            "\32\102",
+            "\1\102\13\uffff\12\102\7\uffff\32\102\4\uffff\1\102\1\uffff"+
+            "\32\102",
+            "\1\u00e7",
+            "\1\102\13\uffff\12\102\7\uffff\32\102\4\uffff\1\102\1\uffff"+
+            "\32\102",
+            "\1\u00e9",
+            "\1\u00ea",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "\1\u00eb",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "\1\u00ed",
+            "",
+            "",
+            "",
+            "",
+            "\1\u00ef\5\uffff\1\u00f0",
+            "\1\102\13\uffff\12\102\7\uffff\32\102\4\uffff\1\102\1\uffff"+
+            "\23\102\1\u00f1\6\102",
+            "\1\102\13\uffff\12\102\7\uffff\32\102\4\uffff\1\102\1\uffff"+
+            "\1\102\1\u00f3\30\102",
+            "\1\u00f5",
+            "\1\u00f6\20\uffff\1\u00f8\6\uffff\1\u00f7",
+            "\1\u00fb\12\uffff\1\u00fa\2\uffff\1\u00f9",
+            "\1\u00fc",
+            "\1\u00fd",
+            "\1\u00ff\7\uffff\1\u00fe",
+            "\1\u0100",
+            "\1\u0101",
+            "\1\u0102",
+            "\1\u0103",
+            "\1\u0104",
+            "\1\u0105",
+            "\1\u0107\16\uffff\1\u0106",
+            "\1\u0108\17\uffff\1\u0109\1\u010a",
+            "\1\u010b",
+            "\1\u010c",
+            "\1\102\13\uffff\12\102\7\uffff\32\102\4\uffff\1\102\1\uffff"+
+            "\32\102",
+            "\1\u010e\1\u010f",
+            "\1\u0111\1\uffff\1\u0112\11\uffff\1\u0110",
+            "\1\u0113",
+            "\1\u0115\1\u0116\2\uffff\1\u0114",
+            "\1\102\13\uffff\12\102\7\uffff\32\102\4\uffff\1\102\1\uffff"+
+            "\32\102",
+            "\1\u0118",
+            "\1\u0119",
+            "\1\u011b\5\uffff\1\u011a",
+            "\1\u011c",
+            "\1\102\13\uffff\12\102\7\uffff\32\102\4\uffff\1\102\1\uffff"+
+            "\32\102",
+            "\1\102\13\uffff\12\102\7\uffff\32\102\4\uffff\1\102\1\uffff"+
+            "\32\102",
+            "\1\102\13\uffff\12\102\7\uffff\32\102\4\uffff\1\102\1\uffff"+
+            "\32\102",
+            "\1\u0120",
+            "\1\u0121",
+            "\1\u0122",
+            "\1\u0124\1\u0125\2\uffff\1\u0123\14\uffff\1\u0126",
+            "\1\u0127",
+            "\1\u0128",
+            "\1\u0129",
+            "\1\u012a",
+            "\1\u012b",
+            "\1\102\13\uffff\12\102\7\uffff\32\102\4\uffff\1\102\1\uffff"+
+            "\32\102",
+            "\1\u012d",
+            "\1\u0130\13\uffff\1\u012e\12\uffff\1\u012f",
+            "\1\u0131",
+            "\1\u0132",
+            "\1\u0133",
+            "\1\u0135\3\uffff\1\u0134",
+            "\1\u0137\1\u0136",
+            "\1\u0138",
+            "\1\u0139",
+            "\1\u013a",
+            "\1\u013b",
+            "\1\u013c",
+            "\1\102\13\uffff\12\102\7\uffff\32\102\4\uffff\1\102\1\uffff"+
+            "\32\102",
+            "\1\u0140\2\uffff\1\u013e\13\uffff\1\u013f",
+            "\1\u0141",
+            "\1\u0143\1\uffff\1\u0142\2\uffff\1\u0145\1\u0144",
+            "\1\u0146",
+            "\1\u0147",
+            "\1\u0148",
+            "\1\u014a\5\uffff\1\u0149",
+            "\1\u014b",
+            "\1\u014c\7\uffff\1\u014d",
+            "\1\u014e",
+            "\1\u0150\1\u014f",
+            "\1\u0153\5\uffff\1\u0152\1\uffff\1\u0151",
+            "\1\102\10\uffff\1\u0154\2\uffff\12\102\7\uffff\32\102\4\uffff"+
+            "\1\102\1\uffff\32\102",
+            "\1\u0159\1\u0157\3\uffff\1\u0156\2\uffff\1\u0158",
+            "\1\u015a",
+            "\1\u015b\3\uffff\1\u015c\17\uffff\1\u015e\3\uffff\1\u015d",
+            "\1\u0160\12\uffff\1\u015f",
+            "\1\u0161\6\uffff\1\u0162",
+            "\1\u0163",
+            "\1\u0164",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "\1\u0165",
+            "",
+            "\12\u00c4\10\uffff\1\u00c6\1\uffff\3\u00c6\5\uffff\1\u00c6"+
+            "\22\uffff\1\u00c4\2\uffff\1\u00c6\1\uffff\3\u00c6\5\uffff\1"+
+            "\u00c6",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "\1\u0166",
+            "\1\u0167",
+            "\1\u0168",
+            "\1\u0169",
+            "\1\u016a\5\uffff\1\u016b",
+            "",
+            "\1\u016c",
+            "\1\u016d",
+            "\1\u016e",
+            "\1\u016f",
+            "\1\u0170",
+            "\1\u0171",
+            "\1\u0172",
+            "\1\u0173",
+            "",
+            "\1\u0174",
+            "\1\u0175",
+            "\1\u0177\3\uffff\1\u0176",
+            "\1\u0178",
+            "\1\u0179",
+            "\1\u017a",
+            "\1\u017b",
+            "\1\u017c",
+            "\1\102\13\uffff\12\102\7\uffff\32\102\4\uffff\1\102\1\uffff"+
+            "\32\102",
+            "\1\u017e",
+            "",
+            "",
+            "",
+            "\1\u017f",
+            "",
+            "\1\u0180",
+            "\1\u0181",
+            "",
+            "",
+            "",
+            "",
+            "\1\102\13\uffff\12\102\7\uffff\32\102\4\uffff\1\102\1\uffff"+
+            "\32\102",
+            "\1\102\13\uffff\12\102\7\uffff\32\102\4\uffff\1\102\1\uffff"+
+            "\32\102",
+            "\1\u0184",
+            "",
+            "\1\u0185",
+            "",
+            "\1\u0186",
+            "\1\u0188\14\uffff\1\u0187",
+            "\1\u0189",
+            "\1\u018a",
+            "\1\u018b",
+            "\1\102\13\uffff\12\102\7\uffff\32\102\4\uffff\1\102\1\uffff"+
+            "\32\102",
+            "\1\u018e\1\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\16\uffff\1\u019d",
+            "\1\u019e",
+            "\1\u019f",
+            "\1\u01a0",
+            "",
+            "\1\u01a1",
+            "\1\u01a2",
+            "\1\u01a3",
+            "\1\u01a4",
+            "\1\u01a5",
+            "\1\u01a6",
+            "\1\102\13\uffff\12\102\7\uffff\32\102\4\uffff\1\102\1\uffff"+
+            "\14\102\1\u01a7\15\102",
+            "\1\u01a9",
+            "\1\u01aa",
+            "",
+            "\1\u01ab",
+            "\1\u01ac",
+            "\1\u01ad",
+            "\1\u01ae",
+            "\1\u01af",
+            "",
+            "",
+            "",
+            "\1\u01b0",
+            "\1\u01b1",
+            "\1\102\13\uffff\12\102\7\uffff\32\102\4\uffff\1\102\1\uffff"+
+            "\32\102",
+            "\1\u01b3",
+            "\1\u01b4",
+            "\1\u01b5",
+            "\1\u01b6",
+            "\1\u01b7",
+            "\1\u01b8\6\uffff\1\u01b9",
+            "\1\u01ba",
+            "\1\102\13\uffff\12\102\7\uffff\32\102\4\uffff\1\102\1\uffff"+
+            "\32\102",
+            "\1\u01bc",
+            "",
+            "",
+            "\1\u01bd",
+            "\1\u01be",
+            "\1\u01bf",
+            "\1\u01c0",
+            "\1\u01c1",
+            "\1\u01c2",
+            "\1\u01c3",
+            "\1\u01c4",
+            "\1\u01c5",
+            "\1\u01c6",
+            "\1\102\13\uffff\12\102\7\uffff\32\102\4\uffff\1\102\1\uffff"+
+            "\32\102",
+            "\1\u01c8",
+            "\1\u01c9",
+            "\1\u01ca",
+            "",
+            "",
+            "\1\u01cb",
+            "\1\u01cc",
+            "\1\u01cd",
+            "\1\u01ce",
+            "\1\u01cf",
+            "\1\u01d0",
+            "\1\u01d1",
+            "\1\u01d2",
+            "\1\102\13\uffff\12\102\7\uffff\32\102\4\uffff\1\102\1\uffff"+
+            "\32\102",
+            "\1\u01d4",
+            "\1\u01d5",
+            "\1\u01d6\5\uffff\1\u01d7",
+            "\1\u01d8",
+            "\1\u01d9",
+            "\1\u01da",
+            "\1\u01db",
+            "\1\u01dc",
+            "\1\u01dd",
+            "\1\u01de",
+            "\1\u01df",
+            "\1\u01e0",
+            "\1\u01e1",
+            "",
+            "",
+            "\1\u01e2",
+            "\1\u01e3",
+            "\1\u01e4",
+            "\1\u01e5",
+            "\1\u01e6",
+            "\1\u01e7",
+            "\1\u01e8",
+            "\1\102\13\uffff\12\102\7\uffff\32\102\4\uffff\1\102\1\uffff"+
+            "\32\102",
+            "\1\u01ea",
+            "\1\u01eb",
+            "\1\u01ec",
+            "\1\u01ed",
+            "\1\u01ee",
+            "\1\u01ef",
+            "\1\u01f0",
+            "\1\u01f1",
+            "\1\u01f2",
+            "\1\u01f3",
+            "\1\u01f4",
+            "\1\u01f5",
+            "\1\u01f6",
+            "\1\u01f7",
+            "\1\u01f8",
+            "\1\102\13\uffff\12\102\7\uffff\32\102\4\uffff\1\102\1\uffff"+
+            "\2\102\1\u01f9\27\102",
+            "\1\102\13\uffff\12\102\7\uffff\32\102\4\uffff\1\102\1\uffff"+
+            "\32\102",
+            "\1\102\13\uffff\12\102\7\uffff\32\102\4\uffff\1\102\1\uffff"+
+            "\32\102",
+            "\1\u01fd",
+            "\1\u01fe",
+            "\1\u01ff",
+            "\1\u0200",
+            "\1\u0201",
+            "\1\u0202",
+            "\1\102\6\uffff\1\u0203\4\uffff\12\102\7\uffff\32\102\4\uffff"+
+            "\1\102\1\uffff\32\102",
+            "\1\u0205",
+            "\1\u0206",
+            "\1\u0207",
+            "\1\u0208",
+            "\1\u0209",
+            "\1\u020a",
+            "",
+            "\1\u020b",
+            "\1\u020c",
+            "\1\u020d",
+            "\1\u020e",
+            "",
+            "",
+            "\1\u020f\3\uffff\1\u0210",
+            "\1\u0211",
+            "\1\102\13\uffff\12\102\7\uffff\32\102\4\uffff\1\102\1\uffff"+
+            "\32\102",
+            "\1\u0213",
+            "\1\u0214",
+            "\1\u0215",
+            "\1\u0216",
+            "\1\u0217",
+            "",
+            "\1\u0218",
+            "\1\u0219",
+            "\1\u021a",
+            "\1\u021b",
+            "\1\u021c",
+            "\1\u021d",
+            "\1\u021e",
+            "\1\u021f",
+            "\1\102\10\uffff\1\u0220\2\uffff\12\102\7\uffff\32\102\4\uffff"+
+            "\1\102\1\uffff\32\102",
+            "\1\u0222",
+            "\1\u0223",
+            "\1\u0224",
+            "\1\u0225",
+            "\1\u0226",
+            "\1\102\13\uffff\12\102\7\uffff\32\102\4\uffff\1\102\1\uffff"+
+            "\32\102",
+            "\1\u0228",
+            "\1\u0229",
+            "\1\u022a",
+            "\1\u022b",
+            "\1\102\13\uffff\12\102\7\uffff\32\102\4\uffff\1\102\1\uffff"+
+            "\32\102",
+            "\1\u022d",
+            "\1\u022e",
+            "\1\u022f",
+            "\1\102\13\uffff\12\102\7\uffff\32\102\4\uffff\1\102\1\uffff"+
+            "\32\102",
+            "\1\u0231",
+            "\1\u0232",
+            "\1\u0233",
+            "",
+            "\1\102\13\uffff\12\102\7\uffff\32\102\4\uffff\1\102\1\uffff"+
+            "\22\102\1\u0234\7\102",
+            "\1\u0236",
+            "\1\u0237",
+            "\1\u0238",
+            "\1\u0239",
+            "\1\u023a",
+            "\1\u023b",
+            "\1\u023c",
+            "\1\u023d",
+            "",
+            "\1\u023e\106\uffff\1\u023f",
+            "\1\u0240",
+            "\1\u0241",
+            "\1\102\13\uffff\12\102\7\uffff\32\102\4\uffff\1\102\1\uffff"+
+            "\32\102",
+            "\1\u0243",
+            "\1\u0244",
+            "",
+            "\1\u0245",
+            "",
+            "\1\102\13\uffff\12\102\7\uffff\32\102\4\uffff\1\102\1\uffff"+
+            "\32\102",
+            "\1\u0247",
+            "\1\u0248",
+            "\1\u0249",
+            "\1\102\13\uffff\12\102\7\uffff\32\102\4\uffff\1\102\1\uffff"+
+            "\14\102\1\u024a\15\102",
+            "\1\u024c",
+            "\1\u024d",
+            "\1\u024e",
+            "\1\102\13\uffff\12\102\7\uffff\32\102\4\uffff\1\102\1\uffff"+
+            "\32\102",
+            "\1\u0250",
+            "\1\102\13\uffff\12\102\7\uffff\32\102\4\uffff\1\102\1\uffff"+
+            "\32\102",
+            "",
+            "\1\u0252",
+            "\1\u0253",
+            "\1\u0254",
+            "\1\u0255",
+            "\1\u0256",
+            "\1\u0257",
+            "\1\u0258",
+            "\1\u0259",
+            "\1\u025a",
+            "\1\u025b",
+            "\1\u025c",
+            "",
+            "\1\u025d",
+            "\1\u025e",
+            "\1\u025f",
+            "\1\u0260",
+            "\1\102\13\uffff\12\102\7\uffff\32\102\4\uffff\1\102\1\uffff"+
+            "\32\102",
+            "\1\102\13\uffff\12\102\7\uffff\32\102\4\uffff\1\102\1\uffff"+
+            "\32\102",
+            "\1\u0263",
+            "\1\u0264",
+            "\1\u0265",
+            "",
+            "\1\u0266",
+            "\1\u0267",
+            "\1\u0268",
+            "\1\102\13\uffff\12\102\7\uffff\32\102\4\uffff\1\102\1\uffff"+
+            "\32\102",
+            "\1\u026a",
+            "\1\u026b",
+            "\1\u026c",
+            "\1\u026d",
+            "\1\102\13\uffff\12\102\7\uffff\32\102\4\uffff\1\102\1\uffff"+
+            "\16\102\1\u026e\13\102",
+            "\1\u0270",
+            "\1\u0271",
+            "",
+            "\1\102\13\uffff\12\102\7\uffff\32\102\4\uffff\1\102\1\uffff"+
+            "\32\102",
+            "\1\102\13\uffff\12\102\7\uffff\32\102\4\uffff\1\102\1\uffff"+
+            "\1\u0274\1\102\1\u0273\27\102",
+            "\1\u0276",
+            "\1\102\13\uffff\12\102\7\uffff\32\102\4\uffff\1\102\1\uffff"+
+            "\32\102",
+            "\1\u0278",
+            "\1\u0279",
+            "\1\u027a",
+            "\1\u027b",
+            "\1\u027c",
+            "\1\u027d",
+            "\1\u027e",
+            "\1\102\13\uffff\12\102\7\uffff\32\102\4\uffff\1\102\1\uffff"+
+            "\32\102",
+            "\1\102\13\uffff\12\102\7\uffff\32\102\4\uffff\1\102\1\uffff"+
+            "\22\102\1\u0280\7\102",
+            "\1\u0282",
+            "\1\u0283",
+            "\1\u0284",
+            "",
+            "",
+            "",
+            "\1\102\13\uffff\12\102\7\uffff\32\102\4\uffff\1\102\1\uffff"+
+            "\32\102",
+            "\1\u0286",
+            "\1\u0287",
+            "\1\u0288",
+            "\1\u0289",
+            "\1\u028a",
+            "",
+            "",
+            "\1\u028b",
+            "",
+            "\1\u028c",
+            "\1\u028d",
+            "\1\u028e",
+            "\1\u028f",
+            "\1\u0290",
+            "\1\u0291",
+            "\1\u0292",
+            "\1\u0293",
+            "\1\u0294\16\uffff\1\u0295",
+            "\1\u0296",
+            "\1\102\13\uffff\12\102\7\uffff\32\102\4\uffff\1\102\1\uffff"+
+            "\32\102",
+            "",
+            "\1\u0298",
+            "\1\u0299",
+            "\1\102\13\uffff\12\102\7\uffff\32\102\4\uffff\1\102\1\uffff"+
+            "\22\102\1\u029a\7\102",
+            "\1\u029c",
+            "\1\102\13\uffff\12\102\7\uffff\32\102\4\uffff\1\102\1\uffff"+
+            "\32\102",
+            "\1\u029e",
+            "\1\u029f",
+            "",
+            "\1\102\13\uffff\12\102\7\uffff\32\102\4\uffff\1\102\1\uffff"+
+            "\32\102",
+            "\1\u02a1",
+            "\1\102\10\uffff\1\u02a2\2\uffff\12\102\7\uffff\32\102\4\uffff"+
+            "\1\102\1\uffff\32\102",
+            "\1\u02a4",
+            "\1\102\13\uffff\12\102\7\uffff\32\102\4\uffff\1\102\1\uffff"+
+            "\32\102",
+            "",
+            "",
+            "\1\u02a6",
+            "\1\u02a7",
+            "\1\u02a8",
+            "\1\u02a9",
+            "\1\102\13\uffff\12\102\7\uffff\32\102\4\uffff\1\102\1\uffff"+
+            "\32\102",
+            "",
+            "\1\102\13\uffff\12\102\7\uffff\32\102\4\uffff\1\102\1\uffff"+
+            "\32\102",
+            "\1\u02ac",
+            "\1\u02ad",
+            "\1\u02ae",
+            "",
+            "\1\102\13\uffff\12\102\7\uffff\32\102\4\uffff\1\102\1\uffff"+
+            "\32\102",
+            "\1\u02b0",
+            "\1\102\13\uffff\12\102\7\uffff\32\102\4\uffff\1\102\1\uffff"+
+            "\32\102",
+            "",
+            "\1\u02b2",
+            "",
+            "\1\u02b3",
+            "\1\102\13\uffff\12\102\7\uffff\32\102\4\uffff\1\102\1\uffff"+
+            "\32\102",
+            "",
+            "\1\u02b5",
+            "\1\u02b6",
+            "\1\u02b7",
+            "\1\u02b8",
+            "\1\u02b9",
+            "\1\102\13\uffff\12\102\7\uffff\32\102\4\uffff\1\102\1\uffff"+
+            "\22\102\1\u02ba\7\102",
+            "\1\u02bc",
+            "\1\u02bd",
+            "\1\u02be\7\uffff\1\u02bf",
+            "\1\u02c0",
+            "\1\u02c1",
+            "\1\u02c2",
+            "",
+            "\1\u02c3",
+            "\1\u02c6\2\uffff\1\u02c5\14\uffff\1\u02c4",
+            "\1\u02c7",
+            "",
+            "\1\u02c8",
+            "\1\u02c9",
+            "\1\102\13\uffff\12\102\7\uffff\32\102\4\uffff\1\102\1\uffff"+
+            "\32\102",
+            "\1\u02cb",
+            "",
+            "\1\u02cc",
+            "\1\u02cd",
+            "\1\u02ce",
+            "",
+            "\1\u02cf",
+            "",
+            "\1\u02d0",
+            "\1\u02d1",
+            "\1\u02d2",
+            "\1\102\13\uffff\12\102\7\uffff\32\102\4\uffff\1\102\1\uffff"+
+            "\14\102\1\u02d3\15\102",
+            "\1\u02d5",
+            "\1\102\13\uffff\12\102\7\uffff\32\102\4\uffff\1\102\1\uffff"+
+            "\32\102",
+            "\1\u02d7",
+            "\1\u02d8",
+            "\1\u02d9",
+            "\1\u02da",
+            "\1\u02db",
+            "\1\u02dc",
+            "",
+            "\1\u02dd",
+            "\1\102\13\uffff\12\102\7\uffff\32\102\4\uffff\1\102\1\uffff"+
+            "\32\102",
+            "",
+            "",
+            "\1\u02df",
+            "\1\u02e0",
+            "\1\u02e1",
+            "\1\u02e2",
+            "\1\u02e3",
+            "\1\u02e4",
+            "",
+            "\1\u02e5",
+            "\1\u02e6",
+            "\1\u02e7",
+            "\1\u02e8",
+            "\1\u02e9",
+            "",
+            "\1\u02ea",
+            "\1\102\13\uffff\12\102\7\uffff\32\102\4\uffff\1\102\1\uffff"+
+            "\32\102",
+            "",
+            "\1\u02ec",
+            "\1\u02ed",
+            "",
+            "\1\u02ee",
+            "",
+            "\1\102\13\uffff\12\102\7\uffff\32\102\4\uffff\1\102\1\uffff"+
+            "\32\102",
+            "\1\102\13\uffff\12\102\7\uffff\32\102\4\uffff\1\102\1\uffff"+
+            "\32\102",
+            "\1\102\13\uffff\12\102\7\uffff\32\102\4\uffff\1\102\1\uffff"+
+            "\32\102",
+            "\1\102\13\uffff\12\102\7\uffff\32\102\4\uffff\1\102\1\uffff"+
+            "\32\102",
+            "\1\102\13\uffff\12\102\7\uffff\32\102\4\uffff\1\102\1\uffff"+
+            "\32\102",
+            "\1\u02f4",
+            "\1\102\13\uffff\12\102\7\uffff\32\102\4\uffff\1\102\1\uffff"+
+            "\32\102",
+            "",
+            "\1\102\13\uffff\12\102\7\uffff\32\102\4\uffff\1\102\1\uffff"+
+            "\32\102",
+            "",
+            "\1\u02f7",
+            "\1\102\13\uffff\12\102\7\uffff\32\102\4\uffff\1\102\1\uffff"+
+            "\32\102",
+            "\1\u02f9",
+            "",
+            "\1\102\13\uffff\12\102\7\uffff\32\102\4\uffff\1\102\1\uffff"+
+            "\32\102",
+            "\1\102\13\uffff\12\102\7\uffff\32\102\4\uffff\1\102\1\uffff"+
+            "\32\102",
+            "\1\102\13\uffff\12\102\7\uffff\32\102\4\uffff\1\102\1\uffff"+
+            "\32\102",
+            "\1\102\13\uffff\12\102\7\uffff\32\102\4\uffff\1\102\1\uffff"+
+            "\32\102",
+            "\1\u02fe",
+            "\1\u02ff",
+            "\1\u0300",
+            "\1\102\13\uffff\12\102\7\uffff\32\102\4\uffff\1\102\1\uffff"+
+            "\5\102\1\u0303\1\102\1\u0302\12\102\1\u0301\7\102",
+            "\1\u0305",
+            "\1\u0306",
+            "\1\u0307",
+            "\1\u0308",
+            "\1\u0309",
+            "\1\u030a",
+            "\1\u030b",
+            "\1\u030c",
+            "\1\u030d",
+            "",
+            "\1\102\13\uffff\12\102\7\uffff\32\102\4\uffff\1\102\1\uffff"+
+            "\32\102",
+            "\1\u030f",
+            "\1\102\13\uffff\12\102\7\uffff\32\102\4\uffff\1\102\1\uffff"+
+            "\32\102",
+            "",
+            "\1\102\13\uffff\12\102\7\uffff\32\102\4\uffff\1\102\1\uffff"+
+            "\32\102",
+            "",
+            "\1\u0312",
+            "\1\u0313",
+            "",
+            "\1\u0314",
+            "",
+            "",
+            "\1\u0315",
+            "",
+            "\1\102\13\uffff\12\102\7\uffff\32\102\4\uffff\1\102\1\uffff"+
+            "\32\102",
+            "\1\u0317",
+            "\1\u0318\5\uffff\1\u0319",
+            "\1\102\13\uffff\12\102\7\uffff\32\102\4\uffff\1\102\1\uffff"+
+            "\32\102",
+            "",
+            "",
+            "\1\u031b",
+            "\1\u031c",
+            "\1\102\13\uffff\12\102\7\uffff\32\102\4\uffff\1\102\1\uffff"+
+            "\32\102",
+            "",
+            "\1\102\13\uffff\12\102\7\uffff\32\102\4\uffff\1\102\1\uffff"+
+            "\32\102",
+            "",
+            "\1\u031f",
+            "\1\u0320",
+            "",
+            "\1\102\13\uffff\12\102\7\uffff\32\102\4\uffff\1\102\1\uffff"+
+            "\32\102",
+            "\1\u0322",
+            "\1\u0323",
+            "\1\u0324",
+            "\1\u0325",
+            "\1\102\13\uffff\12\102\7\uffff\32\102\4\uffff\1\102\1\uffff"+
+            "\32\102",
+            "",
+            "\1\u0327",
+            "\1\u0328",
+            "\1\u0329",
+            "",
+            "\1\u032a",
+            "\1\u032b",
+            "\1\u032c",
+            "\1\u032d",
+            "",
+            "",
+            "",
+            "\1\u032e",
+            "\1\u032f",
+            "\1\u0330",
+            "",
+            "\1\u0331",
+            "\1\u0332",
+            "\1\u0333",
+            "\1\102\13\uffff\12\102\7\uffff\32\102\4\uffff\1\102\1\uffff"+
+            "\32\102",
+            "\1\102\13\uffff\12\102\7\uffff\32\102\4\uffff\1\102\1\uffff"+
+            "\32\102",
+            "\1\u0336",
+            "\1\102\13\uffff\12\102\7\uffff\32\102\4\uffff\1\102\1\uffff"+
+            "\32\102",
+            "\1\u0338",
+            "\1\u0339",
+            "",
+            "\1\102\13\uffff\12\102\7\uffff\32\102\4\uffff\1\102\1\uffff"+
+            "\32\102",
+            "",
+            "\1\u033b",
+            "\1\102\13\uffff\12\102\7\uffff\32\102\4\uffff\1\102\1\uffff"+
+            "\32\102",
+            "\1\u033d",
+            "\1\102\13\uffff\12\102\7\uffff\32\102\4\uffff\1\102\1\uffff"+
+            "\32\102",
+            "\1\102\13\uffff\12\102\7\uffff\32\102\4\uffff\1\102\1\uffff"+
+            "\32\102",
+            "\1\u0340",
+            "\1\102\13\uffff\12\102\7\uffff\32\102\4\uffff\1\102\1\uffff"+
+            "\32\102",
+            "",
+            "\1\102\13\uffff\12\102\7\uffff\32\102\4\uffff\1\102\1\uffff"+
+            "\32\102",
+            "\1\102\13\uffff\12\102\7\uffff\32\102\4\uffff\1\102\1\uffff"+
+            "\32\102",
+            "\1\u0344",
+            "\1\u0345",
+            "\1\u0346",
+            "\1\u0347",
+            "\1\u0348",
+            "\1\u0349",
+            "\1\u034a",
+            "\1\u034b",
+            "\1\102\13\uffff\12\102\7\uffff\32\102\4\uffff\1\102\1\uffff"+
+            "\32\102",
+            "\1\u034d",
+            "",
+            "\1\u034e",
+            "\1\u034f",
+            "\1\u0350",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "\1\u0351",
+            "",
+            "",
+            "\1\u0352",
+            "",
+            "\1\u0353",
+            "",
+            "",
+            "",
+            "",
+            "\1\102\13\uffff\12\102\7\uffff\32\102\4\uffff\1\102\1\uffff"+
+            "\32\102",
+            "\1\u0355",
+            "\1\u0356",
+            "\1\102\13\uffff\12\102\7\uffff\32\102\4\uffff\1\102\1\uffff"+
+            "\32\102",
+            "\1\u0358",
+            "\1\u0359",
+            "",
+            "\1\102\13\uffff\12\102\7\uffff\32\102\4\uffff\1\102\1\uffff"+
+            "\32\102",
+            "\1\102\13\uffff\12\102\7\uffff\32\102\4\uffff\1\102\1\uffff"+
+            "\32\102",
+            "\1\u035c",
+            "\1\102\13\uffff\12\102\7\uffff\32\102\4\uffff\1\102\1\uffff"+
+            "\32\102",
+            "\1\u035e",
+            "\1\u035f",
+            "\1\102\13\uffff\12\102\7\uffff\32\102\4\uffff\1\102\1\uffff"+
+            "\32\102",
+            "\1\u0361",
+            "\1\u0362",
+            "",
+            "\1\u0363",
+            "",
+            "",
+            "\1\u0364",
+            "\1\u0365",
+            "\1\u0366",
+            "\1\102\13\uffff\12\102\7\uffff\32\102\4\uffff\1\102\1\uffff"+
+            "\32\102",
+            "",
+            "\1\u0368",
+            "\1\u0369",
+            "\1\u036a",
+            "",
+            "\1\u036b",
+            "\1\u036c",
+            "",
+            "",
+            "\1\102\13\uffff\12\102\7\uffff\32\102\4\uffff\1\102\1\uffff"+
+            "\32\102",
+            "\1\u036e",
+            "",
+            "\1\u036f",
+            "\1\102\13\uffff\12\102\7\uffff\32\102\4\uffff\1\102\1\uffff"+
+            "\32\102",
+            "\1\102\13\uffff\12\102\7\uffff\32\102\4\uffff\1\102\1\uffff"+
+            "\32\102",
+            "\1\u0373\11\uffff\1\u0374\5\uffff\1\u0375\1\uffff\1\u0372",
+            "",
+            "\1\u0376",
+            "\1\102\13\uffff\12\102\7\uffff\32\102\4\uffff\1\102\1\uffff"+
+            "\32\102",
+            "\1\u0378",
+            "\1\u0379",
+            "\1\102\13\uffff\12\102\7\uffff\32\102\4\uffff\1\102\1\uffff"+
+            "\32\102",
+            "\1\u037b",
+            "\1\u037c",
+            "\1\u037d",
+            "\1\u037e",
+            "",
+            "\1\u037f",
+            "\1\u0380",
+            "\1\102\13\uffff\12\102\7\uffff\32\102\4\uffff\1\102\1\uffff"+
+            "\32\102",
+            "",
+            "",
+            "\1\102\13\uffff\12\102\7\uffff\32\102\4\uffff\1\102\1\uffff"+
+            "\32\102",
+            "",
+            "\1\u0383",
+            "\1\u0384",
+            "",
+            "\1\u0385",
+            "",
+            "\1\u0386",
+            "",
+            "",
+            "\1\u0387",
+            "",
+            "",
+            "",
+            "\1\u0388",
+            "\1\u0389",
+            "\1\u038a",
+            "\1\u038c\11\uffff\1\u038d\5\uffff\1\u038e\1\uffff\1\u038b",
+            "\1\u038f",
+            "\1\u0390",
+            "\1\102\13\uffff\12\102\7\uffff\32\102\4\uffff\1\102\1\uffff"+
+            "\32\102",
+            "\1\102\13\uffff\12\102\7\uffff\32\102\4\uffff\1\102\1\uffff"+
+            "\32\102",
+            "",
+            "\1\u0393",
+            "\1\u0394",
+            "\1\u0395",
+            "\1\u0396",
+            "\1\102\13\uffff\12\102\7\uffff\32\102\4\uffff\1\102\1\uffff"+
+            "\32\102",
+            "\1\u0398",
+            "\1\u0399",
+            "",
+            "\1\102\13\uffff\12\102\7\uffff\32\102\4\uffff\1\102\1\uffff"+
+            "\32\102",
+            "\1\u039b",
+            "",
+            "\1\u039c",
+            "\1\u039d",
+            "",
+            "",
+            "\1\u039e",
+            "",
+            "\1\u039f",
+            "\1\102\13\uffff\12\102\7\uffff\32\102\4\uffff\1\102\1\uffff"+
+            "\32\102",
+            "",
+            "\1\u03a1",
+            "\1\u03a2",
+            "\1\u03a3",
+            "\1\102\13\uffff\12\102\7\uffff\32\102\4\uffff\1\102\1\uffff"+
+            "\32\102",
+            "\1\u03a5",
+            "\1\u03a6",
+            "",
+            "\1\u03a7",
+            "\1\u03a8",
+            "\1\u03a9",
+            "\1\u03aa",
+            "\1\u03ab",
+            "",
+            "\1\u03ac",
+            "\1\u03ad",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "\1\102\13\uffff\12\102\7\uffff\32\102\4\uffff\1\102\1\uffff"+
+            "\32\102",
+            "",
+            "\1\u03af",
+            "\1\u03b0",
+            "",
+            "\1\u03b2\11\uffff\1\u03b3\5\uffff\1\u03b4\1\uffff\1\u03b1",
+            "\1\102\13\uffff\12\102\7\uffff\32\102\4\uffff\1\102\1\uffff"+
+            "\32\102",
+            "\1\u03b6",
+            "\1\u03b7",
+            "\1\u03b8",
+            "\1\102\13\uffff\12\102\7\uffff\32\102\4\uffff\1\102\1\uffff"+
+            "\32\102",
+            "",
+            "",
+            "\1\u03ba",
+            "\1\u03bb",
+            "\1\u03bc\17\uffff\1\u03bd",
+            "\1\u03be",
+            "",
+            "\1\u03bf",
+            "\1\u03c0",
+            "\1\u03c1",
+            "",
+            "",
+            "",
+            "",
+            "\1\u03c2",
+            "\1\u03c3",
+            "",
+            "",
+            "\1\u03c4",
+            "\1\u03c5",
+            "\1\u03c6",
+            "\1\102\13\uffff\12\102\7\uffff\32\102\4\uffff\1\102\1\uffff"+
+            "\32\102",
+            "",
+            "\1\u03c8",
+            "\1\102\13\uffff\12\102\7\uffff\32\102\4\uffff\1\102\1\uffff"+
+            "\32\102",
+            "",
+            "\1\u03ca",
+            "\1\u03cb",
+            "\1\u03cc",
+            "\1\102\13\uffff\12\102\7\uffff\32\102\4\uffff\1\102\1\uffff"+
+            "\32\102",
+            "\1\102\13\uffff\12\102\7\uffff\32\102\4\uffff\1\102\1\uffff"+
+            "\32\102",
+            "",
+            "\1\102\13\uffff\12\102\7\uffff\32\102\4\uffff\1\102\1\uffff"+
+            "\32\102",
+            "\1\u03d0",
+            "\1\u03d1",
+            "",
+            "\1\u03d2",
+            "\1\u03d3",
+            "\1\u03d4",
+            "\1\u03d5",
+            "\1\u03d6",
+            "\1\u03d7",
+            "\1\102\13\uffff\12\102\7\uffff\32\102\4\uffff\1\102\1\uffff"+
+            "\32\102",
+            "\1\102\13\uffff\12\102\7\uffff\32\102\4\uffff\1\102\1\uffff"+
+            "\22\102\1\u03d9\7\102",
+            "\1\102\13\uffff\12\102\7\uffff\32\102\4\uffff\1\102\1\uffff"+
+            "\32\102",
+            "",
+            "\1\u03dc",
+            "\1\u03dd",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "\1\u03de",
+            "\1\102\13\uffff\12\102\7\uffff\32\102\4\uffff\1\102\1\uffff"+
+            "\32\102",
+            "\1\u03e0",
+            "",
+            "\1\u03e1",
+            "\1\u03e2",
+            "",
+            "",
+            "\1\102\13\uffff\12\102\7\uffff\32\102\4\uffff\1\102\1\uffff"+
+            "\32\102",
+            "\1\102\13\uffff\12\102\7\uffff\32\102\4\uffff\1\102\1\uffff"+
+            "\32\102",
+            "\1\u03e5",
+            "\1\u03e6",
+            "\1\u03e7",
+            "\1\102\13\uffff\12\102\7\uffff\32\102\4\uffff\1\102\1\uffff"+
+            "\32\102",
+            "\1\u03e9",
+            "\1\102\13\uffff\12\102\7\uffff\32\102\4\uffff\1\102\1\uffff"+
+            "\32\102",
+            "\1\102\13\uffff\12\102\7\uffff\32\102\4\uffff\1\102\1\uffff"+
+            "\32\102",
+            "",
+            "\1\102\13\uffff\12\102\7\uffff\32\102\4\uffff\1\102\1\uffff"+
+            "\32\102",
+            "",
+            "",
+            "\1\u03ed",
+            "\1\u03ee",
+            "",
+            "",
+            "",
+            "\1\u03ef",
+            "\1\102\13\uffff\12\102\7\uffff\32\102\4\uffff\1\102\1\uffff"+
+            "\32\102",
+            "\1\u03f1",
+            "\1\102\13\uffff\12\102\7\uffff\32\102\4\uffff\1\102\1\uffff"+
+            "\32\102",
+            "\1\u03f3",
+            "\1\u03f4",
+            "\1\102\13\uffff\12\102\7\uffff\32\102\4\uffff\1\102\1\uffff"+
+            "\32\102",
+            "\1\102\13\uffff\12\102\7\uffff\32\102\4\uffff\1\102\1\uffff"+
+            "\32\102",
+            "",
+            "\1\102\13\uffff\12\102\7\uffff\32\102\4\uffff\1\102\1\uffff"+
+            "\32\102",
+            "",
+            "",
+            "\1\u03f8",
+            "\1\u03f9",
+            "\1\u03fa",
+            "",
+            "\1\102\13\uffff\12\102\7\uffff\32\102\4\uffff\1\102\1\uffff"+
+            "\32\102",
+            "\1\u03fc",
+            "\1\u03fd",
+            "",
+            "",
+            "\1\u03fe",
+            "\1\u03ff",
+            "\1\u0400",
+            "",
+            "\1\102\13\uffff\12\102\7\uffff\32\102\4\uffff\1\102\1\uffff"+
+            "\32\102",
+            "",
+            "",
+            "",
+            "\1\u0403",
+            "\1\u0404",
+            "\1\u0405",
+            "",
+            "\1\102\13\uffff\12\102\7\uffff\32\102\4\uffff\1\102\1\uffff"+
+            "\32\102",
+            "",
+            "\1\u0407",
+            "\1\102\13\uffff\12\102\7\uffff\32\102\4\uffff\1\102\1\uffff"+
+            "\32\102",
+            "",
+            "",
+            "",
+            "\1\u0409",
+            "\1\u040b",
+            "\1\102\13\uffff\12\102\7\uffff\32\102\4\uffff\1\102\1\uffff"+
+            "\32\102",
+            "",
+            "\1\102\13\uffff\12\102\7\uffff\32\102\4\uffff\1\102\1\uffff"+
+            "\32\102",
+            "\1\102\13\uffff\12\102\7\uffff\32\102\4\uffff\1\102\1\uffff"+
+            "\32\102",
+            "\1\u040f",
+            "\1\u0410",
+            "",
+            "",
+            "",
+            "\1\102\13\uffff\12\102\7\uffff\32\102\4\uffff\1\102\1\uffff"+
+            "\32\102",
+            "\1\102\13\uffff\12\102\7\uffff\32\102\4\uffff\1\102\1\uffff"+
+            "\32\102",
+            "\1\u0413",
+            "",
+            "\1\102\13\uffff\12\102\7\uffff\32\102\4\uffff\1\102\1\uffff"+
+            "\32\102",
+            "",
+            "",
+            "",
+            "\1\102\13\uffff\12\102\7\uffff\32\102\4\uffff\1\102\1\uffff"+
+            "\32\102",
+            "",
+            "",
+            "",
+            "\1\u0416",
+            "\1\102\13\uffff\12\102\7\uffff\32\102\4\uffff\1\102\1\uffff"+
+            "\32\102",
+            "",
+            "",
+            "\1\u0418",
+            "",
+            "",
+            "\1\u0419",
+            "",
+            "\1\102\13\uffff\12\102\7\uffff\32\102\4\uffff\1\102\1\uffff"+
+            "\32\102",
+            "\1\u041b",
+            "",
+            "\1\102\13\uffff\12\102\7\uffff\32\102\4\uffff\1\102\1\uffff"+
+            "\32\102",
+            ""
+    };
+
+    static final short[] DFA21_eot = DFA.unpackEncodedString(DFA21_eotS);
+    static final short[] DFA21_eof = DFA.unpackEncodedString(DFA21_eofS);
+    static final char[] DFA21_min = DFA.unpackEncodedStringToUnsignedChars(DFA21_minS);
+    static final char[] DFA21_max = DFA.unpackEncodedStringToUnsignedChars(DFA21_maxS);
+    static final short[] DFA21_accept = DFA.unpackEncodedString(DFA21_acceptS);
+    static final short[] DFA21_special = DFA.unpackEncodedString(DFA21_specialS);
+    static final short[][] DFA21_transition;
+
+    static {
+        int numStates = DFA21_transitionS.length;
+        DFA21_transition = new short[numStates][];
+        for (int i=0; i<numStates; i++) {
+            DFA21_transition[i] = DFA.unpackEncodedString(DFA21_transitionS[i]);
+        }
+    }
+
+    static class DFA21 extends DFA {
+
+        public DFA21(BaseRecognizer recognizer) {
+            this.recognizer = recognizer;
+            this.decisionNumber = 21;
+            this.eot = DFA21_eot;
+            this.eof = DFA21_eof;
+            this.min = DFA21_min;
+            this.max = DFA21_max;
+            this.accept = DFA21_accept;
+            this.special = DFA21_special;
+            this.transition = DFA21_transition;
+        }
+        public String getDescription() {
+            return "1:1: Tokens : ( T__13 | T__14 | T__15 | T__16 | T__17 | T__18 | T__19 | T__20 | T__21 | T__22 | T__23 | T__24 | T__25 | T__26 | T__27 | T__28 | T__29 | T__30 | T__31 | T__32 | T__33 | T__34 | T__35 | T__36 | T__37 | T__38 | T__39 | T__40 | T__41 | T__42 | T__43 | T__44 | T__45 | T__46 | T__47 | T__48 | T__49 | T__50 | T__51 | T__52 | T__53 | T__54 | T__55 | T__56 | T__57 | T__58 | T__59 | T__60 | T__61 | T__62 | T__63 | T__64 | T__65 | T__66 | T__67 | T__68 | T__69 | T__70 | T__71 | T__72 | T__73 | T__74 | T__75 | T__76 | T__77 | T__78 | T__79 | T__80 | T__81 | T__82 | T__83 | T__84 | T__85 | T__86 | T__87 | T__88 | T__89 | T__90 | T__91 | T__92 | T__93 | T__94 | T__95 | T__96 | T__97 | T__98 | T__99 | T__100 | T__101 | T__102 | T__103 | T__104 | T__105 | T__106 | T__107 | T__108 | T__109 | T__110 | T__111 | T__112 | T__113 | T__114 | T__115 | T__116 | T__117 | T__118 | T__119 | T__120 | T__121 | T__122 | T__123 | T__124 | T__125 | T__126 | T__127 | T__128 | T__129 | T__130 | T__131 | T__132 | T__133 | T__134 | T__135 | T__136 | T__137 | T__138 | T__139 | T__140 | T__141 | T__142 | T__143 | T__144 | T__145 | T__146 | T__147 | T__148 | T__149 | T__150 | T__151 | T__152 | T__153 | T__154 | 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 | T__189 | T__190 | T__191 | T__192 | T__193 | T__194 | T__195 | T__196 | T__197 | T__198 | T__199 | T__200 | T__201 | T__202 | T__203 | T__204 | T__205 | T__206 | T__207 | T__208 | T__209 | T__210 | T__211 | T__212 | T__213 | T__214 | T__215 | T__216 | T__217 | T__218 | T__219 | T__220 | T__221 | T__222 | T__223 | T__224 | T__225 | T__226 | T__227 | T__228 | T__229 | T__230 | T__231 | T__232 | T__233 | T__234 | T__235 | T__236 | T__237 | T__238 | T__239 | T__240 | T__241 | T__242 | T__243 | T__244 | T__245 | T__246 | T__247 | T__248 | T__249 | T__250 | T__251 | T__252 | T__253 | T__254 | 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 LA21_0 = input.LA(1);
+
+                        s = -1;
+                        if ( (LA21_0=='=') ) {s = 1;}
+
+                        else if ( (LA21_0=='|') ) {s = 2;}
+
+                        else if ( (LA21_0=='&') ) {s = 3;}
+
+                        else if ( (LA21_0=='c') ) {s = 4;}
+
+                        else if ( (LA21_0=='d') ) {s = 5;}
+
+                        else if ( (LA21_0=='a') ) {s = 6;}
+
+                        else if ( (LA21_0=='+') ) {s = 7;}
+
+                        else if ( (LA21_0=='-') ) {s = 8;}
+
+                        else if ( (LA21_0=='*') ) {s = 9;}
+
+                        else if ( (LA21_0=='/') ) {s = 10;}
+
+                        else if ( (LA21_0=='%') ) {s = 11;}
+
+                        else if ( (LA21_0=='!') ) {s = 12;}
+
+                        else if ( (LA21_0=='>') ) {s = 13;}
+
+                        else if ( (LA21_0=='<') ) {s = 14;}
+
+                        else if ( (LA21_0=='.') ) {s = 15;}
+
+                        else if ( (LA21_0=='?') ) {s = 16;}
+
+                        else if ( (LA21_0=='v') ) {s = 17;}
+
+                        else if ( (LA21_0=='e') ) {s = 18;}
+
+                        else if ( (LA21_0=='s') ) {s = 19;}
+
+                        else if ( (LA21_0=='i') ) {s = 20;}
+
+                        else if ( (LA21_0=='f') ) {s = 21;}
+
+                        else if ( (LA21_0=='m') ) {s = 22;}
+
+                        else if ( (LA21_0=='p') ) {s = 23;}
+
+                        else if ( (LA21_0=='u') ) {s = 24;}
+
+                        else if ( (LA21_0=='l') ) {s = 25;}
+
+                        else if ( (LA21_0=='n') ) {s = 26;}
+
+                        else if ( (LA21_0=='o') ) {s = 27;}
+
+                        else if ( (LA21_0=='r') ) {s = 28;}
+
+                        else if ( (LA21_0=='g') ) {s = 29;}
+
+                        else if ( (LA21_0=='h') ) {s = 30;}
+
+                        else if ( (LA21_0=='b') ) {s = 31;}
+
+                        else if ( (LA21_0=='t') ) {s = 32;}
+
+                        else if ( (LA21_0=='{') ) {s = 33;}
+
+                        else if ( (LA21_0=='}') ) {s = 34;}
+
+                        else if ( (LA21_0=='(') ) {s = 35;}
+
+                        else if ( (LA21_0==')') ) {s = 36;}
+
+                        else if ( (LA21_0=='@') ) {s = 37;}
+
+                        else if ( (LA21_0==',') ) {s = 38;}
+
+                        else if ( (LA21_0==']') ) {s = 39;}
+
+                        else if ( (LA21_0=='#') ) {s = 40;}
+
+                        else if ( (LA21_0=='[') ) {s = 41;}
+
+                        else if ( (LA21_0==';') ) {s = 42;}
+
+                        else if ( (LA21_0==':') ) {s = 43;}
+
+                        else if ( (LA21_0=='w') ) {s = 44;}
+
+                        else if ( (LA21_0=='0') ) {s = 45;}
+
+                        else if ( ((LA21_0>='1' && LA21_0<='9')) ) {s = 46;}
+
+                        else if ( (LA21_0=='^') ) {s = 47;}
+
+                        else if ( (LA21_0=='$'||(LA21_0>='A' && LA21_0<='Z')||LA21_0=='_'||(LA21_0>='j' && LA21_0<='k')||LA21_0=='q'||(LA21_0>='x' && LA21_0<='z')) ) {s = 48;}
+
+                        else if ( (LA21_0=='\"') ) {s = 49;}
+
+                        else if ( (LA21_0=='\'') ) {s = 50;}
+
+                        else if ( ((LA21_0>='\t' && LA21_0<='\n')||LA21_0=='\r'||LA21_0==' ') ) {s = 51;}
+
+                        else if ( ((LA21_0>='\u0000' && LA21_0<='\b')||(LA21_0>='\u000B' && LA21_0<='\f')||(LA21_0>='\u000E' && LA21_0<='\u001F')||LA21_0=='\\'||LA21_0=='`'||(LA21_0>='~' && LA21_0<='\uFFFF')) ) {s = 52;}
+
+                        if ( s>=0 ) return s;
+                        break;
+            }
+            NoViableAltException nvae =
+                new NoViableAltException(getDescription(), 21, _s, input);
+            error(nvae);
+            throw nvae;
+        }
+    }
+ 
+
+}
diff --git a/org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSLParser.java b/org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSLParser.java
new file mode 100644
index 0000000..1567fd6
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSLParser.java
@@ -0,0 +1,10015 @@
+/**
+ *                                                                            
+ *  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.reportdsl.ui.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.ui.editor.contentassist.antlr.internal.AbstractInternalContentAssistParser;
+import org.eclipse.xtext.ui.editor.contentassist.antlr.internal.DFA;
+import org.eclipse.osbp.xtext.reportdsl.services.ReportDSLGrammarAccess;
+
+
+
+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")
+interface InternalReportDSLParserSignatures {
+     void entryRuleReportModel() throws RecognitionException;
+     void ruleReportModel() throws RecognitionException;
+     void entryRuleReportPackage() throws RecognitionException;
+     void ruleReportPackage() throws RecognitionException;
+     void entryRulePageTemplates() throws RecognitionException;
+     void rulePageTemplates() throws RecognitionException;
+     void entryRuleSomeFormats() throws RecognitionException;
+     void ruleSomeFormats() throws RecognitionException;
+     void entryRuleColors() throws RecognitionException;
+     void ruleColors() throws RecognitionException;
+     void entryRuleFonts() throws RecognitionException;
+     void ruleFonts() throws RecognitionException;
+     void entryRuleMedias() throws RecognitionException;
+     void ruleMedias() throws RecognitionException;
+     void entryRuleMedia() throws RecognitionException;
+     void ruleMedia() throws RecognitionException;
+     void entryRuleStyles() throws RecognitionException;
+     void ruleStyles() throws RecognitionException;
+     void entryRulePageTemplate() throws RecognitionException;
+     void rulePageTemplate() throws RecognitionException;
+     void entryRuleUnsignedNumber() throws RecognitionException;
+     void ruleUnsignedNumber() throws RecognitionException;
+     void entryRuleColor() throws RecognitionException;
+     void ruleColor() throws RecognitionException;
+     void entryRuleFont() throws RecognitionException;
+     void ruleFont() throws RecognitionException;
+     void entryRuleFontFamily() throws RecognitionException;
+     void ruleFontFamily() throws RecognitionException;
+     void entryRuleBuildInFontFamily() throws RecognitionException;
+     void ruleBuildInFontFamily() throws RecognitionException;
+     void entryRuleCustomFontFamily() throws RecognitionException;
+     void ruleCustomFontFamily() throws RecognitionException;
+     void entryRuleBorderStyle() throws RecognitionException;
+     void ruleBorderStyle() throws RecognitionException;
+     void entryRuleStyle() throws RecognitionException;
+     void ruleStyle() throws RecognitionException;
+     void entryRuleMediaStyle() throws RecognitionException;
+     void ruleMediaStyle() throws RecognitionException;
+     void entryRuleSomeFormat() throws RecognitionException;
+     void ruleSomeFormat() throws RecognitionException;
+     void entryRuleUomoFormat() throws RecognitionException;
+     void ruleUomoFormat() throws RecognitionException;
+     void entryRuleNumberFormat() throws RecognitionException;
+     void ruleNumberFormat() throws RecognitionException;
+     void entryRuleCurrencyFormat() throws RecognitionException;
+     void ruleCurrencyFormat() throws RecognitionException;
+     void entryRuleDateFormat() throws RecognitionException;
+     void ruleDateFormat() throws RecognitionException;
+     void entryRuleDateTimeFormat() throws RecognitionException;
+     void ruleDateTimeFormat() throws RecognitionException;
+     void entryRuleTimeFormat() throws RecognitionException;
+     void ruleTimeFormat() throws RecognitionException;
+     void entryRuleReport() throws RecognitionException;
+     void ruleReport() throws RecognitionException;
+     void entryRuleReportDesign() throws RecognitionException;
+     void ruleReportDesign() throws RecognitionException;
+     void entryRuleReportDesignFile() throws RecognitionException;
+     void ruleReportDesignFile() throws RecognitionException;
+     void entryRuleReportDesignTemplate() throws RecognitionException;
+     void ruleReportDesignTemplate() throws RecognitionException;
+     void entryRulePageHeader() throws RecognitionException;
+     void rulePageHeader() throws RecognitionException;
+     void entryRulePageDetail() throws RecognitionException;
+     void rulePageDetail() throws RecognitionException;
+     void entryRulePageFooter() throws RecognitionException;
+     void rulePageFooter() throws RecognitionException;
+     void entryRuleElement() throws RecognitionException;
+     void ruleElement() throws RecognitionException;
+     void entryRuleGrid() throws RecognitionException;
+     void ruleGrid() throws RecognitionException;
+     void entryRuleGridRow() throws RecognitionException;
+     void ruleGridRow() throws RecognitionException;
+     void entryRuleGridCell() throws RecognitionException;
+     void ruleGridCell() throws RecognitionException;
+     void entryRuleDatamartTable() throws RecognitionException;
+     void ruleDatamartTable() throws RecognitionException;
+     void entryRuleDatamartTableGroup() throws RecognitionException;
+     void ruleDatamartTableGroup() throws RecognitionException;
+     void entryRuleDatamartTableGroupHeader() throws RecognitionException;
+     void ruleDatamartTableGroupHeader() throws RecognitionException;
+     void entryRuleDatamartTableGroupFooter() throws RecognitionException;
+     void ruleDatamartTableGroupFooter() throws RecognitionException;
+     void entryRuleDatamartTableDetail() throws RecognitionException;
+     void ruleDatamartTableDetail() throws RecognitionException;
+     void entryRuleDatamartTableProperty() throws RecognitionException;
+     void ruleDatamartTableProperty() throws RecognitionException;
+     void entryRuleTableImage() throws RecognitionException;
+     void ruleTableImage() throws RecognitionException;
+     void entryRuleTableValueElement() throws RecognitionException;
+     void ruleTableValueElement() throws RecognitionException;
+     void entryRuleTableProperty() throws RecognitionException;
+     void ruleTableProperty() throws RecognitionException;
+     void entryRuleTableAggregation() throws RecognitionException;
+     void ruleTableAggregation() throws RecognitionException;
+     void entryRuleTableBaseAggregation() throws RecognitionException;
+     void ruleTableBaseAggregation() throws RecognitionException;
+     void entryRuleTablePureAggregation() throws RecognitionException;
+     void ruleTablePureAggregation() throws RecognitionException;
+     void entryRuleTableUnaryAggregation() throws RecognitionException;
+     void ruleTableUnaryAggregation() throws RecognitionException;
+     void entryRuleTableMultipleAggregation() throws RecognitionException;
+     void ruleTableMultipleAggregation() throws RecognitionException;
+     void entryRuleTableBinaryAggregation() throws RecognitionException;
+     void ruleTableBinaryAggregation() throws RecognitionException;
+     void entryRuleTableInterval() throws RecognitionException;
+     void ruleTableInterval() throws RecognitionException;
+     void entryRuleTableNumberInterval() throws RecognitionException;
+     void ruleTableNumberInterval() throws RecognitionException;
+     void entryRuleTableDateDayInterval() throws RecognitionException;
+     void ruleTableDateDayInterval() throws RecognitionException;
+     void entryRuleTableLookup() throws RecognitionException;
+     void ruleTableLookup() throws RecognitionException;
+     void entryRuleTableNumberLookup() throws RecognitionException;
+     void ruleTableNumberLookup() throws RecognitionException;
+     void entryRuleTableStringLookup() throws RecognitionException;
+     void ruleTableStringLookup() throws RecognitionException;
+     void entryRuleTableDateDayLookup() throws RecognitionException;
+     void ruleTableDateDayLookup() throws RecognitionException;
+     void entryRuleTableRangeElement() throws RecognitionException;
+     void ruleTableRangeElement() throws RecognitionException;
+     void entryRuleSignedNumber() throws RecognitionException;
+     void ruleSignedNumber() throws RecognitionException;
+     void entryRuleTableTextColor() throws RecognitionException;
+     void ruleTableTextColor() throws RecognitionException;
+     void entryRuleTableCellColor() throws RecognitionException;
+     void ruleTableCellColor() throws RecognitionException;
+     void entryRuleTableIcon() throws RecognitionException;
+     void ruleTableIcon() throws RecognitionException;
+     void entryRuleTableTrend() throws RecognitionException;
+     void ruleTableTrend() throws RecognitionException;
+     void entryRuleTitle() throws RecognitionException;
+     void ruleTitle() throws RecognitionException;
+     void entryRuleSubTitle() throws RecognitionException;
+     void ruleSubTitle() throws RecognitionException;
+     void entryRuleSubSubTitle() throws RecognitionException;
+     void ruleSubSubTitle() throws RecognitionException;
+     void entryRuleLabel() throws RecognitionException;
+     void ruleLabel() throws RecognitionException;
+     void entryRuleText() throws RecognitionException;
+     void ruleText() throws RecognitionException;
+     void entryRuleAutoText() throws RecognitionException;
+     void ruleAutoText() throws RecognitionException;
+     void entryRuleImage() throws RecognitionException;
+     void ruleImage() throws RecognitionException;
+     void entryRuleReportImport() throws RecognitionException;
+     void ruleReportImport() throws RecognitionException;
+     void entryRuleReportQualifiedNameWithWildCard() throws RecognitionException;
+     void ruleReportQualifiedNameWithWildCard() throws RecognitionException;
+     void entryRuleTRANSLATABLESTRING() throws RecognitionException;
+     void ruleTRANSLATABLESTRING() throws RecognitionException;
+     void entryRuleXAnnotation() throws RecognitionException;
+     void ruleXAnnotation() throws RecognitionException;
+     void entryRuleXAnnotationElementValuePair() throws RecognitionException;
+     void ruleXAnnotationElementValuePair() throws RecognitionException;
+     void entryRuleXAnnotationElementValueOrCommaList() throws RecognitionException;
+     void ruleXAnnotationElementValueOrCommaList() throws RecognitionException;
+     void entryRuleXAnnotationElementValue() throws RecognitionException;
+     void ruleXAnnotationElementValue() throws RecognitionException;
+     void entryRuleXAnnotationOrExpression() throws RecognitionException;
+     void ruleXAnnotationOrExpression() throws RecognitionException;
+     void entryRuleXExpression() throws RecognitionException;
+     void ruleXExpression() throws RecognitionException;
+     void entryRuleXAssignment() throws RecognitionException;
+     void ruleXAssignment() throws RecognitionException;
+     void entryRuleOpSingleAssign() throws RecognitionException;
+     void ruleOpSingleAssign() throws RecognitionException;
+     void entryRuleOpMultiAssign() throws RecognitionException;
+     void ruleOpMultiAssign() throws RecognitionException;
+     void entryRuleXOrExpression() throws RecognitionException;
+     void ruleXOrExpression() throws RecognitionException;
+     void entryRuleOpOr() throws RecognitionException;
+     void ruleOpOr() throws RecognitionException;
+     void entryRuleXAndExpression() throws RecognitionException;
+     void ruleXAndExpression() throws RecognitionException;
+     void entryRuleOpAnd() throws RecognitionException;
+     void ruleOpAnd() throws RecognitionException;
+     void entryRuleXEqualityExpression() throws RecognitionException;
+     void ruleXEqualityExpression() throws RecognitionException;
+     void entryRuleOpEquality() throws RecognitionException;
+     void ruleOpEquality() throws RecognitionException;
+     void entryRuleXRelationalExpression() throws RecognitionException;
+     void ruleXRelationalExpression() throws RecognitionException;
+     void entryRuleOpCompare() throws RecognitionException;
+     void ruleOpCompare() throws RecognitionException;
+     void entryRuleXOtherOperatorExpression() throws RecognitionException;
+     void ruleXOtherOperatorExpression() throws RecognitionException;
+     void entryRuleOpOther() throws RecognitionException;
+     void ruleOpOther() throws RecognitionException;
+     void entryRuleXAdditiveExpression() throws RecognitionException;
+     void ruleXAdditiveExpression() throws RecognitionException;
+     void entryRuleOpAdd() throws RecognitionException;
+     void ruleOpAdd() throws RecognitionException;
+     void entryRuleXMultiplicativeExpression() throws RecognitionException;
+     void ruleXMultiplicativeExpression() throws RecognitionException;
+     void entryRuleOpMulti() throws RecognitionException;
+     void ruleOpMulti() throws RecognitionException;
+     void entryRuleXUnaryOperation() throws RecognitionException;
+     void ruleXUnaryOperation() throws RecognitionException;
+     void entryRuleOpUnary() throws RecognitionException;
+     void ruleOpUnary() throws RecognitionException;
+     void entryRuleXCastedExpression() throws RecognitionException;
+     void ruleXCastedExpression() throws RecognitionException;
+     void entryRuleXPostfixOperation() throws RecognitionException;
+     void ruleXPostfixOperation() throws RecognitionException;
+     void entryRuleOpPostfix() throws RecognitionException;
+     void ruleOpPostfix() throws RecognitionException;
+     void entryRuleXMemberFeatureCall() throws RecognitionException;
+     void ruleXMemberFeatureCall() throws RecognitionException;
+     void entryRuleXPrimaryExpression() throws RecognitionException;
+     void ruleXPrimaryExpression() throws RecognitionException;
+     void entryRuleXLiteral() throws RecognitionException;
+     void ruleXLiteral() throws RecognitionException;
+     void entryRuleXCollectionLiteral() throws RecognitionException;
+     void ruleXCollectionLiteral() throws RecognitionException;
+     void entryRuleXSetLiteral() throws RecognitionException;
+     void ruleXSetLiteral() throws RecognitionException;
+     void entryRuleXListLiteral() throws RecognitionException;
+     void ruleXListLiteral() throws RecognitionException;
+     void entryRuleXClosure() throws RecognitionException;
+     void ruleXClosure() throws RecognitionException;
+     void entryRuleXExpressionInClosure() throws RecognitionException;
+     void ruleXExpressionInClosure() throws RecognitionException;
+     void entryRuleXShortClosure() throws RecognitionException;
+     void ruleXShortClosure() throws RecognitionException;
+     void entryRuleXParenthesizedExpression() throws RecognitionException;
+     void ruleXParenthesizedExpression() throws RecognitionException;
+     void entryRuleXIfExpression() throws RecognitionException;
+     void ruleXIfExpression() throws RecognitionException;
+     void entryRuleXSwitchExpression() throws RecognitionException;
+     void ruleXSwitchExpression() throws RecognitionException;
+     void entryRuleXCasePart() throws RecognitionException;
+     void ruleXCasePart() throws RecognitionException;
+     void entryRuleXForLoopExpression() throws RecognitionException;
+     void ruleXForLoopExpression() throws RecognitionException;
+     void entryRuleXBasicForLoopExpression() throws RecognitionException;
+     void ruleXBasicForLoopExpression() throws RecognitionException;
+     void entryRuleXWhileExpression() throws RecognitionException;
+     void ruleXWhileExpression() throws RecognitionException;
+     void entryRuleXDoWhileExpression() throws RecognitionException;
+     void ruleXDoWhileExpression() throws RecognitionException;
+     void entryRuleXBlockExpression() throws RecognitionException;
+     void ruleXBlockExpression() throws RecognitionException;
+     void entryRuleXExpressionOrVarDeclaration() throws RecognitionException;
+     void ruleXExpressionOrVarDeclaration() throws RecognitionException;
+     void entryRuleXVariableDeclaration() throws RecognitionException;
+     void ruleXVariableDeclaration() throws RecognitionException;
+     void entryRuleJvmFormalParameter() throws RecognitionException;
+     void ruleJvmFormalParameter() throws RecognitionException;
+     void entryRuleFullJvmFormalParameter() throws RecognitionException;
+     void ruleFullJvmFormalParameter() throws RecognitionException;
+     void entryRuleXFeatureCall() throws RecognitionException;
+     void ruleXFeatureCall() throws RecognitionException;
+     void entryRuleFeatureCallID() throws RecognitionException;
+     void ruleFeatureCallID() throws RecognitionException;
+     void entryRuleIdOrSuper() throws RecognitionException;
+     void ruleIdOrSuper() throws RecognitionException;
+     void entryRuleXConstructorCall() throws RecognitionException;
+     void ruleXConstructorCall() throws RecognitionException;
+     void entryRuleXBooleanLiteral() throws RecognitionException;
+     void ruleXBooleanLiteral() throws RecognitionException;
+     void entryRuleXNullLiteral() throws RecognitionException;
+     void ruleXNullLiteral() throws RecognitionException;
+     void entryRuleXNumberLiteral() throws RecognitionException;
+     void ruleXNumberLiteral() throws RecognitionException;
+     void entryRuleXStringLiteral() throws RecognitionException;
+     void ruleXStringLiteral() throws RecognitionException;
+     void entryRuleXTypeLiteral() throws RecognitionException;
+     void ruleXTypeLiteral() throws RecognitionException;
+     void entryRuleXThrowExpression() throws RecognitionException;
+     void ruleXThrowExpression() throws RecognitionException;
+     void entryRuleXReturnExpression() throws RecognitionException;
+     void ruleXReturnExpression() throws RecognitionException;
+     void entryRuleXTryCatchFinallyExpression() throws RecognitionException;
+     void ruleXTryCatchFinallyExpression() throws RecognitionException;
+     void entryRuleXSynchronizedExpression() throws RecognitionException;
+     void ruleXSynchronizedExpression() throws RecognitionException;
+     void entryRuleXCatchClause() throws RecognitionException;
+     void ruleXCatchClause() throws RecognitionException;
+     void entryRuleQualifiedName() throws RecognitionException;
+     void ruleQualifiedName() throws RecognitionException;
+     void entryRuleNumber() throws RecognitionException;
+     void ruleNumber() throws RecognitionException;
+     void entryRuleJvmTypeReference() throws RecognitionException;
+     void ruleJvmTypeReference() throws RecognitionException;
+     void entryRuleArrayBrackets() throws RecognitionException;
+     void ruleArrayBrackets() throws RecognitionException;
+     void entryRuleXFunctionTypeRef() throws RecognitionException;
+     void ruleXFunctionTypeRef() throws RecognitionException;
+     void entryRuleJvmParameterizedTypeReference() throws RecognitionException;
+     void ruleJvmParameterizedTypeReference() throws RecognitionException;
+     void entryRuleJvmArgumentTypeReference() throws RecognitionException;
+     void ruleJvmArgumentTypeReference() throws RecognitionException;
+     void entryRuleJvmWildcardTypeReference() throws RecognitionException;
+     void ruleJvmWildcardTypeReference() throws RecognitionException;
+     void entryRuleJvmUpperBound() throws RecognitionException;
+     void ruleJvmUpperBound() throws RecognitionException;
+     void entryRuleJvmUpperBoundAnded() throws RecognitionException;
+     void ruleJvmUpperBoundAnded() throws RecognitionException;
+     void entryRuleJvmLowerBound() throws RecognitionException;
+     void ruleJvmLowerBound() throws RecognitionException;
+     void entryRuleJvmLowerBoundAnded() throws RecognitionException;
+     void ruleJvmLowerBoundAnded() throws RecognitionException;
+     void entryRuleQualifiedNameWithWildcard() throws RecognitionException;
+     void ruleQualifiedNameWithWildcard() throws RecognitionException;
+     void entryRuleValidID() throws RecognitionException;
+     void ruleValidID() throws RecognitionException;
+     void entryRuleXImportDeclaration() throws RecognitionException;
+     void ruleXImportDeclaration() throws RecognitionException;
+     void entryRuleQualifiedNameInStaticImport() throws RecognitionException;
+     void ruleQualifiedNameInStaticImport() throws RecognitionException;
+     void ruleUnitEnum() throws RecognitionException;
+     void rulePageSizeEnum() throws RecognitionException;
+     void ruleOrientationEnum() throws RecognitionException;
+     void ruleFontStyleEnum() throws RecognitionException;
+     void ruleBuildInFontFamilyEnum() throws RecognitionException;
+     void ruleTextAlignEnum() throws RecognitionException;
+     void ruleNumberFormatCategoryEnum() throws RecognitionException;
+     void ruleCurrencyFormatCategoryEnum() throws RecognitionException;
+     void ruleDateFormatCategoryEnum() throws RecognitionException;
+     void ruleDateTimeFormatCategoryEnum() throws RecognitionException;
+     void ruleTimeFormatCategoryEnum() throws RecognitionException;
+     void ruleRenderingEnum() throws RecognitionException;
+     void rulePureAggregationTypeEnum() throws RecognitionException;
+     void ruleUnaryAggregationTypeEnum() throws RecognitionException;
+     void ruleBinaryAggregationTypeEnum() throws RecognitionException;
+     void ruleMultipleAggregationTypeEnum() throws RecognitionException;
+     void ruleTrendIconEnum() throws RecognitionException;
+     void ruleBorderTypeEnum() throws RecognitionException;
+     void ruleAutoTextEnum() throws RecognitionException;
+     void ruleImageSizeEnum() throws RecognitionException;
+     void ruleImageSourceEnum() throws RecognitionException;
+     void rule__Color__Alternatives_2() throws RecognitionException;
+     void rule__FontFamily__Alternatives() throws RecognitionException;
+     void rule__SomeFormat__Alternatives() throws RecognitionException;
+     void rule__ReportDesign__Alternatives() throws RecognitionException;
+     void rule__Element__Alternatives() throws RecognitionException;
+     void rule__DatamartTableDetail__Alternatives_3() throws RecognitionException;
+     void rule__TableValueElement__Alternatives() throws RecognitionException;
+     void rule__TableBaseAggregation__Alternatives() throws RecognitionException;
+     void rule__TableInterval__Alternatives() throws RecognitionException;
+     void rule__TableLookup__Alternatives() throws RecognitionException;
+     void rule__TableRangeElement__Alternatives() throws RecognitionException;
+     void rule__XAnnotation__Alternatives_3_1() throws RecognitionException;
+     void rule__XAnnotationElementValueOrCommaList__Alternatives() throws RecognitionException;
+     void rule__XAnnotationElementValue__Alternatives() throws RecognitionException;
+     void rule__XAnnotationOrExpression__Alternatives() throws RecognitionException;
+     void rule__XAssignment__Alternatives() throws RecognitionException;
+     void rule__OpMultiAssign__Alternatives() throws RecognitionException;
+     void rule__OpEquality__Alternatives() throws RecognitionException;
+     void rule__XRelationalExpression__Alternatives_1() throws RecognitionException;
+     void rule__OpCompare__Alternatives() throws RecognitionException;
+     void rule__OpOther__Alternatives() throws RecognitionException;
+     void rule__OpOther__Alternatives_5_1() throws RecognitionException;
+     void rule__OpOther__Alternatives_6_1() throws RecognitionException;
+     void rule__OpAdd__Alternatives() throws RecognitionException;
+     void rule__OpMulti__Alternatives() throws RecognitionException;
+     void rule__XUnaryOperation__Alternatives() throws RecognitionException;
+     void rule__OpUnary__Alternatives() throws RecognitionException;
+     void rule__OpPostfix__Alternatives() throws RecognitionException;
+     void rule__XMemberFeatureCall__Alternatives_1() throws RecognitionException;
+     void rule__XMemberFeatureCall__Alternatives_1_0_0_0_1() throws RecognitionException;
+     void rule__XMemberFeatureCall__Alternatives_1_1_0_0_1() throws RecognitionException;
+     void rule__XMemberFeatureCall__Alternatives_1_1_3_1() throws RecognitionException;
+     void rule__XPrimaryExpression__Alternatives() throws RecognitionException;
+     void rule__XLiteral__Alternatives() throws RecognitionException;
+     void rule__XCollectionLiteral__Alternatives() throws RecognitionException;
+     void rule__XSwitchExpression__Alternatives_2() throws RecognitionException;
+     void rule__XCasePart__Alternatives_3() throws RecognitionException;
+     void rule__XExpressionOrVarDeclaration__Alternatives() throws RecognitionException;
+     void rule__XVariableDeclaration__Alternatives_1() throws RecognitionException;
+     void rule__XVariableDeclaration__Alternatives_2() throws RecognitionException;
+     void rule__XFeatureCall__Alternatives_3_1() throws RecognitionException;
+     void rule__FeatureCallID__Alternatives() throws RecognitionException;
+     void rule__IdOrSuper__Alternatives() throws RecognitionException;
+     void rule__XConstructorCall__Alternatives_4_1() throws RecognitionException;
+     void rule__XBooleanLiteral__Alternatives_1() throws RecognitionException;
+     void rule__XTryCatchFinallyExpression__Alternatives_3() throws RecognitionException;
+     void rule__Number__Alternatives() throws RecognitionException;
+     void rule__Number__Alternatives_1_0() throws RecognitionException;
+     void rule__Number__Alternatives_1_1_1() throws RecognitionException;
+     void rule__JvmTypeReference__Alternatives() throws RecognitionException;
+     void rule__JvmArgumentTypeReference__Alternatives() throws RecognitionException;
+     void rule__JvmWildcardTypeReference__Alternatives_2() throws RecognitionException;
+     void rule__XImportDeclaration__Alternatives_1() throws RecognitionException;
+     void rule__XImportDeclaration__Alternatives_1_0_3() throws RecognitionException;
+     void rule__UnitEnum__Alternatives() throws RecognitionException;
+     void rule__PageSizeEnum__Alternatives() throws RecognitionException;
+     void rule__OrientationEnum__Alternatives() throws RecognitionException;
+     void rule__FontStyleEnum__Alternatives() throws RecognitionException;
+     void rule__BuildInFontFamilyEnum__Alternatives() throws RecognitionException;
+     void rule__TextAlignEnum__Alternatives() throws RecognitionException;
+     void rule__NumberFormatCategoryEnum__Alternatives() throws RecognitionException;
+     void rule__CurrencyFormatCategoryEnum__Alternatives() throws RecognitionException;
+     void rule__RenderingEnum__Alternatives() throws RecognitionException;
+     void rule__PureAggregationTypeEnum__Alternatives() throws RecognitionException;
+     void rule__UnaryAggregationTypeEnum__Alternatives() throws RecognitionException;
+     void rule__TrendIconEnum__Alternatives() throws RecognitionException;
+     void rule__BorderTypeEnum__Alternatives() throws RecognitionException;
+     void rule__AutoTextEnum__Alternatives() throws RecognitionException;
+     void rule__ImageSizeEnum__Alternatives() throws RecognitionException;
+     void rule__ImageSourceEnum__Alternatives() throws RecognitionException;
+     void rule__ReportPackage__Group__0() throws RecognitionException;
+     void rule__ReportPackage__Group__0__Impl() throws RecognitionException;
+     void rule__ReportPackage__Group__1() throws RecognitionException;
+     void rule__ReportPackage__Group__1__Impl() throws RecognitionException;
+     void rule__ReportPackage__Group__2() throws RecognitionException;
+     void rule__ReportPackage__Group__2__Impl() throws RecognitionException;
+     void rule__ReportPackage__Group__3() throws RecognitionException;
+     void rule__ReportPackage__Group__3__Impl() throws RecognitionException;
+     void rule__ReportPackage__Group__4() throws RecognitionException;
+     void rule__ReportPackage__Group__4__Impl() throws RecognitionException;
+     void rule__ReportPackage__Group__5() throws RecognitionException;
+     void rule__ReportPackage__Group__5__Impl() throws RecognitionException;
+     void rule__ReportPackage__Group__6() throws RecognitionException;
+     void rule__ReportPackage__Group__6__Impl() throws RecognitionException;
+     void rule__ReportPackage__Group__7() throws RecognitionException;
+     void rule__ReportPackage__Group__7__Impl() throws RecognitionException;
+     void rule__ReportPackage__Group_5__0() throws RecognitionException;
+     void rule__ReportPackage__Group_5__0__Impl() throws RecognitionException;
+     void rule__ReportPackage__Group_5__1() throws RecognitionException;
+     void rule__ReportPackage__Group_5__1__Impl() throws RecognitionException;
+     void rule__ReportPackage__Group_5__2() throws RecognitionException;
+     void rule__ReportPackage__Group_5__2__Impl() throws RecognitionException;
+     void rule__ReportPackage__Group_5__3() throws RecognitionException;
+     void rule__ReportPackage__Group_5__3__Impl() throws RecognitionException;
+     void rule__ReportPackage__Group_5__4() throws RecognitionException;
+     void rule__ReportPackage__Group_5__4__Impl() throws RecognitionException;
+     void rule__ReportPackage__Group_5__5() throws RecognitionException;
+     void rule__ReportPackage__Group_5__5__Impl() throws RecognitionException;
+     void rule__ReportPackage__Group_5__6() throws RecognitionException;
+     void rule__ReportPackage__Group_5__6__Impl() throws RecognitionException;
+     void rule__ReportPackage__Group_5__7() throws RecognitionException;
+     void rule__ReportPackage__Group_5__7__Impl() throws RecognitionException;
+     void rule__ReportPackage__Group_5__8() throws RecognitionException;
+     void rule__ReportPackage__Group_5__8__Impl() throws RecognitionException;
+     void rule__ReportPackage__Group_5__9() throws RecognitionException;
+     void rule__ReportPackage__Group_5__9__Impl() throws RecognitionException;
+     void rule__ReportPackage__Group_5_2__0() throws RecognitionException;
+     void rule__ReportPackage__Group_5_2__0__Impl() throws RecognitionException;
+     void rule__ReportPackage__Group_5_2__1() throws RecognitionException;
+     void rule__ReportPackage__Group_5_2__1__Impl() throws RecognitionException;
+     void rule__ReportPackage__Group_5_2__2() throws RecognitionException;
+     void rule__ReportPackage__Group_5_2__2__Impl() throws RecognitionException;
+     void rule__ReportPackage__Group_5_2_2__0() throws RecognitionException;
+     void rule__ReportPackage__Group_5_2_2__0__Impl() throws RecognitionException;
+     void rule__ReportPackage__Group_5_2_2__1() throws RecognitionException;
+     void rule__ReportPackage__Group_5_2_2__1__Impl() throws RecognitionException;
+     void rule__PageTemplates__Group__0() throws RecognitionException;
+     void rule__PageTemplates__Group__0__Impl() throws RecognitionException;
+     void rule__PageTemplates__Group__1() throws RecognitionException;
+     void rule__PageTemplates__Group__1__Impl() throws RecognitionException;
+     void rule__SomeFormats__Group__0() throws RecognitionException;
+     void rule__SomeFormats__Group__0__Impl() throws RecognitionException;
+     void rule__SomeFormats__Group__1() throws RecognitionException;
+     void rule__SomeFormats__Group__1__Impl() throws RecognitionException;
+     void rule__SomeFormats__Group__2() throws RecognitionException;
+     void rule__SomeFormats__Group__2__Impl() throws RecognitionException;
+     void rule__SomeFormats__Group__3() throws RecognitionException;
+     void rule__SomeFormats__Group__3__Impl() throws RecognitionException;
+     void rule__SomeFormats__Group__4() throws RecognitionException;
+     void rule__SomeFormats__Group__4__Impl() throws RecognitionException;
+     void rule__Colors__Group__0() throws RecognitionException;
+     void rule__Colors__Group__0__Impl() throws RecognitionException;
+     void rule__Colors__Group__1() throws RecognitionException;
+     void rule__Colors__Group__1__Impl() throws RecognitionException;
+     void rule__Colors__Group__2() throws RecognitionException;
+     void rule__Colors__Group__2__Impl() throws RecognitionException;
+     void rule__Colors__Group__3() throws RecognitionException;
+     void rule__Colors__Group__3__Impl() throws RecognitionException;
+     void rule__Colors__Group__4() throws RecognitionException;
+     void rule__Colors__Group__4__Impl() throws RecognitionException;
+     void rule__Fonts__Group__0() throws RecognitionException;
+     void rule__Fonts__Group__0__Impl() throws RecognitionException;
+     void rule__Fonts__Group__1() throws RecognitionException;
+     void rule__Fonts__Group__1__Impl() throws RecognitionException;
+     void rule__Fonts__Group__2() throws RecognitionException;
+     void rule__Fonts__Group__2__Impl() throws RecognitionException;
+     void rule__Fonts__Group__3() throws RecognitionException;
+     void rule__Fonts__Group__3__Impl() throws RecognitionException;
+     void rule__Fonts__Group__4() throws RecognitionException;
+     void rule__Fonts__Group__4__Impl() throws RecognitionException;
+     void rule__Medias__Group__0() throws RecognitionException;
+     void rule__Medias__Group__0__Impl() throws RecognitionException;
+     void rule__Medias__Group__1() throws RecognitionException;
+     void rule__Medias__Group__1__Impl() throws RecognitionException;
+     void rule__Medias__Group__2() throws RecognitionException;
+     void rule__Medias__Group__2__Impl() throws RecognitionException;
+     void rule__Medias__Group__3() throws RecognitionException;
+     void rule__Medias__Group__3__Impl() throws RecognitionException;
+     void rule__Medias__Group__4() throws RecognitionException;
+     void rule__Medias__Group__4__Impl() throws RecognitionException;
+     void rule__Media__Group__0() throws RecognitionException;
+     void rule__Media__Group__0__Impl() throws RecognitionException;
+     void rule__Media__Group__1() throws RecognitionException;
+     void rule__Media__Group__1__Impl() throws RecognitionException;
+     void rule__Styles__Group__0() throws RecognitionException;
+     void rule__Styles__Group__0__Impl() throws RecognitionException;
+     void rule__Styles__Group__1() throws RecognitionException;
+     void rule__Styles__Group__1__Impl() throws RecognitionException;
+     void rule__Styles__Group__2() throws RecognitionException;
+     void rule__Styles__Group__2__Impl() throws RecognitionException;
+     void rule__Styles__Group__3() throws RecognitionException;
+     void rule__Styles__Group__3__Impl() throws RecognitionException;
+     void rule__Styles__Group__4() throws RecognitionException;
+     void rule__Styles__Group__4__Impl() throws RecognitionException;
+     void rule__PageTemplate__Group__0() throws RecognitionException;
+     void rule__PageTemplate__Group__0__Impl() throws RecognitionException;
+     void rule__PageTemplate__Group__1() throws RecognitionException;
+     void rule__PageTemplate__Group__1__Impl() throws RecognitionException;
+     void rule__PageTemplate__Group__2() throws RecognitionException;
+     void rule__PageTemplate__Group__2__Impl() throws RecognitionException;
+     void rule__PageTemplate__Group__3() throws RecognitionException;
+     void rule__PageTemplate__Group__3__Impl() throws RecognitionException;
+     void rule__PageTemplate__Group__4() throws RecognitionException;
+     void rule__PageTemplate__Group__4__Impl() throws RecognitionException;
+     void rule__PageTemplate__Group__5() throws RecognitionException;
+     void rule__PageTemplate__Group__5__Impl() throws RecognitionException;
+     void rule__PageTemplate__Group__6() throws RecognitionException;
+     void rule__PageTemplate__Group__6__Impl() throws RecognitionException;
+     void rule__PageTemplate__Group__7() throws RecognitionException;
+     void rule__PageTemplate__Group__7__Impl() throws RecognitionException;
+     void rule__PageTemplate__Group__8() throws RecognitionException;
+     void rule__PageTemplate__Group__8__Impl() throws RecognitionException;
+     void rule__PageTemplate__Group__9() throws RecognitionException;
+     void rule__PageTemplate__Group__9__Impl() throws RecognitionException;
+     void rule__PageTemplate__Group__10() throws RecognitionException;
+     void rule__PageTemplate__Group__10__Impl() throws RecognitionException;
+     void rule__PageTemplate__Group__11() throws RecognitionException;
+     void rule__PageTemplate__Group__11__Impl() throws RecognitionException;
+     void rule__PageTemplate__Group__12() throws RecognitionException;
+     void rule__PageTemplate__Group__12__Impl() throws RecognitionException;
+     void rule__PageTemplate__Group__13() throws RecognitionException;
+     void rule__PageTemplate__Group__13__Impl() throws RecognitionException;
+     void rule__PageTemplate__Group__14() throws RecognitionException;
+     void rule__PageTemplate__Group__14__Impl() throws RecognitionException;
+     void rule__PageTemplate__Group__15() throws RecognitionException;
+     void rule__PageTemplate__Group__15__Impl() throws RecognitionException;
+     void rule__PageTemplate__Group__16() throws RecognitionException;
+     void rule__PageTemplate__Group__16__Impl() throws RecognitionException;
+     void rule__PageTemplate__Group__17() throws RecognitionException;
+     void rule__PageTemplate__Group__17__Impl() throws RecognitionException;
+     void rule__PageTemplate__Group__18() throws RecognitionException;
+     void rule__PageTemplate__Group__18__Impl() throws RecognitionException;
+     void rule__PageTemplate__Group__19() throws RecognitionException;
+     void rule__PageTemplate__Group__19__Impl() throws RecognitionException;
+     void rule__PageTemplate__Group__20() throws RecognitionException;
+     void rule__PageTemplate__Group__20__Impl() throws RecognitionException;
+     void rule__PageTemplate__Group__21() throws RecognitionException;
+     void rule__PageTemplate__Group__21__Impl() throws RecognitionException;
+     void rule__Color__Group__0() throws RecognitionException;
+     void rule__Color__Group__0__Impl() throws RecognitionException;
+     void rule__Color__Group__1() throws RecognitionException;
+     void rule__Color__Group__1__Impl() throws RecognitionException;
+     void rule__Color__Group__2() throws RecognitionException;
+     void rule__Color__Group__2__Impl() throws RecognitionException;
+     void rule__Color__Group_2_1__0() throws RecognitionException;
+     void rule__Color__Group_2_1__0__Impl() throws RecognitionException;
+     void rule__Color__Group_2_1__1() throws RecognitionException;
+     void rule__Color__Group_2_1__1__Impl() throws RecognitionException;
+     void rule__Color__Group_2_1__2() throws RecognitionException;
+     void rule__Color__Group_2_1__2__Impl() throws RecognitionException;
+     void rule__Color__Group_2_1__3() throws RecognitionException;
+     void rule__Color__Group_2_1__3__Impl() throws RecognitionException;
+     void rule__Color__Group_2_2__0() throws RecognitionException;
+     void rule__Color__Group_2_2__0__Impl() throws RecognitionException;
+     void rule__Color__Group_2_2__1() throws RecognitionException;
+     void rule__Color__Group_2_2__1__Impl() throws RecognitionException;
+     void rule__Color__Group_2_2__2() throws RecognitionException;
+     void rule__Color__Group_2_2__2__Impl() throws RecognitionException;
+     void rule__Color__Group_2_2__3() throws RecognitionException;
+     void rule__Color__Group_2_2__3__Impl() throws RecognitionException;
+     void rule__Color__Group_2_3__0() throws RecognitionException;
+     void rule__Color__Group_2_3__0__Impl() throws RecognitionException;
+     void rule__Color__Group_2_3__1() throws RecognitionException;
+     void rule__Color__Group_2_3__1__Impl() throws RecognitionException;
+     void rule__Color__Group_2_3__2() throws RecognitionException;
+     void rule__Color__Group_2_3__2__Impl() throws RecognitionException;
+     void rule__Color__Group_2_3__3() throws RecognitionException;
+     void rule__Color__Group_2_3__3__Impl() throws RecognitionException;
+     void rule__Color__Group_2_3__4() throws RecognitionException;
+     void rule__Color__Group_2_3__4__Impl() throws RecognitionException;
+     void rule__Color__Group_2_3__5() throws RecognitionException;
+     void rule__Color__Group_2_3__5__Impl() throws RecognitionException;
+     void rule__Font__Group_0__0() throws RecognitionException;
+     void rule__Font__Group_0__0__Impl() throws RecognitionException;
+     void rule__Font__Group_0__1() throws RecognitionException;
+     void rule__Font__Group_0__1__Impl() throws RecognitionException;
+     void rule__Font__Group_0__2() throws RecognitionException;
+     void rule__Font__Group_0__2__Impl() throws RecognitionException;
+     void rule__Font__Group_0__3() throws RecognitionException;
+     void rule__Font__Group_0__3__Impl() throws RecognitionException;
+     void rule__Font__Group_0__4() throws RecognitionException;
+     void rule__Font__Group_0__4__Impl() throws RecognitionException;
+     void rule__Font__Group_0_3__0() throws RecognitionException;
+     void rule__Font__Group_0_3__0__Impl() throws RecognitionException;
+     void rule__Font__Group_0_3__1() throws RecognitionException;
+     void rule__Font__Group_0_3__1__Impl() throws RecognitionException;
+     void rule__Font__Group_0_4__0() throws RecognitionException;
+     void rule__Font__Group_0_4__0__Impl() throws RecognitionException;
+     void rule__Font__Group_0_4__1() throws RecognitionException;
+     void rule__Font__Group_0_4__1__Impl() throws RecognitionException;
+     void rule__Font__Group_3__0() throws RecognitionException;
+     void rule__Font__Group_3__0__Impl() throws RecognitionException;
+     void rule__Font__Group_3__1() throws RecognitionException;
+     void rule__Font__Group_3__1__Impl() throws RecognitionException;
+     void rule__Font__Group_3_0__0() throws RecognitionException;
+     void rule__Font__Group_3_0__0__Impl() throws RecognitionException;
+     void rule__Font__Group_3_0__1() throws RecognitionException;
+     void rule__Font__Group_3_0__1__Impl() throws RecognitionException;
+     void rule__Font__Group_3_0__2() throws RecognitionException;
+     void rule__Font__Group_3_0__2__Impl() throws RecognitionException;
+     void rule__BorderStyle__Group__0() throws RecognitionException;
+     void rule__BorderStyle__Group__0__Impl() throws RecognitionException;
+     void rule__BorderStyle__Group__1() throws RecognitionException;
+     void rule__BorderStyle__Group__1__Impl() throws RecognitionException;
+     void rule__BorderStyle__Group__2() throws RecognitionException;
+     void rule__BorderStyle__Group__2__Impl() throws RecognitionException;
+     void rule__BorderStyle__Group__3() throws RecognitionException;
+     void rule__BorderStyle__Group__3__Impl() throws RecognitionException;
+     void rule__Style__Group__0() throws RecognitionException;
+     void rule__Style__Group__0__Impl() throws RecognitionException;
+     void rule__Style__Group__1() throws RecognitionException;
+     void rule__Style__Group__1__Impl() throws RecognitionException;
+     void rule__Style__Group__2() throws RecognitionException;
+     void rule__Style__Group__2__Impl() throws RecognitionException;
+     void rule__Style__Group__3() throws RecognitionException;
+     void rule__Style__Group__3__Impl() throws RecognitionException;
+     void rule__Style__Group__4() throws RecognitionException;
+     void rule__Style__Group__4__Impl() throws RecognitionException;
+     void rule__Style__Group__5() throws RecognitionException;
+     void rule__Style__Group__5__Impl() throws RecognitionException;
+     void rule__Style__Group__6() throws RecognitionException;
+     void rule__Style__Group__6__Impl() throws RecognitionException;
+     void rule__Style__Group_3__0() throws RecognitionException;
+     void rule__Style__Group_3__0__Impl() throws RecognitionException;
+     void rule__Style__Group_3__1() throws RecognitionException;
+     void rule__Style__Group_3__1__Impl() throws RecognitionException;
+     void rule__Style__Group_4_0__0() throws RecognitionException;
+     void rule__Style__Group_4_0__0__Impl() throws RecognitionException;
+     void rule__Style__Group_4_0__1() throws RecognitionException;
+     void rule__Style__Group_4_0__1__Impl() throws RecognitionException;
+     void rule__Style__Group_4_1__0() throws RecognitionException;
+     void rule__Style__Group_4_1__0__Impl() throws RecognitionException;
+     void rule__Style__Group_4_1__1() throws RecognitionException;
+     void rule__Style__Group_4_1__1__Impl() throws RecognitionException;
+     void rule__Style__Group_4_2__0() throws RecognitionException;
+     void rule__Style__Group_4_2__0__Impl() throws RecognitionException;
+     void rule__Style__Group_4_2__1() throws RecognitionException;
+     void rule__Style__Group_4_2__1__Impl() throws RecognitionException;
+     void rule__Style__Group_4_2__2() throws RecognitionException;
+     void rule__Style__Group_4_2__2__Impl() throws RecognitionException;
+     void rule__Style__Group_4_2_2__0() throws RecognitionException;
+     void rule__Style__Group_4_2_2__0__Impl() throws RecognitionException;
+     void rule__Style__Group_4_2_2__1() throws RecognitionException;
+     void rule__Style__Group_4_2_2__1__Impl() throws RecognitionException;
+     void rule__Style__Group_4_3__0() throws RecognitionException;
+     void rule__Style__Group_4_3__0__Impl() throws RecognitionException;
+     void rule__Style__Group_4_3__1() throws RecognitionException;
+     void rule__Style__Group_4_3__1__Impl() throws RecognitionException;
+     void rule__Style__Group_4_4__0() throws RecognitionException;
+     void rule__Style__Group_4_4__0__Impl() throws RecognitionException;
+     void rule__Style__Group_4_4__1() throws RecognitionException;
+     void rule__Style__Group_4_4__1__Impl() throws RecognitionException;
+     void rule__Style__Group_4_5__0() throws RecognitionException;
+     void rule__Style__Group_4_5__0__Impl() throws RecognitionException;
+     void rule__Style__Group_4_5__1() throws RecognitionException;
+     void rule__Style__Group_4_5__1__Impl() throws RecognitionException;
+     void rule__Style__Group_4_6__0() throws RecognitionException;
+     void rule__Style__Group_4_6__0__Impl() throws RecognitionException;
+     void rule__Style__Group_4_6__1() throws RecognitionException;
+     void rule__Style__Group_4_6__1__Impl() throws RecognitionException;
+     void rule__Style__Group_4_7__0() throws RecognitionException;
+     void rule__Style__Group_4_7__0__Impl() throws RecognitionException;
+     void rule__Style__Group_4_7__1() throws RecognitionException;
+     void rule__Style__Group_4_7__1__Impl() throws RecognitionException;
+     void rule__Style__Group_4_8__0() throws RecognitionException;
+     void rule__Style__Group_4_8__0__Impl() throws RecognitionException;
+     void rule__Style__Group_4_8__1() throws RecognitionException;
+     void rule__Style__Group_4_8__1__Impl() throws RecognitionException;
+     void rule__Style__Group_4_9__0() throws RecognitionException;
+     void rule__Style__Group_4_9__0__Impl() throws RecognitionException;
+     void rule__Style__Group_4_9__1() throws RecognitionException;
+     void rule__Style__Group_4_9__1__Impl() throws RecognitionException;
+     void rule__Style__Group_4_9__2() throws RecognitionException;
+     void rule__Style__Group_4_9__2__Impl() throws RecognitionException;
+     void rule__Style__Group_4_10__0() throws RecognitionException;
+     void rule__Style__Group_4_10__0__Impl() throws RecognitionException;
+     void rule__Style__Group_4_10__1() throws RecognitionException;
+     void rule__Style__Group_4_10__1__Impl() throws RecognitionException;
+     void rule__Style__Group_4_10__2() throws RecognitionException;
+     void rule__Style__Group_4_10__2__Impl() throws RecognitionException;
+     void rule__Style__Group_4_11__0() throws RecognitionException;
+     void rule__Style__Group_4_11__0__Impl() throws RecognitionException;
+     void rule__Style__Group_4_11__1() throws RecognitionException;
+     void rule__Style__Group_4_11__1__Impl() throws RecognitionException;
+     void rule__Style__Group_4_11__2() throws RecognitionException;
+     void rule__Style__Group_4_11__2__Impl() throws RecognitionException;
+     void rule__Style__Group_4_12__0() throws RecognitionException;
+     void rule__Style__Group_4_12__0__Impl() throws RecognitionException;
+     void rule__Style__Group_4_12__1() throws RecognitionException;
+     void rule__Style__Group_4_12__1__Impl() throws RecognitionException;
+     void rule__Style__Group_4_12__2() throws RecognitionException;
+     void rule__Style__Group_4_12__2__Impl() throws RecognitionException;
+     void rule__Style__Group_4_13__0() throws RecognitionException;
+     void rule__Style__Group_4_13__0__Impl() throws RecognitionException;
+     void rule__Style__Group_4_13__1() throws RecognitionException;
+     void rule__Style__Group_4_13__1__Impl() throws RecognitionException;
+     void rule__Style__Group_4_13__2() throws RecognitionException;
+     void rule__Style__Group_4_13__2__Impl() throws RecognitionException;
+     void rule__Style__Group_4_14__0() throws RecognitionException;
+     void rule__Style__Group_4_14__0__Impl() throws RecognitionException;
+     void rule__Style__Group_4_14__1() throws RecognitionException;
+     void rule__Style__Group_4_14__1__Impl() throws RecognitionException;
+     void rule__Style__Group_4_14__2() throws RecognitionException;
+     void rule__Style__Group_4_14__2__Impl() throws RecognitionException;
+     void rule__Style__Group_4_15__0() throws RecognitionException;
+     void rule__Style__Group_4_15__0__Impl() throws RecognitionException;
+     void rule__Style__Group_4_15__1() throws RecognitionException;
+     void rule__Style__Group_4_15__1__Impl() throws RecognitionException;
+     void rule__Style__Group_4_15__2() throws RecognitionException;
+     void rule__Style__Group_4_15__2__Impl() throws RecognitionException;
+     void rule__Style__Group_4_16__0() throws RecognitionException;
+     void rule__Style__Group_4_16__0__Impl() throws RecognitionException;
+     void rule__Style__Group_4_16__1() throws RecognitionException;
+     void rule__Style__Group_4_16__1__Impl() throws RecognitionException;
+     void rule__Style__Group_4_16__2() throws RecognitionException;
+     void rule__Style__Group_4_16__2__Impl() throws RecognitionException;
+     void rule__MediaStyle__Group__0() throws RecognitionException;
+     void rule__MediaStyle__Group__0__Impl() throws RecognitionException;
+     void rule__MediaStyle__Group__1() throws RecognitionException;
+     void rule__MediaStyle__Group__1__Impl() throws RecognitionException;
+     void rule__MediaStyle__Group__2() throws RecognitionException;
+     void rule__MediaStyle__Group__2__Impl() throws RecognitionException;
+     void rule__MediaStyle__Group__3() throws RecognitionException;
+     void rule__MediaStyle__Group__3__Impl() throws RecognitionException;
+     void rule__MediaStyle__Group__4() throws RecognitionException;
+     void rule__MediaStyle__Group__4__Impl() throws RecognitionException;
+     void rule__MediaStyle__Group_3_0__0() throws RecognitionException;
+     void rule__MediaStyle__Group_3_0__0__Impl() throws RecognitionException;
+     void rule__MediaStyle__Group_3_0__1() throws RecognitionException;
+     void rule__MediaStyle__Group_3_0__1__Impl() throws RecognitionException;
+     void rule__MediaStyle__Group_3_1__0() throws RecognitionException;
+     void rule__MediaStyle__Group_3_1__0__Impl() throws RecognitionException;
+     void rule__MediaStyle__Group_3_1__1() throws RecognitionException;
+     void rule__MediaStyle__Group_3_1__1__Impl() throws RecognitionException;
+     void rule__MediaStyle__Group_3_2__0() throws RecognitionException;
+     void rule__MediaStyle__Group_3_2__0__Impl() throws RecognitionException;
+     void rule__MediaStyle__Group_3_2__1() throws RecognitionException;
+     void rule__MediaStyle__Group_3_2__1__Impl() throws RecognitionException;
+     void rule__MediaStyle__Group_3_2__2() throws RecognitionException;
+     void rule__MediaStyle__Group_3_2__2__Impl() throws RecognitionException;
+     void rule__MediaStyle__Group_3_2_2__0() throws RecognitionException;
+     void rule__MediaStyle__Group_3_2_2__0__Impl() throws RecognitionException;
+     void rule__MediaStyle__Group_3_2_2__1() throws RecognitionException;
+     void rule__MediaStyle__Group_3_2_2__1__Impl() throws RecognitionException;
+     void rule__MediaStyle__Group_3_3__0() throws RecognitionException;
+     void rule__MediaStyle__Group_3_3__0__Impl() throws RecognitionException;
+     void rule__MediaStyle__Group_3_3__1() throws RecognitionException;
+     void rule__MediaStyle__Group_3_3__1__Impl() throws RecognitionException;
+     void rule__MediaStyle__Group_3_4__0() throws RecognitionException;
+     void rule__MediaStyle__Group_3_4__0__Impl() throws RecognitionException;
+     void rule__MediaStyle__Group_3_4__1() throws RecognitionException;
+     void rule__MediaStyle__Group_3_4__1__Impl() throws RecognitionException;
+     void rule__MediaStyle__Group_3_5__0() throws RecognitionException;
+     void rule__MediaStyle__Group_3_5__0__Impl() throws RecognitionException;
+     void rule__MediaStyle__Group_3_5__1() throws RecognitionException;
+     void rule__MediaStyle__Group_3_5__1__Impl() throws RecognitionException;
+     void rule__MediaStyle__Group_3_6__0() throws RecognitionException;
+     void rule__MediaStyle__Group_3_6__0__Impl() throws RecognitionException;
+     void rule__MediaStyle__Group_3_6__1() throws RecognitionException;
+     void rule__MediaStyle__Group_3_6__1__Impl() throws RecognitionException;
+     void rule__MediaStyle__Group_3_7__0() throws RecognitionException;
+     void rule__MediaStyle__Group_3_7__0__Impl() throws RecognitionException;
+     void rule__MediaStyle__Group_3_7__1() throws RecognitionException;
+     void rule__MediaStyle__Group_3_7__1__Impl() throws RecognitionException;
+     void rule__MediaStyle__Group_3_8__0() throws RecognitionException;
+     void rule__MediaStyle__Group_3_8__0__Impl() throws RecognitionException;
+     void rule__MediaStyle__Group_3_8__1() throws RecognitionException;
+     void rule__MediaStyle__Group_3_8__1__Impl() throws RecognitionException;
+     void rule__MediaStyle__Group_3_9__0() throws RecognitionException;
+     void rule__MediaStyle__Group_3_9__0__Impl() throws RecognitionException;
+     void rule__MediaStyle__Group_3_9__1() throws RecognitionException;
+     void rule__MediaStyle__Group_3_9__1__Impl() throws RecognitionException;
+     void rule__MediaStyle__Group_3_9__2() throws RecognitionException;
+     void rule__MediaStyle__Group_3_9__2__Impl() throws RecognitionException;
+     void rule__MediaStyle__Group_3_10__0() throws RecognitionException;
+     void rule__MediaStyle__Group_3_10__0__Impl() throws RecognitionException;
+     void rule__MediaStyle__Group_3_10__1() throws RecognitionException;
+     void rule__MediaStyle__Group_3_10__1__Impl() throws RecognitionException;
+     void rule__MediaStyle__Group_3_10__2() throws RecognitionException;
+     void rule__MediaStyle__Group_3_10__2__Impl() throws RecognitionException;
+     void rule__MediaStyle__Group_3_11__0() throws RecognitionException;
+     void rule__MediaStyle__Group_3_11__0__Impl() throws RecognitionException;
+     void rule__MediaStyle__Group_3_11__1() throws RecognitionException;
+     void rule__MediaStyle__Group_3_11__1__Impl() throws RecognitionException;
+     void rule__MediaStyle__Group_3_11__2() throws RecognitionException;
+     void rule__MediaStyle__Group_3_11__2__Impl() throws RecognitionException;
+     void rule__MediaStyle__Group_3_12__0() throws RecognitionException;
+     void rule__MediaStyle__Group_3_12__0__Impl() throws RecognitionException;
+     void rule__MediaStyle__Group_3_12__1() throws RecognitionException;
+     void rule__MediaStyle__Group_3_12__1__Impl() throws RecognitionException;
+     void rule__MediaStyle__Group_3_12__2() throws RecognitionException;
+     void rule__MediaStyle__Group_3_12__2__Impl() throws RecognitionException;
+     void rule__MediaStyle__Group_3_13__0() throws RecognitionException;
+     void rule__MediaStyle__Group_3_13__0__Impl() throws RecognitionException;
+     void rule__MediaStyle__Group_3_13__1() throws RecognitionException;
+     void rule__MediaStyle__Group_3_13__1__Impl() throws RecognitionException;
+     void rule__MediaStyle__Group_3_13__2() throws RecognitionException;
+     void rule__MediaStyle__Group_3_13__2__Impl() throws RecognitionException;
+     void rule__MediaStyle__Group_3_14__0() throws RecognitionException;
+     void rule__MediaStyle__Group_3_14__0__Impl() throws RecognitionException;
+     void rule__MediaStyle__Group_3_14__1() throws RecognitionException;
+     void rule__MediaStyle__Group_3_14__1__Impl() throws RecognitionException;
+     void rule__MediaStyle__Group_3_14__2() throws RecognitionException;
+     void rule__MediaStyle__Group_3_14__2__Impl() throws RecognitionException;
+     void rule__MediaStyle__Group_3_15__0() throws RecognitionException;
+     void rule__MediaStyle__Group_3_15__0__Impl() throws RecognitionException;
+     void rule__MediaStyle__Group_3_15__1() throws RecognitionException;
+     void rule__MediaStyle__Group_3_15__1__Impl() throws RecognitionException;
+     void rule__MediaStyle__Group_3_15__2() throws RecognitionException;
+     void rule__MediaStyle__Group_3_15__2__Impl() throws RecognitionException;
+     void rule__MediaStyle__Group_3_16__0() throws RecognitionException;
+     void rule__MediaStyle__Group_3_16__0__Impl() throws RecognitionException;
+     void rule__MediaStyle__Group_3_16__1() throws RecognitionException;
+     void rule__MediaStyle__Group_3_16__1__Impl() throws RecognitionException;
+     void rule__MediaStyle__Group_3_16__2() throws RecognitionException;
+     void rule__MediaStyle__Group_3_16__2__Impl() throws RecognitionException;
+     void rule__UomoFormat__Group__0() throws RecognitionException;
+     void rule__UomoFormat__Group__0__Impl() throws RecognitionException;
+     void rule__UomoFormat__Group__1() throws RecognitionException;
+     void rule__UomoFormat__Group__1__Impl() throws RecognitionException;
+     void rule__UomoFormat__Group__2() throws RecognitionException;
+     void rule__UomoFormat__Group__2__Impl() throws RecognitionException;
+     void rule__UomoFormat__Group__3() throws RecognitionException;
+     void rule__UomoFormat__Group__3__Impl() throws RecognitionException;
+     void rule__UomoFormat__Group__4() throws RecognitionException;
+     void rule__UomoFormat__Group__4__Impl() throws RecognitionException;
+     void rule__UomoFormat__Group__5() throws RecognitionException;
+     void rule__UomoFormat__Group__5__Impl() throws RecognitionException;
+     void rule__UomoFormat__Group__6() throws RecognitionException;
+     void rule__UomoFormat__Group__6__Impl() throws RecognitionException;
+     void rule__UomoFormat__Group__7() throws RecognitionException;
+     void rule__UomoFormat__Group__7__Impl() throws RecognitionException;
+     void rule__UomoFormat__Group__8() throws RecognitionException;
+     void rule__UomoFormat__Group__8__Impl() throws RecognitionException;
+     void rule__UomoFormat__Group__9() throws RecognitionException;
+     void rule__UomoFormat__Group__9__Impl() throws RecognitionException;
+     void rule__NumberFormat__Group__0() throws RecognitionException;
+     void rule__NumberFormat__Group__0__Impl() throws RecognitionException;
+     void rule__NumberFormat__Group__1() throws RecognitionException;
+     void rule__NumberFormat__Group__1__Impl() throws RecognitionException;
+     void rule__NumberFormat__Group__2() throws RecognitionException;
+     void rule__NumberFormat__Group__2__Impl() throws RecognitionException;
+     void rule__NumberFormat__Group__3() throws RecognitionException;
+     void rule__NumberFormat__Group__3__Impl() throws RecognitionException;
+     void rule__NumberFormat__Group__4() throws RecognitionException;
+     void rule__NumberFormat__Group__4__Impl() throws RecognitionException;
+     void rule__NumberFormat__Group__5() throws RecognitionException;
+     void rule__NumberFormat__Group__5__Impl() throws RecognitionException;
+     void rule__NumberFormat__Group__6() throws RecognitionException;
+     void rule__NumberFormat__Group__6__Impl() throws RecognitionException;
+     void rule__NumberFormat__Group__7() throws RecognitionException;
+     void rule__NumberFormat__Group__7__Impl() throws RecognitionException;
+     void rule__NumberFormat__Group__8() throws RecognitionException;
+     void rule__NumberFormat__Group__8__Impl() throws RecognitionException;
+     void rule__NumberFormat__Group__9() throws RecognitionException;
+     void rule__NumberFormat__Group__9__Impl() throws RecognitionException;
+     void rule__NumberFormat__Group__10() throws RecognitionException;
+     void rule__NumberFormat__Group__10__Impl() throws RecognitionException;
+     void rule__CurrencyFormat__Group__0() throws RecognitionException;
+     void rule__CurrencyFormat__Group__0__Impl() throws RecognitionException;
+     void rule__CurrencyFormat__Group__1() throws RecognitionException;
+     void rule__CurrencyFormat__Group__1__Impl() throws RecognitionException;
+     void rule__CurrencyFormat__Group__2() throws RecognitionException;
+     void rule__CurrencyFormat__Group__2__Impl() throws RecognitionException;
+     void rule__CurrencyFormat__Group__3() throws RecognitionException;
+     void rule__CurrencyFormat__Group__3__Impl() throws RecognitionException;
+     void rule__CurrencyFormat__Group__4() throws RecognitionException;
+     void rule__CurrencyFormat__Group__4__Impl() throws RecognitionException;
+     void rule__CurrencyFormat__Group__5() throws RecognitionException;
+     void rule__CurrencyFormat__Group__5__Impl() throws RecognitionException;
+     void rule__CurrencyFormat__Group__6() throws RecognitionException;
+     void rule__CurrencyFormat__Group__6__Impl() throws RecognitionException;
+     void rule__CurrencyFormat__Group__7() throws RecognitionException;
+     void rule__CurrencyFormat__Group__7__Impl() throws RecognitionException;
+     void rule__CurrencyFormat__Group__8() throws RecognitionException;
+     void rule__CurrencyFormat__Group__8__Impl() throws RecognitionException;
+     void rule__CurrencyFormat__Group__9() throws RecognitionException;
+     void rule__CurrencyFormat__Group__9__Impl() throws RecognitionException;
+     void rule__CurrencyFormat__Group__10() throws RecognitionException;
+     void rule__CurrencyFormat__Group__10__Impl() throws RecognitionException;
+     void rule__DateFormat__Group__0() throws RecognitionException;
+     void rule__DateFormat__Group__0__Impl() throws RecognitionException;
+     void rule__DateFormat__Group__1() throws RecognitionException;
+     void rule__DateFormat__Group__1__Impl() throws RecognitionException;
+     void rule__DateFormat__Group__2() throws RecognitionException;
+     void rule__DateFormat__Group__2__Impl() throws RecognitionException;
+     void rule__DateFormat__Group__3() throws RecognitionException;
+     void rule__DateFormat__Group__3__Impl() throws RecognitionException;
+     void rule__DateFormat__Group__4() throws RecognitionException;
+     void rule__DateFormat__Group__4__Impl() throws RecognitionException;
+     void rule__DateFormat__Group__5() throws RecognitionException;
+     void rule__DateFormat__Group__5__Impl() throws RecognitionException;
+     void rule__DateFormat__Group__6() throws RecognitionException;
+     void rule__DateFormat__Group__6__Impl() throws RecognitionException;
+     void rule__DateFormat__Group__7() throws RecognitionException;
+     void rule__DateFormat__Group__7__Impl() throws RecognitionException;
+     void rule__DateFormat__Group__8() throws RecognitionException;
+     void rule__DateFormat__Group__8__Impl() throws RecognitionException;
+     void rule__DateFormat__Group__9() throws RecognitionException;
+     void rule__DateFormat__Group__9__Impl() throws RecognitionException;
+     void rule__DateFormat__Group__10() throws RecognitionException;
+     void rule__DateFormat__Group__10__Impl() throws RecognitionException;
+     void rule__DateTimeFormat__Group__0() throws RecognitionException;
+     void rule__DateTimeFormat__Group__0__Impl() throws RecognitionException;
+     void rule__DateTimeFormat__Group__1() throws RecognitionException;
+     void rule__DateTimeFormat__Group__1__Impl() throws RecognitionException;
+     void rule__DateTimeFormat__Group__2() throws RecognitionException;
+     void rule__DateTimeFormat__Group__2__Impl() throws RecognitionException;
+     void rule__DateTimeFormat__Group__3() throws RecognitionException;
+     void rule__DateTimeFormat__Group__3__Impl() throws RecognitionException;
+     void rule__DateTimeFormat__Group__4() throws RecognitionException;
+     void rule__DateTimeFormat__Group__4__Impl() throws RecognitionException;
+     void rule__DateTimeFormat__Group__5() throws RecognitionException;
+     void rule__DateTimeFormat__Group__5__Impl() throws RecognitionException;
+     void rule__DateTimeFormat__Group__6() throws RecognitionException;
+     void rule__DateTimeFormat__Group__6__Impl() throws RecognitionException;
+     void rule__DateTimeFormat__Group__7() throws RecognitionException;
+     void rule__DateTimeFormat__Group__7__Impl() throws RecognitionException;
+     void rule__DateTimeFormat__Group__8() throws RecognitionException;
+     void rule__DateTimeFormat__Group__8__Impl() throws RecognitionException;
+     void rule__DateTimeFormat__Group__9() throws RecognitionException;
+     void rule__DateTimeFormat__Group__9__Impl() throws RecognitionException;
+     void rule__DateTimeFormat__Group__10() throws RecognitionException;
+     void rule__DateTimeFormat__Group__10__Impl() throws RecognitionException;
+     void rule__TimeFormat__Group__0() throws RecognitionException;
+     void rule__TimeFormat__Group__0__Impl() throws RecognitionException;
+     void rule__TimeFormat__Group__1() throws RecognitionException;
+     void rule__TimeFormat__Group__1__Impl() throws RecognitionException;
+     void rule__TimeFormat__Group__2() throws RecognitionException;
+     void rule__TimeFormat__Group__2__Impl() throws RecognitionException;
+     void rule__TimeFormat__Group__3() throws RecognitionException;
+     void rule__TimeFormat__Group__3__Impl() throws RecognitionException;
+     void rule__TimeFormat__Group__4() throws RecognitionException;
+     void rule__TimeFormat__Group__4__Impl() throws RecognitionException;
+     void rule__TimeFormat__Group__5() throws RecognitionException;
+     void rule__TimeFormat__Group__5__Impl() throws RecognitionException;
+     void rule__TimeFormat__Group__6() throws RecognitionException;
+     void rule__TimeFormat__Group__6__Impl() throws RecognitionException;
+     void rule__TimeFormat__Group__7() throws RecognitionException;
+     void rule__TimeFormat__Group__7__Impl() throws RecognitionException;
+     void rule__TimeFormat__Group__8() throws RecognitionException;
+     void rule__TimeFormat__Group__8__Impl() throws RecognitionException;
+     void rule__TimeFormat__Group__9() throws RecognitionException;
+     void rule__TimeFormat__Group__9__Impl() throws RecognitionException;
+     void rule__TimeFormat__Group__10() throws RecognitionException;
+     void rule__TimeFormat__Group__10__Impl() throws RecognitionException;
+     void rule__Report__Group__0() throws RecognitionException;
+     void rule__Report__Group__0__Impl() throws RecognitionException;
+     void rule__Report__Group__1() throws RecognitionException;
+     void rule__Report__Group__1__Impl() throws RecognitionException;
+     void rule__Report__Group__2() throws RecognitionException;
+     void rule__Report__Group__2__Impl() throws RecognitionException;
+     void rule__Report__Group__3() throws RecognitionException;
+     void rule__Report__Group__3__Impl() throws RecognitionException;
+     void rule__Report__Group__4() throws RecognitionException;
+     void rule__Report__Group__4__Impl() throws RecognitionException;
+     void rule__Report__Group__5() throws RecognitionException;
+     void rule__Report__Group__5__Impl() throws RecognitionException;
+     void rule__Report__Group__6() throws RecognitionException;
+     void rule__Report__Group__6__Impl() throws RecognitionException;
+     void rule__Report__Group__7() throws RecognitionException;
+     void rule__Report__Group__7__Impl() throws RecognitionException;
+     void rule__Report__Group__8() throws RecognitionException;
+     void rule__Report__Group__8__Impl() throws RecognitionException;
+     void rule__Report__Group__9() throws RecognitionException;
+     void rule__Report__Group__9__Impl() throws RecognitionException;
+     void rule__Report__Group__10() throws RecognitionException;
+     void rule__Report__Group__10__Impl() throws RecognitionException;
+     void rule__Report__Group__11() throws RecognitionException;
+     void rule__Report__Group__11__Impl() throws RecognitionException;
+     void rule__Report__Group__12() throws RecognitionException;
+     void rule__Report__Group__12__Impl() throws RecognitionException;
+     void rule__Report__Group__13() throws RecognitionException;
+     void rule__Report__Group__13__Impl() throws RecognitionException;
+     void rule__Report__Group__14() throws RecognitionException;
+     void rule__Report__Group__14__Impl() throws RecognitionException;
+     void rule__Report__Group__15() throws RecognitionException;
+     void rule__Report__Group__15__Impl() throws RecognitionException;
+     void rule__Report__Group_2__0() throws RecognitionException;
+     void rule__Report__Group_2__0__Impl() throws RecognitionException;
+     void rule__Report__Group_2__1() throws RecognitionException;
+     void rule__Report__Group_2__1__Impl() throws RecognitionException;
+     void rule__Report__Group_3__0() throws RecognitionException;
+     void rule__Report__Group_3__0__Impl() throws RecognitionException;
+     void rule__Report__Group_3__1() throws RecognitionException;
+     void rule__Report__Group_3__1__Impl() throws RecognitionException;
+     void rule__Report__Group_9__0() throws RecognitionException;
+     void rule__Report__Group_9__0__Impl() throws RecognitionException;
+     void rule__Report__Group_9__1() throws RecognitionException;
+     void rule__Report__Group_9__1__Impl() throws RecognitionException;
+     void rule__Report__Group_9__2() throws RecognitionException;
+     void rule__Report__Group_9__2__Impl() throws RecognitionException;
+     void rule__Report__Group_9_2__0() throws RecognitionException;
+     void rule__Report__Group_9_2__0__Impl() throws RecognitionException;
+     void rule__Report__Group_9_2__1() throws RecognitionException;
+     void rule__Report__Group_9_2__1__Impl() throws RecognitionException;
+     void rule__ReportDesignFile__Group__0() throws RecognitionException;
+     void rule__ReportDesignFile__Group__0__Impl() throws RecognitionException;
+     void rule__ReportDesignFile__Group__1() throws RecognitionException;
+     void rule__ReportDesignFile__Group__1__Impl() throws RecognitionException;
+     void rule__ReportDesignTemplate__Group__0() throws RecognitionException;
+     void rule__ReportDesignTemplate__Group__0__Impl() throws RecognitionException;
+     void rule__ReportDesignTemplate__Group__1() throws RecognitionException;
+     void rule__ReportDesignTemplate__Group__1__Impl() throws RecognitionException;
+     void rule__ReportDesignTemplate__Group__2() throws RecognitionException;
+     void rule__ReportDesignTemplate__Group__2__Impl() throws RecognitionException;
+     void rule__ReportDesignTemplate__Group__3() throws RecognitionException;
+     void rule__ReportDesignTemplate__Group__3__Impl() throws RecognitionException;
+     void rule__ReportDesignTemplate__Group__4() throws RecognitionException;
+     void rule__ReportDesignTemplate__Group__4__Impl() throws RecognitionException;
+     void rule__ReportDesignTemplate__Group__5() throws RecognitionException;
+     void rule__ReportDesignTemplate__Group__5__Impl() throws RecognitionException;
+     void rule__ReportDesignTemplate__Group__6() throws RecognitionException;
+     void rule__ReportDesignTemplate__Group__6__Impl() throws RecognitionException;
+     void rule__ReportDesignTemplate__Group_2__0() throws RecognitionException;
+     void rule__ReportDesignTemplate__Group_2__0__Impl() throws RecognitionException;
+     void rule__ReportDesignTemplate__Group_2__1() throws RecognitionException;
+     void rule__ReportDesignTemplate__Group_2__1__Impl() throws RecognitionException;
+     void rule__PageHeader__Group__0() throws RecognitionException;
+     void rule__PageHeader__Group__0__Impl() throws RecognitionException;
+     void rule__PageHeader__Group__1() throws RecognitionException;
+     void rule__PageHeader__Group__1__Impl() throws RecognitionException;
+     void rule__PageHeader__Group__2() throws RecognitionException;
+     void rule__PageHeader__Group__2__Impl() throws RecognitionException;
+     void rule__PageHeader__Group__3() throws RecognitionException;
+     void rule__PageHeader__Group__3__Impl() throws RecognitionException;
+     void rule__PageHeader__Group__4() throws RecognitionException;
+     void rule__PageHeader__Group__4__Impl() throws RecognitionException;
+     void rule__PageHeader__Group__5() throws RecognitionException;
+     void rule__PageHeader__Group__5__Impl() throws RecognitionException;
+     void rule__PageHeader__Group__6() throws RecognitionException;
+     void rule__PageHeader__Group__6__Impl() throws RecognitionException;
+     void rule__PageHeader__Group__7() throws RecognitionException;
+     void rule__PageHeader__Group__7__Impl() throws RecognitionException;
+     void rule__PageHeader__Group__8() throws RecognitionException;
+     void rule__PageHeader__Group__8__Impl() throws RecognitionException;
+     void rule__PageDetail__Group__0() throws RecognitionException;
+     void rule__PageDetail__Group__0__Impl() throws RecognitionException;
+     void rule__PageDetail__Group__1() throws RecognitionException;
+     void rule__PageDetail__Group__1__Impl() throws RecognitionException;
+     void rule__PageDetail__Group__2() throws RecognitionException;
+     void rule__PageDetail__Group__2__Impl() throws RecognitionException;
+     void rule__PageDetail__Group__3() throws RecognitionException;
+     void rule__PageDetail__Group__3__Impl() throws RecognitionException;
+     void rule__PageDetail__Group__4() throws RecognitionException;
+     void rule__PageDetail__Group__4__Impl() throws RecognitionException;
+     void rule__PageFooter__Group__0() throws RecognitionException;
+     void rule__PageFooter__Group__0__Impl() throws RecognitionException;
+     void rule__PageFooter__Group__1() throws RecognitionException;
+     void rule__PageFooter__Group__1__Impl() throws RecognitionException;
+     void rule__PageFooter__Group__2() throws RecognitionException;
+     void rule__PageFooter__Group__2__Impl() throws RecognitionException;
+     void rule__PageFooter__Group__3() throws RecognitionException;
+     void rule__PageFooter__Group__3__Impl() throws RecognitionException;
+     void rule__PageFooter__Group__4() throws RecognitionException;
+     void rule__PageFooter__Group__4__Impl() throws RecognitionException;
+     void rule__PageFooter__Group__5() throws RecognitionException;
+     void rule__PageFooter__Group__5__Impl() throws RecognitionException;
+     void rule__PageFooter__Group__6() throws RecognitionException;
+     void rule__PageFooter__Group__6__Impl() throws RecognitionException;
+     void rule__PageFooter__Group__7() throws RecognitionException;
+     void rule__PageFooter__Group__7__Impl() throws RecognitionException;
+     void rule__PageFooter__Group__8() throws RecognitionException;
+     void rule__PageFooter__Group__8__Impl() throws RecognitionException;
+     void rule__Grid__Group__0() throws RecognitionException;
+     void rule__Grid__Group__0__Impl() throws RecognitionException;
+     void rule__Grid__Group__1() throws RecognitionException;
+     void rule__Grid__Group__1__Impl() throws RecognitionException;
+     void rule__Grid__Group__2() throws RecognitionException;
+     void rule__Grid__Group__2__Impl() throws RecognitionException;
+     void rule__Grid__Group__3() throws RecognitionException;
+     void rule__Grid__Group__3__Impl() throws RecognitionException;
+     void rule__Grid__Group__4() throws RecognitionException;
+     void rule__Grid__Group__4__Impl() throws RecognitionException;
+     void rule__Grid__Group__5() throws RecognitionException;
+     void rule__Grid__Group__5__Impl() throws RecognitionException;
+     void rule__Grid__Group_2__0() throws RecognitionException;
+     void rule__Grid__Group_2__0__Impl() throws RecognitionException;
+     void rule__Grid__Group_2__1() throws RecognitionException;
+     void rule__Grid__Group_2__1__Impl() throws RecognitionException;
+     void rule__GridRow__Group__0() throws RecognitionException;
+     void rule__GridRow__Group__0__Impl() throws RecognitionException;
+     void rule__GridRow__Group__1() throws RecognitionException;
+     void rule__GridRow__Group__1__Impl() throws RecognitionException;
+     void rule__GridRow__Group__2() throws RecognitionException;
+     void rule__GridRow__Group__2__Impl() throws RecognitionException;
+     void rule__GridRow__Group__3() throws RecognitionException;
+     void rule__GridRow__Group__3__Impl() throws RecognitionException;
+     void rule__GridRow__Group__4() throws RecognitionException;
+     void rule__GridRow__Group__4__Impl() throws RecognitionException;
+     void rule__GridRow__Group__5() throws RecognitionException;
+     void rule__GridRow__Group__5__Impl() throws RecognitionException;
+     void rule__GridRow__Group__6() throws RecognitionException;
+     void rule__GridRow__Group__6__Impl() throws RecognitionException;
+     void rule__GridRow__Group_2__0() throws RecognitionException;
+     void rule__GridRow__Group_2__0__Impl() throws RecognitionException;
+     void rule__GridRow__Group_2__1() throws RecognitionException;
+     void rule__GridRow__Group_2__1__Impl() throws RecognitionException;
+     void rule__GridRow__Group_3__0() throws RecognitionException;
+     void rule__GridRow__Group_3__0__Impl() throws RecognitionException;
+     void rule__GridRow__Group_3__1() throws RecognitionException;
+     void rule__GridRow__Group_3__1__Impl() throws RecognitionException;
+     void rule__GridCell__Group__0() throws RecognitionException;
+     void rule__GridCell__Group__0__Impl() throws RecognitionException;
+     void rule__GridCell__Group__1() throws RecognitionException;
+     void rule__GridCell__Group__1__Impl() throws RecognitionException;
+     void rule__GridCell__Group__2() throws RecognitionException;
+     void rule__GridCell__Group__2__Impl() throws RecognitionException;
+     void rule__GridCell__Group__3() throws RecognitionException;
+     void rule__GridCell__Group__3__Impl() throws RecognitionException;
+     void rule__GridCell__Group__4() throws RecognitionException;
+     void rule__GridCell__Group__4__Impl() throws RecognitionException;
+     void rule__GridCell__Group__5() throws RecognitionException;
+     void rule__GridCell__Group__5__Impl() throws RecognitionException;
+     void rule__GridCell__Group__6() throws RecognitionException;
+     void rule__GridCell__Group__6__Impl() throws RecognitionException;
+     void rule__GridCell__Group_2__0() throws RecognitionException;
+     void rule__GridCell__Group_2__0__Impl() throws RecognitionException;
+     void rule__GridCell__Group_2__1() throws RecognitionException;
+     void rule__GridCell__Group_2__1__Impl() throws RecognitionException;
+     void rule__GridCell__Group_3__0() throws RecognitionException;
+     void rule__GridCell__Group_3__0__Impl() throws RecognitionException;
+     void rule__GridCell__Group_3__1() throws RecognitionException;
+     void rule__GridCell__Group_3__1__Impl() throws RecognitionException;
+     void rule__DatamartTable__Group__0() throws RecognitionException;
+     void rule__DatamartTable__Group__0__Impl() throws RecognitionException;
+     void rule__DatamartTable__Group__1() throws RecognitionException;
+     void rule__DatamartTable__Group__1__Impl() throws RecognitionException;
+     void rule__DatamartTable__Group__2() throws RecognitionException;
+     void rule__DatamartTable__Group__2__Impl() throws RecognitionException;
+     void rule__DatamartTable__Group__3() throws RecognitionException;
+     void rule__DatamartTable__Group__3__Impl() throws RecognitionException;
+     void rule__DatamartTable__Group__4() throws RecognitionException;
+     void rule__DatamartTable__Group__4__Impl() throws RecognitionException;
+     void rule__DatamartTable__Group__5() throws RecognitionException;
+     void rule__DatamartTable__Group__5__Impl() throws RecognitionException;
+     void rule__DatamartTable__Group__6() throws RecognitionException;
+     void rule__DatamartTable__Group__6__Impl() throws RecognitionException;
+     void rule__DatamartTable__Group__7() throws RecognitionException;
+     void rule__DatamartTable__Group__7__Impl() throws RecognitionException;
+     void rule__DatamartTable__Group_1__0() throws RecognitionException;
+     void rule__DatamartTable__Group_1__0__Impl() throws RecognitionException;
+     void rule__DatamartTable__Group_1__1() throws RecognitionException;
+     void rule__DatamartTable__Group_1__1__Impl() throws RecognitionException;
+     void rule__DatamartTable__Group_3__0() throws RecognitionException;
+     void rule__DatamartTable__Group_3__0__Impl() throws RecognitionException;
+     void rule__DatamartTable__Group_3__1() throws RecognitionException;
+     void rule__DatamartTable__Group_3__1__Impl() throws RecognitionException;
+     void rule__DatamartTable__Group_3_1__0() throws RecognitionException;
+     void rule__DatamartTable__Group_3_1__0__Impl() throws RecognitionException;
+     void rule__DatamartTable__Group_3_1__1() throws RecognitionException;
+     void rule__DatamartTable__Group_3_1__1__Impl() throws RecognitionException;
+     void rule__DatamartTable__Group_4__0() throws RecognitionException;
+     void rule__DatamartTable__Group_4__0__Impl() throws RecognitionException;
+     void rule__DatamartTable__Group_4__1() throws RecognitionException;
+     void rule__DatamartTable__Group_4__1__Impl() throws RecognitionException;
+     void rule__DatamartTable__Group_4_1__0() throws RecognitionException;
+     void rule__DatamartTable__Group_4_1__0__Impl() throws RecognitionException;
+     void rule__DatamartTable__Group_4_1__1() throws RecognitionException;
+     void rule__DatamartTable__Group_4_1__1__Impl() throws RecognitionException;
+     void rule__DatamartTableGroup__Group__0() throws RecognitionException;
+     void rule__DatamartTableGroup__Group__0__Impl() throws RecognitionException;
+     void rule__DatamartTableGroup__Group__1() throws RecognitionException;
+     void rule__DatamartTableGroup__Group__1__Impl() throws RecognitionException;
+     void rule__DatamartTableGroup__Group__2() throws RecognitionException;
+     void rule__DatamartTableGroup__Group__2__Impl() throws RecognitionException;
+     void rule__DatamartTableGroup__Group__3() throws RecognitionException;
+     void rule__DatamartTableGroup__Group__3__Impl() throws RecognitionException;
+     void rule__DatamartTableGroup__Group__4() throws RecognitionException;
+     void rule__DatamartTableGroup__Group__4__Impl() throws RecognitionException;
+     void rule__DatamartTableGroup__Group__5() throws RecognitionException;
+     void rule__DatamartTableGroup__Group__5__Impl() throws RecognitionException;
+     void rule__DatamartTableGroup__Group__6() throws RecognitionException;
+     void rule__DatamartTableGroup__Group__6__Impl() throws RecognitionException;
+     void rule__DatamartTableGroup__Group__7() throws RecognitionException;
+     void rule__DatamartTableGroup__Group__7__Impl() throws RecognitionException;
+     void rule__DatamartTableGroup__Group__8() throws RecognitionException;
+     void rule__DatamartTableGroup__Group__8__Impl() throws RecognitionException;
+     void rule__DatamartTableGroup__Group__9() throws RecognitionException;
+     void rule__DatamartTableGroup__Group__9__Impl() throws RecognitionException;
+     void rule__DatamartTableGroup__Group_6__0() throws RecognitionException;
+     void rule__DatamartTableGroup__Group_6__0__Impl() throws RecognitionException;
+     void rule__DatamartTableGroup__Group_6__1() throws RecognitionException;
+     void rule__DatamartTableGroup__Group_6__1__Impl() throws RecognitionException;
+     void rule__DatamartTableGroup__Group_6_1__0() throws RecognitionException;
+     void rule__DatamartTableGroup__Group_6_1__0__Impl() throws RecognitionException;
+     void rule__DatamartTableGroup__Group_6_1__1() throws RecognitionException;
+     void rule__DatamartTableGroup__Group_6_1__1__Impl() throws RecognitionException;
+     void rule__DatamartTableGroup__Group_7__0() throws RecognitionException;
+     void rule__DatamartTableGroup__Group_7__0__Impl() throws RecognitionException;
+     void rule__DatamartTableGroup__Group_7__1() throws RecognitionException;
+     void rule__DatamartTableGroup__Group_7__1__Impl() throws RecognitionException;
+     void rule__DatamartTableGroup__Group_7_1__0() throws RecognitionException;
+     void rule__DatamartTableGroup__Group_7_1__0__Impl() throws RecognitionException;
+     void rule__DatamartTableGroup__Group_7_1__1() throws RecognitionException;
+     void rule__DatamartTableGroup__Group_7_1__1__Impl() throws RecognitionException;
+     void rule__DatamartTableGroupHeader__Group__0() throws RecognitionException;
+     void rule__DatamartTableGroupHeader__Group__0__Impl() throws RecognitionException;
+     void rule__DatamartTableGroupHeader__Group__1() throws RecognitionException;
+     void rule__DatamartTableGroupHeader__Group__1__Impl() throws RecognitionException;
+     void rule__DatamartTableGroupHeader__Group__2() throws RecognitionException;
+     void rule__DatamartTableGroupHeader__Group__2__Impl() throws RecognitionException;
+     void rule__DatamartTableGroupHeader__Group__3() throws RecognitionException;
+     void rule__DatamartTableGroupHeader__Group__3__Impl() throws RecognitionException;
+     void rule__DatamartTableGroupHeader__Group__4() throws RecognitionException;
+     void rule__DatamartTableGroupHeader__Group__4__Impl() throws RecognitionException;
+     void rule__DatamartTableGroupHeader__Group__5() throws RecognitionException;
+     void rule__DatamartTableGroupHeader__Group__5__Impl() throws RecognitionException;
+     void rule__DatamartTableGroupHeader__Group_2__0() throws RecognitionException;
+     void rule__DatamartTableGroupHeader__Group_2__0__Impl() throws RecognitionException;
+     void rule__DatamartTableGroupHeader__Group_2__1() throws RecognitionException;
+     void rule__DatamartTableGroupHeader__Group_2__1__Impl() throws RecognitionException;
+     void rule__DatamartTableGroupFooter__Group__0() throws RecognitionException;
+     void rule__DatamartTableGroupFooter__Group__0__Impl() throws RecognitionException;
+     void rule__DatamartTableGroupFooter__Group__1() throws RecognitionException;
+     void rule__DatamartTableGroupFooter__Group__1__Impl() throws RecognitionException;
+     void rule__DatamartTableGroupFooter__Group__2() throws RecognitionException;
+     void rule__DatamartTableGroupFooter__Group__2__Impl() throws RecognitionException;
+     void rule__DatamartTableGroupFooter__Group__3() throws RecognitionException;
+     void rule__DatamartTableGroupFooter__Group__3__Impl() throws RecognitionException;
+     void rule__DatamartTableGroupFooter__Group__4() throws RecognitionException;
+     void rule__DatamartTableGroupFooter__Group__4__Impl() throws RecognitionException;
+     void rule__DatamartTableGroupFooter__Group__5() throws RecognitionException;
+     void rule__DatamartTableGroupFooter__Group__5__Impl() throws RecognitionException;
+     void rule__DatamartTableGroupFooter__Group_2__0() throws RecognitionException;
+     void rule__DatamartTableGroupFooter__Group_2__0__Impl() throws RecognitionException;
+     void rule__DatamartTableGroupFooter__Group_2__1() throws RecognitionException;
+     void rule__DatamartTableGroupFooter__Group_2__1__Impl() throws RecognitionException;
+     void rule__DatamartTableDetail__Group__0() throws RecognitionException;
+     void rule__DatamartTableDetail__Group__0__Impl() throws RecognitionException;
+     void rule__DatamartTableDetail__Group__1() throws RecognitionException;
+     void rule__DatamartTableDetail__Group__1__Impl() throws RecognitionException;
+     void rule__DatamartTableDetail__Group__2() throws RecognitionException;
+     void rule__DatamartTableDetail__Group__2__Impl() throws RecognitionException;
+     void rule__DatamartTableDetail__Group__3() throws RecognitionException;
+     void rule__DatamartTableDetail__Group__3__Impl() throws RecognitionException;
+     void rule__DatamartTableDetail__Group_2__0() throws RecognitionException;
+     void rule__DatamartTableDetail__Group_2__0__Impl() throws RecognitionException;
+     void rule__DatamartTableDetail__Group_2__1() throws RecognitionException;
+     void rule__DatamartTableDetail__Group_2__1__Impl() throws RecognitionException;
+     void rule__DatamartTableDetail__Group_3_1__0() throws RecognitionException;
+     void rule__DatamartTableDetail__Group_3_1__0__Impl() throws RecognitionException;
+     void rule__DatamartTableDetail__Group_3_1__1() throws RecognitionException;
+     void rule__DatamartTableDetail__Group_3_1__1__Impl() throws RecognitionException;
+     void rule__DatamartTableDetail__Group_3_1__2() throws RecognitionException;
+     void rule__DatamartTableDetail__Group_3_1__2__Impl() throws RecognitionException;
+     void rule__DatamartTableProperty__Group__0() throws RecognitionException;
+     void rule__DatamartTableProperty__Group__0__Impl() throws RecognitionException;
+     void rule__DatamartTableProperty__Group__1() throws RecognitionException;
+     void rule__DatamartTableProperty__Group__1__Impl() throws RecognitionException;
+     void rule__DatamartTableProperty__Group_1_0__0() throws RecognitionException;
+     void rule__DatamartTableProperty__Group_1_0__0__Impl() throws RecognitionException;
+     void rule__DatamartTableProperty__Group_1_0__1() throws RecognitionException;
+     void rule__DatamartTableProperty__Group_1_0__1__Impl() throws RecognitionException;
+     void rule__DatamartTableProperty__Group_1_1__0() throws RecognitionException;
+     void rule__DatamartTableProperty__Group_1_1__0__Impl() throws RecognitionException;
+     void rule__DatamartTableProperty__Group_1_1__1() throws RecognitionException;
+     void rule__DatamartTableProperty__Group_1_1__1__Impl() throws RecognitionException;
+     void rule__DatamartTableProperty__Group_1_2__0() throws RecognitionException;
+     void rule__DatamartTableProperty__Group_1_2__0__Impl() throws RecognitionException;
+     void rule__DatamartTableProperty__Group_1_2__1() throws RecognitionException;
+     void rule__DatamartTableProperty__Group_1_2__1__Impl() throws RecognitionException;
+     void rule__DatamartTableProperty__Group_1_2__2() throws RecognitionException;
+     void rule__DatamartTableProperty__Group_1_2__2__Impl() throws RecognitionException;
+     void rule__DatamartTableProperty__Group_1_2__3() throws RecognitionException;
+     void rule__DatamartTableProperty__Group_1_2__3__Impl() throws RecognitionException;
+     void rule__DatamartTableProperty__Group_1_2__4() throws RecognitionException;
+     void rule__DatamartTableProperty__Group_1_2__4__Impl() throws RecognitionException;
+     void rule__DatamartTableProperty__Group_1_3__0() throws RecognitionException;
+     void rule__DatamartTableProperty__Group_1_3__0__Impl() throws RecognitionException;
+     void rule__DatamartTableProperty__Group_1_3__1() throws RecognitionException;
+     void rule__DatamartTableProperty__Group_1_3__1__Impl() throws RecognitionException;
+     void rule__DatamartTableProperty__Group_1_3__2() throws RecognitionException;
+     void rule__DatamartTableProperty__Group_1_3__2__Impl() throws RecognitionException;
+     void rule__DatamartTableProperty__Group_1_3__3() throws RecognitionException;
+     void rule__DatamartTableProperty__Group_1_3__3__Impl() throws RecognitionException;
+     void rule__DatamartTableProperty__Group_1_3__4() throws RecognitionException;
+     void rule__DatamartTableProperty__Group_1_3__4__Impl() throws RecognitionException;
+     void rule__TableImage__Group__0() throws RecognitionException;
+     void rule__TableImage__Group__0__Impl() throws RecognitionException;
+     void rule__TableImage__Group__1() throws RecognitionException;
+     void rule__TableImage__Group__1__Impl() throws RecognitionException;
+     void rule__TableImage__Group__2() throws RecognitionException;
+     void rule__TableImage__Group__2__Impl() throws RecognitionException;
+     void rule__TableImage__Group__3() throws RecognitionException;
+     void rule__TableImage__Group__3__Impl() throws RecognitionException;
+     void rule__TableImage__Group_3_2__0() throws RecognitionException;
+     void rule__TableImage__Group_3_2__0__Impl() throws RecognitionException;
+     void rule__TableImage__Group_3_2__1() throws RecognitionException;
+     void rule__TableImage__Group_3_2__1__Impl() throws RecognitionException;
+     void rule__TableProperty__Group__0() throws RecognitionException;
+     void rule__TableProperty__Group__0__Impl() throws RecognitionException;
+     void rule__TableProperty__Group__1() throws RecognitionException;
+     void rule__TableProperty__Group__1__Impl() throws RecognitionException;
+     void rule__TableAggregation__Group__0() throws RecognitionException;
+     void rule__TableAggregation__Group__0__Impl() throws RecognitionException;
+     void rule__TableAggregation__Group__1() throws RecognitionException;
+     void rule__TableAggregation__Group__1__Impl() throws RecognitionException;
+     void rule__TableAggregation__Group__2() throws RecognitionException;
+     void rule__TableAggregation__Group__2__Impl() throws RecognitionException;
+     void rule__TableAggregation__Group_2_0__0() throws RecognitionException;
+     void rule__TableAggregation__Group_2_0__0__Impl() throws RecognitionException;
+     void rule__TableAggregation__Group_2_0__1() throws RecognitionException;
+     void rule__TableAggregation__Group_2_0__1__Impl() throws RecognitionException;
+     void rule__TableAggregation__Group_2_1__0() throws RecognitionException;
+     void rule__TableAggregation__Group_2_1__0__Impl() throws RecognitionException;
+     void rule__TableAggregation__Group_2_1__1() throws RecognitionException;
+     void rule__TableAggregation__Group_2_1__1__Impl() throws RecognitionException;
+     void rule__TableUnaryAggregation__Group__0() throws RecognitionException;
+     void rule__TableUnaryAggregation__Group__0__Impl() throws RecognitionException;
+     void rule__TableUnaryAggregation__Group__1() throws RecognitionException;
+     void rule__TableUnaryAggregation__Group__1__Impl() throws RecognitionException;
+     void rule__TableUnaryAggregation__Group__2() throws RecognitionException;
+     void rule__TableUnaryAggregation__Group__2__Impl() throws RecognitionException;
+     void rule__TableMultipleAggregation__Group__0() throws RecognitionException;
+     void rule__TableMultipleAggregation__Group__0__Impl() throws RecognitionException;
+     void rule__TableMultipleAggregation__Group__1() throws RecognitionException;
+     void rule__TableMultipleAggregation__Group__1__Impl() throws RecognitionException;
+     void rule__TableMultipleAggregation__Group__2() throws RecognitionException;
+     void rule__TableMultipleAggregation__Group__2__Impl() throws RecognitionException;
+     void rule__TableMultipleAggregation__Group__3() throws RecognitionException;
+     void rule__TableMultipleAggregation__Group__3__Impl() throws RecognitionException;
+     void rule__TableMultipleAggregation__Group__4() throws RecognitionException;
+     void rule__TableMultipleAggregation__Group__4__Impl() throws RecognitionException;
+     void rule__TableBinaryAggregation__Group__0() throws RecognitionException;
+     void rule__TableBinaryAggregation__Group__0__Impl() throws RecognitionException;
+     void rule__TableBinaryAggregation__Group__1() throws RecognitionException;
+     void rule__TableBinaryAggregation__Group__1__Impl() throws RecognitionException;
+     void rule__TableBinaryAggregation__Group__2() throws RecognitionException;
+     void rule__TableBinaryAggregation__Group__2__Impl() throws RecognitionException;
+     void rule__TableBinaryAggregation__Group__3() throws RecognitionException;
+     void rule__TableBinaryAggregation__Group__3__Impl() throws RecognitionException;
+     void rule__TableBinaryAggregation__Group__4() throws RecognitionException;
+     void rule__TableBinaryAggregation__Group__4__Impl() throws RecognitionException;
+     void rule__TableBinaryAggregation__Group__5() throws RecognitionException;
+     void rule__TableBinaryAggregation__Group__5__Impl() throws RecognitionException;
+     void rule__TableNumberInterval__Group__0() throws RecognitionException;
+     void rule__TableNumberInterval__Group__0__Impl() throws RecognitionException;
+     void rule__TableNumberInterval__Group__1() throws RecognitionException;
+     void rule__TableNumberInterval__Group__1__Impl() throws RecognitionException;
+     void rule__TableNumberInterval__Group__2() throws RecognitionException;
+     void rule__TableNumberInterval__Group__2__Impl() throws RecognitionException;
+     void rule__TableNumberInterval__Group__3() throws RecognitionException;
+     void rule__TableNumberInterval__Group__3__Impl() throws RecognitionException;
+     void rule__TableDateDayInterval__Group__0() throws RecognitionException;
+     void rule__TableDateDayInterval__Group__0__Impl() throws RecognitionException;
+     void rule__TableDateDayInterval__Group__1() throws RecognitionException;
+     void rule__TableDateDayInterval__Group__1__Impl() throws RecognitionException;
+     void rule__TableDateDayInterval__Group__2() throws RecognitionException;
+     void rule__TableDateDayInterval__Group__2__Impl() throws RecognitionException;
+     void rule__TableDateDayInterval__Group__3() throws RecognitionException;
+     void rule__TableDateDayInterval__Group__3__Impl() throws RecognitionException;
+     void rule__TableNumberLookup__Group__0() throws RecognitionException;
+     void rule__TableNumberLookup__Group__0__Impl() throws RecognitionException;
+     void rule__TableNumberLookup__Group__1() throws RecognitionException;
+     void rule__TableNumberLookup__Group__1__Impl() throws RecognitionException;
+     void rule__TableNumberLookup__Group__2() throws RecognitionException;
+     void rule__TableNumberLookup__Group__2__Impl() throws RecognitionException;
+     void rule__TableNumberLookup__Group__3() throws RecognitionException;
+     void rule__TableNumberLookup__Group__3__Impl() throws RecognitionException;
+     void rule__TableStringLookup__Group__0() throws RecognitionException;
+     void rule__TableStringLookup__Group__0__Impl() throws RecognitionException;
+     void rule__TableStringLookup__Group__1() throws RecognitionException;
+     void rule__TableStringLookup__Group__1__Impl() throws RecognitionException;
+     void rule__TableStringLookup__Group__2() throws RecognitionException;
+     void rule__TableStringLookup__Group__2__Impl() throws RecognitionException;
+     void rule__TableStringLookup__Group__3() throws RecognitionException;
+     void rule__TableStringLookup__Group__3__Impl() throws RecognitionException;
+     void rule__TableDateDayLookup__Group__0() throws RecognitionException;
+     void rule__TableDateDayLookup__Group__0__Impl() throws RecognitionException;
+     void rule__TableDateDayLookup__Group__1() throws RecognitionException;
+     void rule__TableDateDayLookup__Group__1__Impl() throws RecognitionException;
+     void rule__TableDateDayLookup__Group__2() throws RecognitionException;
+     void rule__TableDateDayLookup__Group__2__Impl() throws RecognitionException;
+     void rule__TableDateDayLookup__Group__3() throws RecognitionException;
+     void rule__TableDateDayLookup__Group__3__Impl() throws RecognitionException;
+     void rule__SignedNumber__Group__0() throws RecognitionException;
+     void rule__SignedNumber__Group__0__Impl() throws RecognitionException;
+     void rule__SignedNumber__Group__1() throws RecognitionException;
+     void rule__SignedNumber__Group__1__Impl() throws RecognitionException;
+     void rule__TableTextColor__Group__0() throws RecognitionException;
+     void rule__TableTextColor__Group__0__Impl() throws RecognitionException;
+     void rule__TableTextColor__Group__1() throws RecognitionException;
+     void rule__TableTextColor__Group__1__Impl() throws RecognitionException;
+     void rule__TableCellColor__Group__0() throws RecognitionException;
+     void rule__TableCellColor__Group__0__Impl() throws RecognitionException;
+     void rule__TableCellColor__Group__1() throws RecognitionException;
+     void rule__TableCellColor__Group__1__Impl() throws RecognitionException;
+     void rule__TableIcon__Group__0() throws RecognitionException;
+     void rule__TableIcon__Group__0__Impl() throws RecognitionException;
+     void rule__TableIcon__Group__1() throws RecognitionException;
+     void rule__TableIcon__Group__1__Impl() throws RecognitionException;
+     void rule__TableTrend__Group__0() throws RecognitionException;
+     void rule__TableTrend__Group__0__Impl() throws RecognitionException;
+     void rule__TableTrend__Group__1() throws RecognitionException;
+     void rule__TableTrend__Group__1__Impl() throws RecognitionException;
+     void rule__Title__Group__0() throws RecognitionException;
+     void rule__Title__Group__0__Impl() throws RecognitionException;
+     void rule__Title__Group__1() throws RecognitionException;
+     void rule__Title__Group__1__Impl() throws RecognitionException;
+     void rule__Title__Group__2() throws RecognitionException;
+     void rule__Title__Group__2__Impl() throws RecognitionException;
+     void rule__Title__Group__3() throws RecognitionException;
+     void rule__Title__Group__3__Impl() throws RecognitionException;
+     void rule__Title__Group_3__0() throws RecognitionException;
+     void rule__Title__Group_3__0__Impl() throws RecognitionException;
+     void rule__Title__Group_3__1() throws RecognitionException;
+     void rule__Title__Group_3__1__Impl() throws RecognitionException;
+     void rule__SubTitle__Group__0() throws RecognitionException;
+     void rule__SubTitle__Group__0__Impl() throws RecognitionException;
+     void rule__SubTitle__Group__1() throws RecognitionException;
+     void rule__SubTitle__Group__1__Impl() throws RecognitionException;
+     void rule__SubTitle__Group__2() throws RecognitionException;
+     void rule__SubTitle__Group__2__Impl() throws RecognitionException;
+     void rule__SubTitle__Group__3() throws RecognitionException;
+     void rule__SubTitle__Group__3__Impl() throws RecognitionException;
+     void rule__SubTitle__Group_3__0() throws RecognitionException;
+     void rule__SubTitle__Group_3__0__Impl() throws RecognitionException;
+     void rule__SubTitle__Group_3__1() throws RecognitionException;
+     void rule__SubTitle__Group_3__1__Impl() throws RecognitionException;
+     void rule__SubSubTitle__Group__0() throws RecognitionException;
+     void rule__SubSubTitle__Group__0__Impl() throws RecognitionException;
+     void rule__SubSubTitle__Group__1() throws RecognitionException;
+     void rule__SubSubTitle__Group__1__Impl() throws RecognitionException;
+     void rule__SubSubTitle__Group__2() throws RecognitionException;
+     void rule__SubSubTitle__Group__2__Impl() throws RecognitionException;
+     void rule__SubSubTitle__Group__3() throws RecognitionException;
+     void rule__SubSubTitle__Group__3__Impl() throws RecognitionException;
+     void rule__SubSubTitle__Group_3__0() throws RecognitionException;
+     void rule__SubSubTitle__Group_3__0__Impl() throws RecognitionException;
+     void rule__SubSubTitle__Group_3__1() throws RecognitionException;
+     void rule__SubSubTitle__Group_3__1__Impl() throws RecognitionException;
+     void rule__Label__Group__0() throws RecognitionException;
+     void rule__Label__Group__0__Impl() throws RecognitionException;
+     void rule__Label__Group__1() throws RecognitionException;
+     void rule__Label__Group__1__Impl() throws RecognitionException;
+     void rule__Label__Group__2() throws RecognitionException;
+     void rule__Label__Group__2__Impl() throws RecognitionException;
+     void rule__Label__Group__3() throws RecognitionException;
+     void rule__Label__Group__3__Impl() throws RecognitionException;
+     void rule__Label__Group_3__0() throws RecognitionException;
+     void rule__Label__Group_3__0__Impl() throws RecognitionException;
+     void rule__Label__Group_3__1() throws RecognitionException;
+     void rule__Label__Group_3__1__Impl() throws RecognitionException;
+     void rule__Text__Group__0() throws RecognitionException;
+     void rule__Text__Group__0__Impl() throws RecognitionException;
+     void rule__Text__Group__1() throws RecognitionException;
+     void rule__Text__Group__1__Impl() throws RecognitionException;
+     void rule__Text__Group__2() throws RecognitionException;
+     void rule__Text__Group__2__Impl() throws RecognitionException;
+     void rule__Text__Group__3() throws RecognitionException;
+     void rule__Text__Group__3__Impl() throws RecognitionException;
+     void rule__Text__Group_3__0() throws RecognitionException;
+     void rule__Text__Group_3__0__Impl() throws RecognitionException;
+     void rule__Text__Group_3__1() throws RecognitionException;
+     void rule__Text__Group_3__1__Impl() throws RecognitionException;
+     void rule__AutoText__Group__0() throws RecognitionException;
+     void rule__AutoText__Group__0__Impl() throws RecognitionException;
+     void rule__AutoText__Group__1() throws RecognitionException;
+     void rule__AutoText__Group__1__Impl() throws RecognitionException;
+     void rule__AutoText__Group__2() throws RecognitionException;
+     void rule__AutoText__Group__2__Impl() throws RecognitionException;
+     void rule__AutoText__Group_2__0() throws RecognitionException;
+     void rule__AutoText__Group_2__0__Impl() throws RecognitionException;
+     void rule__AutoText__Group_2__1() throws RecognitionException;
+     void rule__AutoText__Group_2__1__Impl() throws RecognitionException;
+     void rule__Image__Group__0() throws RecognitionException;
+     void rule__Image__Group__0__Impl() throws RecognitionException;
+     void rule__Image__Group__1() throws RecognitionException;
+     void rule__Image__Group__1__Impl() throws RecognitionException;
+     void rule__Image__Group__2() throws RecognitionException;
+     void rule__Image__Group__2__Impl() throws RecognitionException;
+     void rule__Image__Group__3() throws RecognitionException;
+     void rule__Image__Group__3__Impl() throws RecognitionException;
+     void rule__Image__Group__4() throws RecognitionException;
+     void rule__Image__Group__4__Impl() throws RecognitionException;
+     void rule__Image__Group_2__0() throws RecognitionException;
+     void rule__Image__Group_2__0__Impl() throws RecognitionException;
+     void rule__Image__Group_2__1() throws RecognitionException;
+     void rule__Image__Group_2__1__Impl() throws RecognitionException;
+     void rule__ReportImport__Group__0() throws RecognitionException;
+     void rule__ReportImport__Group__0__Impl() throws RecognitionException;
+     void rule__ReportImport__Group__1() throws RecognitionException;
+     void rule__ReportImport__Group__1__Impl() throws RecognitionException;
+     void rule__ReportQualifiedNameWithWildCard__Group__0() throws RecognitionException;
+     void rule__ReportQualifiedNameWithWildCard__Group__0__Impl() throws RecognitionException;
+     void rule__ReportQualifiedNameWithWildCard__Group__1() throws RecognitionException;
+     void rule__ReportQualifiedNameWithWildCard__Group__1__Impl() throws RecognitionException;
+     void rule__ReportQualifiedNameWithWildCard__Group_1__0() throws RecognitionException;
+     void rule__ReportQualifiedNameWithWildCard__Group_1__0__Impl() throws RecognitionException;
+     void rule__ReportQualifiedNameWithWildCard__Group_1__1() throws RecognitionException;
+     void rule__ReportQualifiedNameWithWildCard__Group_1__1__Impl() throws RecognitionException;
+     void rule__XAnnotation__Group__0() throws RecognitionException;
+     void rule__XAnnotation__Group__0__Impl() throws RecognitionException;
+     void rule__XAnnotation__Group__1() throws RecognitionException;
+     void rule__XAnnotation__Group__1__Impl() throws RecognitionException;
+     void rule__XAnnotation__Group__2() throws RecognitionException;
+     void rule__XAnnotation__Group__2__Impl() throws RecognitionException;
+     void rule__XAnnotation__Group__3() throws RecognitionException;
+     void rule__XAnnotation__Group__3__Impl() throws RecognitionException;
+     void rule__XAnnotation__Group_3__0() throws RecognitionException;
+     void rule__XAnnotation__Group_3__0__Impl() throws RecognitionException;
+     void rule__XAnnotation__Group_3__1() throws RecognitionException;
+     void rule__XAnnotation__Group_3__1__Impl() throws RecognitionException;
+     void rule__XAnnotation__Group_3__2() throws RecognitionException;
+     void rule__XAnnotation__Group_3__2__Impl() throws RecognitionException;
+     void rule__XAnnotation__Group_3_1_0__0() throws RecognitionException;
+     void rule__XAnnotation__Group_3_1_0__0__Impl() throws RecognitionException;
+     void rule__XAnnotation__Group_3_1_0__1() throws RecognitionException;
+     void rule__XAnnotation__Group_3_1_0__1__Impl() throws RecognitionException;
+     void rule__XAnnotation__Group_3_1_0_1__0() throws RecognitionException;
+     void rule__XAnnotation__Group_3_1_0_1__0__Impl() throws RecognitionException;
+     void rule__XAnnotation__Group_3_1_0_1__1() throws RecognitionException;
+     void rule__XAnnotation__Group_3_1_0_1__1__Impl() throws RecognitionException;
+     void rule__XAnnotationElementValuePair__Group__0() throws RecognitionException;
+     void rule__XAnnotationElementValuePair__Group__0__Impl() throws RecognitionException;
+     void rule__XAnnotationElementValuePair__Group__1() throws RecognitionException;
+     void rule__XAnnotationElementValuePair__Group__1__Impl() throws RecognitionException;
+     void rule__XAnnotationElementValuePair__Group_0__0() throws RecognitionException;
+     void rule__XAnnotationElementValuePair__Group_0__0__Impl() throws RecognitionException;
+     void rule__XAnnotationElementValuePair__Group_0_0__0() throws RecognitionException;
+     void rule__XAnnotationElementValuePair__Group_0_0__0__Impl() throws RecognitionException;
+     void rule__XAnnotationElementValuePair__Group_0_0__1() throws RecognitionException;
+     void rule__XAnnotationElementValuePair__Group_0_0__1__Impl() throws RecognitionException;
+     void rule__XAnnotationElementValueOrCommaList__Group_0__0() throws RecognitionException;
+     void rule__XAnnotationElementValueOrCommaList__Group_0__0__Impl() throws RecognitionException;
+     void rule__XAnnotationElementValueOrCommaList__Group_0__1() throws RecognitionException;
+     void rule__XAnnotationElementValueOrCommaList__Group_0__1__Impl() throws RecognitionException;
+     void rule__XAnnotationElementValueOrCommaList__Group_0__2() throws RecognitionException;
+     void rule__XAnnotationElementValueOrCommaList__Group_0__2__Impl() throws RecognitionException;
+     void rule__XAnnotationElementValueOrCommaList__Group_0_0__0() throws RecognitionException;
+     void rule__XAnnotationElementValueOrCommaList__Group_0_0__0__Impl() throws RecognitionException;
+     void rule__XAnnotationElementValueOrCommaList__Group_0_0_0__0() throws RecognitionException;
+     void rule__XAnnotationElementValueOrCommaList__Group_0_0_0__0__Impl() throws RecognitionException;
+     void rule__XAnnotationElementValueOrCommaList__Group_0_0_0__1() throws RecognitionException;
+     void rule__XAnnotationElementValueOrCommaList__Group_0_0_0__1__Impl() throws RecognitionException;
+     void rule__XAnnotationElementValueOrCommaList__Group_0_0_0__2() throws RecognitionException;
+     void rule__XAnnotationElementValueOrCommaList__Group_0_0_0__2__Impl() throws RecognitionException;
+     void rule__XAnnotationElementValueOrCommaList__Group_0_1__0() throws RecognitionException;
+     void rule__XAnnotationElementValueOrCommaList__Group_0_1__0__Impl() throws RecognitionException;
+     void rule__XAnnotationElementValueOrCommaList__Group_0_1__1() throws RecognitionException;
+     void rule__XAnnotationElementValueOrCommaList__Group_0_1__1__Impl() throws RecognitionException;
+     void rule__XAnnotationElementValueOrCommaList__Group_0_1_1__0() throws RecognitionException;
+     void rule__XAnnotationElementValueOrCommaList__Group_0_1_1__0__Impl() throws RecognitionException;
+     void rule__XAnnotationElementValueOrCommaList__Group_0_1_1__1() throws RecognitionException;
+     void rule__XAnnotationElementValueOrCommaList__Group_0_1_1__1__Impl() throws RecognitionException;
+     void rule__XAnnotationElementValueOrCommaList__Group_1__0() throws RecognitionException;
+     void rule__XAnnotationElementValueOrCommaList__Group_1__0__Impl() throws RecognitionException;
+     void rule__XAnnotationElementValueOrCommaList__Group_1__1() throws RecognitionException;
+     void rule__XAnnotationElementValueOrCommaList__Group_1__1__Impl() throws RecognitionException;
+     void rule__XAnnotationElementValueOrCommaList__Group_1_1__0() throws RecognitionException;
+     void rule__XAnnotationElementValueOrCommaList__Group_1_1__0__Impl() throws RecognitionException;
+     void rule__XAnnotationElementValueOrCommaList__Group_1_1__1() throws RecognitionException;
+     void rule__XAnnotationElementValueOrCommaList__Group_1_1__1__Impl() throws RecognitionException;
+     void rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0() throws RecognitionException;
+     void rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0__Impl() throws RecognitionException;
+     void rule__XAnnotationElementValueOrCommaList__Group_1_1_1__1() throws RecognitionException;
+     void rule__XAnnotationElementValueOrCommaList__Group_1_1_1__1__Impl() throws RecognitionException;
+     void rule__XAnnotationElementValue__Group_0__0() throws RecognitionException;
+     void rule__XAnnotationElementValue__Group_0__0__Impl() throws RecognitionException;
+     void rule__XAnnotationElementValue__Group_0__1() throws RecognitionException;
+     void rule__XAnnotationElementValue__Group_0__1__Impl() throws RecognitionException;
+     void rule__XAnnotationElementValue__Group_0__2() throws RecognitionException;
+     void rule__XAnnotationElementValue__Group_0__2__Impl() throws RecognitionException;
+     void rule__XAnnotationElementValue__Group_0_0__0() throws RecognitionException;
+     void rule__XAnnotationElementValue__Group_0_0__0__Impl() throws RecognitionException;
+     void rule__XAnnotationElementValue__Group_0_0_0__0() throws RecognitionException;
+     void rule__XAnnotationElementValue__Group_0_0_0__0__Impl() throws RecognitionException;
+     void rule__XAnnotationElementValue__Group_0_0_0__1() throws RecognitionException;
+     void rule__XAnnotationElementValue__Group_0_0_0__1__Impl() throws RecognitionException;
+     void rule__XAnnotationElementValue__Group_0_0_0__2() throws RecognitionException;
+     void rule__XAnnotationElementValue__Group_0_0_0__2__Impl() throws RecognitionException;
+     void rule__XAnnotationElementValue__Group_0_1__0() throws RecognitionException;
+     void rule__XAnnotationElementValue__Group_0_1__0__Impl() throws RecognitionException;
+     void rule__XAnnotationElementValue__Group_0_1__1() throws RecognitionException;
+     void rule__XAnnotationElementValue__Group_0_1__1__Impl() throws RecognitionException;
+     void rule__XAnnotationElementValue__Group_0_1_1__0() throws RecognitionException;
+     void rule__XAnnotationElementValue__Group_0_1_1__0__Impl() throws RecognitionException;
+     void rule__XAnnotationElementValue__Group_0_1_1__1() throws RecognitionException;
+     void rule__XAnnotationElementValue__Group_0_1_1__1__Impl() throws RecognitionException;
+     void rule__XAssignment__Group_0__0() throws RecognitionException;
+     void rule__XAssignment__Group_0__0__Impl() throws RecognitionException;
+     void rule__XAssignment__Group_0__1() throws RecognitionException;
+     void rule__XAssignment__Group_0__1__Impl() throws RecognitionException;
+     void rule__XAssignment__Group_0__2() throws RecognitionException;
+     void rule__XAssignment__Group_0__2__Impl() throws RecognitionException;
+     void rule__XAssignment__Group_0__3() throws RecognitionException;
+     void rule__XAssignment__Group_0__3__Impl() throws RecognitionException;
+     void rule__XAssignment__Group_1__0() throws RecognitionException;
+     void rule__XAssignment__Group_1__0__Impl() throws RecognitionException;
+     void rule__XAssignment__Group_1__1() throws RecognitionException;
+     void rule__XAssignment__Group_1__1__Impl() throws RecognitionException;
+     void rule__XAssignment__Group_1_1__0() throws RecognitionException;
+     void rule__XAssignment__Group_1_1__0__Impl() throws RecognitionException;
+     void rule__XAssignment__Group_1_1__1() throws RecognitionException;
+     void rule__XAssignment__Group_1_1__1__Impl() throws RecognitionException;
+     void rule__XAssignment__Group_1_1_0__0() throws RecognitionException;
+     void rule__XAssignment__Group_1_1_0__0__Impl() throws RecognitionException;
+     void rule__XAssignment__Group_1_1_0_0__0() throws RecognitionException;
+     void rule__XAssignment__Group_1_1_0_0__0__Impl() throws RecognitionException;
+     void rule__XAssignment__Group_1_1_0_0__1() throws RecognitionException;
+     void rule__XAssignment__Group_1_1_0_0__1__Impl() throws RecognitionException;
+     void rule__OpMultiAssign__Group_5__0() throws RecognitionException;
+     void rule__OpMultiAssign__Group_5__0__Impl() throws RecognitionException;
+     void rule__OpMultiAssign__Group_5__1() throws RecognitionException;
+     void rule__OpMultiAssign__Group_5__1__Impl() throws RecognitionException;
+     void rule__OpMultiAssign__Group_5__2() throws RecognitionException;
+     void rule__OpMultiAssign__Group_5__2__Impl() throws RecognitionException;
+     void rule__OpMultiAssign__Group_6__0() throws RecognitionException;
+     void rule__OpMultiAssign__Group_6__0__Impl() throws RecognitionException;
+     void rule__OpMultiAssign__Group_6__1() throws RecognitionException;
+     void rule__OpMultiAssign__Group_6__1__Impl() throws RecognitionException;
+     void rule__OpMultiAssign__Group_6__2() throws RecognitionException;
+     void rule__OpMultiAssign__Group_6__2__Impl() throws RecognitionException;
+     void rule__XOrExpression__Group__0() throws RecognitionException;
+     void rule__XOrExpression__Group__0__Impl() throws RecognitionException;
+     void rule__XOrExpression__Group__1() throws RecognitionException;
+     void rule__XOrExpression__Group__1__Impl() throws RecognitionException;
+     void rule__XOrExpression__Group_1__0() throws RecognitionException;
+     void rule__XOrExpression__Group_1__0__Impl() throws RecognitionException;
+     void rule__XOrExpression__Group_1__1() throws RecognitionException;
+     void rule__XOrExpression__Group_1__1__Impl() throws RecognitionException;
+     void rule__XOrExpression__Group_1_0__0() throws RecognitionException;
+     void rule__XOrExpression__Group_1_0__0__Impl() throws RecognitionException;
+     void rule__XOrExpression__Group_1_0_0__0() throws RecognitionException;
+     void rule__XOrExpression__Group_1_0_0__0__Impl() throws RecognitionException;
+     void rule__XOrExpression__Group_1_0_0__1() throws RecognitionException;
+     void rule__XOrExpression__Group_1_0_0__1__Impl() throws RecognitionException;
+     void rule__XAndExpression__Group__0() throws RecognitionException;
+     void rule__XAndExpression__Group__0__Impl() throws RecognitionException;
+     void rule__XAndExpression__Group__1() throws RecognitionException;
+     void rule__XAndExpression__Group__1__Impl() throws RecognitionException;
+     void rule__XAndExpression__Group_1__0() throws RecognitionException;
+     void rule__XAndExpression__Group_1__0__Impl() throws RecognitionException;
+     void rule__XAndExpression__Group_1__1() throws RecognitionException;
+     void rule__XAndExpression__Group_1__1__Impl() throws RecognitionException;
+     void rule__XAndExpression__Group_1_0__0() throws RecognitionException;
+     void rule__XAndExpression__Group_1_0__0__Impl() throws RecognitionException;
+     void rule__XAndExpression__Group_1_0_0__0() throws RecognitionException;
+     void rule__XAndExpression__Group_1_0_0__0__Impl() throws RecognitionException;
+     void rule__XAndExpression__Group_1_0_0__1() throws RecognitionException;
+     void rule__XAndExpression__Group_1_0_0__1__Impl() throws RecognitionException;
+     void rule__XEqualityExpression__Group__0() throws RecognitionException;
+     void rule__XEqualityExpression__Group__0__Impl() throws RecognitionException;
+     void rule__XEqualityExpression__Group__1() throws RecognitionException;
+     void rule__XEqualityExpression__Group__1__Impl() throws RecognitionException;
+     void rule__XEqualityExpression__Group_1__0() throws RecognitionException;
+     void rule__XEqualityExpression__Group_1__0__Impl() throws RecognitionException;
+     void rule__XEqualityExpression__Group_1__1() throws RecognitionException;
+     void rule__XEqualityExpression__Group_1__1__Impl() throws RecognitionException;
+     void rule__XEqualityExpression__Group_1_0__0() throws RecognitionException;
+     void rule__XEqualityExpression__Group_1_0__0__Impl() throws RecognitionException;
+     void rule__XEqualityExpression__Group_1_0_0__0() throws RecognitionException;
+     void rule__XEqualityExpression__Group_1_0_0__0__Impl() throws RecognitionException;
+     void rule__XEqualityExpression__Group_1_0_0__1() throws RecognitionException;
+     void rule__XEqualityExpression__Group_1_0_0__1__Impl() throws RecognitionException;
+     void rule__XRelationalExpression__Group__0() throws RecognitionException;
+     void rule__XRelationalExpression__Group__0__Impl() throws RecognitionException;
+     void rule__XRelationalExpression__Group__1() throws RecognitionException;
+     void rule__XRelationalExpression__Group__1__Impl() throws RecognitionException;
+     void rule__XRelationalExpression__Group_1_0__0() throws RecognitionException;
+     void rule__XRelationalExpression__Group_1_0__0__Impl() throws RecognitionException;
+     void rule__XRelationalExpression__Group_1_0__1() throws RecognitionException;
+     void rule__XRelationalExpression__Group_1_0__1__Impl() throws RecognitionException;
+     void rule__XRelationalExpression__Group_1_0_0__0() throws RecognitionException;
+     void rule__XRelationalExpression__Group_1_0_0__0__Impl() throws RecognitionException;
+     void rule__XRelationalExpression__Group_1_0_0_0__0() throws RecognitionException;
+     void rule__XRelationalExpression__Group_1_0_0_0__0__Impl() throws RecognitionException;
+     void rule__XRelationalExpression__Group_1_0_0_0__1() throws RecognitionException;
+     void rule__XRelationalExpression__Group_1_0_0_0__1__Impl() throws RecognitionException;
+     void rule__XRelationalExpression__Group_1_1__0() throws RecognitionException;
+     void rule__XRelationalExpression__Group_1_1__0__Impl() throws RecognitionException;
+     void rule__XRelationalExpression__Group_1_1__1() throws RecognitionException;
+     void rule__XRelationalExpression__Group_1_1__1__Impl() throws RecognitionException;
+     void rule__XRelationalExpression__Group_1_1_0__0() throws RecognitionException;
+     void rule__XRelationalExpression__Group_1_1_0__0__Impl() throws RecognitionException;
+     void rule__XRelationalExpression__Group_1_1_0_0__0() throws RecognitionException;
+     void rule__XRelationalExpression__Group_1_1_0_0__0__Impl() throws RecognitionException;
+     void rule__XRelationalExpression__Group_1_1_0_0__1() throws RecognitionException;
+     void rule__XRelationalExpression__Group_1_1_0_0__1__Impl() throws RecognitionException;
+     void rule__OpCompare__Group_1__0() throws RecognitionException;
+     void rule__OpCompare__Group_1__0__Impl() throws RecognitionException;
+     void rule__OpCompare__Group_1__1() throws RecognitionException;
+     void rule__OpCompare__Group_1__1__Impl() throws RecognitionException;
+     void rule__XOtherOperatorExpression__Group__0() throws RecognitionException;
+     void rule__XOtherOperatorExpression__Group__0__Impl() throws RecognitionException;
+     void rule__XOtherOperatorExpression__Group__1() throws RecognitionException;
+     void rule__XOtherOperatorExpression__Group__1__Impl() throws RecognitionException;
+     void rule__XOtherOperatorExpression__Group_1__0() throws RecognitionException;
+     void rule__XOtherOperatorExpression__Group_1__0__Impl() throws RecognitionException;
+     void rule__XOtherOperatorExpression__Group_1__1() throws RecognitionException;
+     void rule__XOtherOperatorExpression__Group_1__1__Impl() throws RecognitionException;
+     void rule__XOtherOperatorExpression__Group_1_0__0() throws RecognitionException;
+     void rule__XOtherOperatorExpression__Group_1_0__0__Impl() throws RecognitionException;
+     void rule__XOtherOperatorExpression__Group_1_0_0__0() throws RecognitionException;
+     void rule__XOtherOperatorExpression__Group_1_0_0__0__Impl() throws RecognitionException;
+     void rule__XOtherOperatorExpression__Group_1_0_0__1() throws RecognitionException;
+     void rule__XOtherOperatorExpression__Group_1_0_0__1__Impl() throws RecognitionException;
+     void rule__OpOther__Group_2__0() throws RecognitionException;
+     void rule__OpOther__Group_2__0__Impl() throws RecognitionException;
+     void rule__OpOther__Group_2__1() throws RecognitionException;
+     void rule__OpOther__Group_2__1__Impl() throws RecognitionException;
+     void rule__OpOther__Group_5__0() throws RecognitionException;
+     void rule__OpOther__Group_5__0__Impl() throws RecognitionException;
+     void rule__OpOther__Group_5__1() throws RecognitionException;
+     void rule__OpOther__Group_5__1__Impl() throws RecognitionException;
+     void rule__OpOther__Group_5_1_0__0() throws RecognitionException;
+     void rule__OpOther__Group_5_1_0__0__Impl() throws RecognitionException;
+     void rule__OpOther__Group_5_1_0_0__0() throws RecognitionException;
+     void rule__OpOther__Group_5_1_0_0__0__Impl() throws RecognitionException;
+     void rule__OpOther__Group_5_1_0_0__1() throws RecognitionException;
+     void rule__OpOther__Group_5_1_0_0__1__Impl() throws RecognitionException;
+     void rule__OpOther__Group_6__0() throws RecognitionException;
+     void rule__OpOther__Group_6__0__Impl() throws RecognitionException;
+     void rule__OpOther__Group_6__1() throws RecognitionException;
+     void rule__OpOther__Group_6__1__Impl() throws RecognitionException;
+     void rule__OpOther__Group_6_1_0__0() throws RecognitionException;
+     void rule__OpOther__Group_6_1_0__0__Impl() throws RecognitionException;
+     void rule__OpOther__Group_6_1_0_0__0() throws RecognitionException;
+     void rule__OpOther__Group_6_1_0_0__0__Impl() throws RecognitionException;
+     void rule__OpOther__Group_6_1_0_0__1() throws RecognitionException;
+     void rule__OpOther__Group_6_1_0_0__1__Impl() throws RecognitionException;
+     void rule__XAdditiveExpression__Group__0() throws RecognitionException;
+     void rule__XAdditiveExpression__Group__0__Impl() throws RecognitionException;
+     void rule__XAdditiveExpression__Group__1() throws RecognitionException;
+     void rule__XAdditiveExpression__Group__1__Impl() throws RecognitionException;
+     void rule__XAdditiveExpression__Group_1__0() throws RecognitionException;
+     void rule__XAdditiveExpression__Group_1__0__Impl() throws RecognitionException;
+     void rule__XAdditiveExpression__Group_1__1() throws RecognitionException;
+     void rule__XAdditiveExpression__Group_1__1__Impl() throws RecognitionException;
+     void rule__XAdditiveExpression__Group_1_0__0() throws RecognitionException;
+     void rule__XAdditiveExpression__Group_1_0__0__Impl() throws RecognitionException;
+     void rule__XAdditiveExpression__Group_1_0_0__0() throws RecognitionException;
+     void rule__XAdditiveExpression__Group_1_0_0__0__Impl() throws RecognitionException;
+     void rule__XAdditiveExpression__Group_1_0_0__1() throws RecognitionException;
+     void rule__XAdditiveExpression__Group_1_0_0__1__Impl() throws RecognitionException;
+     void rule__XMultiplicativeExpression__Group__0() throws RecognitionException;
+     void rule__XMultiplicativeExpression__Group__0__Impl() throws RecognitionException;
+     void rule__XMultiplicativeExpression__Group__1() throws RecognitionException;
+     void rule__XMultiplicativeExpression__Group__1__Impl() throws RecognitionException;
+     void rule__XMultiplicativeExpression__Group_1__0() throws RecognitionException;
+     void rule__XMultiplicativeExpression__Group_1__0__Impl() throws RecognitionException;
+     void rule__XMultiplicativeExpression__Group_1__1() throws RecognitionException;
+     void rule__XMultiplicativeExpression__Group_1__1__Impl() throws RecognitionException;
+     void rule__XMultiplicativeExpression__Group_1_0__0() throws RecognitionException;
+     void rule__XMultiplicativeExpression__Group_1_0__0__Impl() throws RecognitionException;
+     void rule__XMultiplicativeExpression__Group_1_0_0__0() throws RecognitionException;
+     void rule__XMultiplicativeExpression__Group_1_0_0__0__Impl() throws RecognitionException;
+     void rule__XMultiplicativeExpression__Group_1_0_0__1() throws RecognitionException;
+     void rule__XMultiplicativeExpression__Group_1_0_0__1__Impl() throws RecognitionException;
+     void rule__XUnaryOperation__Group_0__0() throws RecognitionException;
+     void rule__XUnaryOperation__Group_0__0__Impl() throws RecognitionException;
+     void rule__XUnaryOperation__Group_0__1() throws RecognitionException;
+     void rule__XUnaryOperation__Group_0__1__Impl() throws RecognitionException;
+     void rule__XUnaryOperation__Group_0__2() throws RecognitionException;
+     void rule__XUnaryOperation__Group_0__2__Impl() throws RecognitionException;
+     void rule__XCastedExpression__Group__0() throws RecognitionException;
+     void rule__XCastedExpression__Group__0__Impl() throws RecognitionException;
+     void rule__XCastedExpression__Group__1() throws RecognitionException;
+     void rule__XCastedExpression__Group__1__Impl() throws RecognitionException;
+     void rule__XCastedExpression__Group_1__0() throws RecognitionException;
+     void rule__XCastedExpression__Group_1__0__Impl() throws RecognitionException;
+     void rule__XCastedExpression__Group_1__1() throws RecognitionException;
+     void rule__XCastedExpression__Group_1__1__Impl() throws RecognitionException;
+     void rule__XCastedExpression__Group_1_0__0() throws RecognitionException;
+     void rule__XCastedExpression__Group_1_0__0__Impl() throws RecognitionException;
+     void rule__XCastedExpression__Group_1_0_0__0() throws RecognitionException;
+     void rule__XCastedExpression__Group_1_0_0__0__Impl() throws RecognitionException;
+     void rule__XCastedExpression__Group_1_0_0__1() throws RecognitionException;
+     void rule__XCastedExpression__Group_1_0_0__1__Impl() throws RecognitionException;
+     void rule__XPostfixOperation__Group__0() throws RecognitionException;
+     void rule__XPostfixOperation__Group__0__Impl() throws RecognitionException;
+     void rule__XPostfixOperation__Group__1() throws RecognitionException;
+     void rule__XPostfixOperation__Group__1__Impl() throws RecognitionException;
+     void rule__XPostfixOperation__Group_1__0() throws RecognitionException;
+     void rule__XPostfixOperation__Group_1__0__Impl() throws RecognitionException;
+     void rule__XPostfixOperation__Group_1_0__0() throws RecognitionException;
+     void rule__XPostfixOperation__Group_1_0__0__Impl() throws RecognitionException;
+     void rule__XPostfixOperation__Group_1_0__1() throws RecognitionException;
+     void rule__XPostfixOperation__Group_1_0__1__Impl() throws RecognitionException;
+     void rule__XMemberFeatureCall__Group__0() throws RecognitionException;
+     void rule__XMemberFeatureCall__Group__0__Impl() throws RecognitionException;
+     void rule__XMemberFeatureCall__Group__1() throws RecognitionException;
+     void rule__XMemberFeatureCall__Group__1__Impl() throws RecognitionException;
+     void rule__XMemberFeatureCall__Group_1_0__0() throws RecognitionException;
+     void rule__XMemberFeatureCall__Group_1_0__0__Impl() throws RecognitionException;
+     void rule__XMemberFeatureCall__Group_1_0__1() throws RecognitionException;
+     void rule__XMemberFeatureCall__Group_1_0__1__Impl() throws RecognitionException;
+     void rule__XMemberFeatureCall__Group_1_0_0__0() throws RecognitionException;
+     void rule__XMemberFeatureCall__Group_1_0_0__0__Impl() throws RecognitionException;
+     void rule__XMemberFeatureCall__Group_1_0_0_0__0() throws RecognitionException;
+     void rule__XMemberFeatureCall__Group_1_0_0_0__0__Impl() throws RecognitionException;
+     void rule__XMemberFeatureCall__Group_1_0_0_0__1() throws RecognitionException;
+     void rule__XMemberFeatureCall__Group_1_0_0_0__1__Impl() throws RecognitionException;
+     void rule__XMemberFeatureCall__Group_1_0_0_0__2() throws RecognitionException;
+     void rule__XMemberFeatureCall__Group_1_0_0_0__2__Impl() throws RecognitionException;
+     void rule__XMemberFeatureCall__Group_1_0_0_0__3() throws RecognitionException;
+     void rule__XMemberFeatureCall__Group_1_0_0_0__3__Impl() throws RecognitionException;
+     void rule__XMemberFeatureCall__Group_1_1__0() throws RecognitionException;
+     void rule__XMemberFeatureCall__Group_1_1__0__Impl() throws RecognitionException;
+     void rule__XMemberFeatureCall__Group_1_1__1() throws RecognitionException;
+     void rule__XMemberFeatureCall__Group_1_1__1__Impl() throws RecognitionException;
+     void rule__XMemberFeatureCall__Group_1_1__2() throws RecognitionException;
+     void rule__XMemberFeatureCall__Group_1_1__2__Impl() throws RecognitionException;
+     void rule__XMemberFeatureCall__Group_1_1__3() throws RecognitionException;
+     void rule__XMemberFeatureCall__Group_1_1__3__Impl() throws RecognitionException;
+     void rule__XMemberFeatureCall__Group_1_1__4() throws RecognitionException;
+     void rule__XMemberFeatureCall__Group_1_1__4__Impl() throws RecognitionException;
+     void rule__XMemberFeatureCall__Group_1_1_0__0() throws RecognitionException;
+     void rule__XMemberFeatureCall__Group_1_1_0__0__Impl() throws RecognitionException;
+     void rule__XMemberFeatureCall__Group_1_1_0_0__0() throws RecognitionException;
+     void rule__XMemberFeatureCall__Group_1_1_0_0__0__Impl() throws RecognitionException;
+     void rule__XMemberFeatureCall__Group_1_1_0_0__1() throws RecognitionException;
+     void rule__XMemberFeatureCall__Group_1_1_0_0__1__Impl() throws RecognitionException;
+     void rule__XMemberFeatureCall__Group_1_1_1__0() throws RecognitionException;
+     void rule__XMemberFeatureCall__Group_1_1_1__0__Impl() throws RecognitionException;
+     void rule__XMemberFeatureCall__Group_1_1_1__1() throws RecognitionException;
+     void rule__XMemberFeatureCall__Group_1_1_1__1__Impl() throws RecognitionException;
+     void rule__XMemberFeatureCall__Group_1_1_1__2() throws RecognitionException;
+     void rule__XMemberFeatureCall__Group_1_1_1__2__Impl() throws RecognitionException;
+     void rule__XMemberFeatureCall__Group_1_1_1__3() throws RecognitionException;
+     void rule__XMemberFeatureCall__Group_1_1_1__3__Impl() throws RecognitionException;
+     void rule__XMemberFeatureCall__Group_1_1_1_2__0() throws RecognitionException;
+     void rule__XMemberFeatureCall__Group_1_1_1_2__0__Impl() throws RecognitionException;
+     void rule__XMemberFeatureCall__Group_1_1_1_2__1() throws RecognitionException;
+     void rule__XMemberFeatureCall__Group_1_1_1_2__1__Impl() throws RecognitionException;
+     void rule__XMemberFeatureCall__Group_1_1_3__0() throws RecognitionException;
+     void rule__XMemberFeatureCall__Group_1_1_3__0__Impl() throws RecognitionException;
+     void rule__XMemberFeatureCall__Group_1_1_3__1() throws RecognitionException;
+     void rule__XMemberFeatureCall__Group_1_1_3__1__Impl() throws RecognitionException;
+     void rule__XMemberFeatureCall__Group_1_1_3__2() throws RecognitionException;
+     void rule__XMemberFeatureCall__Group_1_1_3__2__Impl() throws RecognitionException;
+     void rule__XMemberFeatureCall__Group_1_1_3_1_1__0() throws RecognitionException;
+     void rule__XMemberFeatureCall__Group_1_1_3_1_1__0__Impl() throws RecognitionException;
+     void rule__XMemberFeatureCall__Group_1_1_3_1_1__1() throws RecognitionException;
+     void rule__XMemberFeatureCall__Group_1_1_3_1_1__1__Impl() throws RecognitionException;
+     void rule__XMemberFeatureCall__Group_1_1_3_1_1_1__0() throws RecognitionException;
+     void rule__XMemberFeatureCall__Group_1_1_3_1_1_1__0__Impl() throws RecognitionException;
+     void rule__XMemberFeatureCall__Group_1_1_3_1_1_1__1() throws RecognitionException;
+     void rule__XMemberFeatureCall__Group_1_1_3_1_1_1__1__Impl() throws RecognitionException;
+     void rule__XSetLiteral__Group__0() throws RecognitionException;
+     void rule__XSetLiteral__Group__0__Impl() throws RecognitionException;
+     void rule__XSetLiteral__Group__1() throws RecognitionException;
+     void rule__XSetLiteral__Group__1__Impl() throws RecognitionException;
+     void rule__XSetLiteral__Group__2() throws RecognitionException;
+     void rule__XSetLiteral__Group__2__Impl() throws RecognitionException;
+     void rule__XSetLiteral__Group__3() throws RecognitionException;
+     void rule__XSetLiteral__Group__3__Impl() throws RecognitionException;
+     void rule__XSetLiteral__Group__4() throws RecognitionException;
+     void rule__XSetLiteral__Group__4__Impl() throws RecognitionException;
+     void rule__XSetLiteral__Group_3__0() throws RecognitionException;
+     void rule__XSetLiteral__Group_3__0__Impl() throws RecognitionException;
+     void rule__XSetLiteral__Group_3__1() throws RecognitionException;
+     void rule__XSetLiteral__Group_3__1__Impl() throws RecognitionException;
+     void rule__XSetLiteral__Group_3_1__0() throws RecognitionException;
+     void rule__XSetLiteral__Group_3_1__0__Impl() throws RecognitionException;
+     void rule__XSetLiteral__Group_3_1__1() throws RecognitionException;
+     void rule__XSetLiteral__Group_3_1__1__Impl() throws RecognitionException;
+     void rule__XListLiteral__Group__0() throws RecognitionException;
+     void rule__XListLiteral__Group__0__Impl() throws RecognitionException;
+     void rule__XListLiteral__Group__1() throws RecognitionException;
+     void rule__XListLiteral__Group__1__Impl() throws RecognitionException;
+     void rule__XListLiteral__Group__2() throws RecognitionException;
+     void rule__XListLiteral__Group__2__Impl() throws RecognitionException;
+     void rule__XListLiteral__Group__3() throws RecognitionException;
+     void rule__XListLiteral__Group__3__Impl() throws RecognitionException;
+     void rule__XListLiteral__Group__4() throws RecognitionException;
+     void rule__XListLiteral__Group__4__Impl() throws RecognitionException;
+     void rule__XListLiteral__Group_3__0() throws RecognitionException;
+     void rule__XListLiteral__Group_3__0__Impl() throws RecognitionException;
+     void rule__XListLiteral__Group_3__1() throws RecognitionException;
+     void rule__XListLiteral__Group_3__1__Impl() throws RecognitionException;
+     void rule__XListLiteral__Group_3_1__0() throws RecognitionException;
+     void rule__XListLiteral__Group_3_1__0__Impl() throws RecognitionException;
+     void rule__XListLiteral__Group_3_1__1() throws RecognitionException;
+     void rule__XListLiteral__Group_3_1__1__Impl() throws RecognitionException;
+     void rule__XClosure__Group__0() throws RecognitionException;
+     void rule__XClosure__Group__0__Impl() throws RecognitionException;
+     void rule__XClosure__Group__1() throws RecognitionException;
+     void rule__XClosure__Group__1__Impl() throws RecognitionException;
+     void rule__XClosure__Group__2() throws RecognitionException;
+     void rule__XClosure__Group__2__Impl() throws RecognitionException;
+     void rule__XClosure__Group__3() throws RecognitionException;
+     void rule__XClosure__Group__3__Impl() throws RecognitionException;
+     void rule__XClosure__Group_0__0() throws RecognitionException;
+     void rule__XClosure__Group_0__0__Impl() throws RecognitionException;
+     void rule__XClosure__Group_0_0__0() throws RecognitionException;
+     void rule__XClosure__Group_0_0__0__Impl() throws RecognitionException;
+     void rule__XClosure__Group_0_0__1() throws RecognitionException;
+     void rule__XClosure__Group_0_0__1__Impl() throws RecognitionException;
+     void rule__XClosure__Group_1__0() throws RecognitionException;
+     void rule__XClosure__Group_1__0__Impl() throws RecognitionException;
+     void rule__XClosure__Group_1_0__0() throws RecognitionException;
+     void rule__XClosure__Group_1_0__0__Impl() throws RecognitionException;
+     void rule__XClosure__Group_1_0__1() throws RecognitionException;
+     void rule__XClosure__Group_1_0__1__Impl() throws RecognitionException;
+     void rule__XClosure__Group_1_0_0__0() throws RecognitionException;
+     void rule__XClosure__Group_1_0_0__0__Impl() throws RecognitionException;
+     void rule__XClosure__Group_1_0_0__1() throws RecognitionException;
+     void rule__XClosure__Group_1_0_0__1__Impl() throws RecognitionException;
+     void rule__XClosure__Group_1_0_0_1__0() throws RecognitionException;
+     void rule__XClosure__Group_1_0_0_1__0__Impl() throws RecognitionException;
+     void rule__XClosure__Group_1_0_0_1__1() throws RecognitionException;
+     void rule__XClosure__Group_1_0_0_1__1__Impl() throws RecognitionException;
+     void rule__XExpressionInClosure__Group__0() throws RecognitionException;
+     void rule__XExpressionInClosure__Group__0__Impl() throws RecognitionException;
+     void rule__XExpressionInClosure__Group__1() throws RecognitionException;
+     void rule__XExpressionInClosure__Group__1__Impl() throws RecognitionException;
+     void rule__XExpressionInClosure__Group_1__0() throws RecognitionException;
+     void rule__XExpressionInClosure__Group_1__0__Impl() throws RecognitionException;
+     void rule__XExpressionInClosure__Group_1__1() throws RecognitionException;
+     void rule__XExpressionInClosure__Group_1__1__Impl() throws RecognitionException;
+     void rule__XShortClosure__Group__0() throws RecognitionException;
+     void rule__XShortClosure__Group__0__Impl() throws RecognitionException;
+     void rule__XShortClosure__Group__1() throws RecognitionException;
+     void rule__XShortClosure__Group__1__Impl() throws RecognitionException;
+     void rule__XShortClosure__Group_0__0() throws RecognitionException;
+     void rule__XShortClosure__Group_0__0__Impl() throws RecognitionException;
+     void rule__XShortClosure__Group_0_0__0() throws RecognitionException;
+     void rule__XShortClosure__Group_0_0__0__Impl() throws RecognitionException;
+     void rule__XShortClosure__Group_0_0__1() throws RecognitionException;
+     void rule__XShortClosure__Group_0_0__1__Impl() throws RecognitionException;
+     void rule__XShortClosure__Group_0_0__2() throws RecognitionException;
+     void rule__XShortClosure__Group_0_0__2__Impl() throws RecognitionException;
+     void rule__XShortClosure__Group_0_0_1__0() throws RecognitionException;
+     void rule__XShortClosure__Group_0_0_1__0__Impl() throws RecognitionException;
+     void rule__XShortClosure__Group_0_0_1__1() throws RecognitionException;
+     void rule__XShortClosure__Group_0_0_1__1__Impl() throws RecognitionException;
+     void rule__XShortClosure__Group_0_0_1_1__0() throws RecognitionException;
+     void rule__XShortClosure__Group_0_0_1_1__0__Impl() throws RecognitionException;
+     void rule__XShortClosure__Group_0_0_1_1__1() throws RecognitionException;
+     void rule__XShortClosure__Group_0_0_1_1__1__Impl() throws RecognitionException;
+     void rule__XParenthesizedExpression__Group__0() throws RecognitionException;
+     void rule__XParenthesizedExpression__Group__0__Impl() throws RecognitionException;
+     void rule__XParenthesizedExpression__Group__1() throws RecognitionException;
+     void rule__XParenthesizedExpression__Group__1__Impl() throws RecognitionException;
+     void rule__XParenthesizedExpression__Group__2() throws RecognitionException;
+     void rule__XParenthesizedExpression__Group__2__Impl() throws RecognitionException;
+     void rule__XIfExpression__Group__0() throws RecognitionException;
+     void rule__XIfExpression__Group__0__Impl() throws RecognitionException;
+     void rule__XIfExpression__Group__1() throws RecognitionException;
+     void rule__XIfExpression__Group__1__Impl() throws RecognitionException;
+     void rule__XIfExpression__Group__2() throws RecognitionException;
+     void rule__XIfExpression__Group__2__Impl() throws RecognitionException;
+     void rule__XIfExpression__Group__3() throws RecognitionException;
+     void rule__XIfExpression__Group__3__Impl() throws RecognitionException;
+     void rule__XIfExpression__Group__4() throws RecognitionException;
+     void rule__XIfExpression__Group__4__Impl() throws RecognitionException;
+     void rule__XIfExpression__Group__5() throws RecognitionException;
+     void rule__XIfExpression__Group__5__Impl() throws RecognitionException;
+     void rule__XIfExpression__Group__6() throws RecognitionException;
+     void rule__XIfExpression__Group__6__Impl() throws RecognitionException;
+     void rule__XIfExpression__Group_6__0() throws RecognitionException;
+     void rule__XIfExpression__Group_6__0__Impl() throws RecognitionException;
+     void rule__XIfExpression__Group_6__1() throws RecognitionException;
+     void rule__XIfExpression__Group_6__1__Impl() throws RecognitionException;
+     void rule__XSwitchExpression__Group__0() throws RecognitionException;
+     void rule__XSwitchExpression__Group__0__Impl() throws RecognitionException;
+     void rule__XSwitchExpression__Group__1() throws RecognitionException;
+     void rule__XSwitchExpression__Group__1__Impl() throws RecognitionException;
+     void rule__XSwitchExpression__Group__2() throws RecognitionException;
+     void rule__XSwitchExpression__Group__2__Impl() throws RecognitionException;
+     void rule__XSwitchExpression__Group__3() throws RecognitionException;
+     void rule__XSwitchExpression__Group__3__Impl() throws RecognitionException;
+     void rule__XSwitchExpression__Group__4() throws RecognitionException;
+     void rule__XSwitchExpression__Group__4__Impl() throws RecognitionException;
+     void rule__XSwitchExpression__Group__5() throws RecognitionException;
+     void rule__XSwitchExpression__Group__5__Impl() throws RecognitionException;
+     void rule__XSwitchExpression__Group__6() throws RecognitionException;
+     void rule__XSwitchExpression__Group__6__Impl() throws RecognitionException;
+     void rule__XSwitchExpression__Group_2_0__0() throws RecognitionException;
+     void rule__XSwitchExpression__Group_2_0__0__Impl() throws RecognitionException;
+     void rule__XSwitchExpression__Group_2_0__1() throws RecognitionException;
+     void rule__XSwitchExpression__Group_2_0__1__Impl() throws RecognitionException;
+     void rule__XSwitchExpression__Group_2_0__2() throws RecognitionException;
+     void rule__XSwitchExpression__Group_2_0__2__Impl() throws RecognitionException;
+     void rule__XSwitchExpression__Group_2_0_0__0() throws RecognitionException;
+     void rule__XSwitchExpression__Group_2_0_0__0__Impl() throws RecognitionException;
+     void rule__XSwitchExpression__Group_2_0_0_0__0() throws RecognitionException;
+     void rule__XSwitchExpression__Group_2_0_0_0__0__Impl() throws RecognitionException;
+     void rule__XSwitchExpression__Group_2_0_0_0__1() throws RecognitionException;
+     void rule__XSwitchExpression__Group_2_0_0_0__1__Impl() throws RecognitionException;
+     void rule__XSwitchExpression__Group_2_0_0_0__2() throws RecognitionException;
+     void rule__XSwitchExpression__Group_2_0_0_0__2__Impl() throws RecognitionException;
+     void rule__XSwitchExpression__Group_2_1__0() throws RecognitionException;
+     void rule__XSwitchExpression__Group_2_1__0__Impl() throws RecognitionException;
+     void rule__XSwitchExpression__Group_2_1__1() throws RecognitionException;
+     void rule__XSwitchExpression__Group_2_1__1__Impl() throws RecognitionException;
+     void rule__XSwitchExpression__Group_2_1_0__0() throws RecognitionException;
+     void rule__XSwitchExpression__Group_2_1_0__0__Impl() throws RecognitionException;
+     void rule__XSwitchExpression__Group_2_1_0_0__0() throws RecognitionException;
+     void rule__XSwitchExpression__Group_2_1_0_0__0__Impl() throws RecognitionException;
+     void rule__XSwitchExpression__Group_2_1_0_0__1() throws RecognitionException;
+     void rule__XSwitchExpression__Group_2_1_0_0__1__Impl() throws RecognitionException;
+     void rule__XSwitchExpression__Group_5__0() throws RecognitionException;
+     void rule__XSwitchExpression__Group_5__0__Impl() throws RecognitionException;
+     void rule__XSwitchExpression__Group_5__1() throws RecognitionException;
+     void rule__XSwitchExpression__Group_5__1__Impl() throws RecognitionException;
+     void rule__XSwitchExpression__Group_5__2() throws RecognitionException;
+     void rule__XSwitchExpression__Group_5__2__Impl() throws RecognitionException;
+     void rule__XCasePart__Group__0() throws RecognitionException;
+     void rule__XCasePart__Group__0__Impl() throws RecognitionException;
+     void rule__XCasePart__Group__1() throws RecognitionException;
+     void rule__XCasePart__Group__1__Impl() throws RecognitionException;
+     void rule__XCasePart__Group__2() throws RecognitionException;
+     void rule__XCasePart__Group__2__Impl() throws RecognitionException;
+     void rule__XCasePart__Group__3() throws RecognitionException;
+     void rule__XCasePart__Group__3__Impl() throws RecognitionException;
+     void rule__XCasePart__Group_2__0() throws RecognitionException;
+     void rule__XCasePart__Group_2__0__Impl() throws RecognitionException;
+     void rule__XCasePart__Group_2__1() throws RecognitionException;
+     void rule__XCasePart__Group_2__1__Impl() throws RecognitionException;
+     void rule__XCasePart__Group_3_0__0() throws RecognitionException;
+     void rule__XCasePart__Group_3_0__0__Impl() throws RecognitionException;
+     void rule__XCasePart__Group_3_0__1() throws RecognitionException;
+     void rule__XCasePart__Group_3_0__1__Impl() throws RecognitionException;
+     void rule__XForLoopExpression__Group__0() throws RecognitionException;
+     void rule__XForLoopExpression__Group__0__Impl() throws RecognitionException;
+     void rule__XForLoopExpression__Group__1() throws RecognitionException;
+     void rule__XForLoopExpression__Group__1__Impl() throws RecognitionException;
+     void rule__XForLoopExpression__Group__2() throws RecognitionException;
+     void rule__XForLoopExpression__Group__2__Impl() throws RecognitionException;
+     void rule__XForLoopExpression__Group__3() throws RecognitionException;
+     void rule__XForLoopExpression__Group__3__Impl() throws RecognitionException;
+     void rule__XForLoopExpression__Group_0__0() throws RecognitionException;
+     void rule__XForLoopExpression__Group_0__0__Impl() throws RecognitionException;
+     void rule__XForLoopExpression__Group_0_0__0() throws RecognitionException;
+     void rule__XForLoopExpression__Group_0_0__0__Impl() throws RecognitionException;
+     void rule__XForLoopExpression__Group_0_0__1() throws RecognitionException;
+     void rule__XForLoopExpression__Group_0_0__1__Impl() throws RecognitionException;
+     void rule__XForLoopExpression__Group_0_0__2() throws RecognitionException;
+     void rule__XForLoopExpression__Group_0_0__2__Impl() throws RecognitionException;
+     void rule__XForLoopExpression__Group_0_0__3() throws RecognitionException;
+     void rule__XForLoopExpression__Group_0_0__3__Impl() throws RecognitionException;
+     void rule__XForLoopExpression__Group_0_0__4() throws RecognitionException;
+     void rule__XForLoopExpression__Group_0_0__4__Impl() throws RecognitionException;
+     void rule__XBasicForLoopExpression__Group__0() throws RecognitionException;
+     void rule__XBasicForLoopExpression__Group__0__Impl() throws RecognitionException;
+     void rule__XBasicForLoopExpression__Group__1() throws RecognitionException;
+     void rule__XBasicForLoopExpression__Group__1__Impl() throws RecognitionException;
+     void rule__XBasicForLoopExpression__Group__2() throws RecognitionException;
+     void rule__XBasicForLoopExpression__Group__2__Impl() throws RecognitionException;
+     void rule__XBasicForLoopExpression__Group__3() throws RecognitionException;
+     void rule__XBasicForLoopExpression__Group__3__Impl() throws RecognitionException;
+     void rule__XBasicForLoopExpression__Group__4() throws RecognitionException;
+     void rule__XBasicForLoopExpression__Group__4__Impl() throws RecognitionException;
+     void rule__XBasicForLoopExpression__Group__5() throws RecognitionException;
+     void rule__XBasicForLoopExpression__Group__5__Impl() throws RecognitionException;
+     void rule__XBasicForLoopExpression__Group__6() throws RecognitionException;
+     void rule__XBasicForLoopExpression__Group__6__Impl() throws RecognitionException;
+     void rule__XBasicForLoopExpression__Group__7() throws RecognitionException;
+     void rule__XBasicForLoopExpression__Group__7__Impl() throws RecognitionException;
+     void rule__XBasicForLoopExpression__Group__8() throws RecognitionException;
+     void rule__XBasicForLoopExpression__Group__8__Impl() throws RecognitionException;
+     void rule__XBasicForLoopExpression__Group__9() throws RecognitionException;
+     void rule__XBasicForLoopExpression__Group__9__Impl() throws RecognitionException;
+     void rule__XBasicForLoopExpression__Group_3__0() throws RecognitionException;
+     void rule__XBasicForLoopExpression__Group_3__0__Impl() throws RecognitionException;
+     void rule__XBasicForLoopExpression__Group_3__1() throws RecognitionException;
+     void rule__XBasicForLoopExpression__Group_3__1__Impl() throws RecognitionException;
+     void rule__XBasicForLoopExpression__Group_3_1__0() throws RecognitionException;
+     void rule__XBasicForLoopExpression__Group_3_1__0__Impl() throws RecognitionException;
+     void rule__XBasicForLoopExpression__Group_3_1__1() throws RecognitionException;
+     void rule__XBasicForLoopExpression__Group_3_1__1__Impl() throws RecognitionException;
+     void rule__XBasicForLoopExpression__Group_7__0() throws RecognitionException;
+     void rule__XBasicForLoopExpression__Group_7__0__Impl() throws RecognitionException;
+     void rule__XBasicForLoopExpression__Group_7__1() throws RecognitionException;
+     void rule__XBasicForLoopExpression__Group_7__1__Impl() throws RecognitionException;
+     void rule__XBasicForLoopExpression__Group_7_1__0() throws RecognitionException;
+     void rule__XBasicForLoopExpression__Group_7_1__0__Impl() throws RecognitionException;
+     void rule__XBasicForLoopExpression__Group_7_1__1() throws RecognitionException;
+     void rule__XBasicForLoopExpression__Group_7_1__1__Impl() throws RecognitionException;
+     void rule__XWhileExpression__Group__0() throws RecognitionException;
+     void rule__XWhileExpression__Group__0__Impl() throws RecognitionException;
+     void rule__XWhileExpression__Group__1() throws RecognitionException;
+     void rule__XWhileExpression__Group__1__Impl() throws RecognitionException;
+     void rule__XWhileExpression__Group__2() throws RecognitionException;
+     void rule__XWhileExpression__Group__2__Impl() throws RecognitionException;
+     void rule__XWhileExpression__Group__3() throws RecognitionException;
+     void rule__XWhileExpression__Group__3__Impl() throws RecognitionException;
+     void rule__XWhileExpression__Group__4() throws RecognitionException;
+     void rule__XWhileExpression__Group__4__Impl() throws RecognitionException;
+     void rule__XWhileExpression__Group__5() throws RecognitionException;
+     void rule__XWhileExpression__Group__5__Impl() throws RecognitionException;
+     void rule__XDoWhileExpression__Group__0() throws RecognitionException;
+     void rule__XDoWhileExpression__Group__0__Impl() throws RecognitionException;
+     void rule__XDoWhileExpression__Group__1() throws RecognitionException;
+     void rule__XDoWhileExpression__Group__1__Impl() throws RecognitionException;
+     void rule__XDoWhileExpression__Group__2() throws RecognitionException;
+     void rule__XDoWhileExpression__Group__2__Impl() throws RecognitionException;
+     void rule__XDoWhileExpression__Group__3() throws RecognitionException;
+     void rule__XDoWhileExpression__Group__3__Impl() throws RecognitionException;
+     void rule__XDoWhileExpression__Group__4() throws RecognitionException;
+     void rule__XDoWhileExpression__Group__4__Impl() throws RecognitionException;
+     void rule__XDoWhileExpression__Group__5() throws RecognitionException;
+     void rule__XDoWhileExpression__Group__5__Impl() throws RecognitionException;
+     void rule__XDoWhileExpression__Group__6() throws RecognitionException;
+     void rule__XDoWhileExpression__Group__6__Impl() throws RecognitionException;
+     void rule__XBlockExpression__Group__0() throws RecognitionException;
+     void rule__XBlockExpression__Group__0__Impl() throws RecognitionException;
+     void rule__XBlockExpression__Group__1() throws RecognitionException;
+     void rule__XBlockExpression__Group__1__Impl() throws RecognitionException;
+     void rule__XBlockExpression__Group__2() throws RecognitionException;
+     void rule__XBlockExpression__Group__2__Impl() throws RecognitionException;
+     void rule__XBlockExpression__Group__3() throws RecognitionException;
+     void rule__XBlockExpression__Group__3__Impl() throws RecognitionException;
+     void rule__XBlockExpression__Group_2__0() throws RecognitionException;
+     void rule__XBlockExpression__Group_2__0__Impl() throws RecognitionException;
+     void rule__XBlockExpression__Group_2__1() throws RecognitionException;
+     void rule__XBlockExpression__Group_2__1__Impl() throws RecognitionException;
+     void rule__XVariableDeclaration__Group__0() throws RecognitionException;
+     void rule__XVariableDeclaration__Group__0__Impl() throws RecognitionException;
+     void rule__XVariableDeclaration__Group__1() throws RecognitionException;
+     void rule__XVariableDeclaration__Group__1__Impl() throws RecognitionException;
+     void rule__XVariableDeclaration__Group__2() throws RecognitionException;
+     void rule__XVariableDeclaration__Group__2__Impl() throws RecognitionException;
+     void rule__XVariableDeclaration__Group__3() throws RecognitionException;
+     void rule__XVariableDeclaration__Group__3__Impl() throws RecognitionException;
+     void rule__XVariableDeclaration__Group_2_0__0() throws RecognitionException;
+     void rule__XVariableDeclaration__Group_2_0__0__Impl() throws RecognitionException;
+     void rule__XVariableDeclaration__Group_2_0_0__0() throws RecognitionException;
+     void rule__XVariableDeclaration__Group_2_0_0__0__Impl() throws RecognitionException;
+     void rule__XVariableDeclaration__Group_2_0_0__1() throws RecognitionException;
+     void rule__XVariableDeclaration__Group_2_0_0__1__Impl() throws RecognitionException;
+     void rule__XVariableDeclaration__Group_3__0() throws RecognitionException;
+     void rule__XVariableDeclaration__Group_3__0__Impl() throws RecognitionException;
+     void rule__XVariableDeclaration__Group_3__1() throws RecognitionException;
+     void rule__XVariableDeclaration__Group_3__1__Impl() throws RecognitionException;
+     void rule__JvmFormalParameter__Group__0() throws RecognitionException;
+     void rule__JvmFormalParameter__Group__0__Impl() throws RecognitionException;
+     void rule__JvmFormalParameter__Group__1() throws RecognitionException;
+     void rule__JvmFormalParameter__Group__1__Impl() throws RecognitionException;
+     void rule__FullJvmFormalParameter__Group__0() throws RecognitionException;
+     void rule__FullJvmFormalParameter__Group__0__Impl() throws RecognitionException;
+     void rule__FullJvmFormalParameter__Group__1() throws RecognitionException;
+     void rule__FullJvmFormalParameter__Group__1__Impl() throws RecognitionException;
+     void rule__XFeatureCall__Group__0() throws RecognitionException;
+     void rule__XFeatureCall__Group__0__Impl() throws RecognitionException;
+     void rule__XFeatureCall__Group__1() throws RecognitionException;
+     void rule__XFeatureCall__Group__1__Impl() throws RecognitionException;
+     void rule__XFeatureCall__Group__2() throws RecognitionException;
+     void rule__XFeatureCall__Group__2__Impl() throws RecognitionException;
+     void rule__XFeatureCall__Group__3() throws RecognitionException;
+     void rule__XFeatureCall__Group__3__Impl() throws RecognitionException;
+     void rule__XFeatureCall__Group__4() throws RecognitionException;
+     void rule__XFeatureCall__Group__4__Impl() throws RecognitionException;
+     void rule__XFeatureCall__Group_1__0() throws RecognitionException;
+     void rule__XFeatureCall__Group_1__0__Impl() throws RecognitionException;
+     void rule__XFeatureCall__Group_1__1() throws RecognitionException;
+     void rule__XFeatureCall__Group_1__1__Impl() throws RecognitionException;
+     void rule__XFeatureCall__Group_1__2() throws RecognitionException;
+     void rule__XFeatureCall__Group_1__2__Impl() throws RecognitionException;
+     void rule__XFeatureCall__Group_1__3() throws RecognitionException;
+     void rule__XFeatureCall__Group_1__3__Impl() throws RecognitionException;
+     void rule__XFeatureCall__Group_1_2__0() throws RecognitionException;
+     void rule__XFeatureCall__Group_1_2__0__Impl() throws RecognitionException;
+     void rule__XFeatureCall__Group_1_2__1() throws RecognitionException;
+     void rule__XFeatureCall__Group_1_2__1__Impl() throws RecognitionException;
+     void rule__XFeatureCall__Group_3__0() throws RecognitionException;
+     void rule__XFeatureCall__Group_3__0__Impl() throws RecognitionException;
+     void rule__XFeatureCall__Group_3__1() throws RecognitionException;
+     void rule__XFeatureCall__Group_3__1__Impl() throws RecognitionException;
+     void rule__XFeatureCall__Group_3__2() throws RecognitionException;
+     void rule__XFeatureCall__Group_3__2__Impl() throws RecognitionException;
+     void rule__XFeatureCall__Group_3_1_1__0() throws RecognitionException;
+     void rule__XFeatureCall__Group_3_1_1__0__Impl() throws RecognitionException;
+     void rule__XFeatureCall__Group_3_1_1__1() throws RecognitionException;
+     void rule__XFeatureCall__Group_3_1_1__1__Impl() throws RecognitionException;
+     void rule__XFeatureCall__Group_3_1_1_1__0() throws RecognitionException;
+     void rule__XFeatureCall__Group_3_1_1_1__0__Impl() throws RecognitionException;
+     void rule__XFeatureCall__Group_3_1_1_1__1() throws RecognitionException;
+     void rule__XFeatureCall__Group_3_1_1_1__1__Impl() throws RecognitionException;
+     void rule__XConstructorCall__Group__0() throws RecognitionException;
+     void rule__XConstructorCall__Group__0__Impl() throws RecognitionException;
+     void rule__XConstructorCall__Group__1() throws RecognitionException;
+     void rule__XConstructorCall__Group__1__Impl() throws RecognitionException;
+     void rule__XConstructorCall__Group__2() throws RecognitionException;
+     void rule__XConstructorCall__Group__2__Impl() throws RecognitionException;
+     void rule__XConstructorCall__Group__3() throws RecognitionException;
+     void rule__XConstructorCall__Group__3__Impl() throws RecognitionException;
+     void rule__XConstructorCall__Group__4() throws RecognitionException;
+     void rule__XConstructorCall__Group__4__Impl() throws RecognitionException;
+     void rule__XConstructorCall__Group__5() throws RecognitionException;
+     void rule__XConstructorCall__Group__5__Impl() throws RecognitionException;
+     void rule__XConstructorCall__Group_3__0() throws RecognitionException;
+     void rule__XConstructorCall__Group_3__0__Impl() throws RecognitionException;
+     void rule__XConstructorCall__Group_3__1() throws RecognitionException;
+     void rule__XConstructorCall__Group_3__1__Impl() throws RecognitionException;
+     void rule__XConstructorCall__Group_3__2() throws RecognitionException;
+     void rule__XConstructorCall__Group_3__2__Impl() throws RecognitionException;
+     void rule__XConstructorCall__Group_3__3() throws RecognitionException;
+     void rule__XConstructorCall__Group_3__3__Impl() throws RecognitionException;
+     void rule__XConstructorCall__Group_3_2__0() throws RecognitionException;
+     void rule__XConstructorCall__Group_3_2__0__Impl() throws RecognitionException;
+     void rule__XConstructorCall__Group_3_2__1() throws RecognitionException;
+     void rule__XConstructorCall__Group_3_2__1__Impl() throws RecognitionException;
+     void rule__XConstructorCall__Group_4__0() throws RecognitionException;
+     void rule__XConstructorCall__Group_4__0__Impl() throws RecognitionException;
+     void rule__XConstructorCall__Group_4__1() throws RecognitionException;
+     void rule__XConstructorCall__Group_4__1__Impl() throws RecognitionException;
+     void rule__XConstructorCall__Group_4__2() throws RecognitionException;
+     void rule__XConstructorCall__Group_4__2__Impl() throws RecognitionException;
+     void rule__XConstructorCall__Group_4_1_1__0() throws RecognitionException;
+     void rule__XConstructorCall__Group_4_1_1__0__Impl() throws RecognitionException;
+     void rule__XConstructorCall__Group_4_1_1__1() throws RecognitionException;
+     void rule__XConstructorCall__Group_4_1_1__1__Impl() throws RecognitionException;
+     void rule__XConstructorCall__Group_4_1_1_1__0() throws RecognitionException;
+     void rule__XConstructorCall__Group_4_1_1_1__0__Impl() throws RecognitionException;
+     void rule__XConstructorCall__Group_4_1_1_1__1() throws RecognitionException;
+     void rule__XConstructorCall__Group_4_1_1_1__1__Impl() throws RecognitionException;
+     void rule__XBooleanLiteral__Group__0() throws RecognitionException;
+     void rule__XBooleanLiteral__Group__0__Impl() throws RecognitionException;
+     void rule__XBooleanLiteral__Group__1() throws RecognitionException;
+     void rule__XBooleanLiteral__Group__1__Impl() throws RecognitionException;
+     void rule__XNullLiteral__Group__0() throws RecognitionException;
+     void rule__XNullLiteral__Group__0__Impl() throws RecognitionException;
+     void rule__XNullLiteral__Group__1() throws RecognitionException;
+     void rule__XNullLiteral__Group__1__Impl() throws RecognitionException;
+     void rule__XNumberLiteral__Group__0() throws RecognitionException;
+     void rule__XNumberLiteral__Group__0__Impl() throws RecognitionException;
+     void rule__XNumberLiteral__Group__1() throws RecognitionException;
+     void rule__XNumberLiteral__Group__1__Impl() throws RecognitionException;
+     void rule__XStringLiteral__Group__0() throws RecognitionException;
+     void rule__XStringLiteral__Group__0__Impl() throws RecognitionException;
+     void rule__XStringLiteral__Group__1() throws RecognitionException;
+     void rule__XStringLiteral__Group__1__Impl() throws RecognitionException;
+     void rule__XTypeLiteral__Group__0() throws RecognitionException;
+     void rule__XTypeLiteral__Group__0__Impl() throws RecognitionException;
+     void rule__XTypeLiteral__Group__1() throws RecognitionException;
+     void rule__XTypeLiteral__Group__1__Impl() throws RecognitionException;
+     void rule__XTypeLiteral__Group__2() throws RecognitionException;
+     void rule__XTypeLiteral__Group__2__Impl() throws RecognitionException;
+     void rule__XTypeLiteral__Group__3() throws RecognitionException;
+     void rule__XTypeLiteral__Group__3__Impl() throws RecognitionException;
+     void rule__XTypeLiteral__Group__4() throws RecognitionException;
+     void rule__XTypeLiteral__Group__4__Impl() throws RecognitionException;
+     void rule__XTypeLiteral__Group__5() throws RecognitionException;
+     void rule__XTypeLiteral__Group__5__Impl() throws RecognitionException;
+     void rule__XThrowExpression__Group__0() throws RecognitionException;
+     void rule__XThrowExpression__Group__0__Impl() throws RecognitionException;
+     void rule__XThrowExpression__Group__1() throws RecognitionException;
+     void rule__XThrowExpression__Group__1__Impl() throws RecognitionException;
+     void rule__XThrowExpression__Group__2() throws RecognitionException;
+     void rule__XThrowExpression__Group__2__Impl() throws RecognitionException;
+     void rule__XReturnExpression__Group__0() throws RecognitionException;
+     void rule__XReturnExpression__Group__0__Impl() throws RecognitionException;
+     void rule__XReturnExpression__Group__1() throws RecognitionException;
+     void rule__XReturnExpression__Group__1__Impl() throws RecognitionException;
+     void rule__XReturnExpression__Group__2() throws RecognitionException;
+     void rule__XReturnExpression__Group__2__Impl() throws RecognitionException;
+     void rule__XTryCatchFinallyExpression__Group__0() throws RecognitionException;
+     void rule__XTryCatchFinallyExpression__Group__0__Impl() throws RecognitionException;
+     void rule__XTryCatchFinallyExpression__Group__1() throws RecognitionException;
+     void rule__XTryCatchFinallyExpression__Group__1__Impl() throws RecognitionException;
+     void rule__XTryCatchFinallyExpression__Group__2() throws RecognitionException;
+     void rule__XTryCatchFinallyExpression__Group__2__Impl() throws RecognitionException;
+     void rule__XTryCatchFinallyExpression__Group__3() throws RecognitionException;
+     void rule__XTryCatchFinallyExpression__Group__3__Impl() throws RecognitionException;
+     void rule__XTryCatchFinallyExpression__Group_3_0__0() throws RecognitionException;
+     void rule__XTryCatchFinallyExpression__Group_3_0__0__Impl() throws RecognitionException;
+     void rule__XTryCatchFinallyExpression__Group_3_0__1() throws RecognitionException;
+     void rule__XTryCatchFinallyExpression__Group_3_0__1__Impl() throws RecognitionException;
+     void rule__XTryCatchFinallyExpression__Group_3_0_1__0() throws RecognitionException;
+     void rule__XTryCatchFinallyExpression__Group_3_0_1__0__Impl() throws RecognitionException;
+     void rule__XTryCatchFinallyExpression__Group_3_0_1__1() throws RecognitionException;
+     void rule__XTryCatchFinallyExpression__Group_3_0_1__1__Impl() throws RecognitionException;
+     void rule__XTryCatchFinallyExpression__Group_3_1__0() throws RecognitionException;
+     void rule__XTryCatchFinallyExpression__Group_3_1__0__Impl() throws RecognitionException;
+     void rule__XTryCatchFinallyExpression__Group_3_1__1() throws RecognitionException;
+     void rule__XTryCatchFinallyExpression__Group_3_1__1__Impl() throws RecognitionException;
+     void rule__XSynchronizedExpression__Group__0() throws RecognitionException;
+     void rule__XSynchronizedExpression__Group__0__Impl() throws RecognitionException;
+     void rule__XSynchronizedExpression__Group__1() throws RecognitionException;
+     void rule__XSynchronizedExpression__Group__1__Impl() throws RecognitionException;
+     void rule__XSynchronizedExpression__Group__2() throws RecognitionException;
+     void rule__XSynchronizedExpression__Group__2__Impl() throws RecognitionException;
+     void rule__XSynchronizedExpression__Group__3() throws RecognitionException;
+     void rule__XSynchronizedExpression__Group__3__Impl() throws RecognitionException;
+     void rule__XSynchronizedExpression__Group_0__0() throws RecognitionException;
+     void rule__XSynchronizedExpression__Group_0__0__Impl() throws RecognitionException;
+     void rule__XSynchronizedExpression__Group_0_0__0() throws RecognitionException;
+     void rule__XSynchronizedExpression__Group_0_0__0__Impl() throws RecognitionException;
+     void rule__XSynchronizedExpression__Group_0_0__1() throws RecognitionException;
+     void rule__XSynchronizedExpression__Group_0_0__1__Impl() throws RecognitionException;
+     void rule__XSynchronizedExpression__Group_0_0__2() throws RecognitionException;
+     void rule__XSynchronizedExpression__Group_0_0__2__Impl() throws RecognitionException;
+     void rule__XCatchClause__Group__0() throws RecognitionException;
+     void rule__XCatchClause__Group__0__Impl() throws RecognitionException;
+     void rule__XCatchClause__Group__1() throws RecognitionException;
+     void rule__XCatchClause__Group__1__Impl() throws RecognitionException;
+     void rule__XCatchClause__Group__2() throws RecognitionException;
+     void rule__XCatchClause__Group__2__Impl() throws RecognitionException;
+     void rule__XCatchClause__Group__3() throws RecognitionException;
+     void rule__XCatchClause__Group__3__Impl() throws RecognitionException;
+     void rule__XCatchClause__Group__4() throws RecognitionException;
+     void rule__XCatchClause__Group__4__Impl() throws RecognitionException;
+     void rule__QualifiedName__Group__0() throws RecognitionException;
+     void rule__QualifiedName__Group__0__Impl() throws RecognitionException;
+     void rule__QualifiedName__Group__1() throws RecognitionException;
+     void rule__QualifiedName__Group__1__Impl() throws RecognitionException;
+     void rule__QualifiedName__Group_1__0() throws RecognitionException;
+     void rule__QualifiedName__Group_1__0__Impl() throws RecognitionException;
+     void rule__QualifiedName__Group_1__1() throws RecognitionException;
+     void rule__QualifiedName__Group_1__1__Impl() throws RecognitionException;
+     void rule__Number__Group_1__0() throws RecognitionException;
+     void rule__Number__Group_1__0__Impl() throws RecognitionException;
+     void rule__Number__Group_1__1() throws RecognitionException;
+     void rule__Number__Group_1__1__Impl() throws RecognitionException;
+     void rule__Number__Group_1_1__0() throws RecognitionException;
+     void rule__Number__Group_1_1__0__Impl() throws RecognitionException;
+     void rule__Number__Group_1_1__1() throws RecognitionException;
+     void rule__Number__Group_1_1__1__Impl() throws RecognitionException;
+     void rule__JvmTypeReference__Group_0__0() throws RecognitionException;
+     void rule__JvmTypeReference__Group_0__0__Impl() throws RecognitionException;
+     void rule__JvmTypeReference__Group_0__1() throws RecognitionException;
+     void rule__JvmTypeReference__Group_0__1__Impl() throws RecognitionException;
+     void rule__JvmTypeReference__Group_0_1__0() throws RecognitionException;
+     void rule__JvmTypeReference__Group_0_1__0__Impl() throws RecognitionException;
+     void rule__JvmTypeReference__Group_0_1_0__0() throws RecognitionException;
+     void rule__JvmTypeReference__Group_0_1_0__0__Impl() throws RecognitionException;
+     void rule__JvmTypeReference__Group_0_1_0__1() throws RecognitionException;
+     void rule__JvmTypeReference__Group_0_1_0__1__Impl() throws RecognitionException;
+     void rule__ArrayBrackets__Group__0() throws RecognitionException;
+     void rule__ArrayBrackets__Group__0__Impl() throws RecognitionException;
+     void rule__ArrayBrackets__Group__1() throws RecognitionException;
+     void rule__ArrayBrackets__Group__1__Impl() throws RecognitionException;
+     void rule__XFunctionTypeRef__Group__0() throws RecognitionException;
+     void rule__XFunctionTypeRef__Group__0__Impl() throws RecognitionException;
+     void rule__XFunctionTypeRef__Group__1() throws RecognitionException;
+     void rule__XFunctionTypeRef__Group__1__Impl() throws RecognitionException;
+     void rule__XFunctionTypeRef__Group__2() throws RecognitionException;
+     void rule__XFunctionTypeRef__Group__2__Impl() throws RecognitionException;
+     void rule__XFunctionTypeRef__Group_0__0() throws RecognitionException;
+     void rule__XFunctionTypeRef__Group_0__0__Impl() throws RecognitionException;
+     void rule__XFunctionTypeRef__Group_0__1() throws RecognitionException;
+     void rule__XFunctionTypeRef__Group_0__1__Impl() throws RecognitionException;
+     void rule__XFunctionTypeRef__Group_0__2() throws RecognitionException;
+     void rule__XFunctionTypeRef__Group_0__2__Impl() throws RecognitionException;
+     void rule__XFunctionTypeRef__Group_0_1__0() throws RecognitionException;
+     void rule__XFunctionTypeRef__Group_0_1__0__Impl() throws RecognitionException;
+     void rule__XFunctionTypeRef__Group_0_1__1() throws RecognitionException;
+     void rule__XFunctionTypeRef__Group_0_1__1__Impl() throws RecognitionException;
+     void rule__XFunctionTypeRef__Group_0_1_1__0() throws RecognitionException;
+     void rule__XFunctionTypeRef__Group_0_1_1__0__Impl() throws RecognitionException;
+     void rule__XFunctionTypeRef__Group_0_1_1__1() throws RecognitionException;
+     void rule__XFunctionTypeRef__Group_0_1_1__1__Impl() throws RecognitionException;
+     void rule__JvmParameterizedTypeReference__Group__0() throws RecognitionException;
+     void rule__JvmParameterizedTypeReference__Group__0__Impl() throws RecognitionException;
+     void rule__JvmParameterizedTypeReference__Group__1() throws RecognitionException;
+     void rule__JvmParameterizedTypeReference__Group__1__Impl() throws RecognitionException;
+     void rule__JvmParameterizedTypeReference__Group_1__0() throws RecognitionException;
+     void rule__JvmParameterizedTypeReference__Group_1__0__Impl() throws RecognitionException;
+     void rule__JvmParameterizedTypeReference__Group_1__1() throws RecognitionException;
+     void rule__JvmParameterizedTypeReference__Group_1__1__Impl() throws RecognitionException;
+     void rule__JvmParameterizedTypeReference__Group_1__2() throws RecognitionException;
+     void rule__JvmParameterizedTypeReference__Group_1__2__Impl() throws RecognitionException;
+     void rule__JvmParameterizedTypeReference__Group_1__3() throws RecognitionException;
+     void rule__JvmParameterizedTypeReference__Group_1__3__Impl() throws RecognitionException;
+     void rule__JvmParameterizedTypeReference__Group_1__4() throws RecognitionException;
+     void rule__JvmParameterizedTypeReference__Group_1__4__Impl() throws RecognitionException;
+     void rule__JvmParameterizedTypeReference__Group_1_2__0() throws RecognitionException;
+     void rule__JvmParameterizedTypeReference__Group_1_2__0__Impl() throws RecognitionException;
+     void rule__JvmParameterizedTypeReference__Group_1_2__1() throws RecognitionException;
+     void rule__JvmParameterizedTypeReference__Group_1_2__1__Impl() throws RecognitionException;
+     void rule__JvmParameterizedTypeReference__Group_1_4__0() throws RecognitionException;
+     void rule__JvmParameterizedTypeReference__Group_1_4__0__Impl() throws RecognitionException;
+     void rule__JvmParameterizedTypeReference__Group_1_4__1() throws RecognitionException;
+     void rule__JvmParameterizedTypeReference__Group_1_4__1__Impl() throws RecognitionException;
+     void rule__JvmParameterizedTypeReference__Group_1_4__2() throws RecognitionException;
+     void rule__JvmParameterizedTypeReference__Group_1_4__2__Impl() throws RecognitionException;
+     void rule__JvmParameterizedTypeReference__Group_1_4_0__0() throws RecognitionException;
+     void rule__JvmParameterizedTypeReference__Group_1_4_0__0__Impl() throws RecognitionException;
+     void rule__JvmParameterizedTypeReference__Group_1_4_0_0__0() throws RecognitionException;
+     void rule__JvmParameterizedTypeReference__Group_1_4_0_0__0__Impl() throws RecognitionException;
+     void rule__JvmParameterizedTypeReference__Group_1_4_0_0__1() throws RecognitionException;
+     void rule__JvmParameterizedTypeReference__Group_1_4_0_0__1__Impl() throws RecognitionException;
+     void rule__JvmParameterizedTypeReference__Group_1_4_2__0() throws RecognitionException;
+     void rule__JvmParameterizedTypeReference__Group_1_4_2__0__Impl() throws RecognitionException;
+     void rule__JvmParameterizedTypeReference__Group_1_4_2__1() throws RecognitionException;
+     void rule__JvmParameterizedTypeReference__Group_1_4_2__1__Impl() throws RecognitionException;
+     void rule__JvmParameterizedTypeReference__Group_1_4_2__2() throws RecognitionException;
+     void rule__JvmParameterizedTypeReference__Group_1_4_2__2__Impl() throws RecognitionException;
+     void rule__JvmParameterizedTypeReference__Group_1_4_2__3() throws RecognitionException;
+     void rule__JvmParameterizedTypeReference__Group_1_4_2__3__Impl() throws RecognitionException;
+     void rule__JvmParameterizedTypeReference__Group_1_4_2_2__0() throws RecognitionException;
+     void rule__JvmParameterizedTypeReference__Group_1_4_2_2__0__Impl() throws RecognitionException;
+     void rule__JvmParameterizedTypeReference__Group_1_4_2_2__1() throws RecognitionException;
+     void rule__JvmParameterizedTypeReference__Group_1_4_2_2__1__Impl() throws RecognitionException;
+     void rule__JvmWildcardTypeReference__Group__0() throws RecognitionException;
+     void rule__JvmWildcardTypeReference__Group__0__Impl() throws RecognitionException;
+     void rule__JvmWildcardTypeReference__Group__1() throws RecognitionException;
+     void rule__JvmWildcardTypeReference__Group__1__Impl() throws RecognitionException;
+     void rule__JvmWildcardTypeReference__Group__2() throws RecognitionException;
+     void rule__JvmWildcardTypeReference__Group__2__Impl() throws RecognitionException;
+     void rule__JvmWildcardTypeReference__Group_2_0__0() throws RecognitionException;
+     void rule__JvmWildcardTypeReference__Group_2_0__0__Impl() throws RecognitionException;
+     void rule__JvmWildcardTypeReference__Group_2_0__1() throws RecognitionException;
+     void rule__JvmWildcardTypeReference__Group_2_0__1__Impl() throws RecognitionException;
+     void rule__JvmWildcardTypeReference__Group_2_1__0() throws RecognitionException;
+     void rule__JvmWildcardTypeReference__Group_2_1__0__Impl() throws RecognitionException;
+     void rule__JvmWildcardTypeReference__Group_2_1__1() throws RecognitionException;
+     void rule__JvmWildcardTypeReference__Group_2_1__1__Impl() throws RecognitionException;
+     void rule__JvmUpperBound__Group__0() throws RecognitionException;
+     void rule__JvmUpperBound__Group__0__Impl() throws RecognitionException;
+     void rule__JvmUpperBound__Group__1() throws RecognitionException;
+     void rule__JvmUpperBound__Group__1__Impl() throws RecognitionException;
+     void rule__JvmUpperBoundAnded__Group__0() throws RecognitionException;
+     void rule__JvmUpperBoundAnded__Group__0__Impl() throws RecognitionException;
+     void rule__JvmUpperBoundAnded__Group__1() throws RecognitionException;
+     void rule__JvmUpperBoundAnded__Group__1__Impl() throws RecognitionException;
+     void rule__JvmLowerBound__Group__0() throws RecognitionException;
+     void rule__JvmLowerBound__Group__0__Impl() throws RecognitionException;
+     void rule__JvmLowerBound__Group__1() throws RecognitionException;
+     void rule__JvmLowerBound__Group__1__Impl() throws RecognitionException;
+     void rule__JvmLowerBoundAnded__Group__0() throws RecognitionException;
+     void rule__JvmLowerBoundAnded__Group__0__Impl() throws RecognitionException;
+     void rule__JvmLowerBoundAnded__Group__1() throws RecognitionException;
+     void rule__JvmLowerBoundAnded__Group__1__Impl() throws RecognitionException;
+     void rule__QualifiedNameWithWildcard__Group__0() throws RecognitionException;
+     void rule__QualifiedNameWithWildcard__Group__0__Impl() throws RecognitionException;
+     void rule__QualifiedNameWithWildcard__Group__1() throws RecognitionException;
+     void rule__QualifiedNameWithWildcard__Group__1__Impl() throws RecognitionException;
+     void rule__QualifiedNameWithWildcard__Group__2() throws RecognitionException;
+     void rule__QualifiedNameWithWildcard__Group__2__Impl() throws RecognitionException;
+     void rule__XImportDeclaration__Group__0() throws RecognitionException;
+     void rule__XImportDeclaration__Group__0__Impl() throws RecognitionException;
+     void rule__XImportDeclaration__Group__1() throws RecognitionException;
+     void rule__XImportDeclaration__Group__1__Impl() throws RecognitionException;
+     void rule__XImportDeclaration__Group__2() throws RecognitionException;
+     void rule__XImportDeclaration__Group__2__Impl() throws RecognitionException;
+     void rule__XImportDeclaration__Group_1_0__0() throws RecognitionException;
+     void rule__XImportDeclaration__Group_1_0__0__Impl() throws RecognitionException;
+     void rule__XImportDeclaration__Group_1_0__1() throws RecognitionException;
+     void rule__XImportDeclaration__Group_1_0__1__Impl() throws RecognitionException;
+     void rule__XImportDeclaration__Group_1_0__2() throws RecognitionException;
+     void rule__XImportDeclaration__Group_1_0__2__Impl() throws RecognitionException;
+     void rule__XImportDeclaration__Group_1_0__3() throws RecognitionException;
+     void rule__XImportDeclaration__Group_1_0__3__Impl() throws RecognitionException;
+     void rule__QualifiedNameInStaticImport__Group__0() throws RecognitionException;
+     void rule__QualifiedNameInStaticImport__Group__0__Impl() throws RecognitionException;
+     void rule__QualifiedNameInStaticImport__Group__1() throws RecognitionException;
+     void rule__QualifiedNameInStaticImport__Group__1__Impl() throws RecognitionException;
+     void rule__Font__UnorderedGroup() throws RecognitionException;
+     void rule__Font__UnorderedGroup__Impl() throws RecognitionException;
+     void rule__Font__UnorderedGroup__0() throws RecognitionException;
+     void rule__Font__UnorderedGroup__1() throws RecognitionException;
+     void rule__Font__UnorderedGroup__2() throws RecognitionException;
+     void rule__Font__UnorderedGroup__3() throws RecognitionException;
+     void rule__Style__UnorderedGroup_4() throws RecognitionException;
+     void rule__Style__UnorderedGroup_4__Impl() throws RecognitionException;
+     void rule__Style__UnorderedGroup_4__0() throws RecognitionException;
+     void rule__Style__UnorderedGroup_4__1() throws RecognitionException;
+     void rule__Style__UnorderedGroup_4__2() throws RecognitionException;
+     void rule__Style__UnorderedGroup_4__3() throws RecognitionException;
+     void rule__Style__UnorderedGroup_4__4() throws RecognitionException;
+     void rule__Style__UnorderedGroup_4__5() throws RecognitionException;
+     void rule__Style__UnorderedGroup_4__6() throws RecognitionException;
+     void rule__Style__UnorderedGroup_4__7() throws RecognitionException;
+     void rule__Style__UnorderedGroup_4__8() throws RecognitionException;
+     void rule__Style__UnorderedGroup_4__9() throws RecognitionException;
+     void rule__Style__UnorderedGroup_4__10() throws RecognitionException;
+     void rule__Style__UnorderedGroup_4__11() throws RecognitionException;
+     void rule__Style__UnorderedGroup_4__12() throws RecognitionException;
+     void rule__Style__UnorderedGroup_4__13() throws RecognitionException;
+     void rule__Style__UnorderedGroup_4__14() throws RecognitionException;
+     void rule__Style__UnorderedGroup_4__15() throws RecognitionException;
+     void rule__Style__UnorderedGroup_4__16() throws RecognitionException;
+     void rule__MediaStyle__UnorderedGroup_3() throws RecognitionException;
+     void rule__MediaStyle__UnorderedGroup_3__Impl() throws RecognitionException;
+     void rule__MediaStyle__UnorderedGroup_3__0() throws RecognitionException;
+     void rule__MediaStyle__UnorderedGroup_3__1() throws RecognitionException;
+     void rule__MediaStyle__UnorderedGroup_3__2() throws RecognitionException;
+     void rule__MediaStyle__UnorderedGroup_3__3() throws RecognitionException;
+     void rule__MediaStyle__UnorderedGroup_3__4() throws RecognitionException;
+     void rule__MediaStyle__UnorderedGroup_3__5() throws RecognitionException;
+     void rule__MediaStyle__UnorderedGroup_3__6() throws RecognitionException;
+     void rule__MediaStyle__UnorderedGroup_3__7() throws RecognitionException;
+     void rule__MediaStyle__UnorderedGroup_3__8() throws RecognitionException;
+     void rule__MediaStyle__UnorderedGroup_3__9() throws RecognitionException;
+     void rule__MediaStyle__UnorderedGroup_3__10() throws RecognitionException;
+     void rule__MediaStyle__UnorderedGroup_3__11() throws RecognitionException;
+     void rule__MediaStyle__UnorderedGroup_3__12() throws RecognitionException;
+     void rule__MediaStyle__UnorderedGroup_3__13() throws RecognitionException;
+     void rule__MediaStyle__UnorderedGroup_3__14() throws RecognitionException;
+     void rule__MediaStyle__UnorderedGroup_3__15() throws RecognitionException;
+     void rule__MediaStyle__UnorderedGroup_3__16() throws RecognitionException;
+     void rule__DatamartTableProperty__UnorderedGroup_1() throws RecognitionException;
+     void rule__DatamartTableProperty__UnorderedGroup_1__Impl() throws RecognitionException;
+     void rule__DatamartTableProperty__UnorderedGroup_1__0() throws RecognitionException;
+     void rule__DatamartTableProperty__UnorderedGroup_1__1() throws RecognitionException;
+     void rule__DatamartTableProperty__UnorderedGroup_1__2() throws RecognitionException;
+     void rule__DatamartTableProperty__UnorderedGroup_1__3() throws RecognitionException;
+     void rule__TableImage__UnorderedGroup_3() throws RecognitionException;
+     void rule__TableImage__UnorderedGroup_3__Impl() throws RecognitionException;
+     void rule__TableImage__UnorderedGroup_3__0() throws RecognitionException;
+     void rule__TableImage__UnorderedGroup_3__1() throws RecognitionException;
+     void rule__TableImage__UnorderedGroup_3__2() throws RecognitionException;
+     void rule__TableAggregation__UnorderedGroup_2() throws RecognitionException;
+     void rule__TableAggregation__UnorderedGroup_2__Impl() throws RecognitionException;
+     void rule__TableAggregation__UnorderedGroup_2__0() throws RecognitionException;
+     void rule__TableAggregation__UnorderedGroup_2__1() throws RecognitionException;
+     void rule__ReportModel__PckgAssignment() throws RecognitionException;
+     void rule__ReportPackage__NameAssignment_2() throws RecognitionException;
+     void rule__ReportPackage__ImportsAssignment_4() throws RecognitionException;
+     void rule__ReportPackage__ExternalCssURIAssignment_5_2_1() throws RecognitionException;
+     void rule__ReportPackage__ExternalCssURIBundleAssignment_5_2_2_1() throws RecognitionException;
+     void rule__ReportPackage__PagetemplatesAssignment_5_3() throws RecognitionException;
+     void rule__ReportPackage__FormattersAssignment_5_4() throws RecognitionException;
+     void rule__ReportPackage__ColorsAssignment_5_5() throws RecognitionException;
+     void rule__ReportPackage__FontsAssignment_5_6() throws RecognitionException;
+     void rule__ReportPackage__MediasAssignment_5_7() throws RecognitionException;
+     void rule__ReportPackage__StylesAssignment_5_8() throws RecognitionException;
+     void rule__ReportPackage__ReportsAssignment_6() throws RecognitionException;
+     void rule__PageTemplates__PagetemplatesAssignment_1() throws RecognitionException;
+     void rule__SomeFormats__FormattersAssignment_3() throws RecognitionException;
+     void rule__Colors__ColorsAssignment_3() throws RecognitionException;
+     void rule__Fonts__FontsAssignment_3() throws RecognitionException;
+     void rule__Medias__MediasAssignment_3() throws RecognitionException;
+     void rule__Media__NameAssignment_1() throws RecognitionException;
+     void rule__Styles__StylesAssignment_3() throws RecognitionException;
+     void rule__PageTemplate__NameAssignment_1() throws RecognitionException;
+     void rule__PageTemplate__SizeAssignment_4() throws RecognitionException;
+     void rule__PageTemplate__OrientationAssignment_6() throws RecognitionException;
+     void rule__PageTemplate__TopMarginValueAssignment_8() throws RecognitionException;
+     void rule__PageTemplate__TopMarginUnitAssignment_9() throws RecognitionException;
+     void rule__PageTemplate__LeftMarginValueAssignment_11() throws RecognitionException;
+     void rule__PageTemplate__LeftMarginUnitAssignment_12() throws RecognitionException;
+     void rule__PageTemplate__BottomMarginValueAssignment_14() throws RecognitionException;
+     void rule__PageTemplate__BottomMarginUnitAssignment_15() throws RecognitionException;
+     void rule__PageTemplate__RightMarginValueAssignment_17() throws RecognitionException;
+     void rule__PageTemplate__RightMarginUnitAssignment_18() throws RecognitionException;
+     void rule__PageTemplate__HeaderAssignment_19() throws RecognitionException;
+     void rule__PageTemplate__FooterAssignment_20() throws RecognitionException;
+     void rule__Color__NameAssignment_1() throws RecognitionException;
+     void rule__Color__ColorAssignment_2_0() throws RecognitionException;
+     void rule__Color__BasecolorAssignment_2_1_1() throws RecognitionException;
+     void rule__Color__DarkensbyAssignment_2_1_3() throws RecognitionException;
+     void rule__Color__BasecolorAssignment_2_2_1() throws RecognitionException;
+     void rule__Color__LightensbyAssignment_2_2_3() throws RecognitionException;
+     void rule__Color__BasecolorAssignment_2_3_1() throws RecognitionException;
+     void rule__Color__TransformsbyAssignment_2_3_3() throws RecognitionException;
+     void rule__Color__TargetcolorAssignment_2_3_5() throws RecognitionException;
+     void rule__Font__NameAssignment_0_1() throws RecognitionException;
+     void rule__Font__ExtendsAssignment_0_3_1() throws RecognitionException;
+     void rule__Font__FamilyAssignment_0_4_1() throws RecognitionException;
+     void rule__Font__StyleAssignment_1() throws RecognitionException;
+     void rule__Font__BoldAssignment_2() throws RecognitionException;
+     void rule__Font__SizevalueAssignment_3_0_1() throws RecognitionException;
+     void rule__Font__SizeunitAssignment_3_0_2() throws RecognitionException;
+     void rule__BuildInFontFamily__CustomAssignment() throws RecognitionException;
+     void rule__CustomFontFamily__CustomAssignment() throws RecognitionException;
+     void rule__BorderStyle__TypeAssignment_0() throws RecognitionException;
+     void rule__BorderStyle__WidthvalueAssignment_1() throws RecognitionException;
+     void rule__BorderStyle__WidthunitAssignment_2() throws RecognitionException;
+     void rule__BorderStyle__ColorAssignment_3() throws RecognitionException;
+     void rule__Style__NameAssignment_1() throws RecognitionException;
+     void rule__Style__ExtendsAssignment_3_1() throws RecognitionException;
+     void rule__Style__FormatAssignment_4_0_1() throws RecognitionException;
+     void rule__Style__FontAssignment_4_1_1() throws RecognitionException;
+     void rule__Style__BackgroundcolorAssignment_4_2_1() throws RecognitionException;
+     void rule__Style__Backgroundcolor_alternateAssignment_4_2_2_1() throws RecognitionException;
+     void rule__Style__TextcolorAssignment_4_3_1() throws RecognitionException;
+     void rule__Style__TextalignAssignment_4_4_1() throws RecognitionException;
+     void rule__Style__BorderTopAssignment_4_5_1() throws RecognitionException;
+     void rule__Style__BorderBottomAssignment_4_6_1() throws RecognitionException;
+     void rule__Style__BorderLeftAssignment_4_7_1() throws RecognitionException;
+     void rule__Style__BorderRightAssignment_4_8_1() throws RecognitionException;
+     void rule__Style__PaddingTopValueAssignment_4_9_1() throws RecognitionException;
+     void rule__Style__PaddingTopUnitAssignment_4_9_2() throws RecognitionException;
+     void rule__Style__PaddingBottomValueAssignment_4_10_1() throws RecognitionException;
+     void rule__Style__PaddingBottomUnitAssignment_4_10_2() throws RecognitionException;
+     void rule__Style__PaddingLeftValueAssignment_4_11_1() throws RecognitionException;
+     void rule__Style__PaddingLeftUnitAssignment_4_11_2() throws RecognitionException;
+     void rule__Style__PaddingRightValueAssignment_4_12_1() throws RecognitionException;
+     void rule__Style__PaddingRightUnitAssignment_4_12_2() throws RecognitionException;
+     void rule__Style__MarginTopValueAssignment_4_13_1() throws RecognitionException;
+     void rule__Style__MarginTopUnitAssignment_4_13_2() throws RecognitionException;
+     void rule__Style__MarginBottomValueAssignment_4_14_1() throws RecognitionException;
+     void rule__Style__MarginBottomUnitAssignment_4_14_2() throws RecognitionException;
+     void rule__Style__MarginLeftValueAssignment_4_15_1() throws RecognitionException;
+     void rule__Style__MarginLeftUnitAssignment_4_15_2() throws RecognitionException;
+     void rule__Style__MarginRightValueAssignment_4_16_1() throws RecognitionException;
+     void rule__Style__MarginRightUnitAssignment_4_16_2() throws RecognitionException;
+     void rule__Style__MediastylesAssignment_5() throws RecognitionException;
+     void rule__MediaStyle__MediaAssignment_1() throws RecognitionException;
+     void rule__MediaStyle__FormatAssignment_3_0_1() throws RecognitionException;
+     void rule__MediaStyle__FontAssignment_3_1_1() throws RecognitionException;
+     void rule__MediaStyle__BackgroundcolorAssignment_3_2_1() throws RecognitionException;
+     void rule__MediaStyle__Backgroundcolor_alternateAssignment_3_2_2_1() throws RecognitionException;
+     void rule__MediaStyle__TextcolorAssignment_3_3_1() throws RecognitionException;
+     void rule__MediaStyle__TextalignAssignment_3_4_1() throws RecognitionException;
+     void rule__MediaStyle__BorderTopAssignment_3_5_1() throws RecognitionException;
+     void rule__MediaStyle__BorderBottomAssignment_3_6_1() throws RecognitionException;
+     void rule__MediaStyle__BorderLeftAssignment_3_7_1() throws RecognitionException;
+     void rule__MediaStyle__BorderRightAssignment_3_8_1() throws RecognitionException;
+     void rule__MediaStyle__PaddingTopValueAssignment_3_9_1() throws RecognitionException;
+     void rule__MediaStyle__PaddingTopUnitAssignment_3_9_2() throws RecognitionException;
+     void rule__MediaStyle__PaddingBottomValueAssignment_3_10_1() throws RecognitionException;
+     void rule__MediaStyle__PaddingBottomUnitAssignment_3_10_2() throws RecognitionException;
+     void rule__MediaStyle__PaddingLeftValueAssignment_3_11_1() throws RecognitionException;
+     void rule__MediaStyle__PaddingLeftUnitAssignment_3_11_2() throws RecognitionException;
+     void rule__MediaStyle__PaddingRightValueAssignment_3_12_1() throws RecognitionException;
+     void rule__MediaStyle__PaddingRightUnitAssignment_3_12_2() throws RecognitionException;
+     void rule__MediaStyle__MarginTopValueAssignment_3_13_1() throws RecognitionException;
+     void rule__MediaStyle__MarginTopUnitAssignment_3_13_2() throws RecognitionException;
+     void rule__MediaStyle__MarginBottomValueAssignment_3_14_1() throws RecognitionException;
+     void rule__MediaStyle__MarginBottomUnitAssignment_3_14_2() throws RecognitionException;
+     void rule__MediaStyle__MarginLeftValueAssignment_3_15_1() throws RecognitionException;
+     void rule__MediaStyle__MarginLeftUnitAssignment_3_15_2() throws RecognitionException;
+     void rule__MediaStyle__MarginRightValueAssignment_3_16_1() throws RecognitionException;
+     void rule__MediaStyle__MarginRightUnitAssignment_3_16_2() throws RecognitionException;
+     void rule__UomoFormat__NameAssignment_1() throws RecognitionException;
+     void rule__UomoFormat__Ui_patternAssignment_4() throws RecognitionException;
+     void rule__UomoFormat__Report_patternAssignment_6() throws RecognitionException;
+     void rule__UomoFormat__TextalignAssignment_8() throws RecognitionException;
+     void rule__NumberFormat__NameAssignment_1() throws RecognitionException;
+     void rule__NumberFormat__Ui_patternAssignment_4() throws RecognitionException;
+     void rule__NumberFormat__Report_categoryAssignment_6() throws RecognitionException;
+     void rule__NumberFormat__Report_patternAssignment_7() throws RecognitionException;
+     void rule__NumberFormat__TextalignAssignment_9() throws RecognitionException;
+     void rule__CurrencyFormat__NameAssignment_1() throws RecognitionException;
+     void rule__CurrencyFormat__Ui_patternAssignment_4() throws RecognitionException;
+     void rule__CurrencyFormat__Report_categoryAssignment_6() throws RecognitionException;
+     void rule__CurrencyFormat__Report_patternAssignment_7() throws RecognitionException;
+     void rule__CurrencyFormat__TextalignAssignment_9() throws RecognitionException;
+     void rule__DateFormat__NameAssignment_1() throws RecognitionException;
+     void rule__DateFormat__Ui_patternAssignment_4() throws RecognitionException;
+     void rule__DateFormat__Report_categoryAssignment_6() throws RecognitionException;
+     void rule__DateFormat__Report_patternAssignment_7() throws RecognitionException;
+     void rule__DateFormat__TextalignAssignment_9() throws RecognitionException;
+     void rule__DateTimeFormat__NameAssignment_1() throws RecognitionException;
+     void rule__DateTimeFormat__Ui_patternAssignment_4() throws RecognitionException;
+     void rule__DateTimeFormat__Report_categoryAssignment_6() throws RecognitionException;
+     void rule__DateTimeFormat__Report_patternAssignment_7() throws RecognitionException;
+     void rule__DateTimeFormat__TextalignAssignment_9() throws RecognitionException;
+     void rule__TimeFormat__NameAssignment_1() throws RecognitionException;
+     void rule__TimeFormat__Ui_patternAssignment_4() throws RecognitionException;
+     void rule__TimeFormat__Report_categoryAssignment_6() throws RecognitionException;
+     void rule__TimeFormat__Report_patternAssignment_7() throws RecognitionException;
+     void rule__TimeFormat__TextalignAssignment_9() throws RecognitionException;
+     void rule__Report__NameAssignment_1() throws RecognitionException;
+     void rule__Report__DescriptionAssignment_2_0() throws RecognitionException;
+     void rule__Report__DescriptionValueAssignment_2_1() throws RecognitionException;
+     void rule__Report__ToolbarAssignment_3_1() throws RecognitionException;
+     void rule__Report__DatamartRefAssignment_6() throws RecognitionException;
+     void rule__Report__RenderingAssignment_8() throws RecognitionException;
+     void rule__Report__ExternalCssURIAssignment_9_1() throws RecognitionException;
+     void rule__Report__ExternalCssURIBundleAssignment_9_2_1() throws RecognitionException;
+     void rule__Report__PageTemplateAssignment_11() throws RecognitionException;
+     void rule__Report__MediaAssignment_13() throws RecognitionException;
+     void rule__Report__DesignAssignment_14() throws RecognitionException;
+     void rule__ReportDesignFile__NameAssignment_1() throws RecognitionException;
+     void rule__ReportDesignTemplate__DescriptionAssignment_2_1() throws RecognitionException;
+     void rule__ReportDesignTemplate__HeaderAssignment_3() throws RecognitionException;
+     void rule__ReportDesignTemplate__DetailAssignment_4() throws RecognitionException;
+     void rule__ReportDesignTemplate__FooterAssignment_5() throws RecognitionException;
+     void rule__PageHeader__ShowOnFirstAssignment_3() throws RecognitionException;
+     void rule__PageHeader__HeightValueAssignment_5() throws RecognitionException;
+     void rule__PageHeader__HeightUnitAssignment_6() throws RecognitionException;
+     void rule__PageHeader__ElementsAssignment_7() throws RecognitionException;
+     void rule__PageDetail__ElementsAssignment_3() throws RecognitionException;
+     void rule__PageFooter__ShowOnLastAssignment_3() throws RecognitionException;
+     void rule__PageFooter__HeightValueAssignment_5() throws RecognitionException;
+     void rule__PageFooter__HeightUnitAssignment_6() throws RecognitionException;
+     void rule__PageFooter__ElementsAssignment_7() throws RecognitionException;
+     void rule__Grid__NameAssignment_2_1() throws RecognitionException;
+     void rule__Grid__RowsAssignment_4() throws RecognitionException;
+     void rule__GridRow__NameAssignment_2_1() throws RecognitionException;
+     void rule__GridRow__StyleAssignment_3_1() throws RecognitionException;
+     void rule__GridRow__CellsAssignment_5() throws RecognitionException;
+     void rule__GridCell__NameAssignment_2_1() throws RecognitionException;
+     void rule__GridCell__ColumnspanAssignment_3_1() throws RecognitionException;
+     void rule__GridCell__ElementsAssignment_5() throws RecognitionException;
+     void rule__DatamartTable__StyleAssignment_1_1() throws RecognitionException;
+     void rule__DatamartTable__DetailheaderAssignment_3_0() throws RecognitionException;
+     void rule__DatamartTable__HeaderstyleAssignment_3_1_1() throws RecognitionException;
+     void rule__DatamartTable__DetailfooterAssignment_4_0() throws RecognitionException;
+     void rule__DatamartTable__FooterstyleAssignment_4_1_1() throws RecognitionException;
+     void rule__DatamartTable__GroupsAssignment_5() throws RecognitionException;
+     void rule__DatamartTable__DetailAssignment_6() throws RecognitionException;
+     void rule__DatamartTableGroup__NameAssignment_1() throws RecognitionException;
+     void rule__DatamartTableGroup__GroupingRefAssignment_3() throws RecognitionException;
+     void rule__DatamartTableGroup__HeaderAssignment_5() throws RecognitionException;
+     void rule__DatamartTableGroup__DetailheaderAssignment_6_0() throws RecognitionException;
+     void rule__DatamartTableGroup__HeaderstyleAssignment_6_1_1() throws RecognitionException;
+     void rule__DatamartTableGroup__DetailfooterAssignment_7_0() throws RecognitionException;
+     void rule__DatamartTableGroup__FooterstyleAssignment_7_1_1() throws RecognitionException;
+     void rule__DatamartTableGroup__FooterAssignment_8() throws RecognitionException;
+     void rule__DatamartTableGroupHeader__StyleAssignment_2_1() throws RecognitionException;
+     void rule__DatamartTableGroupHeader__RowsAssignment_4() throws RecognitionException;
+     void rule__DatamartTableGroupFooter__StyleAssignment_2_1() throws RecognitionException;
+     void rule__DatamartTableGroupFooter__RowsAssignment_4() throws RecognitionException;
+     void rule__DatamartTableDetail__StyleAssignment_2_1() throws RecognitionException;
+     void rule__DatamartTableDetail__ColumnFormattersAssignment_3_1_1() throws RecognitionException;
+     void rule__DatamartTableProperty__ColumnAssignment_0() throws RecognitionException;
+     void rule__DatamartTableProperty__StyleAssignment_1_0_1() throws RecognitionException;
+     void rule__DatamartTableProperty__HasImageAssignment_1_1_0() throws RecognitionException;
+     void rule__DatamartTableProperty__ImageAssignment_1_1_1() throws RecognitionException;
+     void rule__DatamartTableProperty__HideLabelIntervalAssignment_1_2_1() throws RecognitionException;
+     void rule__DatamartTableProperty__IntervalsAssignment_1_2_3() throws RecognitionException;
+     void rule__DatamartTableProperty__HideLabelLookupAssignment_1_3_1() throws RecognitionException;
+     void rule__DatamartTableProperty__LookupsAssignment_1_3_3() throws RecognitionException;
+     void rule__TableImage__ImagePathPatternAssignment_2() throws RecognitionException;
+     void rule__TableImage__HasParameterAssignment_3_0() throws RecognitionException;
+     void rule__TableImage__HideImageLabelAssignment_3_1() throws RecognitionException;
+     void rule__TableImage__ResizeAssignment_3_2_0() throws RecognitionException;
+     void rule__TableImage__ResizeStringAssignment_3_2_1() throws RecognitionException;
+     void rule__TableProperty__ValueRefAssignment_1() throws RecognitionException;
+     void rule__TableAggregation__AggregationAssignment_1() throws RecognitionException;
+     void rule__TableAggregation__OnGroupAssignment_2_0_1() throws RecognitionException;
+     void rule__TableAggregation__TextAssignment_2_1_1() throws RecognitionException;
+     void rule__TablePureAggregation__AggregationAssignment() throws RecognitionException;
+     void rule__TableUnaryAggregation__AggregationAssignment_0() throws RecognitionException;
+     void rule__TableUnaryAggregation__ValueRefsAssignment_2() throws RecognitionException;
+     void rule__TableMultipleAggregation__AggregationAssignment_0() throws RecognitionException;
+     void rule__TableMultipleAggregation__ValueRefsAssignment_3() throws RecognitionException;
+     void rule__TableBinaryAggregation__AggregationAssignment_0() throws RecognitionException;
+     void rule__TableBinaryAggregation__ValueRefsAssignment_3() throws RecognitionException;
+     void rule__TableBinaryAggregation__ValueRefsAssignment_4() throws RecognitionException;
+     void rule__TableNumberInterval__NumberIntervalValueAssignment_2() throws RecognitionException;
+     void rule__TableNumberInterval__NumberRangeAssignment_3() throws RecognitionException;
+     void rule__TableDateDayInterval__DateIntervalValueAssignment_2() throws RecognitionException;
+     void rule__TableDateDayInterval__DateRangeAssignment_3() throws RecognitionException;
+     void rule__TableNumberLookup__LookupValueAssignment_2() throws RecognitionException;
+     void rule__TableNumberLookup__DiscreteAssignment_3() throws RecognitionException;
+     void rule__TableStringLookup__LookupValueAssignment_2() throws RecognitionException;
+     void rule__TableStringLookup__DiscreteAssignment_3() throws RecognitionException;
+     void rule__TableDateDayLookup__LookupValueAssignment_2() throws RecognitionException;
+     void rule__TableDateDayLookup__DiscreteAssignment_3() throws RecognitionException;
+     void rule__TableTextColor__ColorAssignment_1() throws RecognitionException;
+     void rule__TableCellColor__ColorAssignment_1() throws RecognitionException;
+     void rule__TableIcon__IconAssignment_1() throws RecognitionException;
+     void rule__TableTrend__IconAssignment_1() throws RecognitionException;
+     void rule__Title__TextAssignment_2() throws RecognitionException;
+     void rule__Title__StyleAssignment_3_1() throws RecognitionException;
+     void rule__SubTitle__TextAssignment_2() throws RecognitionException;
+     void rule__SubTitle__StyleAssignment_3_1() throws RecognitionException;
+     void rule__SubSubTitle__TextAssignment_2() throws RecognitionException;
+     void rule__SubSubTitle__StyleAssignment_3_1() throws RecognitionException;
+     void rule__Label__TextAssignment_2() throws RecognitionException;
+     void rule__Label__StyleAssignment_3_1() throws RecognitionException;
+     void rule__Text__TextAssignment_2() throws RecognitionException;
+     void rule__Text__StyleAssignment_3_1() throws RecognitionException;
+     void rule__AutoText__TypeAssignment_1() throws RecognitionException;
+     void rule__AutoText__StyleAssignment_2_1() throws RecognitionException;
+     void rule__Image__SizeAssignment_1() throws RecognitionException;
+     void rule__Image__ScaleAssignment_2_1() throws RecognitionException;
+     void rule__Image__SourceTypeAssignment_3() throws RecognitionException;
+     void rule__Image__FilenameAssignment_4() throws RecognitionException;
+     void rule__ReportImport__ImportedNamespaceAssignment_1() throws RecognitionException;
+     void rule__XAnnotation__AnnotationTypeAssignment_2() throws RecognitionException;
+     void rule__XAnnotation__ElementValuePairsAssignment_3_1_0_0() throws RecognitionException;
+     void rule__XAnnotation__ElementValuePairsAssignment_3_1_0_1_1() throws RecognitionException;
+     void rule__XAnnotation__ValueAssignment_3_1_1() throws RecognitionException;
+     void rule__XAnnotationElementValuePair__ElementAssignment_0_0_0() throws RecognitionException;
+     void rule__XAnnotationElementValuePair__ValueAssignment_1() throws RecognitionException;
+     void rule__XAnnotationElementValueOrCommaList__ElementsAssignment_0_1_0() throws RecognitionException;
+     void rule__XAnnotationElementValueOrCommaList__ElementsAssignment_0_1_1_1() throws RecognitionException;
+     void rule__XAnnotationElementValueOrCommaList__ElementsAssignment_1_1_1_1() throws RecognitionException;
+     void rule__XAnnotationElementValue__ElementsAssignment_0_1_0() throws RecognitionException;
+     void rule__XAnnotationElementValue__ElementsAssignment_0_1_1_1() throws RecognitionException;
+     void rule__XAssignment__FeatureAssignment_0_1() throws RecognitionException;
+     void rule__XAssignment__ValueAssignment_0_3() throws RecognitionException;
+     void rule__XAssignment__FeatureAssignment_1_1_0_0_1() throws RecognitionException;
+     void rule__XAssignment__RightOperandAssignment_1_1_1() throws RecognitionException;
+     void rule__XOrExpression__FeatureAssignment_1_0_0_1() throws RecognitionException;
+     void rule__XOrExpression__RightOperandAssignment_1_1() throws RecognitionException;
+     void rule__XAndExpression__FeatureAssignment_1_0_0_1() throws RecognitionException;
+     void rule__XAndExpression__RightOperandAssignment_1_1() throws RecognitionException;
+     void rule__XEqualityExpression__FeatureAssignment_1_0_0_1() throws RecognitionException;
+     void rule__XEqualityExpression__RightOperandAssignment_1_1() throws RecognitionException;
+     void rule__XRelationalExpression__TypeAssignment_1_0_1() throws RecognitionException;
+     void rule__XRelationalExpression__FeatureAssignment_1_1_0_0_1() throws RecognitionException;
+     void rule__XRelationalExpression__RightOperandAssignment_1_1_1() throws RecognitionException;
+     void rule__XOtherOperatorExpression__FeatureAssignment_1_0_0_1() throws RecognitionException;
+     void rule__XOtherOperatorExpression__RightOperandAssignment_1_1() throws RecognitionException;
+     void rule__XAdditiveExpression__FeatureAssignment_1_0_0_1() throws RecognitionException;
+     void rule__XAdditiveExpression__RightOperandAssignment_1_1() throws RecognitionException;
+     void rule__XMultiplicativeExpression__FeatureAssignment_1_0_0_1() throws RecognitionException;
+     void rule__XMultiplicativeExpression__RightOperandAssignment_1_1() throws RecognitionException;
+     void rule__XUnaryOperation__FeatureAssignment_0_1() throws RecognitionException;
+     void rule__XUnaryOperation__OperandAssignment_0_2() throws RecognitionException;
+     void rule__XCastedExpression__TypeAssignment_1_1() throws RecognitionException;
+     void rule__XPostfixOperation__FeatureAssignment_1_0_1() throws RecognitionException;
+     void rule__XMemberFeatureCall__ExplicitStaticAssignment_1_0_0_0_1_1() throws RecognitionException;
+     void rule__XMemberFeatureCall__FeatureAssignment_1_0_0_0_2() throws RecognitionException;
+     void rule__XMemberFeatureCall__ValueAssignment_1_0_1() throws RecognitionException;
+     void rule__XMemberFeatureCall__NullSafeAssignment_1_1_0_0_1_1() throws RecognitionException;
+     void rule__XMemberFeatureCall__ExplicitStaticAssignment_1_1_0_0_1_2() throws RecognitionException;
+     void rule__XMemberFeatureCall__TypeArgumentsAssignment_1_1_1_1() throws RecognitionException;
+     void rule__XMemberFeatureCall__TypeArgumentsAssignment_1_1_1_2_1() throws RecognitionException;
+     void rule__XMemberFeatureCall__FeatureAssignment_1_1_2() throws RecognitionException;
+     void rule__XMemberFeatureCall__ExplicitOperationCallAssignment_1_1_3_0() throws RecognitionException;
+     void rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_0() throws RecognitionException;
+     void rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_1_0() throws RecognitionException;
+     void rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_3_1_1_1_1() throws RecognitionException;
+     void rule__XMemberFeatureCall__MemberCallArgumentsAssignment_1_1_4() throws RecognitionException;
+     void rule__XSetLiteral__ElementsAssignment_3_0() throws RecognitionException;
+     void rule__XSetLiteral__ElementsAssignment_3_1_1() throws RecognitionException;
+     void rule__XListLiteral__ElementsAssignment_3_0() throws RecognitionException;
+     void rule__XListLiteral__ElementsAssignment_3_1_1() throws RecognitionException;
+     void rule__XClosure__DeclaredFormalParametersAssignment_1_0_0_0() throws RecognitionException;
+     void rule__XClosure__DeclaredFormalParametersAssignment_1_0_0_1_1() throws RecognitionException;
+     void rule__XClosure__ExplicitSyntaxAssignment_1_0_1() throws RecognitionException;
+     void rule__XClosure__ExpressionAssignment_2() throws RecognitionException;
+     void rule__XExpressionInClosure__ExpressionsAssignment_1_0() throws RecognitionException;
+     void rule__XShortClosure__DeclaredFormalParametersAssignment_0_0_1_0() throws RecognitionException;
+     void rule__XShortClosure__DeclaredFormalParametersAssignment_0_0_1_1_1() throws RecognitionException;
+     void rule__XShortClosure__ExplicitSyntaxAssignment_0_0_2() throws RecognitionException;
+     void rule__XShortClosure__ExpressionAssignment_1() throws RecognitionException;
+     void rule__XIfExpression__IfAssignment_3() throws RecognitionException;
+     void rule__XIfExpression__ThenAssignment_5() throws RecognitionException;
+     void rule__XIfExpression__ElseAssignment_6_1() throws RecognitionException;
+     void rule__XSwitchExpression__DeclaredParamAssignment_2_0_0_0_1() throws RecognitionException;
+     void rule__XSwitchExpression__SwitchAssignment_2_0_1() throws RecognitionException;
+     void rule__XSwitchExpression__DeclaredParamAssignment_2_1_0_0_0() throws RecognitionException;
+     void rule__XSwitchExpression__SwitchAssignment_2_1_1() throws RecognitionException;
+     void rule__XSwitchExpression__CasesAssignment_4() throws RecognitionException;
+     void rule__XSwitchExpression__DefaultAssignment_5_2() throws RecognitionException;
+     void rule__XCasePart__TypeGuardAssignment_1() throws RecognitionException;
+     void rule__XCasePart__CaseAssignment_2_1() throws RecognitionException;
+     void rule__XCasePart__ThenAssignment_3_0_1() throws RecognitionException;
+     void rule__XCasePart__FallThroughAssignment_3_1() throws RecognitionException;
+     void rule__XForLoopExpression__DeclaredParamAssignment_0_0_3() throws RecognitionException;
+     void rule__XForLoopExpression__ForExpressionAssignment_1() throws RecognitionException;
+     void rule__XForLoopExpression__EachExpressionAssignment_3() throws RecognitionException;
+     void rule__XBasicForLoopExpression__InitExpressionsAssignment_3_0() throws RecognitionException;
+     void rule__XBasicForLoopExpression__InitExpressionsAssignment_3_1_1() throws RecognitionException;
+     void rule__XBasicForLoopExpression__ExpressionAssignment_5() throws RecognitionException;
+     void rule__XBasicForLoopExpression__UpdateExpressionsAssignment_7_0() throws RecognitionException;
+     void rule__XBasicForLoopExpression__UpdateExpressionsAssignment_7_1_1() throws RecognitionException;
+     void rule__XBasicForLoopExpression__EachExpressionAssignment_9() throws RecognitionException;
+     void rule__XWhileExpression__PredicateAssignment_3() throws RecognitionException;
+     void rule__XWhileExpression__BodyAssignment_5() throws RecognitionException;
+     void rule__XDoWhileExpression__BodyAssignment_2() throws RecognitionException;
+     void rule__XDoWhileExpression__PredicateAssignment_5() throws RecognitionException;
+     void rule__XBlockExpression__ExpressionsAssignment_2_0() throws RecognitionException;
+     void rule__XVariableDeclaration__WriteableAssignment_1_0() throws RecognitionException;
+     void rule__XVariableDeclaration__TypeAssignment_2_0_0_0() throws RecognitionException;
+     void rule__XVariableDeclaration__NameAssignment_2_0_0_1() throws RecognitionException;
+     void rule__XVariableDeclaration__NameAssignment_2_1() throws RecognitionException;
+     void rule__XVariableDeclaration__RightAssignment_3_1() throws RecognitionException;
+     void rule__JvmFormalParameter__ParameterTypeAssignment_0() throws RecognitionException;
+     void rule__JvmFormalParameter__NameAssignment_1() throws RecognitionException;
+     void rule__FullJvmFormalParameter__ParameterTypeAssignment_0() throws RecognitionException;
+     void rule__FullJvmFormalParameter__NameAssignment_1() throws RecognitionException;
+     void rule__XFeatureCall__TypeArgumentsAssignment_1_1() throws RecognitionException;
+     void rule__XFeatureCall__TypeArgumentsAssignment_1_2_1() throws RecognitionException;
+     void rule__XFeatureCall__FeatureAssignment_2() throws RecognitionException;
+     void rule__XFeatureCall__ExplicitOperationCallAssignment_3_0() throws RecognitionException;
+     void rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_0() throws RecognitionException;
+     void rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_1_0() throws RecognitionException;
+     void rule__XFeatureCall__FeatureCallArgumentsAssignment_3_1_1_1_1() throws RecognitionException;
+     void rule__XFeatureCall__FeatureCallArgumentsAssignment_4() throws RecognitionException;
+     void rule__XConstructorCall__ConstructorAssignment_2() throws RecognitionException;
+     void rule__XConstructorCall__TypeArgumentsAssignment_3_1() throws RecognitionException;
+     void rule__XConstructorCall__TypeArgumentsAssignment_3_2_1() throws RecognitionException;
+     void rule__XConstructorCall__ExplicitConstructorCallAssignment_4_0() throws RecognitionException;
+     void rule__XConstructorCall__ArgumentsAssignment_4_1_0() throws RecognitionException;
+     void rule__XConstructorCall__ArgumentsAssignment_4_1_1_0() throws RecognitionException;
+     void rule__XConstructorCall__ArgumentsAssignment_4_1_1_1_1() throws RecognitionException;
+     void rule__XConstructorCall__ArgumentsAssignment_5() throws RecognitionException;
+     void rule__XBooleanLiteral__IsTrueAssignment_1_1() throws RecognitionException;
+     void rule__XNumberLiteral__ValueAssignment_1() throws RecognitionException;
+     void rule__XStringLiteral__ValueAssignment_1() throws RecognitionException;
+     void rule__XTypeLiteral__TypeAssignment_3() throws RecognitionException;
+     void rule__XTypeLiteral__ArrayDimensionsAssignment_4() throws RecognitionException;
+     void rule__XThrowExpression__ExpressionAssignment_2() throws RecognitionException;
+     void rule__XReturnExpression__ExpressionAssignment_2() throws RecognitionException;
+     void rule__XTryCatchFinallyExpression__ExpressionAssignment_2() throws RecognitionException;
+     void rule__XTryCatchFinallyExpression__CatchClausesAssignment_3_0_0() throws RecognitionException;
+     void rule__XTryCatchFinallyExpression__FinallyExpressionAssignment_3_0_1_1() throws RecognitionException;
+     void rule__XTryCatchFinallyExpression__FinallyExpressionAssignment_3_1_1() throws RecognitionException;
+     void rule__XSynchronizedExpression__ParamAssignment_1() throws RecognitionException;
+     void rule__XSynchronizedExpression__ExpressionAssignment_3() throws RecognitionException;
+     void rule__XCatchClause__DeclaredParamAssignment_2() throws RecognitionException;
+     void rule__XCatchClause__ExpressionAssignment_4() throws RecognitionException;
+     void rule__XFunctionTypeRef__ParamTypesAssignment_0_1_0() throws RecognitionException;
+     void rule__XFunctionTypeRef__ParamTypesAssignment_0_1_1_1() throws RecognitionException;
+     void rule__XFunctionTypeRef__ReturnTypeAssignment_2() throws RecognitionException;
+     void rule__JvmParameterizedTypeReference__TypeAssignment_0() throws RecognitionException;
+     void rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_1() throws RecognitionException;
+     void rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_2_1() throws RecognitionException;
+     void rule__JvmParameterizedTypeReference__TypeAssignment_1_4_1() throws RecognitionException;
+     void rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_4_2_1() throws RecognitionException;
+     void rule__JvmParameterizedTypeReference__ArgumentsAssignment_1_4_2_2_1() throws RecognitionException;
+     void rule__JvmWildcardTypeReference__ConstraintsAssignment_2_0_0() throws RecognitionException;
+     void rule__JvmWildcardTypeReference__ConstraintsAssignment_2_0_1() throws RecognitionException;
+     void rule__JvmWildcardTypeReference__ConstraintsAssignment_2_1_0() throws RecognitionException;
+     void rule__JvmWildcardTypeReference__ConstraintsAssignment_2_1_1() throws RecognitionException;
+     void rule__JvmUpperBound__TypeReferenceAssignment_1() throws RecognitionException;
+     void rule__JvmUpperBoundAnded__TypeReferenceAssignment_1() throws RecognitionException;
+     void rule__JvmLowerBound__TypeReferenceAssignment_1() throws RecognitionException;
+     void rule__JvmLowerBoundAnded__TypeReferenceAssignment_1() throws RecognitionException;
+     void rule__XImportDeclaration__StaticAssignment_1_0_0() throws RecognitionException;
+     void rule__XImportDeclaration__ExtensionAssignment_1_0_1() throws RecognitionException;
+     void rule__XImportDeclaration__ImportedTypeAssignment_1_0_2() throws RecognitionException;
+     void rule__XImportDeclaration__WildcardAssignment_1_0_3_0() throws RecognitionException;
+     void rule__XImportDeclaration__MemberNameAssignment_1_0_3_1() throws RecognitionException;
+     void rule__XImportDeclaration__ImportedTypeAssignment_1_1() throws RecognitionException;
+     void rule__XImportDeclaration__ImportedNamespaceAssignment_1_2() throws RecognitionException;
+     void synpred33_InternalReportDSL_fragment() throws RecognitionException;   
+     void synpred34_InternalReportDSL_fragment() throws RecognitionException;   
+     void synpred35_InternalReportDSL_fragment() throws RecognitionException;   
+     void synpred60_InternalReportDSL_fragment() throws RecognitionException;   
+     void synpred61_InternalReportDSL_fragment() throws RecognitionException;   
+     void synpred74_InternalReportDSL_fragment() throws RecognitionException;   
+     void synpred82_InternalReportDSL_fragment() throws RecognitionException;   
+     void synpred83_InternalReportDSL_fragment() throws RecognitionException;   
+     void synpred96_InternalReportDSL_fragment() throws RecognitionException;   
+     void synpred100_InternalReportDSL_fragment() throws RecognitionException;   
+     void synpred101_InternalReportDSL_fragment() throws RecognitionException;   
+     void synpred107_InternalReportDSL_fragment() throws RecognitionException;   
+     void synpred252_InternalReportDSL_fragment() throws RecognitionException;   
+     void synpred254_InternalReportDSL_fragment() throws RecognitionException;   
+     void synpred255_InternalReportDSL_fragment() throws RecognitionException;   
+     void synpred256_InternalReportDSL_fragment() throws RecognitionException;   
+     void synpred257_InternalReportDSL_fragment() throws RecognitionException;   
+     void synpred258_InternalReportDSL_fragment() throws RecognitionException;   
+     void synpred259_InternalReportDSL_fragment() throws RecognitionException;   
+     void synpred260_InternalReportDSL_fragment() throws RecognitionException;   
+     void synpred261_InternalReportDSL_fragment() throws RecognitionException;   
+     void synpred262_InternalReportDSL_fragment() throws RecognitionException;   
+     void synpred263_InternalReportDSL_fragment() throws RecognitionException;   
+     void synpred265_InternalReportDSL_fragment() throws RecognitionException;   
+     void synpred266_InternalReportDSL_fragment() throws RecognitionException;   
+     void synpred274_InternalReportDSL_fragment() throws RecognitionException;   
+     void synpred281_InternalReportDSL_fragment() throws RecognitionException;   
+     void synpred284_InternalReportDSL_fragment() throws RecognitionException;   
+     void synpred297_InternalReportDSL_fragment() throws RecognitionException;   
+     void synpred298_InternalReportDSL_fragment() throws RecognitionException;   
+     void synpred302_InternalReportDSL_fragment() throws RecognitionException;   
+     void synpred303_InternalReportDSL_fragment() throws RecognitionException;   
+     void synpred304_InternalReportDSL_fragment() throws RecognitionException;   
+     void synpred309_InternalReportDSL_fragment() throws RecognitionException;   
+     void synpred310_InternalReportDSL_fragment() throws RecognitionException;   
+     void synpred311_InternalReportDSL_fragment() throws RecognitionException;   
+     void synpred312_InternalReportDSL_fragment() throws RecognitionException;   
+     void synpred314_InternalReportDSL_fragment() throws RecognitionException;   
+     void synpred318_InternalReportDSL_fragment() throws RecognitionException;   
+     void synpred320_InternalReportDSL_fragment() throws RecognitionException;   
+     void synpred321_InternalReportDSL_fragment() throws RecognitionException;   
+     void synpred328_InternalReportDSL_fragment() throws RecognitionException;   
+     void synpred329_InternalReportDSL_fragment() throws RecognitionException;   
+     void synpred330_InternalReportDSL_fragment() throws RecognitionException;   
+     void synpred331_InternalReportDSL_fragment() throws RecognitionException;   
+     void synpred332_InternalReportDSL_fragment() throws RecognitionException;   
+     void synpred333_InternalReportDSL_fragment() throws RecognitionException;   
+     void synpred334_InternalReportDSL_fragment() throws RecognitionException;   
+     void synpred335_InternalReportDSL_fragment() throws RecognitionException;   
+     void synpred336_InternalReportDSL_fragment() throws RecognitionException;   
+     void synpred337_InternalReportDSL_fragment() throws RecognitionException;   
+     void synpred338_InternalReportDSL_fragment() throws RecognitionException;   
+     void synpred339_InternalReportDSL_fragment() throws RecognitionException;   
+     void synpred340_InternalReportDSL_fragment() throws RecognitionException;   
+     void synpred341_InternalReportDSL_fragment() throws RecognitionException;   
+     void synpred342_InternalReportDSL_fragment() throws RecognitionException;   
+     void synpred343_InternalReportDSL_fragment() throws RecognitionException;   
+     void synpred344_InternalReportDSL_fragment() throws RecognitionException;   
+     void synpred345_InternalReportDSL_fragment() throws RecognitionException;   
+     void synpred346_InternalReportDSL_fragment() throws RecognitionException;   
+     void synpred347_InternalReportDSL_fragment() throws RecognitionException;   
+     void synpred348_InternalReportDSL_fragment() throws RecognitionException;   
+     void synpred349_InternalReportDSL_fragment() throws RecognitionException;   
+     void synpred350_InternalReportDSL_fragment() throws RecognitionException;   
+     void synpred351_InternalReportDSL_fragment() throws RecognitionException;   
+     void synpred352_InternalReportDSL_fragment() throws RecognitionException;   
+     void synpred353_InternalReportDSL_fragment() throws RecognitionException;   
+     void synpred354_InternalReportDSL_fragment() throws RecognitionException;   
+     void synpred355_InternalReportDSL_fragment() throws RecognitionException;   
+     void synpred356_InternalReportDSL_fragment() throws RecognitionException;   
+     void synpred357_InternalReportDSL_fragment() throws RecognitionException;   
+     void synpred358_InternalReportDSL_fragment() throws RecognitionException;   
+     void synpred359_InternalReportDSL_fragment() throws RecognitionException;   
+     void synpred360_InternalReportDSL_fragment() throws RecognitionException;   
+     void synpred361_InternalReportDSL_fragment() throws RecognitionException;   
+     void synpred362_InternalReportDSL_fragment() throws RecognitionException;   
+     void synpred363_InternalReportDSL_fragment() throws RecognitionException;   
+     void synpred364_InternalReportDSL_fragment() throws RecognitionException;   
+     void synpred365_InternalReportDSL_fragment() throws RecognitionException;   
+     void synpred366_InternalReportDSL_fragment() throws RecognitionException;   
+     void synpred367_InternalReportDSL_fragment() throws RecognitionException;   
+     void synpred368_InternalReportDSL_fragment() throws RecognitionException;   
+     void synpred369_InternalReportDSL_fragment() throws RecognitionException;   
+     void synpred370_InternalReportDSL_fragment() throws RecognitionException;   
+     void synpred371_InternalReportDSL_fragment() throws RecognitionException;   
+     void synpred372_InternalReportDSL_fragment() throws RecognitionException;   
+     void synpred373_InternalReportDSL_fragment() throws RecognitionException;   
+     void synpred374_InternalReportDSL_fragment() throws RecognitionException;   
+     void synpred375_InternalReportDSL_fragment() throws RecognitionException;   
+     void synpred376_InternalReportDSL_fragment() throws RecognitionException;   
+     void synpred377_InternalReportDSL_fragment() throws RecognitionException;   
+     void synpred378_InternalReportDSL_fragment() throws RecognitionException;   
+     void synpred379_InternalReportDSL_fragment() throws RecognitionException;   
+     void synpred380_InternalReportDSL_fragment() throws RecognitionException;   
+     void synpred381_InternalReportDSL_fragment() throws RecognitionException;   
+     void synpred382_InternalReportDSL_fragment() throws RecognitionException;   
+     void synpred383_InternalReportDSL_fragment() throws RecognitionException;   
+     void synpred384_InternalReportDSL_fragment() throws RecognitionException;   
+     void synpred385_InternalReportDSL_fragment() throws RecognitionException;   
+     void synpred386_InternalReportDSL_fragment() throws RecognitionException;   
+     void synpred387_InternalReportDSL_fragment() throws RecognitionException;   
+     void synpred388_InternalReportDSL_fragment() throws RecognitionException;   
+     void synpred389_InternalReportDSL_fragment() throws RecognitionException;   
+     void synpred390_InternalReportDSL_fragment() throws RecognitionException;   
+     void synpred391_InternalReportDSL_fragment() throws RecognitionException;   
+     void synpred392_InternalReportDSL_fragment() throws RecognitionException;   
+     void synpred393_InternalReportDSL_fragment() throws RecognitionException;   
+     void synpred394_InternalReportDSL_fragment() throws RecognitionException;   
+     void synpred395_InternalReportDSL_fragment() throws RecognitionException;   
+     void synpred396_InternalReportDSL_fragment() throws RecognitionException;   
+     void synpred397_InternalReportDSL_fragment() throws RecognitionException;   
+     void synpred398_InternalReportDSL_fragment() throws RecognitionException;   
+     void synpred399_InternalReportDSL_fragment() throws RecognitionException;   
+     void synpred400_InternalReportDSL_fragment() throws RecognitionException;   
+     void synpred401_InternalReportDSL_fragment() throws RecognitionException;   
+     void synpred402_InternalReportDSL_fragment() throws RecognitionException;   
+     void synpred403_InternalReportDSL_fragment() throws RecognitionException;   
+     void synpred404_InternalReportDSL_fragment() throws RecognitionException;   
+     void synpred405_InternalReportDSL_fragment() throws RecognitionException;   
+     void synpred406_InternalReportDSL_fragment() throws RecognitionException;   
+     void synpred407_InternalReportDSL_fragment() throws RecognitionException;   
+     void synpred408_InternalReportDSL_fragment() throws RecognitionException;   
+     void synpred409_InternalReportDSL_fragment() throws RecognitionException;   
+     void synpred410_InternalReportDSL_fragment() throws RecognitionException;   
+     void synpred411_InternalReportDSL_fragment() throws RecognitionException;   
+     void synpred412_InternalReportDSL_fragment() throws RecognitionException;   
+     void synpred413_InternalReportDSL_fragment() throws RecognitionException;   
+     void synpred414_InternalReportDSL_fragment() throws RecognitionException;   
+}
+
+@SuppressWarnings("all")
+abstract class InternalReportDSLParser1 extends AbstractInternalContentAssistParser implements InternalReportDSLParserSignatures {
+
+        InternalReportDSLParser1(TokenStream input) {
+            this(input, new RecognizerSharedState());
+        }
+
+        InternalReportDSLParser1(TokenStream input, RecognizerSharedState state) {
+            super(input, state);
+        }
+
+    public static final String[] tokenNames = new String[] {
+        "<invalid>", "<EOR>", "<DOWN>", "<UP>", "RULE_STRING", "RULE_ID", "RULE_HEX", "RULE_INT", "RULE_DECIMAL", "RULE_ML_COMMENT", "RULE_SL_COMMENT", "RULE_WS", "RULE_ANY_OTHER", "'='", "'||'", "'&&'", "'custom'", "'divide'", "'concat'", "'all'", "'+='", "'-='", "'*='", "'/='", "'%='", "'=='", "'!='", "'==='", "'!=='", "'>='", "'>'", "'<'", "'->'", "'..<'", "'..'", "'=>'", "'<>'", "'?:'", "'+'", "'-'", "'*'", "'**'", "'/'", "'%'", "'!'", "'++'", "'--'", "'.'", "'val'", "'extends'", "'static'", "'import'", "'extension'", "'super'", "'false'", "'mm'", "'cm'", "'pt'", "'inch'", "'pc'", "'em'", "'ex'", "'px'", "'a4'", "'a3'", "'a5'", "'us-letter'", "'us-legal'", "'us-ledger'", "'us-super-b'", "'portrait'", "'landscape'", "'normal'", "'italic'", "'oblique'", "'monospace'", "'sans-serif'", "'serif'", "'left'", "'center'", "'right'", "'unformatted'", "'general-number'", "'fixed'", "'percent'", "'scientific'", "'currency'", "'html'", "'pdf'", "'count'", "'running-count'", "'sum'", "'average'", "'minimum'", "'maximum'", "'running-sum'", "'rising'", "'bad-rising'", "'sloping'", "'good-sloping'", "'stagnating'", "'none'", "'solid'", "'dotted'", "'dashed'", "'double'", "'groove'", "'ridge'", "'inset'", "'outset'", "'page-number'", "'total-page'", "'page-number-unfiltered'", "'total-page-unfiltered'", "'page-variable'", "'size-to-image'", "'scale-to-item'", "'clip'", "'file'", "'url'", "'embed'", "'package'", "'{'", "'}'", "'layout-data'", "'externalCssURI'", "'from bundle'", "'formatters'", "'colors'", "'fonts'", "'medias'", "'media'", "'styles'", "'pagetemplate'", "'type'", "'orientation'", "'topmargin'", "'leftmargin'", "'bottommargin'", "'rightmargin'", "'color'", "'darkens'", "'by-percent'", "'lightens'", "'transforms'", "'towards'", "'font'", "'family'", "'size'", "'style'", "'formatter'", "'backgroundcolor'", "'alternate'", "'textcolor'", "'textalign'", "'border-top'", "'border-bottom'", "'border-left'", "'border-right'", "'padding-top'", "'padding-bottom'", "'padding-left'", "'padding-right'", "'margin-top'", "'margin-bottom'", "'margin-left'", "'margin-right'", "'uomo'", "'ui'", "'report'", "'number'", "'date'", "'date+time'", "'time'", "'datamart'", "'rendering'", "'toolbar'", "'template'", "'described by'", "'header'", "'height'", "'detail'", "'footer'", "'grid'", "'as'", "'row'", "'cell'", "'columnspan'", "'table'", "'group'", "'by'", "'details'", "'intervals'", "'lookups'", "'path'", "'property'", "'aggregate'", "'on-group'", "'title'", "'of'", "'('", "')'", "'up to'", "'days in past'", "'string'", "'cellcolor'", "'icon'", "'trend'", "'subtitle'", "'subsubtitle'", "'label'", "'text'", "'autotext'", "'image'", "'scale'", "'@'", "','", "']'", "'#'", "'['", "'instanceof'", "';'", "'if'", "'else'", "'switch'", "':'", "'default'", "'case'", "'for'", "'while'", "'do'", "'new'", "'null'", "'typeof'", "'throw'", "'return'", "'try'", "'finally'", "'synchronized'", "'catch'", "'?'", "'&'", "'bold'", "'showOnFirst'", "'showOnLast'", "'detailheader'", "'detailfooter'", "'hidelabel'", "'dynamic'", "'resize'", "'::'", "'?.'", "'|'", "'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__254=254;
+    public static final int T__132=132;
+    public static final int T__253=253;
+    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 T__250=250;
+    public static final int RULE_ID=5;
+    public static final int T__131=131;
+    public static final int T__252=252;
+    public static final int T__130=130;
+    public static final int T__251=251;
+    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__247=247;
+    public static final int T__63=63;
+    public static final int T__125=125;
+    public static final int T__246=246;
+    public static final int T__64=64;
+    public static final int T__128=128;
+    public static final int T__249=249;
+    public static final int T__65=65;
+    public static final int T__127=127;
+    public static final int T__248=248;
+    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__221=221;
+    public static final int T__220=220;
+    public static final int T__102=102;
+    public static final int T__223=223;
+    public static final int T__101=101;
+    public static final int T__222=222;
+    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 T__218=218;
+    public static final int T__217=217;
+    public static final int T__13=13;
+    public static final int T__14=14;
+    public static final int T__219=219;
+    public static final int T__214=214;
+    public static final int T__213=213;
+    public static final int T__216=216;
+    public static final int T__215=215;
+    public static final int T__210=210;
+    public static final int T__212=212;
+    public static final int T__211=211;
+    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__207=207;
+    public static final int T__23=23;
+    public static final int T__206=206;
+    public static final int T__24=24;
+    public static final int T__209=209;
+    public static final int T__25=25;
+    public static final int T__208=208;
+    public static final int T__203=203;
+    public static final int T__202=202;
+    public static final int T__20=20;
+    public static final int T__205=205;
+    public static final int T__21=21;
+    public static final int T__204=204;
+    public static final int T__122=122;
+    public static final int T__243=243;
+    public static final int T__121=121;
+    public static final int T__242=242;
+    public static final int T__124=124;
+    public static final int T__245=245;
+    public static final int T__123=123;
+    public static final int T__244=244;
+    public static final int T__120=120;
+    public static final int T__241=241;
+    public static final int T__240=240;
+    public static final int RULE_SL_COMMENT=10;
+    public static final int T__119=119;
+    public static final int T__118=118;
+    public static final int T__239=239;
+    public static final int T__115=115;
+    public static final int T__236=236;
+    public static final int EOF=-1;
+    public static final int T__114=114;
+    public static final int T__235=235;
+    public static final int T__117=117;
+    public static final int T__238=238;
+    public static final int T__116=116;
+    public static final int T__237=237;
+    public static final int T__111=111;
+    public static final int T__232=232;
+    public static final int T__110=110;
+    public static final int T__231=231;
+    public static final int T__113=113;
+    public static final int T__234=234;
+    public static final int T__112=112;
+    public static final int T__233=233;
+    public static final int T__230=230;
+    public static final int T__108=108;
+    public static final int T__229=229;
+    public static final int T__107=107;
+    public static final int T__228=228;
+    public static final int T__109=109;
+    public static final int T__104=104;
+    public static final int T__225=225;
+    public static final int T__103=103;
+    public static final int T__224=224;
+    public static final int T__106=106;
+    public static final int T__227=227;
+    public static final int T__105=105;
+    public static final int T__226=226;
+    public static final int RULE_HEX=6;
+    public static final int RULE_ML_COMMENT=9;
+    public static final int T__201=201;
+    public static final int T__200=200;
+    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__189=189;
+    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__199=199;
+    public static final int T__81=81;
+    public static final int T__198=198;
+    public static final int T__82=82;
+    public static final int T__83=83;
+    public static final int T__195=195;
+    public static final int T__194=194;
+    public static final int RULE_WS=11;
+    public static final int T__197=197;
+    public static final int T__196=196;
+    public static final int T__191=191;
+    public static final int T__190=190;
+    public static final int T__193=193;
+    public static final int T__192=192;
+    public static final int RULE_ANY_OTHER=12;
+    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;
+
+
+    public String[] getTokenNames() { return InternalReportDSLParser.tokenNames; }
+    public String getGrammarFileName() { return "../org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/antlr/internal/InternalReportDSL.g"; }
+
+
+     
+     	protected ReportDSLGrammarAccess grammarAccess;
+     	
+        public void setGrammarAccess(ReportDSLGrammarAccess grammarAccess) {
+        	this.grammarAccess = grammarAccess;
+        }
+        
+        @Override
+        protected Grammar getGrammar() {
+        	return grammarAccess.getGrammar();
+        }
+        
+        @Override
+        protected String getValueForTokenName(String tokenName) {
+        	return tokenName;
+        }
+
+
+
+
+
+    // Delegated rules
+
+    public final boolean synpred358_InternalReportDSL() {
+        state.backtracking++;
+        int start = input.mark();
+        try {
+            synpred358_InternalReportDSL_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 synpred345_InternalReportDSL() {
+        state.backtracking++;
+        int start = input.mark();
+        try {
+            synpred345_InternalReportDSL_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 synpred406_InternalReportDSL() {
+        state.backtracking++;
+        int start = input.mark();
+        try {
+            synpred406_InternalReportDSL_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_InternalReportDSL() {
+        state.backtracking++;
+        int start = input.mark();
+        try {
+            synpred297_InternalReportDSL_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_InternalReportDSL() {
+        state.backtracking++;
+        int start = input.mark();
+        try {
+            synpred284_InternalReportDSL_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_InternalReportDSL() {
+        state.backtracking++;
+        int start = input.mark();
+        try {
+            synpred318_InternalReportDSL_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 synpred257_InternalReportDSL() {
+        state.backtracking++;
+        int start = input.mark();
+        try {
+            synpred257_InternalReportDSL_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 synpred332_InternalReportDSL() {
+        state.backtracking++;
+        int start = input.mark();
+        try {
+            synpred332_InternalReportDSL_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 synpred333_InternalReportDSL() {
+        state.backtracking++;
+        int start = input.mark();
+        try {
+            synpred333_InternalReportDSL_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_InternalReportDSL() {
+        state.backtracking++;
+        int start = input.mark();
+        try {
+            synpred320_InternalReportDSL_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 synpred373_InternalReportDSL() {
+        state.backtracking++;
+        int start = input.mark();
+        try {
+            synpred373_InternalReportDSL_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 synpred386_InternalReportDSL() {
+        state.backtracking++;
+        int start = input.mark();
+        try {
+            synpred386_InternalReportDSL_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 synpred399_InternalReportDSL() {
+        state.backtracking++;
+        int start = input.mark();
+        try {
+            synpred399_InternalReportDSL_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 synpred258_InternalReportDSL() {
+        state.backtracking++;
+        int start = input.mark();
+        try {
+            synpred258_InternalReportDSL_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 synpred360_InternalReportDSL() {
+        state.backtracking++;
+        int start = input.mark();
+        try {
+            synpred360_InternalReportDSL_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_InternalReportDSL() {
+        state.backtracking++;
+        int start = input.mark();
+        try {
+            synpred298_InternalReportDSL_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 synpred346_InternalReportDSL() {
+        state.backtracking++;
+        int start = input.mark();
+        try {
+            synpred346_InternalReportDSL_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 synpred359_InternalReportDSL() {
+        state.backtracking++;
+        int start = input.mark();
+        try {
+            synpred359_InternalReportDSL_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 synpred407_InternalReportDSL() {
+        state.backtracking++;
+        int start = input.mark();
+        try {
+            synpred407_InternalReportDSL_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 synpred387_InternalReportDSL() {
+        state.backtracking++;
+        int start = input.mark();
+        try {
+            synpred387_InternalReportDSL_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_InternalReportDSL() {
+        state.backtracking++;
+        int start = input.mark();
+        try {
+            synpred260_InternalReportDSL_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 synpred361_InternalReportDSL() {
+        state.backtracking++;
+        int start = input.mark();
+        try {
+            synpred361_InternalReportDSL_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 synpred371_InternalReportDSL() {
+        state.backtracking++;
+        int start = input.mark();
+        try {
+            synpred371_InternalReportDSL_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 synpred357_InternalReportDSL() {
+        state.backtracking++;
+        int start = input.mark();
+        try {
+            synpred357_InternalReportDSL_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 synpred397_InternalReportDSL() {
+        state.backtracking++;
+        int start = input.mark();
+        try {
+            synpred397_InternalReportDSL_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 synpred372_InternalReportDSL() {
+        state.backtracking++;
+        int start = input.mark();
+        try {
+            synpred372_InternalReportDSL_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 synpred398_InternalReportDSL() {
+        state.backtracking++;
+        int start = input.mark();
+        try {
+            synpred398_InternalReportDSL_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 synpred347_InternalReportDSL() {
+        state.backtracking++;
+        int start = input.mark();
+        try {
+            synpred347_InternalReportDSL_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 synpred388_InternalReportDSL() {
+        state.backtracking++;
+        int start = input.mark();
+        try {
+            synpred388_InternalReportDSL_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 synpred256_InternalReportDSL() {
+        state.backtracking++;
+        int start = input.mark();
+        try {
+            synpred256_InternalReportDSL_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_InternalReportDSL() {
+        state.backtracking++;
+        int start = input.mark();
+        try {
+            synpred321_InternalReportDSL_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 synpred331_InternalReportDSL() {
+        state.backtracking++;
+        int start = input.mark();
+        try {
+            synpred331_InternalReportDSL_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 synpred335_InternalReportDSL() {
+        state.backtracking++;
+        int start = input.mark();
+        try {
+            synpred335_InternalReportDSL_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 synpred390_InternalReportDSL() {
+        state.backtracking++;
+        int start = input.mark();
+        try {
+            synpred390_InternalReportDSL_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 synpred348_InternalReportDSL() {
+        state.backtracking++;
+        int start = input.mark();
+        try {
+            synpred348_InternalReportDSL_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 synpred368_InternalReportDSL() {
+        state.backtracking++;
+        int start = input.mark();
+        try {
+            synpred368_InternalReportDSL_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 synpred328_InternalReportDSL() {
+        state.backtracking++;
+        int start = input.mark();
+        try {
+            synpred328_InternalReportDSL_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 synpred82_InternalReportDSL() {
+        state.backtracking++;
+        int start = input.mark();
+        try {
+            synpred82_InternalReportDSL_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_InternalReportDSL() {
+        state.backtracking++;
+        int start = input.mark();
+        try {
+            synpred261_InternalReportDSL_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 synpred375_InternalReportDSL() {
+        state.backtracking++;
+        int start = input.mark();
+        try {
+            synpred375_InternalReportDSL_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 synpred355_InternalReportDSL() {
+        state.backtracking++;
+        int start = input.mark();
+        try {
+            synpred355_InternalReportDSL_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 synpred403_InternalReportDSL() {
+        state.backtracking++;
+        int start = input.mark();
+        try {
+            synpred403_InternalReportDSL_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 synpred410_InternalReportDSL() {
+        state.backtracking++;
+        int start = input.mark();
+        try {
+            synpred410_InternalReportDSL_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_InternalReportDSL() {
+        state.backtracking++;
+        int start = input.mark();
+        try {
+            synpred281_InternalReportDSL_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 synpred330_InternalReportDSL() {
+        state.backtracking++;
+        int start = input.mark();
+        try {
+            synpred330_InternalReportDSL_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 synpred343_InternalReportDSL() {
+        state.backtracking++;
+        int start = input.mark();
+        try {
+            synpred343_InternalReportDSL_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 synpred255_InternalReportDSL() {
+        state.backtracking++;
+        int start = input.mark();
+        try {
+            synpred255_InternalReportDSL_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 synpred96_InternalReportDSL() {
+        state.backtracking++;
+        int start = input.mark();
+        try {
+            synpred96_InternalReportDSL_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_InternalReportDSL() {
+        state.backtracking++;
+        int start = input.mark();
+        try {
+            synpred310_InternalReportDSL_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 synpred350_InternalReportDSL() {
+        state.backtracking++;
+        int start = input.mark();
+        try {
+            synpred350_InternalReportDSL_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 synpred370_InternalReportDSL() {
+        state.backtracking++;
+        int start = input.mark();
+        try {
+            synpred370_InternalReportDSL_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 synpred363_InternalReportDSL() {
+        state.backtracking++;
+        int start = input.mark();
+        try {
+            synpred363_InternalReportDSL_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 synpred383_InternalReportDSL() {
+        state.backtracking++;
+        int start = input.mark();
+        try {
+            synpred383_InternalReportDSL_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 synpred101_InternalReportDSL() {
+        state.backtracking++;
+        int start = input.mark();
+        try {
+            synpred101_InternalReportDSL_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_InternalReportDSL() {
+        state.backtracking++;
+        int start = input.mark();
+        try {
+            synpred263_InternalReportDSL_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_InternalReportDSL() {
+        state.backtracking++;
+        int start = input.mark();
+        try {
+            synpred303_InternalReportDSL_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 synpred395_InternalReportDSL() {
+        state.backtracking++;
+        int start = input.mark();
+        try {
+            synpred395_InternalReportDSL_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 synpred34_InternalReportDSL() {
+        state.backtracking++;
+        int start = input.mark();
+        try {
+            synpred34_InternalReportDSL_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 synpred385_InternalReportDSL() {
+        state.backtracking++;
+        int start = input.mark();
+        try {
+            synpred385_InternalReportDSL_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 synpred405_InternalReportDSL() {
+        state.backtracking++;
+        int start = input.mark();
+        try {
+            synpred405_InternalReportDSL_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 synpred74_InternalReportDSL() {
+        state.backtracking++;
+        int start = input.mark();
+        try {
+            synpred74_InternalReportDSL_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 synpred400_InternalReportDSL() {
+        state.backtracking++;
+        int start = input.mark();
+        try {
+            synpred400_InternalReportDSL_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 synpred380_InternalReportDSL() {
+        state.backtracking++;
+        int start = input.mark();
+        try {
+            synpred380_InternalReportDSL_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 synpred413_InternalReportDSL() {
+        state.backtracking++;
+        int start = input.mark();
+        try {
+            synpred413_InternalReportDSL_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 synpred378_InternalReportDSL() {
+        state.backtracking++;
+        int start = input.mark();
+        try {
+            synpred378_InternalReportDSL_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 synpred352_InternalReportDSL() {
+        state.backtracking++;
+        int start = input.mark();
+        try {
+            synpred352_InternalReportDSL_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 synpred338_InternalReportDSL() {
+        state.backtracking++;
+        int start = input.mark();
+        try {
+            synpred338_InternalReportDSL_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 synpred365_InternalReportDSL() {
+        state.backtracking++;
+        int start = input.mark();
+        try {
+            synpred365_InternalReportDSL_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_InternalReportDSL() {
+        state.backtracking++;
+        int start = input.mark();
+        try {
+            synpred312_InternalReportDSL_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_InternalReportDSL() {
+        state.backtracking++;
+        int start = input.mark();
+        try {
+            synpred265_InternalReportDSL_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 synpred379_InternalReportDSL() {
+        state.backtracking++;
+        int start = input.mark();
+        try {
+            synpred379_InternalReportDSL_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 synpred60_InternalReportDSL() {
+        state.backtracking++;
+        int start = input.mark();
+        try {
+            synpred60_InternalReportDSL_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 synpred353_InternalReportDSL() {
+        state.backtracking++;
+        int start = input.mark();
+        try {
+            synpred353_InternalReportDSL_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 synpred340_InternalReportDSL() {
+        state.backtracking++;
+        int start = input.mark();
+        try {
+            synpred340_InternalReportDSL_fragment(); // can never throw exception
+        } catch (RecognitionException re) {
+            System.err.println("impossible: "+re);
+        }
+        boolean success = !state.failed;
+        input.rewind(start);
+        state.backtracking--;
+        state.failed=false;
+        return success;
+    }
+    public final boolean synpred252_InternalReportDSL() {
+        state.backtracking++;
+        int start = input.mark();
+        try {
+            synpred252_InternalReportDSL_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 synpred414_InternalReportDSL() {
+        state.backtracking++;
+        int start = input.mark();
+        try {
+            synpred414_InternalReportDSL_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 synpred401_InternalReportDSL() {
+        state.backtracking++;
+        int start = input.mark();
+        try {
+            synpred401_InternalReportDSL_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_InternalReportDSL() {
+        state.backtracking++;
+        int start = input.mark();
+        try {
+            synpred309_InternalReportDSL_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 synpred339_InternalReportDSL() {
+        state.backtracking++;
+        int start = input.mark();
+        try {
+            synpred339_InternalReportDSL_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 synpred366_InternalReportDSL() {
+        state.backtracking++;
+        int start = input.mark();
+        try {
+            synpred366_InternalReportDSL_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 synpred393_InternalReportDSL() {
+        state.backtracking++;
+        int start = input.mark();
+        try {
+            synpred393_InternalReportDSL_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 synpred351_InternalReportDSL() {
+        state.backtracking++;
+        int start = input.mark();
+        try {
+            synpred351_InternalReportDSL_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 synpred377_InternalReportDSL() {
+        state.backtracking++;
+        int start = input.mark();
+        try {
+            synpred377_InternalReportDSL_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 synpred341_InternalReportDSL() {
+        state.backtracking++;
+        int start = input.mark();
+        try {
+            synpred341_InternalReportDSL_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 synpred381_InternalReportDSL() {
+        state.backtracking++;
+        int start = input.mark();
+        try {
+            synpred381_InternalReportDSL_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 synpred367_InternalReportDSL() {
+        state.backtracking++;
+        int start = input.mark();
+        try {
+            synpred367_InternalReportDSL_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 synpred382_InternalReportDSL() {
+        state.backtracking++;
+        int start = input.mark();
+        try {
+            synpred382_InternalReportDSL_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 synpred392_InternalReportDSL() {
+        state.backtracking++;
+        int start = input.mark();
+        try {
+            synpred392_InternalReportDSL_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 synpred409_InternalReportDSL() {
+        state.backtracking++;
+        int start = input.mark();
+        try {
+            synpred409_InternalReportDSL_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 synpred337_InternalReportDSL() {
+        state.backtracking++;
+        int start = input.mark();
+        try {
+            synpred337_InternalReportDSL_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 synpred391_InternalReportDSL() {
+        state.backtracking++;
+        int start = input.mark();
+        try {
+            synpred391_InternalReportDSL_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 synpred402_InternalReportDSL() {
+        state.backtracking++;
+        int start = input.mark();
+        try {
+            synpred402_InternalReportDSL_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 synpred412_InternalReportDSL() {
+        state.backtracking++;
+        int start = input.mark();
+        try {
+            synpred412_InternalReportDSL_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_InternalReportDSL() {
+        state.backtracking++;
+        int start = input.mark();
+        try {
+            synpred266_InternalReportDSL_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_InternalReportDSL() {
+        state.backtracking++;
+        int start = input.mark();
+        try {
+            synpred311_InternalReportDSL_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 synpred61_InternalReportDSL() {
+        state.backtracking++;
+        int start = input.mark();
+        try {
+            synpred61_InternalReportDSL_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_InternalReportDSL() {
+        state.backtracking++;
+        int start = input.mark();
+        try {
+            synpred35_InternalReportDSL_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_InternalReportDSL() {
+        state.backtracking++;
+        int start = input.mark();
+        try {
+            synpred302_InternalReportDSL_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 synpred408_InternalReportDSL() {
+        state.backtracking++;
+        int start = input.mark();
+        try {
+            synpred408_InternalReportDSL_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_InternalReportDSL() {
+        state.backtracking++;
+        int start = input.mark();
+        try {
+            synpred254_InternalReportDSL_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 synpred362_InternalReportDSL() {
+        state.backtracking++;
+        int start = input.mark();
+        try {
+            synpred362_InternalReportDSL_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 synpred342_InternalReportDSL() {
+        state.backtracking++;
+        int start = input.mark();
+        try {
+            synpred342_InternalReportDSL_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_InternalReportDSL() {
+        state.backtracking++;
+        int start = input.mark();
+        try {
+            synpred274_InternalReportDSL_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 synpred389_InternalReportDSL() {
+        state.backtracking++;
+        int start = input.mark();
+        try {
+            synpred389_InternalReportDSL_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 synpred83_InternalReportDSL() {
+        state.backtracking++;
+        int start = input.mark();
+        try {
+            synpred83_InternalReportDSL_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_InternalReportDSL() {
+        state.backtracking++;
+        int start = input.mark();
+        try {
+            synpred262_InternalReportDSL_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 synpred100_InternalReportDSL() {
+        state.backtracking++;
+        int start = input.mark();
+        try {
+            synpred100_InternalReportDSL_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 synpred336_InternalReportDSL() {
+        state.backtracking++;
+        int start = input.mark();
+        try {
+            synpred336_InternalReportDSL_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 synpred396_InternalReportDSL() {
+        state.backtracking++;
+        int start = input.mark();
+        try {
+            synpred396_InternalReportDSL_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 synpred376_InternalReportDSL() {
+        state.backtracking++;
+        int start = input.mark();
+        try {
+            synpred376_InternalReportDSL_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 synpred411_InternalReportDSL() {
+        state.backtracking++;
+        int start = input.mark();
+        try {
+            synpred411_InternalReportDSL_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 synpred369_InternalReportDSL() {
+        state.backtracking++;
+        int start = input.mark();
+        try {
+            synpred369_InternalReportDSL_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 synpred404_InternalReportDSL() {
+        state.backtracking++;
+        int start = input.mark();
+        try {
+            synpred404_InternalReportDSL_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 synpred329_InternalReportDSL() {
+        state.backtracking++;
+        int start = input.mark();
+        try {
+            synpred329_InternalReportDSL_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 synpred356_InternalReportDSL() {
+        state.backtracking++;
+        int start = input.mark();
+        try {
+            synpred356_InternalReportDSL_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 synpred349_InternalReportDSL() {
+        state.backtracking++;
+        int start = input.mark();
+        try {
+            synpred349_InternalReportDSL_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 synpred374_InternalReportDSL() {
+        state.backtracking++;
+        int start = input.mark();
+        try {
+            synpred374_InternalReportDSL_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 synpred384_InternalReportDSL() {
+        state.backtracking++;
+        int start = input.mark();
+        try {
+            synpred384_InternalReportDSL_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 synpred364_InternalReportDSL() {
+        state.backtracking++;
+        int start = input.mark();
+        try {
+            synpred364_InternalReportDSL_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 synpred354_InternalReportDSL() {
+        state.backtracking++;
+        int start = input.mark();
+        try {
+            synpred354_InternalReportDSL_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_InternalReportDSL() {
+        state.backtracking++;
+        int start = input.mark();
+        try {
+            synpred107_InternalReportDSL_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 synpred394_InternalReportDSL() {
+        state.backtracking++;
+        int start = input.mark();
+        try {
+            synpred394_InternalReportDSL_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_InternalReportDSL() {
+        state.backtracking++;
+        int start = input.mark();
+        try {
+            synpred33_InternalReportDSL_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_InternalReportDSL() {
+        state.backtracking++;
+        int start = input.mark();
+        try {
+            synpred314_InternalReportDSL_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_InternalReportDSL() {
+        state.backtracking++;
+        int start = input.mark();
+        try {
+            synpred304_InternalReportDSL_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_InternalReportDSL() {
+        state.backtracking++;
+        int start = input.mark();
+        try {
+            synpred259_InternalReportDSL_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 synpred334_InternalReportDSL() {
+        state.backtracking++;
+        int start = input.mark();
+        try {
+            synpred334_InternalReportDSL_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 synpred344_InternalReportDSL() {
+        state.backtracking++;
+        int start = input.mark();
+        try {
+            synpred344_InternalReportDSL_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 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 DFA55 dfa55 = new DFA55(this);
+    protected DFA152 dfa152 = new DFA152(this);
+    protected DFA158 dfa158 = new DFA158(this);
+    protected DFA165 dfa165 = new DFA165(this);
+    protected DFA166 dfa166 = new DFA166(this);
+    protected DFA174 dfa174 = new DFA174(this);
+    protected DFA184 dfa184 = new DFA184(this);
+    protected DFA197 dfa197 = new DFA197(this);
+    protected DFA198 dfa198 = new DFA198(this);
+    protected DFA202 dfa202 = new DFA202(this);
+    protected DFA203 dfa203 = new DFA203(this);
+    protected DFA204 dfa204 = new DFA204(this);
+    protected DFA209 dfa209 = new DFA209(this);
+    protected DFA218 dfa218 = new DFA218(this);
+    protected DFA221 dfa221 = new DFA221(this);
+    protected DFA229 dfa229 = new DFA229(this);
+    protected DFA230 dfa230 = new DFA230(this);
+    protected DFA231 dfa231 = new DFA231(this);
+    protected DFA232 dfa232 = new DFA232(this);
+    protected DFA233 dfa233 = new DFA233(this);
+    protected DFA234 dfa234 = new DFA234(this);
+    protected DFA235 dfa235 = new DFA235(this);
+    protected DFA236 dfa236 = new DFA236(this);
+    protected DFA237 dfa237 = new DFA237(this);
+    protected DFA238 dfa238 = new DFA238(this);
+    protected DFA239 dfa239 = new DFA239(this);
+    protected DFA240 dfa240 = new DFA240(this);
+    protected DFA241 dfa241 = new DFA241(this);
+    protected DFA242 dfa242 = new DFA242(this);
+    protected DFA243 dfa243 = new DFA243(this);
+    protected DFA244 dfa244 = new DFA244(this);
+    protected DFA245 dfa245 = new DFA245(this);
+    protected DFA246 dfa246 = new DFA246(this);
+    protected DFA247 dfa247 = new DFA247(this);
+    protected DFA248 dfa248 = new DFA248(this);
+    protected DFA249 dfa249 = new DFA249(this);
+    protected DFA250 dfa250 = new DFA250(this);
+    protected DFA251 dfa251 = new DFA251(this);
+    protected DFA252 dfa252 = new DFA252(this);
+    protected DFA253 dfa253 = new DFA253(this);
+    protected DFA254 dfa254 = new DFA254(this);
+    protected DFA255 dfa255 = new DFA255(this);
+    protected DFA256 dfa256 = new DFA256(this);
+    protected DFA257 dfa257 = new DFA257(this);
+    protected DFA258 dfa258 = new DFA258(this);
+    protected DFA259 dfa259 = new DFA259(this);
+    protected DFA260 dfa260 = new DFA260(this);
+    protected DFA261 dfa261 = new DFA261(this);
+    protected DFA262 dfa262 = new DFA262(this);
+    protected DFA263 dfa263 = new DFA263(this);
+    protected DFA264 dfa264 = new DFA264(this);
+    protected DFA265 dfa265 = new DFA265(this);
+    protected DFA266 dfa266 = new DFA266(this);
+    protected DFA267 dfa267 = new DFA267(this);
+    static final String DFA14_eotS =
+        "\43\uffff";
+    static final String DFA14_eofS =
+        "\43\uffff";
+    static final String DFA14_minS =
+        "\1\4\1\0\41\uffff";
+    static final String DFA14_maxS =
+        "\1\u00fe\1\0\41\uffff";
+    static final String DFA14_acceptS =
+        "\2\uffff\1\2\37\uffff\1\1";
+    static final String DFA14_specialS =
+        "\1\uffff\1\0\41\uffff}>";
+    static final String[] DFA14_transitionS = {
+            "\1\2\1\1\3\2\26\uffff\1\2\6\uffff\2\2\4\uffff\1\2\4\uffff\6"+
+            "\2\103\uffff\1\2\115\uffff\1\2\16\uffff\1\2\2\uffff\2\2\2\uffff"+
+            "\1\2\1\uffff\1\2\3\uffff\11\2\1\uffff\1\2\17\uffff\1\2",
+            "\1\uffff",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            ""
+    };
+
+    static final short[] DFA14_eot = DFA.unpackEncodedString(DFA14_eotS);
+    static final short[] DFA14_eof = DFA.unpackEncodedString(DFA14_eofS);
+    static final char[] DFA14_min = DFA.unpackEncodedStringToUnsignedChars(DFA14_minS);
+    static final char[] DFA14_max = DFA.unpackEncodedStringToUnsignedChars(DFA14_maxS);
+    static final short[] DFA14_accept = DFA.unpackEncodedString(DFA14_acceptS);
+    static final short[] DFA14_special = DFA.unpackEncodedString(DFA14_specialS);
+    static final short[][] DFA14_transition;
+
+    static {
+        int numStates = DFA14_transitionS.length;
+        DFA14_transition = new short[numStates][];
+        for (int i=0; i<numStates; i++) {
+            DFA14_transition[i] = DFA.unpackEncodedString(DFA14_transitionS[i]);
+        }
+    }
+
+    class DFA14 extends DFA {
+
+        public DFA14(BaseRecognizer recognizer) {
+            this.recognizer = recognizer;
+            this.decisionNumber = 14;
+            this.eot = DFA14_eot;
+            this.eof = DFA14_eof;
+            this.min = DFA14_min;
+            this.max = DFA14_max;
+            this.accept = DFA14_accept;
+            this.special = DFA14_special;
+            this.transition = DFA14_transition;
+        }
+        public String getDescription() {
+            return "5195: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 ( (synpred33_InternalReportDSL()) ) {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 DFA15_eotS =
+        "\43\uffff";
+    static final String DFA15_eofS =
+        "\43\uffff";
+    static final String DFA15_minS =
+        "\1\4\1\0\41\uffff";
+    static final String DFA15_maxS =
+        "\1\u00fe\1\0\41\uffff";
+    static final String DFA15_acceptS =
+        "\2\uffff\1\2\37\uffff\1\1";
+    static final String DFA15_specialS =
+        "\1\uffff\1\0\41\uffff}>";
+    static final String[] DFA15_transitionS = {
+            "\5\2\26\uffff\1\2\6\uffff\2\2\4\uffff\1\2\4\uffff\6\2\103\uffff"+
+            "\1\2\115\uffff\1\2\16\uffff\1\2\2\uffff\1\1\1\2\2\uffff\1\2"+
+            "\1\uffff\1\2\3\uffff\11\2\1\uffff\1\2\17\uffff\1\2",
+            "\1\uffff",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            ""
+    };
+
+    static final short[] DFA15_eot = DFA.unpackEncodedString(DFA15_eotS);
+    static final short[] DFA15_eof = DFA.unpackEncodedString(DFA15_eofS);
+    static final char[] DFA15_min = DFA.unpackEncodedStringToUnsignedChars(DFA15_minS);
+    static final char[] DFA15_max = DFA.unpackEncodedStringToUnsignedChars(DFA15_maxS);
+    static final short[] DFA15_accept = DFA.unpackEncodedString(DFA15_acceptS);
+    static final short[] DFA15_special = DFA.unpackEncodedString(DFA15_specialS);
+    static final short[][] DFA15_transition;
+
+    static {
+        int numStates = DFA15_transitionS.length;
+        DFA15_transition = new short[numStates][];
+        for (int i=0; i<numStates; i++) {
+            DFA15_transition[i] = DFA.unpackEncodedString(DFA15_transitionS[i]);
+        }
+    }
+
+    class DFA15 extends DFA {
+
+        public DFA15(BaseRecognizer recognizer) {
+            this.recognizer = recognizer;
+            this.decisionNumber = 15;
+            this.eot = DFA15_eot;
+            this.eof = DFA15_eof;
+            this.min = DFA15_min;
+            this.max = DFA15_max;
+            this.accept = DFA15_accept;
+            this.special = DFA15_special;
+            this.transition = DFA15_transition;
+        }
+        public String getDescription() {
+            return "5217: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 ( (synpred34_InternalReportDSL()) ) {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;
+        }
+    }
+    static final String DFA16_eotS =
+        "\43\uffff";
+    static final String DFA16_eofS =
+        "\43\uffff";
+    static final String DFA16_minS =
+        "\1\4\1\0\41\uffff";
+    static final String DFA16_maxS =
+        "\1\u00fe\1\0\41\uffff";
+    static final String DFA16_acceptS =
+        "\2\uffff\1\2\37\uffff\1\1";
+    static final String DFA16_specialS =
+        "\1\uffff\1\0\41\uffff}>";
+    static final String[] DFA16_transitionS = {
+            "\5\2\26\uffff\1\2\6\uffff\2\2\4\uffff\1\2\4\uffff\6\2\103\uffff"+
+            "\1\2\115\uffff\1\2\16\uffff\1\2\2\uffff\1\1\1\2\2\uffff\1\2"+
+            "\1\uffff\1\2\3\uffff\11\2\1\uffff\1\2\17\uffff\1\2",
+            "\1\uffff",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            ""
+    };
+
+    static final short[] DFA16_eot = DFA.unpackEncodedString(DFA16_eotS);
+    static final short[] DFA16_eof = DFA.unpackEncodedString(DFA16_eofS);
+    static final char[] DFA16_min = DFA.unpackEncodedStringToUnsignedChars(DFA16_minS);
+    static final char[] DFA16_max = DFA.unpackEncodedStringToUnsignedChars(DFA16_maxS);
+    static final short[] DFA16_accept = DFA.unpackEncodedString(DFA16_acceptS);
+    static final short[] DFA16_special = DFA.unpackEncodedString(DFA16_specialS);
+    static final short[][] DFA16_transition;
+
+    static {
+        int numStates = DFA16_transitionS.length;
+        DFA16_transition = new short[numStates][];
+        for (int i=0; i<numStates; i++) {
+            DFA16_transition[i] = DFA.unpackEncodedString(DFA16_transitionS[i]);
+        }
+    }
+
+    class DFA16 extends DFA {
+
+        public DFA16(BaseRecognizer recognizer) {
+            this.recognizer = recognizer;
+            this.decisionNumber = 16;
+            this.eot = DFA16_eot;
+            this.eof = DFA16_eof;
+            this.min = DFA16_min;
+            this.max = DFA16_max;
+            this.accept = DFA16_accept;
+            this.special = DFA16_special;
+            this.transition = DFA16_transition;
+        }
+        public String getDescription() {
+            return "5239: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 ( (synpred35_InternalReportDSL()) ) {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 DFA23_eotS =
+        "\13\uffff";
+    static final String DFA23_eofS =
+        "\13\uffff";
+    static final String DFA23_minS =
+        "\1\36\2\uffff\1\36\7\uffff";
+    static final String DFA23_maxS =
+        "\1\45\2\uffff\1\42\7\uffff";
+    static final String DFA23_acceptS =
+        "\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 DFA23_specialS =
+        "\13\uffff}>";
+    static final String[] DFA23_transitionS = {
+            "\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[] DFA23_eot = DFA.unpackEncodedString(DFA23_eotS);
+    static final short[] DFA23_eof = DFA.unpackEncodedString(DFA23_eofS);
+    static final char[] DFA23_min = DFA.unpackEncodedStringToUnsignedChars(DFA23_minS);
+    static final char[] DFA23_max = DFA.unpackEncodedStringToUnsignedChars(DFA23_maxS);
+    static final short[] DFA23_accept = DFA.unpackEncodedString(DFA23_acceptS);
+    static final short[] DFA23_special = DFA.unpackEncodedString(DFA23_specialS);
+    static final short[][] DFA23_transition;
+
+    static {
+        int numStates = DFA23_transitionS.length;
+        DFA23_transition = new short[numStates][];
+        for (int i=0; i<numStates; i++) {
+            DFA23_transition[i] = DFA.unpackEncodedString(DFA23_transitionS[i]);
+        }
+    }
+
+    class DFA23 extends DFA {
+
+        public DFA23(BaseRecognizer recognizer) {
+            this.recognizer = recognizer;
+            this.decisionNumber = 23;
+            this.eot = DFA23_eot;
+            this.eof = DFA23_eof;
+            this.min = DFA23_min;
+            this.max = DFA23_max;
+            this.accept = DFA23_accept;
+            this.special = DFA23_special;
+            this.transition = DFA23_transition;
+        }
+        public String getDescription() {
+            return "5471:1: rule__OpOther__Alternatives : ( ( '->' ) | ( '..<' ) | ( ( rule__OpOther__Group_2__0 ) ) | ( '..' ) | ( '=>' ) | ( ( rule__OpOther__Group_5__0 ) ) | ( ( rule__OpOther__Group_6__0 ) ) | ( '<>' ) | ( '?:' ) );";
+        }
+    }
+    static final String DFA31_eotS =
+        "\12\uffff";
+    static final String DFA31_eofS =
+        "\4\uffff\5\3\1\uffff";
+    static final String DFA31_minS =
+        "\1\57\2\5\1\uffff\5\4\1\uffff";
+    static final String DFA31_maxS =
+        "\1\u00fb\2\65\1\uffff\5\u00fe\1\uffff";
+    static final String DFA31_acceptS =
+        "\3\uffff\1\2\5\uffff\1\1";
+    static final String DFA31_specialS =
+        "\12\uffff}>";
+    static final String[] DFA31_transitionS = {
+            "\1\1\u00ca\uffff\1\2\1\3",
+            "\1\4\31\uffff\1\3\21\uffff\1\5\1\6\1\7\1\10\1\3",
+            "\1\4\31\uffff\1\3\21\uffff\1\5\1\6\1\7\1\10\1\3",
+            "",
+            "\5\3\4\uffff\1\11\2\3\4\uffff\43\3\103\uffff\2\3\74\uffff"+
+            "\1\3\17\uffff\2\3\16\uffff\30\3\12\uffff\2\3\1\uffff\2\3",
+            "\5\3\4\uffff\1\11\2\3\4\uffff\43\3\103\uffff\2\3\74\uffff"+
+            "\1\3\17\uffff\2\3\16\uffff\30\3\12\uffff\2\3\1\uffff\2\3",
+            "\5\3\4\uffff\1\11\2\3\4\uffff\43\3\103\uffff\2\3\74\uffff"+
+            "\1\3\17\uffff\2\3\16\uffff\30\3\12\uffff\2\3\1\uffff\2\3",
+            "\5\3\4\uffff\1\11\2\3\4\uffff\43\3\103\uffff\2\3\74\uffff"+
+            "\1\3\17\uffff\2\3\16\uffff\30\3\12\uffff\2\3\1\uffff\2\3",
+            "\5\3\4\uffff\1\11\2\3\4\uffff\43\3\103\uffff\2\3\74\uffff"+
+            "\1\3\17\uffff\2\3\16\uffff\30\3\12\uffff\2\3\1\uffff\2\3",
+            ""
+    };
+
+    static final short[] DFA31_eot = DFA.unpackEncodedString(DFA31_eotS);
+    static final short[] DFA31_eof = DFA.unpackEncodedString(DFA31_eofS);
+    static final char[] DFA31_min = DFA.unpackEncodedStringToUnsignedChars(DFA31_minS);
+    static final char[] DFA31_max = DFA.unpackEncodedStringToUnsignedChars(DFA31_maxS);
+    static final short[] DFA31_accept = DFA.unpackEncodedString(DFA31_acceptS);
+    static final short[] DFA31_special = DFA.unpackEncodedString(DFA31_specialS);
+    static final short[][] DFA31_transition;
+
+    static {
+        int numStates = DFA31_transitionS.length;
+        DFA31_transition = new short[numStates][];
+        for (int i=0; i<numStates; i++) {
+            DFA31_transition[i] = DFA.unpackEncodedString(DFA31_transitionS[i]);
+        }
+    }
+
+    class DFA31 extends DFA {
+
+        public DFA31(BaseRecognizer recognizer) {
+            this.recognizer = recognizer;
+            this.decisionNumber = 31;
+            this.eot = DFA31_eot;
+            this.eof = DFA31_eof;
+            this.min = DFA31_min;
+            this.max = DFA31_max;
+            this.accept = DFA31_accept;
+            this.special = DFA31_special;
+            this.transition = DFA31_transition;
+        }
+        public String getDescription() {
+            return "5753:1: rule__XMemberFeatureCall__Alternatives_1 : ( ( ( rule__XMemberFeatureCall__Group_1_0__0 ) ) | ( ( rule__XMemberFeatureCall__Group_1_1__0 ) ) );";
+        }
+    }
+    static final String DFA34_eotS =
+        "\43\uffff";
+    static final String DFA34_eofS =
+        "\43\uffff";
+    static final String DFA34_minS =
+        "\1\4\2\0\40\uffff";
+    static final String DFA34_maxS =
+        "\1\u00fe\2\0\40\uffff";
+    static final String DFA34_acceptS =
+        "\3\uffff\1\1\1\uffff\1\2\35\uffff";
+    static final String DFA34_specialS =
+        "\1\uffff\1\0\1\1\40\uffff}>";
+    static final String[] DFA34_transitionS = {
+            "\1\5\1\1\3\5\26\uffff\1\5\3\uffff\1\3\2\uffff\2\5\4\uffff\1"+
+            "\5\4\uffff\6\5\103\uffff\1\5\115\uffff\1\2\21\uffff\2\5\2\uffff"+
+            "\1\5\1\uffff\1\5\3\uffff\11\5\1\uffff\1\5\15\uffff\1\3\1\uffff"+
+            "\1\5",
+            "\1\uffff",
+            "\1\uffff",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            ""
+    };
+
+    static final short[] DFA34_eot = DFA.unpackEncodedString(DFA34_eotS);
+    static final short[] DFA34_eof = DFA.unpackEncodedString(DFA34_eofS);
+    static final char[] DFA34_min = DFA.unpackEncodedStringToUnsignedChars(DFA34_minS);
+    static final char[] DFA34_max = DFA.unpackEncodedStringToUnsignedChars(DFA34_maxS);
+    static final short[] DFA34_accept = DFA.unpackEncodedString(DFA34_acceptS);
+    static final short[] DFA34_special = DFA.unpackEncodedString(DFA34_specialS);
+    static final short[][] DFA34_transition;
+
+    static {
+        int numStates = DFA34_transitionS.length;
+        DFA34_transition = new short[numStates][];
+        for (int i=0; i<numStates; i++) {
+            DFA34_transition[i] = DFA.unpackEncodedString(DFA34_transitionS[i]);
+        }
+    }
+
+    class DFA34 extends DFA {
+
+        public DFA34(BaseRecognizer recognizer) {
+            this.recognizer = recognizer;
+            this.decisionNumber = 34;
+            this.eot = DFA34_eot;
+            this.eof = DFA34_eof;
+            this.min = DFA34_min;
+            this.max = DFA34_max;
+            this.accept = DFA34_accept;
+            this.special = DFA34_special;
+            this.transition = DFA34_transition;
+        }
+        public String getDescription() {
+            return "5829: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 ( (synpred74_InternalReportDSL()) ) {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 ( (synpred74_InternalReportDSL()) ) {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 DFA35_eotS =
+        "\40\uffff";
+    static final String DFA35_eofS =
+        "\40\uffff";
+    static final String DFA35_minS =
+        "\1\4\26\uffff\1\0\10\uffff";
+    static final String DFA35_maxS =
+        "\1\u00fe\26\uffff\1\0\10\uffff";
+    static final String DFA35_acceptS =
+        "\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 DFA35_specialS =
+        "\27\uffff\1\0\10\uffff}>";
+    static final String[] DFA35_transitionS = {
+            "\1\14\1\5\3\14\26\uffff\1\5\21\uffff\5\5\1\14\103\uffff\1\2"+
+            "\115\uffff\1\35\21\uffff\2\14\2\uffff\1\26\1\uffff\1\3\3\uffff"+
+            "\1\27\1\30\1\31\1\1\2\14\1\32\1\33\1\34\1\uffff\1\4\17\uffff"+
+            "\1\14",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "\1\uffff",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            ""
+    };
+
+    static final short[] DFA35_eot = DFA.unpackEncodedString(DFA35_eotS);
+    static final short[] DFA35_eof = DFA.unpackEncodedString(DFA35_eofS);
+    static final char[] DFA35_min = DFA.unpackEncodedStringToUnsignedChars(DFA35_minS);
+    static final char[] DFA35_max = DFA.unpackEncodedStringToUnsignedChars(DFA35_maxS);
+    static final short[] DFA35_accept = DFA.unpackEncodedString(DFA35_acceptS);
+    static final short[] DFA35_special = DFA.unpackEncodedString(DFA35_specialS);
+    static final short[][] DFA35_transition;
+
+    static {
+        int numStates = DFA35_transitionS.length;
+        DFA35_transition = new short[numStates][];
+        for (int i=0; i<numStates; i++) {
+            DFA35_transition[i] = DFA.unpackEncodedString(DFA35_transitionS[i]);
+        }
+    }
+
+    class DFA35 extends DFA {
+
+        public DFA35(BaseRecognizer recognizer) {
+            this.recognizer = recognizer;
+            this.decisionNumber = 35;
+            this.eot = DFA35_eot;
+            this.eof = DFA35_eof;
+            this.min = DFA35_min;
+            this.max = DFA35_max;
+            this.accept = DFA35_accept;
+            this.special = DFA35_special;
+            this.transition = DFA35_transition;
+        }
+        public String getDescription() {
+            return "5851: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 ( (synpred82_InternalReportDSL()) ) {s = 30;}
+
+                        else if ( (synpred83_InternalReportDSL()) ) {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 DFA38_eotS =
+        "\43\uffff";
+    static final String DFA38_eofS =
+        "\43\uffff";
+    static final String DFA38_minS =
+        "\1\4\1\0\41\uffff";
+    static final String DFA38_maxS =
+        "\1\u00fe\1\0\41\uffff";
+    static final String DFA38_acceptS =
+        "\2\uffff\1\2\37\uffff\1\1";
+    static final String DFA38_specialS =
+        "\1\uffff\1\0\41\uffff}>";
+    static final String[] DFA38_transitionS = {
+            "\5\2\26\uffff\1\2\3\uffff\1\2\2\uffff\2\2\4\uffff\1\2\4\uffff"+
+            "\6\2\103\uffff\1\2\115\uffff\1\1\21\uffff\2\2\2\uffff\1\2\1"+
+            "\uffff\1\2\3\uffff\11\2\1\uffff\1\2\17\uffff\1\2",
+            "\1\uffff",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            ""
+    };
+
+    static final short[] DFA38_eot = DFA.unpackEncodedString(DFA38_eotS);
+    static final short[] DFA38_eof = DFA.unpackEncodedString(DFA38_eofS);
+    static final char[] DFA38_min = DFA.unpackEncodedStringToUnsignedChars(DFA38_minS);
+    static final char[] DFA38_max = DFA.unpackEncodedStringToUnsignedChars(DFA38_maxS);
+    static final short[] DFA38_accept = DFA.unpackEncodedString(DFA38_acceptS);
+    static final short[] DFA38_special = DFA.unpackEncodedString(DFA38_specialS);
+    static final short[][] DFA38_transition;
+
+    static {
+        int numStates = DFA38_transitionS.length;
+        DFA38_transition = new short[numStates][];
+        for (int i=0; i<numStates; i++) {
+            DFA38_transition[i] = DFA.unpackEncodedString(DFA38_transitionS[i]);
+        }
+    }
+
+    class DFA38 extends DFA {
+
+        public DFA38(BaseRecognizer recognizer) {
+            this.recognizer = recognizer;
+            this.decisionNumber = 38;
+            this.eot = DFA38_eot;
+            this.eof = DFA38_eof;
+            this.min = DFA38_min;
+            this.max = DFA38_max;
+            this.accept = DFA38_accept;
+            this.special = DFA38_special;
+            this.transition = DFA38_transition;
+        }
+        public String getDescription() {
+            return "6025: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 ( (synpred96_InternalReportDSL()) ) {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;
+        }
+    }
+    static final String DFA43_eotS =
+        "\43\uffff";
+    static final String DFA43_eofS =
+        "\43\uffff";
+    static final String DFA43_minS =
+        "\1\4\2\0\40\uffff";
+    static final String DFA43_maxS =
+        "\1\u00fe\2\0\40\uffff";
+    static final String DFA43_acceptS =
+        "\3\uffff\1\1\1\uffff\1\2\35\uffff";
+    static final String DFA43_specialS =
+        "\1\uffff\1\0\1\1\40\uffff}>";
+    static final String[] DFA43_transitionS = {
+            "\1\5\1\1\3\5\26\uffff\1\5\3\uffff\1\3\2\uffff\2\5\4\uffff\1"+
+            "\5\4\uffff\6\5\103\uffff\1\5\115\uffff\1\2\21\uffff\2\5\2\uffff"+
+            "\1\5\1\uffff\1\5\3\uffff\11\5\1\uffff\1\5\15\uffff\1\3\1\uffff"+
+            "\1\5",
+            "\1\uffff",
+            "\1\uffff",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            ""
+    };
+
+    static final short[] DFA43_eot = DFA.unpackEncodedString(DFA43_eotS);
+    static final short[] DFA43_eof = DFA.unpackEncodedString(DFA43_eofS);
+    static final char[] DFA43_min = DFA.unpackEncodedStringToUnsignedChars(DFA43_minS);
+    static final char[] DFA43_max = DFA.unpackEncodedStringToUnsignedChars(DFA43_maxS);
+    static final short[] DFA43_accept = DFA.unpackEncodedString(DFA43_acceptS);
+    static final short[] DFA43_special = DFA.unpackEncodedString(DFA43_specialS);
+    static final short[][] DFA43_transition;
+
+    static {
+        int numStates = DFA43_transitionS.length;
+        DFA43_transition = new short[numStates][];
+        for (int i=0; i<numStates; i++) {
+            DFA43_transition[i] = DFA.unpackEncodedString(DFA43_transitionS[i]);
+        }
+    }
+
+    class DFA43 extends DFA {
+
+        public DFA43(BaseRecognizer recognizer) {
+            this.recognizer = recognizer;
+            this.decisionNumber = 43;
+            this.eot = DFA43_eot;
+            this.eof = DFA43_eof;
+            this.min = DFA43_min;
+            this.max = DFA43_max;
+            this.accept = DFA43_accept;
+            this.special = DFA43_special;
+            this.transition = DFA43_transition;
+        }
+        public String getDescription() {
+            return "6137: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 ( (synpred101_InternalReportDSL()) ) {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 ( (synpred101_InternalReportDSL()) ) {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;
+        }
+    }
+    static final String DFA46_eotS =
+        "\43\uffff";
+    static final String DFA46_eofS =
+        "\43\uffff";
+    static final String DFA46_minS =
+        "\1\4\2\0\40\uffff";
+    static final String DFA46_maxS =
+        "\1\u00fe\2\0\40\uffff";
+    static final String DFA46_acceptS =
+        "\3\uffff\1\1\1\uffff\1\2\35\uffff";
+    static final String DFA46_specialS =
+        "\1\uffff\1\0\1\1\40\uffff}>";
+    static final String[] DFA46_transitionS = {
+            "\1\5\1\1\3\5\26\uffff\1\5\3\uffff\1\3\2\uffff\2\5\4\uffff\1"+
+            "\5\4\uffff\6\5\103\uffff\1\5\115\uffff\1\2\21\uffff\2\5\2\uffff"+
+            "\1\5\1\uffff\1\5\3\uffff\11\5\1\uffff\1\5\15\uffff\1\3\1\uffff"+
+            "\1\5",
+            "\1\uffff",
+            "\1\uffff",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            ""
+    };
+
+    static final short[] DFA46_eot = DFA.unpackEncodedString(DFA46_eotS);
+    static final short[] DFA46_eof = DFA.unpackEncodedString(DFA46_eofS);
+    static final char[] DFA46_min = DFA.unpackEncodedStringToUnsignedChars(DFA46_minS);
+    static final char[] DFA46_max = DFA.unpackEncodedStringToUnsignedChars(DFA46_maxS);
+    static final short[] DFA46_accept = DFA.unpackEncodedString(DFA46_acceptS);
+    static final short[] DFA46_special = DFA.unpackEncodedString(DFA46_specialS);
+    static final short[][] DFA46_transition;
+
+    static {
+        int numStates = DFA46_transitionS.length;
+        DFA46_transition = new short[numStates][];
+        for (int i=0; i<numStates; i++) {
+            DFA46_transition[i] = DFA.unpackEncodedString(DFA46_transitionS[i]);
+        }
+    }
+
+    class DFA46 extends DFA {
+
+        public DFA46(BaseRecognizer recognizer) {
+            this.recognizer = recognizer;
+            this.decisionNumber = 46;
+            this.eot = DFA46_eot;
+            this.eof = DFA46_eof;
+            this.min = DFA46_min;
+            this.max = DFA46_max;
+            this.accept = DFA46_accept;
+            this.special = DFA46_special;
+            this.transition = DFA46_transition;
+        }
+        public String getDescription() {
+            return "6231: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 ( (synpred107_InternalReportDSL()) ) {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 ( (synpred107_InternalReportDSL()) ) {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 DFA55_eotS =
+        "\7\uffff";
+    static final String DFA55_eofS =
+        "\2\uffff\1\4\2\uffff\1\4\1\uffff";
+    static final String DFA55_minS =
+        "\1\5\1\uffff\1\57\1\5\1\uffff\1\57\1\uffff";
+    static final String DFA55_maxS =
+        "\1\62\1\uffff\1\u00dd\1\50\1\uffff\1\u00dd\1\uffff";
+    static final String DFA55_acceptS =
+        "\1\uffff\1\1\2\uffff\1\2\1\uffff\1\3";
+    static final String DFA55_specialS =
+        "\7\uffff}>";
+    static final String[] DFA55_transitionS = {
+            "\1\2\54\uffff\1\1",
+            "",
+            "\1\3\u00ad\uffff\1\4",
+            "\1\5\42\uffff\1\6",
+            "",
+            "\1\3\u00ad\uffff\1\4",
+            ""
+    };
+
+    static final short[] DFA55_eot = DFA.unpackEncodedString(DFA55_eotS);
+    static final short[] DFA55_eof = DFA.unpackEncodedString(DFA55_eofS);
+    static final char[] DFA55_min = DFA.unpackEncodedStringToUnsignedChars(DFA55_minS);
+    static final char[] DFA55_max = DFA.unpackEncodedStringToUnsignedChars(DFA55_maxS);
+    static final short[] DFA55_accept = DFA.unpackEncodedString(DFA55_acceptS);
+    static final short[] DFA55_special = DFA.unpackEncodedString(DFA55_specialS);
+    static final short[][] DFA55_transition;
+
+    static {
+        int numStates = DFA55_transitionS.length;
+        DFA55_transition = new short[numStates][];
+        for (int i=0; i<numStates; i++) {
+            DFA55_transition[i] = DFA.unpackEncodedString(DFA55_transitionS[i]);
+        }
+    }
+
+    class DFA55 extends DFA {
+
+        public DFA55(BaseRecognizer recognizer) {
+            this.recognizer = recognizer;
+            this.decisionNumber = 55;
+            this.eot = DFA55_eot;
+            this.eof = DFA55_eof;
+            this.min = DFA55_min;
+            this.max = DFA55_max;
+            this.accept = DFA55_accept;
+            this.special = DFA55_special;
+            this.transition = DFA55_transition;
+        }
+        public String getDescription() {
+            return "6431:1: rule__XImportDeclaration__Alternatives_1 : ( ( ( rule__XImportDeclaration__Group_1_0__0 ) ) | ( ( rule__XImportDeclaration__ImportedTypeAssignment_1_1 ) ) | ( ( rule__XImportDeclaration__ImportedNamespaceAssignment_1_2 ) ) );";
+        }
+    }
+    static final String DFA152_eotS =
+        "\12\uffff";
+    static final String DFA152_eofS =
+        "\1\10\11\uffff";
+    static final String DFA152_minS =
+        "\1\4\7\0\2\uffff";
+    static final String DFA152_maxS =
+        "\1\u00fe\7\0\2\uffff";
+    static final String DFA152_acceptS =
+        "\10\uffff\1\2\1\1";
+    static final String DFA152_specialS =
+        "\1\uffff\1\1\1\0\1\6\1\4\1\2\1\5\1\3\2\uffff}>";
+    static final String[] DFA152_transitionS = {
+            "\5\10\5\uffff\2\10\4\uffff\1\1\1\2\1\3\1\4\1\5\5\10\1\7\1\6"+
+            "\27\10\103\uffff\2\10\74\uffff\1\10\17\uffff\2\10\16\uffff\30"+
+            "\10\12\uffff\2\10\1\uffff\2\10",
+            "\1\uffff",
+            "\1\uffff",
+            "\1\uffff",
+            "\1\uffff",
+            "\1\uffff",
+            "\1\uffff",
+            "\1\uffff",
+            "",
+            ""
+    };
+
+    static final short[] DFA152_eot = DFA.unpackEncodedString(DFA152_eotS);
+    static final short[] DFA152_eof = DFA.unpackEncodedString(DFA152_eofS);
+    static final char[] DFA152_min = DFA.unpackEncodedStringToUnsignedChars(DFA152_minS);
+    static final char[] DFA152_max = DFA.unpackEncodedStringToUnsignedChars(DFA152_maxS);
+    static final short[] DFA152_accept = DFA.unpackEncodedString(DFA152_acceptS);
+    static final short[] DFA152_special = DFA.unpackEncodedString(DFA152_specialS);
+    static final short[][] DFA152_transition;
+
+    static {
+        int numStates = DFA152_transitionS.length;
+        DFA152_transition = new short[numStates][];
+        for (int i=0; i<numStates; i++) {
+            DFA152_transition[i] = DFA.unpackEncodedString(DFA152_transitionS[i]);
+        }
+    }
+
+    class DFA152 extends DFA {
+
+        public DFA152(BaseRecognizer recognizer) {
+            this.recognizer = recognizer;
+            this.decisionNumber = 152;
+            this.eot = DFA152_eot;
+            this.eof = DFA152_eof;
+            this.min = DFA152_min;
+            this.max = DFA152_max;
+            this.accept = DFA152_accept;
+            this.special = DFA152_special;
+            this.transition = DFA152_transition;
+        }
+        public String getDescription() {
+            return "26155:1: ( 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 LA152_2 = input.LA(1);
+
+                         
+                        int index152_2 = input.index();
+                        input.rewind();
+                        s = -1;
+                        if ( (synpred252_InternalReportDSL()) ) {s = 9;}
+
+                        else if ( (true) ) {s = 8;}
+
+                         
+                        input.seek(index152_2);
+                        if ( s>=0 ) return s;
+                        break;
+                    case 1 : 
+                        int LA152_1 = input.LA(1);
+
+                         
+                        int index152_1 = input.index();
+                        input.rewind();
+                        s = -1;
+                        if ( (synpred252_InternalReportDSL()) ) {s = 9;}
+
+                        else if ( (true) ) {s = 8;}
+
+                         
+                        input.seek(index152_1);
+                        if ( s>=0 ) return s;
+                        break;
+                    case 2 : 
+                        int LA152_5 = input.LA(1);
+
+                         
+                        int index152_5 = input.index();
+                        input.rewind();
+                        s = -1;
+                        if ( (synpred252_InternalReportDSL()) ) {s = 9;}
+
+                        else if ( (true) ) {s = 8;}
+
+                         
+                        input.seek(index152_5);
+                        if ( s>=0 ) return s;
+                        break;
+                    case 3 : 
+                        int LA152_7 = input.LA(1);
+
+                         
+                        int index152_7 = input.index();
+                        input.rewind();
+                        s = -1;
+                        if ( (synpred252_InternalReportDSL()) ) {s = 9;}
+
+                        else if ( (true) ) {s = 8;}
+
+                         
+                        input.seek(index152_7);
+                        if ( s>=0 ) return s;
+                        break;
+                    case 4 : 
+                        int LA152_4 = input.LA(1);
+
+                         
+                        int index152_4 = input.index();
+                        input.rewind();
+                        s = -1;
+                        if ( (synpred252_InternalReportDSL()) ) {s = 9;}
+
+                        else if ( (true) ) {s = 8;}
+
+                         
+                        input.seek(index152_4);
+                        if ( s>=0 ) return s;
+                        break;
+                    case 5 : 
+                        int LA152_6 = input.LA(1);
+
+                         
+                        int index152_6 = input.index();
+                        input.rewind();
+                        s = -1;
+                        if ( (synpred252_InternalReportDSL()) ) {s = 9;}
+
+                        else if ( (true) ) {s = 8;}
+
+                         
+                        input.seek(index152_6);
+                        if ( s>=0 ) return s;
+                        break;
+                    case 6 : 
+                        int LA152_3 = input.LA(1);
+
+                         
+                        int index152_3 = input.index();
+                        input.rewind();
+                        s = -1;
+                        if ( (synpred252_InternalReportDSL()) ) {s = 9;}
+
+                        else if ( (true) ) {s = 8;}
+
+                         
+                        input.seek(index152_3);
+                        if ( s>=0 ) return s;
+                        break;
+            }
+            if (state.backtracking>0) {state.failed=true; return -1;}
+            NoViableAltException nvae =
+                new NoViableAltException(getDescription(), 152, _s, input);
+            error(nvae);
+            throw nvae;
+        }
+    }
+    static final String DFA158_eotS =
+        "\13\uffff";
+    static final String DFA158_eofS =
+        "\1\1\12\uffff";
+    static final String DFA158_minS =
+        "\1\4\1\uffff\10\0\1\uffff";
+    static final String DFA158_maxS =
+        "\1\u00fe\1\uffff\10\0\1\uffff";
+    static final String DFA158_acceptS =
+        "\1\uffff\1\2\10\uffff\1\1";
+    static final String DFA158_specialS =
+        "\2\uffff\1\5\1\0\1\7\1\1\1\4\1\3\1\6\1\2\1\uffff}>";
+    static final String[] DFA158_transitionS = {
+            "\5\1\5\uffff\2\1\4\uffff\12\1\1\3\1\2\1\4\1\5\1\6\1\7\1\10"+
+            "\1\11\21\1\103\uffff\2\1\74\uffff\1\1\17\uffff\2\1\16\uffff"+
+            "\30\1\12\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[] DFA158_eot = DFA.unpackEncodedString(DFA158_eotS);
+    static final short[] DFA158_eof = DFA.unpackEncodedString(DFA158_eofS);
+    static final char[] DFA158_min = DFA.unpackEncodedStringToUnsignedChars(DFA158_minS);
+    static final char[] DFA158_max = DFA.unpackEncodedStringToUnsignedChars(DFA158_maxS);
+    static final short[] DFA158_accept = DFA.unpackEncodedString(DFA158_acceptS);
+    static final short[] DFA158_special = DFA.unpackEncodedString(DFA158_specialS);
+    static final short[][] DFA158_transition;
+
+    static {
+        int numStates = DFA158_transitionS.length;
+        DFA158_transition = new short[numStates][];
+        for (int i=0; i<numStates; i++) {
+            DFA158_transition[i] = DFA.unpackEncodedString(DFA158_transitionS[i]);
+        }
+    }
+
+    class DFA158 extends DFA {
+
+        public DFA158(BaseRecognizer recognizer) {
+            this.recognizer = recognizer;
+            this.decisionNumber = 158;
+            this.eot = DFA158_eot;
+            this.eof = DFA158_eof;
+            this.min = DFA158_min;
+            this.max = DFA158_max;
+            this.accept = DFA158_accept;
+            this.special = DFA158_special;
+            this.transition = DFA158_transition;
+        }
+        public String getDescription() {
+            return "()* loopback of 27647:1: ( 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 LA158_3 = input.LA(1);
+
+                         
+                        int index158_3 = input.index();
+                        input.rewind();
+                        s = -1;
+                        if ( (synpred258_InternalReportDSL()) ) {s = 10;}
+
+                        else if ( (true) ) {s = 1;}
+
+                         
+                        input.seek(index158_3);
+                        if ( s>=0 ) return s;
+                        break;
+                    case 1 : 
+                        int LA158_5 = input.LA(1);
+
+                         
+                        int index158_5 = input.index();
+                        input.rewind();
+                        s = -1;
+                        if ( (synpred258_InternalReportDSL()) ) {s = 10;}
+
+                        else if ( (true) ) {s = 1;}
+
+                         
+                        input.seek(index158_5);
+                        if ( s>=0 ) return s;
+                        break;
+                    case 2 : 
+                        int LA158_9 = input.LA(1);
+
+                         
+                        int index158_9 = input.index();
+                        input.rewind();
+                        s = -1;
+                        if ( (synpred258_InternalReportDSL()) ) {s = 10;}
+
+                        else if ( (true) ) {s = 1;}
+
+                         
+                        input.seek(index158_9);
+                        if ( s>=0 ) return s;
+                        break;
+                    case 3 : 
+                        int LA158_7 = input.LA(1);
+
+                         
+                        int index158_7 = input.index();
+                        input.rewind();
+                        s = -1;
+                        if ( (synpred258_InternalReportDSL()) ) {s = 10;}
+
+                        else if ( (true) ) {s = 1;}
+
+                         
+                        input.seek(index158_7);
+                        if ( s>=0 ) return s;
+                        break;
+                    case 4 : 
+                        int LA158_6 = input.LA(1);
+
+                         
+                        int index158_6 = input.index();
+                        input.rewind();
+                        s = -1;
+                        if ( (synpred258_InternalReportDSL()) ) {s = 10;}
+
+                        else if ( (true) ) {s = 1;}
+
+                         
+                        input.seek(index158_6);
+                        if ( s>=0 ) return s;
+                        break;
+                    case 5 : 
+                        int LA158_2 = input.LA(1);
+
+                         
+                        int index158_2 = input.index();
+                        input.rewind();
+                        s = -1;
+                        if ( (synpred258_InternalReportDSL()) ) {s = 10;}
+
+                        else if ( (true) ) {s = 1;}
+
+                         
+                        input.seek(index158_2);
+                        if ( s>=0 ) return s;
+                        break;
+                    case 6 : 
+                        int LA158_8 = input.LA(1);
+
+                         
+                        int index158_8 = input.index();
+                        input.rewind();
+                        s = -1;
+                        if ( (synpred258_InternalReportDSL()) ) {s = 10;}
+
+                        else if ( (true) ) {s = 1;}
+
+                         
+                        input.seek(index158_8);
+                        if ( s>=0 ) return s;
+                        break;
+                    case 7 : 
+                        int LA158_4 = input.LA(1);
+
+                         
+                        int index158_4 = input.index();
+                        input.rewind();
+                        s = -1;
+                        if ( (synpred258_InternalReportDSL()) ) {s = 10;}
+
+                        else if ( (true) ) {s = 1;}
+
+                         
+                        input.seek(index158_4);
+                        if ( s>=0 ) return s;
+                        break;
+            }
+            if (state.backtracking>0) {state.failed=true; return -1;}
+            NoViableAltException nvae =
+                new NoViableAltException(getDescription(), 158, _s, input);
+            error(nvae);
+            throw nvae;
+        }
+    }
+    static final String DFA165_eotS =
+        "\116\uffff";
+    static final String DFA165_eofS =
+        "\1\2\115\uffff";
+    static final String DFA165_minS =
+        "\1\4\1\0\114\uffff";
+    static final String DFA165_maxS =
+        "\1\u00fe\1\0\114\uffff";
+    static final String DFA165_acceptS =
+        "\2\uffff\1\2\112\uffff\1\1";
+    static final String DFA165_specialS =
+        "\1\uffff\1\0\114\uffff}>";
+    static final String[] DFA165_transitionS = {
+            "\5\2\5\uffff\2\2\4\uffff\43\2\103\uffff\2\2\74\uffff\1\2\17"+
+            "\uffff\1\1\1\2\16\uffff\30\2\12\uffff\2\2\1\uffff\2\2",
+            "\1\uffff",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            ""
+    };
+
+    static final short[] DFA165_eot = DFA.unpackEncodedString(DFA165_eotS);
+    static final short[] DFA165_eof = DFA.unpackEncodedString(DFA165_eofS);
+    static final char[] DFA165_min = DFA.unpackEncodedStringToUnsignedChars(DFA165_minS);
+    static final char[] DFA165_max = DFA.unpackEncodedStringToUnsignedChars(DFA165_maxS);
+    static final short[] DFA165_accept = DFA.unpackEncodedString(DFA165_acceptS);
+    static final short[] DFA165_special = DFA.unpackEncodedString(DFA165_specialS);
+    static final short[][] DFA165_transition;
+
+    static {
+        int numStates = DFA165_transitionS.length;
+        DFA165_transition = new short[numStates][];
+        for (int i=0; i<numStates; i++) {
+            DFA165_transition[i] = DFA.unpackEncodedString(DFA165_transitionS[i]);
+        }
+    }
+
+    class DFA165 extends DFA {
+
+        public DFA165(BaseRecognizer recognizer) {
+            this.recognizer = recognizer;
+            this.decisionNumber = 165;
+            this.eot = DFA165_eot;
+            this.eof = DFA165_eof;
+            this.min = DFA165_min;
+            this.max = DFA165_max;
+            this.accept = DFA165_accept;
+            this.special = DFA165_special;
+            this.transition = DFA165_transition;
+        }
+        public String getDescription() {
+            return "29474:1: ( 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 LA165_1 = input.LA(1);
+
+                         
+                        int index165_1 = input.index();
+                        input.rewind();
+                        s = -1;
+                        if ( (synpred265_InternalReportDSL()) ) {s = 77;}
+
+                        else if ( (true) ) {s = 2;}
+
+                         
+                        input.seek(index165_1);
+                        if ( s>=0 ) return s;
+                        break;
+            }
+            if (state.backtracking>0) {state.failed=true; return -1;}
+            NoViableAltException nvae =
+                new NoViableAltException(getDescription(), 165, _s, input);
+            error(nvae);
+            throw nvae;
+        }
+    }
+    static final String DFA166_eotS =
+        "\116\uffff";
+    static final String DFA166_eofS =
+        "\1\2\115\uffff";
+    static final String DFA166_minS =
+        "\1\4\1\0\114\uffff";
+    static final String DFA166_maxS =
+        "\1\u00fe\1\0\114\uffff";
+    static final String DFA166_acceptS =
+        "\2\uffff\1\2\112\uffff\1\1";
+    static final String DFA166_specialS =
+        "\1\uffff\1\0\114\uffff}>";
+    static final String[] DFA166_transitionS = {
+            "\5\2\5\uffff\2\2\4\uffff\43\2\103\uffff\2\2\74\uffff\1\2\17"+
+            "\uffff\2\2\16\uffff\3\2\1\1\24\2\12\uffff\2\2\1\uffff\2\2",
+            "\1\uffff",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            ""
+    };
+
+    static final short[] DFA166_eot = DFA.unpackEncodedString(DFA166_eotS);
+    static final short[] DFA166_eof = DFA.unpackEncodedString(DFA166_eofS);
+    static final char[] DFA166_min = DFA.unpackEncodedStringToUnsignedChars(DFA166_minS);
+    static final char[] DFA166_max = DFA.unpackEncodedStringToUnsignedChars(DFA166_maxS);
+    static final short[] DFA166_accept = DFA.unpackEncodedString(DFA166_acceptS);
+    static final short[] DFA166_special = DFA.unpackEncodedString(DFA166_specialS);
+    static final short[][] DFA166_transition;
+
+    static {
+        int numStates = DFA166_transitionS.length;
+        DFA166_transition = new short[numStates][];
+        for (int i=0; i<numStates; i++) {
+            DFA166_transition[i] = DFA.unpackEncodedString(DFA166_transitionS[i]);
+        }
+    }
+
+    class DFA166 extends DFA {
+
+        public DFA166(BaseRecognizer recognizer) {
+            this.recognizer = recognizer;
+            this.decisionNumber = 166;
+            this.eot = DFA166_eot;
+            this.eof = DFA166_eof;
+            this.min = DFA166_min;
+            this.max = DFA166_max;
+            this.accept = DFA166_accept;
+            this.special = DFA166_special;
+            this.transition = DFA166_transition;
+        }
+        public String getDescription() {
+            return "29502:1: ( 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 LA166_1 = input.LA(1);
+
+                         
+                        int index166_1 = input.index();
+                        input.rewind();
+                        s = -1;
+                        if ( (synpred266_InternalReportDSL()) ) {s = 77;}
+
+                        else if ( (true) ) {s = 2;}
+
+                         
+                        input.seek(index166_1);
+                        if ( s>=0 ) return s;
+                        break;
+            }
+            if (state.backtracking>0) {state.failed=true; return -1;}
+            NoViableAltException nvae =
+                new NoViableAltException(getDescription(), 166, _s, input);
+            error(nvae);
+            throw nvae;
+        }
+    }
+    static final String DFA174_eotS =
+        "\46\uffff";
+    static final String DFA174_eofS =
+        "\46\uffff";
+    static final String DFA174_minS =
+        "\1\4\2\0\43\uffff";
+    static final String DFA174_maxS =
+        "\1\u00fe\2\0\43\uffff";
+    static final String DFA174_acceptS =
+        "\3\uffff\1\1\1\uffff\1\2\40\uffff";
+    static final String DFA174_specialS =
+        "\1\uffff\1\0\1\1\43\uffff}>";
+    static final String[] DFA174_transitionS = {
+            "\1\5\1\1\3\5\26\uffff\1\5\3\uffff\1\3\2\uffff\2\5\4\uffff\1"+
+            "\5\3\uffff\7\5\103\uffff\1\5\115\uffff\1\2\20\uffff\3\5\2\uffff"+
+            "\1\5\1\uffff\1\5\3\uffff\11\5\1\uffff\1\5\15\uffff\1\3\2\5",
+            "\1\uffff",
+            "\1\uffff",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            ""
+    };
+
+    static final short[] DFA174_eot = DFA.unpackEncodedString(DFA174_eotS);
+    static final short[] DFA174_eof = DFA.unpackEncodedString(DFA174_eofS);
+    static final char[] DFA174_min = DFA.unpackEncodedStringToUnsignedChars(DFA174_minS);
+    static final char[] DFA174_max = DFA.unpackEncodedStringToUnsignedChars(DFA174_maxS);
+    static final short[] DFA174_accept = DFA.unpackEncodedString(DFA174_acceptS);
+    static final short[] DFA174_special = DFA.unpackEncodedString(DFA174_specialS);
+    static final short[][] DFA174_transition;
+
+    static {
+        int numStates = DFA174_transitionS.length;
+        DFA174_transition = new short[numStates][];
+        for (int i=0; i<numStates; i++) {
+            DFA174_transition[i] = DFA.unpackEncodedString(DFA174_transitionS[i]);
+        }
+    }
+
+    class DFA174 extends DFA {
+
+        public DFA174(BaseRecognizer recognizer) {
+            this.recognizer = recognizer;
+            this.decisionNumber = 174;
+            this.eot = DFA174_eot;
+            this.eof = DFA174_eof;
+            this.min = DFA174_min;
+            this.max = DFA174_max;
+            this.accept = DFA174_accept;
+            this.special = DFA174_special;
+            this.transition = DFA174_transition;
+        }
+        public String getDescription() {
+            return "30643:1: ( 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 LA174_1 = input.LA(1);
+
+                         
+                        int index174_1 = input.index();
+                        input.rewind();
+                        s = -1;
+                        if ( (synpred274_InternalReportDSL()) ) {s = 3;}
+
+                        else if ( (true) ) {s = 5;}
+
+                         
+                        input.seek(index174_1);
+                        if ( s>=0 ) return s;
+                        break;
+                    case 1 : 
+                        int LA174_2 = input.LA(1);
+
+                         
+                        int index174_2 = input.index();
+                        input.rewind();
+                        s = -1;
+                        if ( (synpred274_InternalReportDSL()) ) {s = 3;}
+
+                        else if ( (true) ) {s = 5;}
+
+                         
+                        input.seek(index174_2);
+                        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;
+        }
+    }
+    static final String DFA184_eotS =
+        "\42\uffff";
+    static final String DFA184_eofS =
+        "\42\uffff";
+    static final String DFA184_minS =
+        "\1\4\2\0\37\uffff";
+    static final String DFA184_maxS =
+        "\1\u00fe\2\0\37\uffff";
+    static final String DFA184_acceptS =
+        "\3\uffff\1\1\1\2\35\uffff";
+    static final String DFA184_specialS =
+        "\1\uffff\1\0\1\1\37\uffff}>";
+    static final String[] DFA184_transitionS = {
+            "\1\4\1\1\3\4\26\uffff\1\4\3\uffff\1\3\2\uffff\2\4\4\uffff\1"+
+            "\4\4\uffff\6\4\103\uffff\1\4\115\uffff\1\2\21\uffff\2\4\2\uffff"+
+            "\1\4\1\uffff\1\4\3\uffff\11\4\1\uffff\1\4\17\uffff\1\4",
+            "\1\uffff",
+            "\1\uffff",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            ""
+    };
+
+    static final short[] DFA184_eot = DFA.unpackEncodedString(DFA184_eotS);
+    static final short[] DFA184_eof = DFA.unpackEncodedString(DFA184_eofS);
+    static final char[] DFA184_min = DFA.unpackEncodedStringToUnsignedChars(DFA184_minS);
+    static final char[] DFA184_max = DFA.unpackEncodedStringToUnsignedChars(DFA184_maxS);
+    static final short[] DFA184_accept = DFA.unpackEncodedString(DFA184_acceptS);
+    static final short[] DFA184_special = DFA.unpackEncodedString(DFA184_specialS);
+    static final short[][] DFA184_transition;
+
+    static {
+        int numStates = DFA184_transitionS.length;
+        DFA184_transition = new short[numStates][];
+        for (int i=0; i<numStates; i++) {
+            DFA184_transition[i] = DFA.unpackEncodedString(DFA184_transitionS[i]);
+        }
+    }
+
+    class DFA184 extends DFA {
+
+        public DFA184(BaseRecognizer recognizer) {
+            this.recognizer = recognizer;
+            this.decisionNumber = 184;
+            this.eot = DFA184_eot;
+            this.eof = DFA184_eof;
+            this.min = DFA184_min;
+            this.max = DFA184_max;
+            this.accept = DFA184_accept;
+            this.special = DFA184_special;
+            this.transition = DFA184_transition;
+        }
+        public String getDescription() {
+            return "32311:1: ( 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 LA184_1 = input.LA(1);
+
+                         
+                        int index184_1 = input.index();
+                        input.rewind();
+                        s = -1;
+                        if ( (synpred284_InternalReportDSL()) ) {s = 3;}
+
+                        else if ( (true) ) {s = 4;}
+
+                         
+                        input.seek(index184_1);
+                        if ( s>=0 ) return s;
+                        break;
+                    case 1 : 
+                        int LA184_2 = input.LA(1);
+
+                         
+                        int index184_2 = input.index();
+                        input.rewind();
+                        s = -1;
+                        if ( (synpred284_InternalReportDSL()) ) {s = 3;}
+
+                        else if ( (true) ) {s = 4;}
+
+                         
+                        input.seek(index184_2);
+                        if ( s>=0 ) return s;
+                        break;
+            }
+            if (state.backtracking>0) {state.failed=true; return -1;}
+            NoViableAltException nvae =
+                new NoViableAltException(getDescription(), 184, _s, input);
+            error(nvae);
+            throw nvae;
+        }
+    }
+    static final String DFA197_eotS =
+        "\116\uffff";
+    static final String DFA197_eofS =
+        "\1\2\115\uffff";
+    static final String DFA197_minS =
+        "\1\4\1\0\114\uffff";
+    static final String DFA197_maxS =
+        "\1\u00fe\1\0\114\uffff";
+    static final String DFA197_acceptS =
+        "\2\uffff\1\2\112\uffff\1\1";
+    static final String DFA197_specialS =
+        "\1\uffff\1\0\114\uffff}>";
+    static final String[] DFA197_transitionS = {
+            "\5\2\5\uffff\2\2\4\uffff\43\2\103\uffff\2\2\74\uffff\1\2\17"+
+            "\uffff\1\1\1\2\16\uffff\30\2\12\uffff\2\2\1\uffff\2\2",
+            "\1\uffff",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            ""
+    };
+
+    static final short[] DFA197_eot = DFA.unpackEncodedString(DFA197_eotS);
+    static final short[] DFA197_eof = DFA.unpackEncodedString(DFA197_eofS);
+    static final char[] DFA197_min = DFA.unpackEncodedStringToUnsignedChars(DFA197_minS);
+    static final char[] DFA197_max = DFA.unpackEncodedStringToUnsignedChars(DFA197_maxS);
+    static final short[] DFA197_accept = DFA.unpackEncodedString(DFA197_acceptS);
+    static final short[] DFA197_special = DFA.unpackEncodedString(DFA197_specialS);
+    static final short[][] DFA197_transition;
+
+    static {
+        int numStates = DFA197_transitionS.length;
+        DFA197_transition = new short[numStates][];
+        for (int i=0; i<numStates; i++) {
+            DFA197_transition[i] = DFA.unpackEncodedString(DFA197_transitionS[i]);
+        }
+    }
+
+    class DFA197 extends DFA {
+
+        public DFA197(BaseRecognizer recognizer) {
+            this.recognizer = recognizer;
+            this.decisionNumber = 197;
+            this.eot = DFA197_eot;
+            this.eof = DFA197_eof;
+            this.min = DFA197_min;
+            this.max = DFA197_max;
+            this.accept = DFA197_accept;
+            this.special = DFA197_special;
+            this.transition = DFA197_transition;
+        }
+        public String getDescription() {
+            return "34799:1: ( 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 LA197_1 = input.LA(1);
+
+                         
+                        int index197_1 = input.index();
+                        input.rewind();
+                        s = -1;
+                        if ( (synpred297_InternalReportDSL()) ) {s = 77;}
+
+                        else if ( (true) ) {s = 2;}
+
+                         
+                        input.seek(index197_1);
+                        if ( s>=0 ) return s;
+                        break;
+            }
+            if (state.backtracking>0) {state.failed=true; return -1;}
+            NoViableAltException nvae =
+                new NoViableAltException(getDescription(), 197, _s, input);
+            error(nvae);
+            throw nvae;
+        }
+    }
+    static final String DFA198_eotS =
+        "\116\uffff";
+    static final String DFA198_eofS =
+        "\1\2\115\uffff";
+    static final String DFA198_minS =
+        "\1\4\1\0\114\uffff";
+    static final String DFA198_maxS =
+        "\1\u00fe\1\0\114\uffff";
+    static final String DFA198_acceptS =
+        "\2\uffff\1\2\112\uffff\1\1";
+    static final String DFA198_specialS =
+        "\1\uffff\1\0\114\uffff}>";
+    static final String[] DFA198_transitionS = {
+            "\5\2\5\uffff\2\2\4\uffff\43\2\103\uffff\2\2\74\uffff\1\2\17"+
+            "\uffff\2\2\16\uffff\3\2\1\1\24\2\12\uffff\2\2\1\uffff\2\2",
+            "\1\uffff",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            ""
+    };
+
+    static final short[] DFA198_eot = DFA.unpackEncodedString(DFA198_eotS);
+    static final short[] DFA198_eof = DFA.unpackEncodedString(DFA198_eofS);
+    static final char[] DFA198_min = DFA.unpackEncodedStringToUnsignedChars(DFA198_minS);
+    static final char[] DFA198_max = DFA.unpackEncodedStringToUnsignedChars(DFA198_maxS);
+    static final short[] DFA198_accept = DFA.unpackEncodedString(DFA198_acceptS);
+    static final short[] DFA198_special = DFA.unpackEncodedString(DFA198_specialS);
+    static final short[][] DFA198_transition;
+
+    static {
+        int numStates = DFA198_transitionS.length;
+        DFA198_transition = new short[numStates][];
+        for (int i=0; i<numStates; i++) {
+            DFA198_transition[i] = DFA.unpackEncodedString(DFA198_transitionS[i]);
+        }
+    }
+
+    class DFA198 extends DFA {
+
+        public DFA198(BaseRecognizer recognizer) {
+            this.recognizer = recognizer;
+            this.decisionNumber = 198;
+            this.eot = DFA198_eot;
+            this.eof = DFA198_eof;
+            this.min = DFA198_min;
+            this.max = DFA198_max;
+            this.accept = DFA198_accept;
+            this.special = DFA198_special;
+            this.transition = DFA198_transition;
+        }
+        public String getDescription() {
+            return "34827:1: ( 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 LA198_1 = input.LA(1);
+
+                         
+                        int index198_1 = input.index();
+                        input.rewind();
+                        s = -1;
+                        if ( (synpred298_InternalReportDSL()) ) {s = 77;}
+
+                        else if ( (true) ) {s = 2;}
+
+                         
+                        input.seek(index198_1);
+                        if ( s>=0 ) return s;
+                        break;
+            }
+            if (state.backtracking>0) {state.failed=true; return -1;}
+            NoViableAltException nvae =
+                new NoViableAltException(getDescription(), 198, _s, input);
+            error(nvae);
+            throw nvae;
+        }
+    }
+    static final String DFA202_eotS =
+        "\116\uffff";
+    static final String DFA202_eofS =
+        "\1\2\115\uffff";
+    static final String DFA202_minS =
+        "\1\4\1\0\114\uffff";
+    static final String DFA202_maxS =
+        "\1\u00fe\1\0\114\uffff";
+    static final String DFA202_acceptS =
+        "\2\uffff\1\2\112\uffff\1\1";
+    static final String DFA202_specialS =
+        "\1\uffff\1\0\114\uffff}>";
+    static final String[] DFA202_transitionS = {
+            "\5\2\5\uffff\2\2\4\uffff\13\2\1\1\27\2\103\uffff\2\2\74\uffff"+
+            "\1\2\17\uffff\2\2\16\uffff\30\2\12\uffff\2\2\1\uffff\2\2",
+            "\1\uffff",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            ""
+    };
+
+    static final short[] DFA202_eot = DFA.unpackEncodedString(DFA202_eotS);
+    static final short[] DFA202_eof = DFA.unpackEncodedString(DFA202_eofS);
+    static final char[] DFA202_min = DFA.unpackEncodedStringToUnsignedChars(DFA202_minS);
+    static final char[] DFA202_max = DFA.unpackEncodedStringToUnsignedChars(DFA202_maxS);
+    static final short[] DFA202_accept = DFA.unpackEncodedString(DFA202_acceptS);
+    static final short[] DFA202_special = DFA.unpackEncodedString(DFA202_specialS);
+    static final short[][] DFA202_transition;
+
+    static {
+        int numStates = DFA202_transitionS.length;
+        DFA202_transition = new short[numStates][];
+        for (int i=0; i<numStates; i++) {
+            DFA202_transition[i] = DFA.unpackEncodedString(DFA202_transitionS[i]);
+        }
+    }
+
+    class DFA202 extends DFA {
+
+        public DFA202(BaseRecognizer recognizer) {
+            this.recognizer = recognizer;
+            this.decisionNumber = 202;
+            this.eot = DFA202_eot;
+            this.eof = DFA202_eof;
+            this.min = DFA202_min;
+            this.max = DFA202_max;
+            this.accept = DFA202_accept;
+            this.special = DFA202_special;
+            this.transition = DFA202_transition;
+        }
+        public String getDescription() {
+            return "35365:1: ( 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 LA202_1 = input.LA(1);
+
+                         
+                        int index202_1 = input.index();
+                        input.rewind();
+                        s = -1;
+                        if ( (synpred302_InternalReportDSL()) ) {s = 77;}
+
+                        else if ( (true) ) {s = 2;}
+
+                         
+                        input.seek(index202_1);
+                        if ( s>=0 ) return s;
+                        break;
+            }
+            if (state.backtracking>0) {state.failed=true; return -1;}
+            NoViableAltException nvae =
+                new NoViableAltException(getDescription(), 202, _s, input);
+            error(nvae);
+            throw nvae;
+        }
+    }
+    static final String DFA203_eotS =
+        "\116\uffff";
+    static final String DFA203_eofS =
+        "\1\2\115\uffff";
+    static final String DFA203_minS =
+        "\1\4\1\0\114\uffff";
+    static final String DFA203_maxS =
+        "\1\u00fe\1\0\114\uffff";
+    static final String DFA203_acceptS =
+        "\2\uffff\1\2\112\uffff\1\1";
+    static final String DFA203_specialS =
+        "\1\uffff\1\0\114\uffff}>";
+    static final String[] DFA203_transitionS = {
+            "\5\2\5\uffff\2\2\4\uffff\43\2\103\uffff\2\2\74\uffff\1\2\17"+
+            "\uffff\1\1\1\2\16\uffff\30\2\12\uffff\2\2\1\uffff\2\2",
+            "\1\uffff",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            ""
+    };
+
+    static final short[] DFA203_eot = DFA.unpackEncodedString(DFA203_eotS);
+    static final short[] DFA203_eof = DFA.unpackEncodedString(DFA203_eofS);
+    static final char[] DFA203_min = DFA.unpackEncodedStringToUnsignedChars(DFA203_minS);
+    static final char[] DFA203_max = DFA.unpackEncodedStringToUnsignedChars(DFA203_maxS);
+    static final short[] DFA203_accept = DFA.unpackEncodedString(DFA203_acceptS);
+    static final short[] DFA203_special = DFA.unpackEncodedString(DFA203_specialS);
+    static final short[][] DFA203_transition;
+
+    static {
+        int numStates = DFA203_transitionS.length;
+        DFA203_transition = new short[numStates][];
+        for (int i=0; i<numStates; i++) {
+            DFA203_transition[i] = DFA.unpackEncodedString(DFA203_transitionS[i]);
+        }
+    }
+
+    class DFA203 extends DFA {
+
+        public DFA203(BaseRecognizer recognizer) {
+            this.recognizer = recognizer;
+            this.decisionNumber = 203;
+            this.eot = DFA203_eot;
+            this.eof = DFA203_eof;
+            this.min = DFA203_min;
+            this.max = DFA203_max;
+            this.accept = DFA203_accept;
+            this.special = DFA203_special;
+            this.transition = DFA203_transition;
+        }
+        public String getDescription() {
+            return "35394:1: ( 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 LA203_1 = input.LA(1);
+
+                         
+                        int index203_1 = input.index();
+                        input.rewind();
+                        s = -1;
+                        if ( (synpred303_InternalReportDSL()) ) {s = 77;}
+
+                        else if ( (true) ) {s = 2;}
+
+                         
+                        input.seek(index203_1);
+                        if ( s>=0 ) return s;
+                        break;
+            }
+            if (state.backtracking>0) {state.failed=true; return -1;}
+            NoViableAltException nvae =
+                new NoViableAltException(getDescription(), 203, _s, input);
+            error(nvae);
+            throw nvae;
+        }
+    }
+    static final String DFA204_eotS =
+        "\116\uffff";
+    static final String DFA204_eofS =
+        "\1\2\115\uffff";
+    static final String DFA204_minS =
+        "\1\4\1\0\114\uffff";
+    static final String DFA204_maxS =
+        "\1\u00fe\1\0\114\uffff";
+    static final String DFA204_acceptS =
+        "\2\uffff\1\2\112\uffff\1\1";
+    static final String DFA204_specialS =
+        "\1\uffff\1\0\114\uffff}>";
+    static final String[] DFA204_transitionS = {
+            "\5\2\5\uffff\2\2\4\uffff\43\2\103\uffff\2\2\74\uffff\1\2\17"+
+            "\uffff\2\2\16\uffff\3\2\1\1\24\2\12\uffff\2\2\1\uffff\2\2",
+            "\1\uffff",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            ""
+    };
+
+    static final short[] DFA204_eot = DFA.unpackEncodedString(DFA204_eotS);
+    static final short[] DFA204_eof = DFA.unpackEncodedString(DFA204_eofS);
+    static final char[] DFA204_min = DFA.unpackEncodedStringToUnsignedChars(DFA204_minS);
+    static final char[] DFA204_max = DFA.unpackEncodedStringToUnsignedChars(DFA204_maxS);
+    static final short[] DFA204_accept = DFA.unpackEncodedString(DFA204_acceptS);
+    static final short[] DFA204_special = DFA.unpackEncodedString(DFA204_specialS);
+    static final short[][] DFA204_transition;
+
+    static {
+        int numStates = DFA204_transitionS.length;
+        DFA204_transition = new short[numStates][];
+        for (int i=0; i<numStates; i++) {
+            DFA204_transition[i] = DFA.unpackEncodedString(DFA204_transitionS[i]);
+        }
+    }
+
+    class DFA204 extends DFA {
+
+        public DFA204(BaseRecognizer recognizer) {
+            this.recognizer = recognizer;
+            this.decisionNumber = 204;
+            this.eot = DFA204_eot;
+            this.eof = DFA204_eof;
+            this.min = DFA204_min;
+            this.max = DFA204_max;
+            this.accept = DFA204_accept;
+            this.special = DFA204_special;
+            this.transition = DFA204_transition;
+        }
+        public String getDescription() {
+            return "35422:1: ( 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 LA204_1 = input.LA(1);
+
+                         
+                        int index204_1 = input.index();
+                        input.rewind();
+                        s = -1;
+                        if ( (synpred304_InternalReportDSL()) ) {s = 77;}
+
+                        else if ( (true) ) {s = 2;}
+
+                         
+                        input.seek(index204_1);
+                        if ( s>=0 ) return s;
+                        break;
+            }
+            if (state.backtracking>0) {state.failed=true; return -1;}
+            NoViableAltException nvae =
+                new NoViableAltException(getDescription(), 204, _s, input);
+            error(nvae);
+            throw nvae;
+        }
+    }
+    static final String DFA209_eotS =
+        "\116\uffff";
+    static final String DFA209_eofS =
+        "\1\41\115\uffff";
+    static final String DFA209_minS =
+        "\1\4\40\0\55\uffff";
+    static final String DFA209_maxS =
+        "\1\u00fe\40\0\55\uffff";
+    static final String DFA209_acceptS =
+        "\41\uffff\1\2\53\uffff\1\1";
+    static final String DFA209_specialS =
+        "\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[] DFA209_transitionS = {
+            "\1\27\1\1\1\23\1\24\1\25\5\uffff\2\41\4\uffff\13\41\1\15\6"+
+            "\41\1\10\1\7\4\41\1\6\4\41\1\2\1\3\1\4\1\5\1\16\1\21\103\uffff"+
+            "\1\12\1\41\74\uffff\1\41\17\uffff\1\40\1\41\16\uffff\2\41\1"+
+            "\17\1\20\2\41\1\31\1\41\1\13\3\41\1\32\1\33\1\34\1\11\1\26\1"+
+            "\30\1\35\1\36\1\37\1\41\1\14\1\41\12\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[] DFA209_eot = DFA.unpackEncodedString(DFA209_eotS);
+    static final short[] DFA209_eof = DFA.unpackEncodedString(DFA209_eofS);
+    static final char[] DFA209_min = DFA.unpackEncodedStringToUnsignedChars(DFA209_minS);
+    static final char[] DFA209_max = DFA.unpackEncodedStringToUnsignedChars(DFA209_maxS);
+    static final short[] DFA209_accept = DFA.unpackEncodedString(DFA209_acceptS);
+    static final short[] DFA209_special = DFA.unpackEncodedString(DFA209_specialS);
+    static final short[][] DFA209_transition;
+
+    static {
+        int numStates = DFA209_transitionS.length;
+        DFA209_transition = new short[numStates][];
+        for (int i=0; i<numStates; i++) {
+            DFA209_transition[i] = DFA.unpackEncodedString(DFA209_transitionS[i]);
+        }
+    }
+
+    class DFA209 extends DFA {
+
+        public DFA209(BaseRecognizer recognizer) {
+            this.recognizer = recognizer;
+            this.decisionNumber = 209;
+            this.eot = DFA209_eot;
+            this.eof = DFA209_eof;
+            this.min = DFA209_min;
+            this.max = DFA209_max;
+            this.accept = DFA209_accept;
+            this.special = DFA209_special;
+            this.transition = DFA209_transition;
+        }
+        public String getDescription() {
+            return "36475:1: ( 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 LA209_1 = input.LA(1);
+
+                         
+                        int index209_1 = input.index();
+                        input.rewind();
+                        s = -1;
+                        if ( (synpred309_InternalReportDSL()) ) {s = 77;}
+
+                        else if ( (true) ) {s = 33;}
+
+                         
+                        input.seek(index209_1);
+                        if ( s>=0 ) return s;
+                        break;
+                    case 1 : 
+                        int LA209_2 = input.LA(1);
+
+                         
+                        int index209_2 = input.index();
+                        input.rewind();
+                        s = -1;
+                        if ( (synpred309_InternalReportDSL()) ) {s = 77;}
+
+                        else if ( (true) ) {s = 33;}
+
+                         
+                        input.seek(index209_2);
+                        if ( s>=0 ) return s;
+                        break;
+                    case 2 : 
+                        int LA209_3 = input.LA(1);
+
+                         
+                        int index209_3 = input.index();
+                        input.rewind();
+                        s = -1;
+                        if ( (synpred309_InternalReportDSL()) ) {s = 77;}
+
+                        else if ( (true) ) {s = 33;}
+
+                         
+                        input.seek(index209_3);
+                        if ( s>=0 ) return s;
+                        break;
+                    case 3 : 
+                        int LA209_4 = input.LA(1);
+
+                         
+                        int index209_4 = input.index();
+                        input.rewind();
+                        s = -1;
+                        if ( (synpred309_InternalReportDSL()) ) {s = 77;}
+
+                        else if ( (true) ) {s = 33;}
+
+                         
+                        input.seek(index209_4);
+                        if ( s>=0 ) return s;
+                        break;
+                    case 4 : 
+                        int LA209_5 = input.LA(1);
+
+                         
+                        int index209_5 = input.index();
+                        input.rewind();
+                        s = -1;
+                        if ( (synpred309_InternalReportDSL()) ) {s = 77;}
+
+                        else if ( (true) ) {s = 33;}
+
+                         
+                        input.seek(index209_5);
+                        if ( s>=0 ) return s;
+                        break;
+                    case 5 : 
+                        int LA209_6 = input.LA(1);
+
+                         
+                        int index209_6 = input.index();
+                        input.rewind();
+                        s = -1;
+                        if ( (synpred309_InternalReportDSL()) ) {s = 77;}
+
+                        else if ( (true) ) {s = 33;}
+
+                         
+                        input.seek(index209_6);
+                        if ( s>=0 ) return s;
+                        break;
+                    case 6 : 
+                        int LA209_7 = input.LA(1);
+
+                         
+                        int index209_7 = input.index();
+                        input.rewind();
+                        s = -1;
+                        if ( (synpred309_InternalReportDSL()) ) {s = 77;}
+
+                        else if ( (true) ) {s = 33;}
+
+                         
+                        input.seek(index209_7);
+                        if ( s>=0 ) return s;
+                        break;
+                    case 7 : 
+                        int LA209_8 = input.LA(1);
+
+                         
+                        int index209_8 = input.index();
+                        input.rewind();
+                        s = -1;
+                        if ( (synpred309_InternalReportDSL()) ) {s = 77;}
+
+                        else if ( (true) ) {s = 33;}
+
+                         
+                        input.seek(index209_8);
+                        if ( s>=0 ) return s;
+                        break;
+                    case 8 : 
+                        int LA209_9 = input.LA(1);
+
+                         
+                        int index209_9 = input.index();
+                        input.rewind();
+                        s = -1;
+                        if ( (synpred309_InternalReportDSL()) ) {s = 77;}
+
+                        else if ( (true) ) {s = 33;}
+
+                         
+                        input.seek(index209_9);
+                        if ( s>=0 ) return s;
+                        break;
+                    case 9 : 
+                        int LA209_10 = input.LA(1);
+
+                         
+                        int index209_10 = input.index();
+                        input.rewind();
+                        s = -1;
+                        if ( (synpred309_InternalReportDSL()) ) {s = 77;}
+
+                        else if ( (true) ) {s = 33;}
+
+                         
+                        input.seek(index209_10);
+                        if ( s>=0 ) return s;
+                        break;
+                    case 10 : 
+                        int LA209_11 = input.LA(1);
+
+                         
+                        int index209_11 = input.index();
+                        input.rewind();
+                        s = -1;
+                        if ( (synpred309_InternalReportDSL()) ) {s = 77;}
+
+                        else if ( (true) ) {s = 33;}
+
+                         
+                        input.seek(index209_11);
+                        if ( s>=0 ) return s;
+                        break;
+                    case 11 : 
+                        int LA209_12 = input.LA(1);
+
+                         
+                        int index209_12 = input.index();
+                        input.rewind();
+                        s = -1;
+                        if ( (synpred309_InternalReportDSL()) ) {s = 77;}
+
+                        else if ( (true) ) {s = 33;}
+
+                         
+                        input.seek(index209_12);
+                        if ( s>=0 ) return s;
+                        break;
+                    case 12 : 
+                        int LA209_13 = input.LA(1);
+
+                         
+                        int index209_13 = input.index();
+                        input.rewind();
+                        s = -1;
+                        if ( (synpred309_InternalReportDSL()) ) {s = 77;}
+
+                        else if ( (true) ) {s = 33;}
+
+                         
+                        input.seek(index209_13);
+                        if ( s>=0 ) return s;
+                        break;
+                    case 13 : 
+                        int LA209_14 = input.LA(1);
+
+                         
+                        int index209_14 = input.index();
+                        input.rewind();
+                        s = -1;
+                        if ( (synpred309_InternalReportDSL()) ) {s = 77;}
+
+                        else if ( (true) ) {s = 33;}
+
+                         
+                        input.seek(index209_14);
+                        if ( s>=0 ) return s;
+                        break;
+                    case 14 : 
+                        int LA209_15 = input.LA(1);
+
+                         
+                        int index209_15 = input.index();
+                        input.rewind();
+                        s = -1;
+                        if ( (synpred309_InternalReportDSL()) ) {s = 77;}
+
+                        else if ( (true) ) {s = 33;}
+
+                         
+                        input.seek(index209_15);
+                        if ( s>=0 ) return s;
+                        break;
+                    case 15 : 
+                        int LA209_16 = input.LA(1);
+
+                         
+                        int index209_16 = input.index();
+                        input.rewind();
+                        s = -1;
+                        if ( (synpred309_InternalReportDSL()) ) {s = 77;}
+
+                        else if ( (true) ) {s = 33;}
+
+                         
+                        input.seek(index209_16);
+                        if ( s>=0 ) return s;
+                        break;
+                    case 16 : 
+                        int LA209_17 = input.LA(1);
+
+                         
+                        int index209_17 = input.index();
+                        input.rewind();
+                        s = -1;
+                        if ( (synpred309_InternalReportDSL()) ) {s = 77;}
+
+                        else if ( (true) ) {s = 33;}
+
+                         
+                        input.seek(index209_17);
+                        if ( s>=0 ) return s;
+                        break;
+                    case 17 : 
+                        int LA209_18 = input.LA(1);
+
+                         
+                        int index209_18 = input.index();
+                        input.rewind();
+                        s = -1;
+                        if ( (synpred309_InternalReportDSL()) ) {s = 77;}
+
+                        else if ( (true) ) {s = 33;}
+
+                         
+                        input.seek(index209_18);
+                        if ( s>=0 ) return s;
+                        break;
+                    case 18 : 
+                        int LA209_19 = input.LA(1);
+
+                         
+                        int index209_19 = input.index();
+                        input.rewind();
+                        s = -1;
+                        if ( (synpred309_InternalReportDSL()) ) {s = 77;}
+
+                        else if ( (true) ) {s = 33;}
+
+                         
+                        input.seek(index209_19);
+                        if ( s>=0 ) return s;
+                        break;
+                    case 19 : 
+                        int LA209_20 = input.LA(1);
+
+                         
+                        int index209_20 = input.index();
+                        input.rewind();
+                        s = -1;
+                        if ( (synpred309_InternalReportDSL()) ) {s = 77;}
+
+                        else if ( (true) ) {s = 33;}
+
+                         
+                        input.seek(index209_20);
+                        if ( s>=0 ) return s;
+                        break;
+                    case 20 : 
+                        int LA209_21 = input.LA(1);
+
+                         
+                        int index209_21 = input.index();
+                        input.rewind();
+                        s = -1;
+                        if ( (synpred309_InternalReportDSL()) ) {s = 77;}
+
+                        else if ( (true) ) {s = 33;}
+
+                         
+                        input.seek(index209_21);
+                        if ( s>=0 ) return s;
+                        break;
+                    case 21 : 
+                        int LA209_22 = input.LA(1);
+
+                         
+                        int index209_22 = input.index();
+                        input.rewind();
+                        s = -1;
+                        if ( (synpred309_InternalReportDSL()) ) {s = 77;}
+
+                        else if ( (true) ) {s = 33;}
+
+                         
+                        input.seek(index209_22);
+                        if ( s>=0 ) return s;
+                        break;
+                    case 22 : 
+                        int LA209_23 = input.LA(1);
+
+                         
+                        int index209_23 = input.index();
+                        input.rewind();
+                        s = -1;
+                        if ( (synpred309_InternalReportDSL()) ) {s = 77;}
+
+                        else if ( (true) ) {s = 33;}
+
+                         
+                        input.seek(index209_23);
+                        if ( s>=0 ) return s;
+                        break;
+                    case 23 : 
+                        int LA209_24 = input.LA(1);
+
+                         
+                        int index209_24 = input.index();
+                        input.rewind();
+                        s = -1;
+                        if ( (synpred309_InternalReportDSL()) ) {s = 77;}
+
+                        else if ( (true) ) {s = 33;}
+
+                         
+                        input.seek(index209_24);
+                        if ( s>=0 ) return s;
+                        break;
+                    case 24 : 
+                        int LA209_25 = input.LA(1);
+
+                         
+                        int index209_25 = input.index();
+                        input.rewind();
+                        s = -1;
+                        if ( (synpred309_InternalReportDSL()) ) {s = 77;}
+
+                        else if ( (true) ) {s = 33;}
+
+                         
+                        input.seek(index209_25);
+                        if ( s>=0 ) return s;
+                        break;
+                    case 25 : 
+                        int LA209_26 = input.LA(1);
+
+                         
+                        int index209_26 = input.index();
+                        input.rewind();
+                        s = -1;
+                        if ( (synpred309_InternalReportDSL()) ) {s = 77;}
+
+                        else if ( (true) ) {s = 33;}
+
+                         
+                        input.seek(index209_26);
+                        if ( s>=0 ) return s;
+                        break;
+                    case 26 : 
+                        int LA209_27 = input.LA(1);
+
+                         
+                        int index209_27 = input.index();
+                        input.rewind();
+                        s = -1;
+                        if ( (synpred309_InternalReportDSL()) ) {s = 77;}
+
+                        else if ( (true) ) {s = 33;}
+
+                         
+                        input.seek(index209_27);
+                        if ( s>=0 ) return s;
+                        break;
+                    case 27 : 
+                        int LA209_28 = input.LA(1);
+
+                         
+                        int index209_28 = input.index();
+                        input.rewind();
+                        s = -1;
+                        if ( (synpred309_InternalReportDSL()) ) {s = 77;}
+
+                        else if ( (true) ) {s = 33;}
+
+                         
+                        input.seek(index209_28);
+                        if ( s>=0 ) return s;
+                        break;
+                    case 28 : 
+                        int LA209_29 = input.LA(1);
+
+                         
+                        int index209_29 = input.index();
+                        input.rewind();
+                        s = -1;
+                        if ( (synpred309_InternalReportDSL()) ) {s = 77;}
+
+                        else if ( (true) ) {s = 33;}
+
+                         
+                        input.seek(index209_29);
+                        if ( s>=0 ) return s;
+                        break;
+                    case 29 : 
+                        int LA209_30 = input.LA(1);
+
+                         
+                        int index209_30 = input.index();
+                        input.rewind();
+                        s = -1;
+                        if ( (synpred309_InternalReportDSL()) ) {s = 77;}
+
+                        else if ( (true) ) {s = 33;}
+
+                         
+                        input.seek(index209_30);
+                        if ( s>=0 ) return s;
+                        break;
+                    case 30 : 
+                        int LA209_31 = input.LA(1);
+
+                         
+                        int index209_31 = input.index();
+                        input.rewind();
+                        s = -1;
+                        if ( (synpred309_InternalReportDSL()) ) {s = 77;}
+
+                        else if ( (true) ) {s = 33;}
+
+                         
+                        input.seek(index209_31);
+                        if ( s>=0 ) return s;
+                        break;
+                    case 31 : 
+                        int LA209_32 = input.LA(1);
+
+                         
+                        int index209_32 = input.index();
+                        input.rewind();
+                        s = -1;
+                        if ( (synpred309_InternalReportDSL()) ) {s = 77;}
+
+                        else if ( (true) ) {s = 33;}
+
+                         
+                        input.seek(index209_32);
+                        if ( s>=0 ) return s;
+                        break;
+            }
+            if (state.backtracking>0) {state.failed=true; return -1;}
+            NoViableAltException nvae =
+                new NoViableAltException(getDescription(), 209, _s, input);
+            error(nvae);
+            throw nvae;
+        }
+    }
+    static final String DFA218_eotS =
+        "\117\uffff";
+    static final String DFA218_eofS =
+        "\1\2\116\uffff";
+    static final String DFA218_minS =
+        "\1\4\1\0\115\uffff";
+    static final String DFA218_maxS =
+        "\1\u00fe\1\0\115\uffff";
+    static final String DFA218_acceptS =
+        "\2\uffff\1\2\113\uffff\1\1";
+    static final String DFA218_specialS =
+        "\1\uffff\1\0\115\uffff}>";
+    static final String[] DFA218_transitionS = {
+            "\5\2\5\uffff\2\2\4\uffff\13\2\1\1\27\2\103\uffff\2\2\74\uffff"+
+            "\1\2\17\uffff\2\2\16\uffff\30\2\1\uffff\1\2\10\uffff\2\2\1\uffff"+
+            "\2\2",
+            "\1\uffff",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            ""
+    };
+
+    static final short[] DFA218_eot = DFA.unpackEncodedString(DFA218_eotS);
+    static final short[] DFA218_eof = DFA.unpackEncodedString(DFA218_eofS);
+    static final char[] DFA218_min = DFA.unpackEncodedStringToUnsignedChars(DFA218_minS);
+    static final char[] DFA218_max = DFA.unpackEncodedStringToUnsignedChars(DFA218_maxS);
+    static final short[] DFA218_accept = DFA.unpackEncodedString(DFA218_acceptS);
+    static final short[] DFA218_special = DFA.unpackEncodedString(DFA218_specialS);
+    static final short[][] DFA218_transition;
+
+    static {
+        int numStates = DFA218_transitionS.length;
+        DFA218_transition = new short[numStates][];
+        for (int i=0; i<numStates; i++) {
+            DFA218_transition[i] = DFA.unpackEncodedString(DFA218_transitionS[i]);
+        }
+    }
+
+    class DFA218 extends DFA {
+
+        public DFA218(BaseRecognizer recognizer) {
+            this.recognizer = recognizer;
+            this.decisionNumber = 218;
+            this.eot = DFA218_eot;
+            this.eof = DFA218_eof;
+            this.min = DFA218_min;
+            this.max = DFA218_max;
+            this.accept = DFA218_accept;
+            this.special = DFA218_special;
+            this.transition = DFA218_transition;
+        }
+        public String getDescription() {
+            return "38054:1: ( 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 LA218_1 = input.LA(1);
+
+                         
+                        int index218_1 = input.index();
+                        input.rewind();
+                        s = -1;
+                        if ( (synpred318_InternalReportDSL()) ) {s = 78;}
+
+                        else if ( (true) ) {s = 2;}
+
+                         
+                        input.seek(index218_1);
+                        if ( s>=0 ) return s;
+                        break;
+            }
+            if (state.backtracking>0) {state.failed=true; return -1;}
+            NoViableAltException nvae =
+                new NoViableAltException(getDescription(), 218, _s, input);
+            error(nvae);
+            throw nvae;
+        }
+    }
+    static final String DFA221_eotS =
+        "\117\uffff";
+    static final String DFA221_eofS =
+        "\1\2\116\uffff";
+    static final String DFA221_minS =
+        "\1\4\1\0\115\uffff";
+    static final String DFA221_maxS =
+        "\1\u00fe\1\0\115\uffff";
+    static final String DFA221_acceptS =
+        "\2\uffff\1\2\113\uffff\1\1";
+    static final String DFA221_specialS =
+        "\1\uffff\1\0\115\uffff}>";
+    static final String[] DFA221_transitionS = {
+            "\5\2\5\uffff\2\2\4\uffff\13\2\1\1\27\2\103\uffff\2\2\74\uffff"+
+            "\1\2\17\uffff\2\2\16\uffff\30\2\1\uffff\1\2\10\uffff\2\2\1\uffff"+
+            "\2\2",
+            "\1\uffff",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            ""
+    };
+
+    static final short[] DFA221_eot = DFA.unpackEncodedString(DFA221_eotS);
+    static final short[] DFA221_eof = DFA.unpackEncodedString(DFA221_eofS);
+    static final char[] DFA221_min = DFA.unpackEncodedStringToUnsignedChars(DFA221_minS);
+    static final char[] DFA221_max = DFA.unpackEncodedStringToUnsignedChars(DFA221_maxS);
+    static final short[] DFA221_accept = DFA.unpackEncodedString(DFA221_acceptS);
+    static final short[] DFA221_special = DFA.unpackEncodedString(DFA221_specialS);
+    static final short[][] DFA221_transition;
+
+    static {
+        int numStates = DFA221_transitionS.length;
+        DFA221_transition = new short[numStates][];
+        for (int i=0; i<numStates; i++) {
+            DFA221_transition[i] = DFA.unpackEncodedString(DFA221_transitionS[i]);
+        }
+    }
+
+    class DFA221 extends DFA {
+
+        public DFA221(BaseRecognizer recognizer) {
+            this.recognizer = recognizer;
+            this.decisionNumber = 221;
+            this.eot = DFA221_eot;
+            this.eof = DFA221_eof;
+            this.min = DFA221_min;
+            this.max = DFA221_max;
+            this.accept = DFA221_accept;
+            this.special = DFA221_special;
+            this.transition = DFA221_transition;
+        }
+        public String getDescription() {
+            return "38365:1: ( 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 LA221_1 = input.LA(1);
+
+                         
+                        int index221_1 = input.index();
+                        input.rewind();
+                        s = -1;
+                        if ( (synpred321_InternalReportDSL()) ) {s = 78;}
+
+                        else if ( (true) ) {s = 2;}
+
+                         
+                        input.seek(index221_1);
+                        if ( s>=0 ) return s;
+                        break;
+            }
+            if (state.backtracking>0) {state.failed=true; return -1;}
+            NoViableAltException nvae =
+                new NoViableAltException(getDescription(), 221, _s, input);
+            error(nvae);
+            throw nvae;
+        }
+    }
+    static final String DFA229_eotS =
+        "\34\uffff";
+    static final String DFA229_eofS =
+        "\1\10\33\uffff";
+    static final String DFA229_minS =
+        "\1\110\1\5\4\0\1\6\1\0\1\uffff\1\172\1\uffff\3\53\1\0\11\173\1"+
+        "\7\1\0\2\53";
+    static final String DFA229_maxS =
+        "\1\u00f2\1\5\4\0\1\10\1\0\1\uffff\1\172\1\uffff\3\76\1\0\11\173"+
+        "\1\10\1\0\2\76";
+    static final String DFA229_acceptS =
+        "\10\uffff\1\2\1\uffff\1\1\21\uffff";
+    static final String DFA229_specialS =
+        "\2\uffff\1\3\1\4\1\1\1\0\1\uffff\1\5\6\uffff\1\6\12\uffff\1\2\2"+
+        "\uffff}>";
+    static final String[] DFA229_transitionS = {
+            "\1\2\1\3\1\4\60\uffff\1\7\26\uffff\1\1\1\uffff\1\6\135\uffff"+
+            "\1\5",
+            "\1\11",
+            "\1\uffff",
+            "\1\uffff",
+            "\1\uffff",
+            "\1\uffff",
+            "\1\13\1\14\1\15",
+            "\1\uffff",
+            "",
+            "\1\16",
+            "",
+            "\1\27\13\uffff\1\17\1\20\1\21\1\22\1\23\1\24\1\25\1\26",
+            "\1\27\3\uffff\1\30\7\uffff\1\17\1\20\1\21\1\22\1\23\1\24\1"+
+            "\25\1\26",
+            "\1\27\3\uffff\1\30\7\uffff\1\17\1\20\1\21\1\22\1\23\1\24\1"+
+            "\25\1\26",
+            "\1\uffff",
+            "\1\31",
+            "\1\31",
+            "\1\31",
+            "\1\31",
+            "\1\31",
+            "\1\31",
+            "\1\31",
+            "\1\31",
+            "\1\31",
+            "\1\32\1\33",
+            "\1\uffff",
+            "\1\27\13\uffff\1\17\1\20\1\21\1\22\1\23\1\24\1\25\1\26",
+            "\1\27\13\uffff\1\17\1\20\1\21\1\22\1\23\1\24\1\25\1\26"
+    };
+
+    static final short[] DFA229_eot = DFA.unpackEncodedString(DFA229_eotS);
+    static final short[] DFA229_eof = DFA.unpackEncodedString(DFA229_eofS);
+    static final char[] DFA229_min = DFA.unpackEncodedStringToUnsignedChars(DFA229_minS);
+    static final char[] DFA229_max = DFA.unpackEncodedStringToUnsignedChars(DFA229_maxS);
+    static final short[] DFA229_accept = DFA.unpackEncodedString(DFA229_acceptS);
+    static final short[] DFA229_special = DFA.unpackEncodedString(DFA229_specialS);
+    static final short[][] DFA229_transition;
+
+    static {
+        int numStates = DFA229_transitionS.length;
+        DFA229_transition = new short[numStates][];
+        for (int i=0; i<numStates; i++) {
+            DFA229_transition[i] = DFA.unpackEncodedString(DFA229_transitionS[i]);
+        }
+    }
+
+    class DFA229 extends DFA {
+
+        public DFA229(BaseRecognizer recognizer) {
+            this.recognizer = recognizer;
+            this.decisionNumber = 229;
+            this.eot = DFA229_eot;
+            this.eof = DFA229_eof;
+            this.min = DFA229_min;
+            this.max = DFA229_max;
+            this.accept = DFA229_accept;
+            this.special = DFA229_special;
+            this.transition = DFA229_transition;
+        }
+        public String getDescription() {
+            return "39625:2: ( rule__Font__UnorderedGroup__1 )?";
+        }
+        public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
+            TokenStream input = (TokenStream)_input;
+        	int _s = s;
+            switch ( s ) {
+                    case 0 : 
+                        int LA229_5 = input.LA(1);
+
+                         
+                        int index229_5 = input.index();
+                        input.rewind();
+                        s = -1;
+                        if ( synpred331_InternalReportDSL() && getUnorderedGroupHelper().canSelect(grammarAccess.getFontAccess().getUnorderedGroup(), 2) ) {s = 10;}
+
+                        else if ( getUnorderedGroupHelper().canLeave(grammarAccess.getFontAccess().getUnorderedGroup()) ) {s = 8;}
+
+                         
+                        input.seek(index229_5);
+                        if ( s>=0 ) return s;
+                        break;
+                    case 1 : 
+                        int LA229_4 = input.LA(1);
+
+                         
+                        int index229_4 = input.index();
+                        input.rewind();
+                        s = -1;
+                        if ( synpred331_InternalReportDSL() && getUnorderedGroupHelper().canSelect(grammarAccess.getFontAccess().getUnorderedGroup(), 1) ) {s = 10;}
+
+                        else if ( getUnorderedGroupHelper().canLeave(grammarAccess.getFontAccess().getUnorderedGroup()) ) {s = 8;}
+
+                         
+                        input.seek(index229_4);
+                        if ( s>=0 ) return s;
+                        break;
+                    case 2 : 
+                        int LA229_25 = input.LA(1);
+
+                         
+                        int index229_25 = input.index();
+                        input.rewind();
+                        s = -1;
+                        if ( synpred331_InternalReportDSL() && getUnorderedGroupHelper().canSelect(grammarAccess.getFontAccess().getUnorderedGroup(), 3) ) {s = 10;}
+
+                        else if ( getUnorderedGroupHelper().canLeave(grammarAccess.getFontAccess().getUnorderedGroup()) ) {s = 8;}
+
+                         
+                        input.seek(index229_25);
+                        if ( s>=0 ) return s;
+                        break;
+                    case 3 : 
+                        int LA229_2 = input.LA(1);
+
+                         
+                        int index229_2 = input.index();
+                        input.rewind();
+                        s = -1;
+                        if ( synpred331_InternalReportDSL() && getUnorderedGroupHelper().canSelect(grammarAccess.getFontAccess().getUnorderedGroup(), 1) ) {s = 10;}
+
+                        else if ( getUnorderedGroupHelper().canLeave(grammarAccess.getFontAccess().getUnorderedGroup()) ) {s = 8;}
+
+                         
+                        input.seek(index229_2);
+                        if ( s>=0 ) return s;
+                        break;
+                    case 4 : 
+                        int LA229_3 = input.LA(1);
+
+                         
+                        int index229_3 = input.index();
+                        input.rewind();
+                        s = -1;
+                        if ( synpred331_InternalReportDSL() && getUnorderedGroupHelper().canSelect(grammarAccess.getFontAccess().getUnorderedGroup(), 1) ) {s = 10;}
+
+                        else if ( getUnorderedGroupHelper().canLeave(grammarAccess.getFontAccess().getUnorderedGroup()) ) {s = 8;}
+
+                         
+                        input.seek(index229_3);
+                        if ( s>=0 ) return s;
+                        break;
+                    case 5 : 
+                        int LA229_7 = input.LA(1);
+
+                         
+                        int index229_7 = input.index();
+                        input.rewind();
+                        s = -1;
+                        if ( synpred331_InternalReportDSL() && getUnorderedGroupHelper().canSelect(grammarAccess.getFontAccess().getUnorderedGroup(), 3) ) {s = 10;}
+
+                        else if ( getUnorderedGroupHelper().canLeave(grammarAccess.getFontAccess().getUnorderedGroup()) ) {s = 8;}
+
+                         
+                        input.seek(index229_7);
+                        if ( s>=0 ) return s;
+                        break;
+                    case 6 : 
+                        int LA229_14 = input.LA(1);
+
+                         
+                        int index229_14 = input.index();
+                        input.rewind();
+                        s = -1;
+                        if ( synpred331_InternalReportDSL() && getUnorderedGroupHelper().canSelect(grammarAccess.getFontAccess().getUnorderedGroup(), 0) ) {s = 10;}
+
+                        else if ( getUnorderedGroupHelper().canLeave(grammarAccess.getFontAccess().getUnorderedGroup()) ) {s = 8;}
+
+                         
+                        input.seek(index229_14);
+                        if ( s>=0 ) return s;
+                        break;
+            }
+            if (state.backtracking>0) {state.failed=true; return -1;}
+            NoViableAltException nvae =
+                new NoViableAltException(getDescription(), 229, _s, input);
+            error(nvae);
+            throw nvae;
+        }
+    }
+    static final String DFA230_eotS =
+        "\34\uffff";
+    static final String DFA230_eofS =
+        "\1\10\33\uffff";
+    static final String DFA230_minS =
+        "\1\110\1\5\4\0\1\6\1\0\1\uffff\1\172\1\uffff\3\53\1\0\11\173\1"+
+        "\7\1\0\2\53";
+    static final String DFA230_maxS =
+        "\1\u00f2\1\5\4\0\1\10\1\0\1\uffff\1\172\1\uffff\3\76\1\0\11\173"+
+        "\1\10\1\0\2\76";
+    static final String DFA230_acceptS =
+        "\10\uffff\1\2\1\uffff\1\1\21\uffff";
+    static final String DFA230_specialS =
+        "\2\uffff\1\1\1\6\1\3\1\4\1\uffff\1\0\6\uffff\1\2\12\uffff\1\5\2"+
+        "\uffff}>";
+    static final String[] DFA230_transitionS = {
+            "\1\2\1\3\1\4\60\uffff\1\7\26\uffff\1\1\1\uffff\1\6\135\uffff"+
+            "\1\5",
+            "\1\11",
+            "\1\uffff",
+            "\1\uffff",
+            "\1\uffff",
+            "\1\uffff",
+            "\1\13\1\14\1\15",
+            "\1\uffff",
+            "",
+            "\1\16",
+            "",
+            "\1\27\13\uffff\1\17\1\20\1\21\1\22\1\23\1\24\1\25\1\26",
+            "\1\27\3\uffff\1\30\7\uffff\1\17\1\20\1\21\1\22\1\23\1\24\1"+
+            "\25\1\26",
+            "\1\27\3\uffff\1\30\7\uffff\1\17\1\20\1\21\1\22\1\23\1\24\1"+
+            "\25\1\26",
+            "\1\uffff",
+            "\1\31",
+            "\1\31",
+            "\1\31",
+            "\1\31",
+            "\1\31",
+            "\1\31",
+            "\1\31",
+            "\1\31",
+            "\1\31",
+            "\1\32\1\33",
+            "\1\uffff",
+            "\1\27\13\uffff\1\17\1\20\1\21\1\22\1\23\1\24\1\25\1\26",
+            "\1\27\13\uffff\1\17\1\20\1\21\1\22\1\23\1\24\1\25\1\26"
+    };
+
+    static final short[] DFA230_eot = DFA.unpackEncodedString(DFA230_eotS);
+    static final short[] DFA230_eof = DFA.unpackEncodedString(DFA230_eofS);
+    static final char[] DFA230_min = DFA.unpackEncodedStringToUnsignedChars(DFA230_minS);
+    static final char[] DFA230_max = DFA.unpackEncodedStringToUnsignedChars(DFA230_maxS);
+    static final short[] DFA230_accept = DFA.unpackEncodedString(DFA230_acceptS);
+    static final short[] DFA230_special = DFA.unpackEncodedString(DFA230_specialS);
+    static final short[][] DFA230_transition;
+
+    static {
+        int numStates = DFA230_transitionS.length;
+        DFA230_transition = new short[numStates][];
+        for (int i=0; i<numStates; i++) {
+            DFA230_transition[i] = DFA.unpackEncodedString(DFA230_transitionS[i]);
+        }
+    }
+
+    class DFA230 extends DFA {
+
+        public DFA230(BaseRecognizer recognizer) {
+            this.recognizer = recognizer;
+            this.decisionNumber = 230;
+            this.eot = DFA230_eot;
+            this.eof = DFA230_eof;
+            this.min = DFA230_min;
+            this.max = DFA230_max;
+            this.accept = DFA230_accept;
+            this.special = DFA230_special;
+            this.transition = DFA230_transition;
+        }
+        public String getDescription() {
+            return "39638:2: ( rule__Font__UnorderedGroup__2 )?";
+        }
+        public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
+            TokenStream input = (TokenStream)_input;
+        	int _s = s;
+            switch ( s ) {
+                    case 0 : 
+                        int LA230_7 = input.LA(1);
+
+                         
+                        int index230_7 = input.index();
+                        input.rewind();
+                        s = -1;
+                        if ( synpred332_InternalReportDSL() && getUnorderedGroupHelper().canSelect(grammarAccess.getFontAccess().getUnorderedGroup(), 3) ) {s = 10;}
+
+                        else if ( getUnorderedGroupHelper().canLeave(grammarAccess.getFontAccess().getUnorderedGroup()) ) {s = 8;}
+
+                         
+                        input.seek(index230_7);
+                        if ( s>=0 ) return s;
+                        break;
+                    case 1 : 
+                        int LA230_2 = input.LA(1);
+
+                         
+                        int index230_2 = input.index();
+                        input.rewind();
+                        s = -1;
+                        if ( synpred332_InternalReportDSL() && getUnorderedGroupHelper().canSelect(grammarAccess.getFontAccess().getUnorderedGroup(), 1) ) {s = 10;}
+
+                        else if ( getUnorderedGroupHelper().canLeave(grammarAccess.getFontAccess().getUnorderedGroup()) ) {s = 8;}
+
+                         
+                        input.seek(index230_2);
+                        if ( s>=0 ) return s;
+                        break;
+                    case 2 : 
+                        int LA230_14 = input.LA(1);
+
+                         
+                        int index230_14 = input.index();
+                        input.rewind();
+                        s = -1;
+                        if ( synpred332_InternalReportDSL() && getUnorderedGroupHelper().canSelect(grammarAccess.getFontAccess().getUnorderedGroup(), 0) ) {s = 10;}
+
+                        else if ( getUnorderedGroupHelper().canLeave(grammarAccess.getFontAccess().getUnorderedGroup()) ) {s = 8;}
+
+                         
+                        input.seek(index230_14);
+                        if ( s>=0 ) return s;
+                        break;
+                    case 3 : 
+                        int LA230_4 = input.LA(1);
+
+                         
+                        int index230_4 = input.index();
+                        input.rewind();
+                        s = -1;
+                        if ( synpred332_InternalReportDSL() && getUnorderedGroupHelper().canSelect(grammarAccess.getFontAccess().getUnorderedGroup(), 1) ) {s = 10;}
+
+                        else if ( getUnorderedGroupHelper().canLeave(grammarAccess.getFontAccess().getUnorderedGroup()) ) {s = 8;}
+
+                         
+                        input.seek(index230_4);
+                        if ( s>=0 ) return s;
+                        break;
+                    case 4 : 
+                        int LA230_5 = input.LA(1);
+
+                         
+                        int index230_5 = input.index();
+                        input.rewind();
+                        s = -1;
+                        if ( synpred332_InternalReportDSL() && getUnorderedGroupHelper().canSelect(grammarAccess.getFontAccess().getUnorderedGroup(), 2) ) {s = 10;}
+
+                        else if ( getUnorderedGroupHelper().canLeave(grammarAccess.getFontAccess().getUnorderedGroup()) ) {s = 8;}
+
+                         
+                        input.seek(index230_5);
+                        if ( s>=0 ) return s;
+                        break;
+                    case 5 : 
+                        int LA230_25 = input.LA(1);
+
+                         
+                        int index230_25 = input.index();
+                        input.rewind();
+                        s = -1;
+                        if ( synpred332_InternalReportDSL() && getUnorderedGroupHelper().canSelect(grammarAccess.getFontAccess().getUnorderedGroup(), 3) ) {s = 10;}
+
+                        else if ( getUnorderedGroupHelper().canLeave(grammarAccess.getFontAccess().getUnorderedGroup()) ) {s = 8;}
+
+                         
+                        input.seek(index230_25);
+                        if ( s>=0 ) return s;
+                        break;
+                    case 6 : 
+                        int LA230_3 = input.LA(1);
+
+                         
+                        int index230_3 = input.index();
+                        input.rewind();
+                        s = -1;
+                        if ( synpred332_InternalReportDSL() && getUnorderedGroupHelper().canSelect(grammarAccess.getFontAccess().getUnorderedGroup(), 1) ) {s = 10;}
+
+                        else if ( getUnorderedGroupHelper().canLeave(grammarAccess.getFontAccess().getUnorderedGroup()) ) {s = 8;}
+
+                         
+                        input.seek(index230_3);
+                        if ( s>=0 ) return s;
+                        break;
+            }
+            if (state.backtracking>0) {state.failed=true; return -1;}
+            NoViableAltException nvae =
+                new NoViableAltException(getDescription(), 230, _s, input);
+            error(nvae);
+            throw nvae;
+        }
+    }
+    static final String DFA231_eotS =
+        "\34\uffff";
+    static final String DFA231_eofS =
+        "\1\10\33\uffff";
+    static final String DFA231_minS =
+        "\1\110\1\5\4\0\1\6\1\0\1\uffff\1\172\1\uffff\3\53\1\0\11\173\1"+
+        "\7\1\0\2\53";
+    static final String DFA231_maxS =
+        "\1\u00f2\1\5\4\0\1\10\1\0\1\uffff\1\172\1\uffff\3\76\1\0\11\173"+
+        "\1\10\1\0\2\76";
+    static final String DFA231_acceptS =
+        "\10\uffff\1\2\1\uffff\1\1\21\uffff";
+    static final String DFA231_specialS =
+        "\2\uffff\1\0\1\6\1\4\1\3\1\uffff\1\5\6\uffff\1\1\12\uffff\1\2\2"+
+        "\uffff}>";
+    static final String[] DFA231_transitionS = {
+            "\1\2\1\3\1\4\60\uffff\1\7\26\uffff\1\1\1\uffff\1\6\135\uffff"+
+            "\1\5",
+            "\1\11",
+            "\1\uffff",
+            "\1\uffff",
+            "\1\uffff",
+            "\1\uffff",
+            "\1\13\1\14\1\15",
+            "\1\uffff",
+            "",
+            "\1\16",
+            "",
+            "\1\27\13\uffff\1\17\1\20\1\21\1\22\1\23\1\24\1\25\1\26",
+            "\1\27\3\uffff\1\30\7\uffff\1\17\1\20\1\21\1\22\1\23\1\24\1"+
+            "\25\1\26",
+            "\1\27\3\uffff\1\30\7\uffff\1\17\1\20\1\21\1\22\1\23\1\24\1"+
+            "\25\1\26",
+            "\1\uffff",
+            "\1\31",
+            "\1\31",
+            "\1\31",
+            "\1\31",
+            "\1\31",
+            "\1\31",
+            "\1\31",
+            "\1\31",
+            "\1\31",
+            "\1\32\1\33",
+            "\1\uffff",
+            "\1\27\13\uffff\1\17\1\20\1\21\1\22\1\23\1\24\1\25\1\26",
+            "\1\27\13\uffff\1\17\1\20\1\21\1\22\1\23\1\24\1\25\1\26"
+    };
+
+    static final short[] DFA231_eot = DFA.unpackEncodedString(DFA231_eotS);
+    static final short[] DFA231_eof = DFA.unpackEncodedString(DFA231_eofS);
+    static final char[] DFA231_min = DFA.unpackEncodedStringToUnsignedChars(DFA231_minS);
+    static final char[] DFA231_max = DFA.unpackEncodedStringToUnsignedChars(DFA231_maxS);
+    static final short[] DFA231_accept = DFA.unpackEncodedString(DFA231_acceptS);
+    static final short[] DFA231_special = DFA.unpackEncodedString(DFA231_specialS);
+    static final short[][] DFA231_transition;
+
+    static {
+        int numStates = DFA231_transitionS.length;
+        DFA231_transition = new short[numStates][];
+        for (int i=0; i<numStates; i++) {
+            DFA231_transition[i] = DFA.unpackEncodedString(DFA231_transitionS[i]);
+        }
+    }
+
+    class DFA231 extends DFA {
+
+        public DFA231(BaseRecognizer recognizer) {
+            this.recognizer = recognizer;
+            this.decisionNumber = 231;
+            this.eot = DFA231_eot;
+            this.eof = DFA231_eof;
+            this.min = DFA231_min;
+            this.max = DFA231_max;
+            this.accept = DFA231_accept;
+            this.special = DFA231_special;
+            this.transition = DFA231_transition;
+        }
+        public String getDescription() {
+            return "39651:2: ( rule__Font__UnorderedGroup__3 )?";
+        }
+        public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
+            TokenStream input = (TokenStream)_input;
+        	int _s = s;
+            switch ( s ) {
+                    case 0 : 
+                        int LA231_2 = input.LA(1);
+
+                         
+                        int index231_2 = input.index();
+                        input.rewind();
+                        s = -1;
+                        if ( synpred333_InternalReportDSL() && getUnorderedGroupHelper().canSelect(grammarAccess.getFontAccess().getUnorderedGroup(), 1) ) {s = 10;}
+
+                        else if ( getUnorderedGroupHelper().canLeave(grammarAccess.getFontAccess().getUnorderedGroup()) ) {s = 8;}
+
+                         
+                        input.seek(index231_2);
+                        if ( s>=0 ) return s;
+                        break;
+                    case 1 : 
+                        int LA231_14 = input.LA(1);
+
+                         
+                        int index231_14 = input.index();
+                        input.rewind();
+                        s = -1;
+                        if ( synpred333_InternalReportDSL() && getUnorderedGroupHelper().canSelect(grammarAccess.getFontAccess().getUnorderedGroup(), 0) ) {s = 10;}
+
+                        else if ( getUnorderedGroupHelper().canLeave(grammarAccess.getFontAccess().getUnorderedGroup()) ) {s = 8;}
+
+                         
+                        input.seek(index231_14);
+                        if ( s>=0 ) return s;
+                        break;
+                    case 2 : 
+                        int LA231_25 = input.LA(1);
+
+                         
+                        int index231_25 = input.index();
+                        input.rewind();
+                        s = -1;
+                        if ( synpred333_InternalReportDSL() && getUnorderedGroupHelper().canSelect(grammarAccess.getFontAccess().getUnorderedGroup(), 3) ) {s = 10;}
+
+                        else if ( getUnorderedGroupHelper().canLeave(grammarAccess.getFontAccess().getUnorderedGroup()) ) {s = 8;}
+
+                         
+                        input.seek(index231_25);
+                        if ( s>=0 ) return s;
+                        break;
+                    case 3 : 
+                        int LA231_5 = input.LA(1);
+
+                         
+                        int index231_5 = input.index();
+                        input.rewind();
+                        s = -1;
+                        if ( synpred333_InternalReportDSL() && getUnorderedGroupHelper().canSelect(grammarAccess.getFontAccess().getUnorderedGroup(), 2) ) {s = 10;}
+
+                        else if ( getUnorderedGroupHelper().canLeave(grammarAccess.getFontAccess().getUnorderedGroup()) ) {s = 8;}
+
+                         
+                        input.seek(index231_5);
+                        if ( s>=0 ) return s;
+                        break;
+                    case 4 : 
+                        int LA231_4 = input.LA(1);
+
+                         
+                        int index231_4 = input.index();
+                        input.rewind();
+                        s = -1;
+                        if ( synpred333_InternalReportDSL() && getUnorderedGroupHelper().canSelect(grammarAccess.getFontAccess().getUnorderedGroup(), 1) ) {s = 10;}
+
+                        else if ( getUnorderedGroupHelper().canLeave(grammarAccess.getFontAccess().getUnorderedGroup()) ) {s = 8;}
+
+                         
+                        input.seek(index231_4);
+                        if ( s>=0 ) return s;
+                        break;
+                    case 5 : 
+                        int LA231_7 = input.LA(1);
+
+                         
+                        int index231_7 = input.index();
+                        input.rewind();
+                        s = -1;
+                        if ( synpred333_InternalReportDSL() && getUnorderedGroupHelper().canSelect(grammarAccess.getFontAccess().getUnorderedGroup(), 3) ) {s = 10;}
+
+                        else if ( getUnorderedGroupHelper().canLeave(grammarAccess.getFontAccess().getUnorderedGroup()) ) {s = 8;}
+
+                         
+                        input.seek(index231_7);
+                        if ( s>=0 ) return s;
+                        break;
+                    case 6 : 
+                        int LA231_3 = input.LA(1);
+
+                         
+                        int index231_3 = input.index();
+                        input.rewind();
+                        s = -1;
+                        if ( synpred333_InternalReportDSL() && getUnorderedGroupHelper().canSelect(grammarAccess.getFontAccess().getUnorderedGroup(), 1) ) {s = 10;}
+
+                        else if ( getUnorderedGroupHelper().canLeave(grammarAccess.getFontAccess().getUnorderedGroup()) ) {s = 8;}
+
+                         
+                        input.seek(index231_3);
+                        if ( s>=0 ) return s;
+                        break;
+            }
+            if (state.backtracking>0) {state.failed=true; return -1;}
+            NoViableAltException nvae =
+                new NoViableAltException(getDescription(), 231, _s, input);
+            error(nvae);
+            throw nvae;
+        }
+    }
+    static final String DFA232_eotS =
+        "\23\uffff";
+    static final String DFA232_eofS =
+        "\23\uffff";
+    static final String DFA232_minS =
+        "\1\173\22\uffff";
+    static final String DFA232_maxS =
+        "\1\u00a6\22\uffff";
+    static final String DFA232_acceptS =
+        "\1\uffff\21\1\1\2";
+    static final String DFA232_specialS =
+        "\1\0\22\uffff}>";
+    static final String[] DFA232_transitionS = {
+            "\1\22\7\uffff\1\22\16\uffff\1\2\3\uffff\1\1\1\3\1\uffff\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",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            ""
+    };
+
+    static final short[] DFA232_eot = DFA.unpackEncodedString(DFA232_eotS);
+    static final short[] DFA232_eof = DFA.unpackEncodedString(DFA232_eofS);
+    static final char[] DFA232_min = DFA.unpackEncodedStringToUnsignedChars(DFA232_minS);
+    static final char[] DFA232_max = DFA.unpackEncodedStringToUnsignedChars(DFA232_maxS);
+    static final short[] DFA232_accept = DFA.unpackEncodedString(DFA232_acceptS);
+    static final short[] DFA232_special = DFA.unpackEncodedString(DFA232_specialS);
+    static final short[][] DFA232_transition;
+
+    static {
+        int numStates = DFA232_transitionS.length;
+        DFA232_transition = new short[numStates][];
+        for (int i=0; i<numStates; i++) {
+            DFA232_transition[i] = DFA.unpackEncodedString(DFA232_transitionS[i]);
+        }
+    }
+
+    class DFA232 extends DFA {
+
+        public DFA232(BaseRecognizer recognizer) {
+            this.recognizer = recognizer;
+            this.decisionNumber = 232;
+            this.eot = DFA232_eot;
+            this.eof = DFA232_eof;
+            this.min = DFA232_min;
+            this.max = DFA232_max;
+            this.accept = DFA232_accept;
+            this.special = DFA232_special;
+            this.transition = DFA232_transition;
+        }
+        public String getDescription() {
+            return "39684:2: ( rule__Style__UnorderedGroup_4__0 )?";
+        }
+        public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
+            TokenStream input = (TokenStream)_input;
+        	int _s = s;
+            switch ( s ) {
+                    case 0 : 
+                        int LA232_0 = input.LA(1);
+
+                         
+                        int index232_0 = input.index();
+                        input.rewind();
+                        s = -1;
+                        if ( LA232_0 ==150 && getUnorderedGroupHelper().canSelect(grammarAccess.getStyleAccess().getUnorderedGroup_4(), 0) ) {s = 1;}
+
+                        else if ( LA232_0 ==146 && getUnorderedGroupHelper().canSelect(grammarAccess.getStyleAccess().getUnorderedGroup_4(), 1) ) {s = 2;}
+
+                        else if ( LA232_0 ==151 && getUnorderedGroupHelper().canSelect(grammarAccess.getStyleAccess().getUnorderedGroup_4(), 2) ) {s = 3;}
+
+                        else if ( LA232_0 ==153 && getUnorderedGroupHelper().canSelect(grammarAccess.getStyleAccess().getUnorderedGroup_4(), 3) ) {s = 4;}
+
+                        else if ( LA232_0 ==154 && getUnorderedGroupHelper().canSelect(grammarAccess.getStyleAccess().getUnorderedGroup_4(), 4) ) {s = 5;}
+
+                        else if ( LA232_0 ==155 && getUnorderedGroupHelper().canSelect(grammarAccess.getStyleAccess().getUnorderedGroup_4(), 5) ) {s = 6;}
+
+                        else if ( LA232_0 ==156 && getUnorderedGroupHelper().canSelect(grammarAccess.getStyleAccess().getUnorderedGroup_4(), 6) ) {s = 7;}
+
+                        else if ( LA232_0 ==157 && getUnorderedGroupHelper().canSelect(grammarAccess.getStyleAccess().getUnorderedGroup_4(), 7) ) {s = 8;}
+
+                        else if ( LA232_0 ==158 && getUnorderedGroupHelper().canSelect(grammarAccess.getStyleAccess().getUnorderedGroup_4(), 8) ) {s = 9;}
+
+                        else if ( LA232_0 ==159 && getUnorderedGroupHelper().canSelect(grammarAccess.getStyleAccess().getUnorderedGroup_4(), 9) ) {s = 10;}
+
+                        else if ( LA232_0 ==160 && getUnorderedGroupHelper().canSelect(grammarAccess.getStyleAccess().getUnorderedGroup_4(), 10) ) {s = 11;}
+
+                        else if ( LA232_0 ==161 && getUnorderedGroupHelper().canSelect(grammarAccess.getStyleAccess().getUnorderedGroup_4(), 11) ) {s = 12;}
+
+                        else if ( LA232_0 ==162 && getUnorderedGroupHelper().canSelect(grammarAccess.getStyleAccess().getUnorderedGroup_4(), 12) ) {s = 13;}
+
+                        else if ( LA232_0 ==163 && getUnorderedGroupHelper().canSelect(grammarAccess.getStyleAccess().getUnorderedGroup_4(), 13) ) {s = 14;}
+
+                        else if ( LA232_0 ==164 && getUnorderedGroupHelper().canSelect(grammarAccess.getStyleAccess().getUnorderedGroup_4(), 14) ) {s = 15;}
+
+                        else if ( LA232_0 ==165 && getUnorderedGroupHelper().canSelect(grammarAccess.getStyleAccess().getUnorderedGroup_4(), 15) ) {s = 16;}
+
+                        else if ( LA232_0 ==166 && getUnorderedGroupHelper().canSelect(grammarAccess.getStyleAccess().getUnorderedGroup_4(), 16) ) {s = 17;}
+
+                        else if ( (LA232_0==123||LA232_0==131) ) {s = 18;}
+
+                         
+                        input.seek(index232_0);
+                        if ( s>=0 ) return s;
+                        break;
+            }
+            if (state.backtracking>0) {state.failed=true; return -1;}
+            NoViableAltException nvae =
+                new NoViableAltException(getDescription(), 232, _s, input);
+            error(nvae);
+            throw nvae;
+        }
+    }
+    static final String DFA233_eotS =
+        "\22\uffff";
+    static final String DFA233_eofS =
+        "\22\uffff";
+    static final String DFA233_minS =
+        "\1\u0092\21\uffff";
+    static final String DFA233_maxS =
+        "\1\u00a6\21\uffff";
+    static final String DFA233_acceptS =
+        "\1\uffff\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";
+    static final String DFA233_specialS =
+        "\1\0\21\uffff}>";
+    static final String[] DFA233_transitionS = {
+            "\1\2\3\uffff\1\1\1\3\1\uffff\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",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            ""
+    };
+
+    static final short[] DFA233_eot = DFA.unpackEncodedString(DFA233_eotS);
+    static final short[] DFA233_eof = DFA.unpackEncodedString(DFA233_eofS);
+    static final char[] DFA233_min = DFA.unpackEncodedStringToUnsignedChars(DFA233_minS);
+    static final char[] DFA233_max = DFA.unpackEncodedStringToUnsignedChars(DFA233_maxS);
+    static final short[] DFA233_accept = DFA.unpackEncodedString(DFA233_acceptS);
+    static final short[] DFA233_special = DFA.unpackEncodedString(DFA233_specialS);
+    static final short[][] DFA233_transition;
+
+    static {
+        int numStates = DFA233_transitionS.length;
+        DFA233_transition = new short[numStates][];
+        for (int i=0; i<numStates; i++) {
+            DFA233_transition[i] = DFA.unpackEncodedString(DFA233_transitionS[i]);
+        }
+    }
+
+    class DFA233 extends DFA {
+
+        public DFA233(BaseRecognizer recognizer) {
+            this.recognizer = recognizer;
+            this.decisionNumber = 233;
+            this.eot = DFA233_eot;
+            this.eof = DFA233_eof;
+            this.min = DFA233_min;
+            this.max = DFA233_max;
+            this.accept = DFA233_accept;
+            this.special = DFA233_special;
+            this.transition = DFA233_transition;
+        }
+        public String getDescription() {
+            return "39700:3: ( ({...}? => ( ( ( rule__Style__Group_4_0__0 ) ) ) ) | ({...}? => ( ( ( rule__Style__Group_4_1__0 ) ) ) ) | ({...}? => ( ( ( rule__Style__Group_4_2__0 ) ) ) ) | ({...}? => ( ( ( rule__Style__Group_4_3__0 ) ) ) ) | ({...}? => ( ( ( rule__Style__Group_4_4__0 ) ) ) ) | ({...}? => ( ( ( rule__Style__Group_4_5__0 ) ) ) ) | ({...}? => ( ( ( rule__Style__Group_4_6__0 ) ) ) ) | ({...}? => ( ( ( rule__Style__Group_4_7__0 ) ) ) ) | ({...}? => ( ( ( rule__Style__Group_4_8__0 ) ) ) ) | ({...}? => ( ( ( rule__Style__Group_4_9__0 ) ) ) ) | ({...}? => ( ( ( rule__Style__Group_4_10__0 ) ) ) ) | ({...}? => ( ( ( rule__Style__Group_4_11__0 ) ) ) ) | ({...}? => ( ( ( rule__Style__Group_4_12__0 ) ) ) ) | ({...}? => ( ( ( rule__Style__Group_4_13__0 ) ) ) ) | ({...}? => ( ( ( rule__Style__Group_4_14__0 ) ) ) ) | ({...}? => ( ( ( rule__Style__Group_4_15__0 ) ) ) ) | ({...}? => ( ( ( rule__Style__Group_4_16__0 ) ) ) ) )";
+        }
+        public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
+            TokenStream input = (TokenStream)_input;
+        	int _s = s;
+            switch ( s ) {
+                    case 0 : 
+                        int LA233_0 = input.LA(1);
+
+                         
+                        int index233_0 = input.index();
+                        input.rewind();
+                        s = -1;
+                        if ( LA233_0 ==150 && getUnorderedGroupHelper().canSelect(grammarAccess.getStyleAccess().getUnorderedGroup_4(), 0) ) {s = 1;}
+
+                        else if ( LA233_0 ==146 && getUnorderedGroupHelper().canSelect(grammarAccess.getStyleAccess().getUnorderedGroup_4(), 1) ) {s = 2;}
+
+                        else if ( LA233_0 ==151 && getUnorderedGroupHelper().canSelect(grammarAccess.getStyleAccess().getUnorderedGroup_4(), 2) ) {s = 3;}
+
+                        else if ( LA233_0 ==153 && getUnorderedGroupHelper().canSelect(grammarAccess.getStyleAccess().getUnorderedGroup_4(), 3) ) {s = 4;}
+
+                        else if ( LA233_0 ==154 && getUnorderedGroupHelper().canSelect(grammarAccess.getStyleAccess().getUnorderedGroup_4(), 4) ) {s = 5;}
+
+                        else if ( LA233_0 ==155 && getUnorderedGroupHelper().canSelect(grammarAccess.getStyleAccess().getUnorderedGroup_4(), 5) ) {s = 6;}
+
+                        else if ( LA233_0 ==156 && getUnorderedGroupHelper().canSelect(grammarAccess.getStyleAccess().getUnorderedGroup_4(), 6) ) {s = 7;}
+
+                        else if ( LA233_0 ==157 && getUnorderedGroupHelper().canSelect(grammarAccess.getStyleAccess().getUnorderedGroup_4(), 7) ) {s = 8;}
+
+                        else if ( LA233_0 ==158 && getUnorderedGroupHelper().canSelect(grammarAccess.getStyleAccess().getUnorderedGroup_4(), 8) ) {s = 9;}
+
+                        else if ( LA233_0 ==159 && getUnorderedGroupHelper().canSelect(grammarAccess.getStyleAccess().getUnorderedGroup_4(), 9) ) {s = 10;}
+
+                        else if ( LA233_0 ==160 && getUnorderedGroupHelper().canSelect(grammarAccess.getStyleAccess().getUnorderedGroup_4(), 10) ) {s = 11;}
+
+                        else if ( LA233_0 ==161 && getUnorderedGroupHelper().canSelect(grammarAccess.getStyleAccess().getUnorderedGroup_4(), 11) ) {s = 12;}
+
+                        else if ( LA233_0 ==162 && getUnorderedGroupHelper().canSelect(grammarAccess.getStyleAccess().getUnorderedGroup_4(), 12) ) {s = 13;}
+
+                        else if ( LA233_0 ==163 && getUnorderedGroupHelper().canSelect(grammarAccess.getStyleAccess().getUnorderedGroup_4(), 13) ) {s = 14;}
+
+                        else if ( LA233_0 ==164 && getUnorderedGroupHelper().canSelect(grammarAccess.getStyleAccess().getUnorderedGroup_4(), 14) ) {s = 15;}
+
+                        else if ( LA233_0 ==165 && getUnorderedGroupHelper().canSelect(grammarAccess.getStyleAccess().getUnorderedGroup_4(), 15) ) {s = 16;}
+
+                        else if ( LA233_0 ==166 && getUnorderedGroupHelper().canSelect(grammarAccess.getStyleAccess().getUnorderedGroup_4(), 16) ) {s = 17;}
+
+                         
+                        input.seek(index233_0);
+                        if ( s>=0 ) return s;
+                        break;
+            }
+            if (state.backtracking>0) {state.failed=true; return -1;}
+            NoViableAltException nvae =
+                new NoViableAltException(getDescription(), 233, _s, input);
+            error(nvae);
+            throw nvae;
+        }
+    }
+    static final String DFA234_eotS =
+        "\23\uffff";
+    static final String DFA234_eofS =
+        "\1\22\22\uffff";
+    static final String DFA234_minS =
+        "\1\173\22\uffff";
+    static final String DFA234_maxS =
+        "\1\u00a6\22\uffff";
+    static final String DFA234_acceptS =
+        "\1\uffff\21\1\1\2";
+    static final String DFA234_specialS =
+        "\1\0\22\uffff}>";
+    static final String[] DFA234_transitionS = {
+            "\1\22\7\uffff\1\22\16\uffff\1\2\3\uffff\1\1\1\3\1\uffff\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",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            ""
+    };
+
+    static final short[] DFA234_eot = DFA.unpackEncodedString(DFA234_eotS);
+    static final short[] DFA234_eof = DFA.unpackEncodedString(DFA234_eofS);
+    static final char[] DFA234_min = DFA.unpackEncodedStringToUnsignedChars(DFA234_minS);
+    static final char[] DFA234_max = DFA.unpackEncodedStringToUnsignedChars(DFA234_maxS);
+    static final short[] DFA234_accept = DFA.unpackEncodedString(DFA234_acceptS);
+    static final short[] DFA234_special = DFA.unpackEncodedString(DFA234_specialS);
+    static final short[][] DFA234_transition;
+
+    static {
+        int numStates = DFA234_transitionS.length;
+        DFA234_transition = new short[numStates][];
+        for (int i=0; i<numStates; i++) {
+            DFA234_transition[i] = DFA.unpackEncodedString(DFA234_transitionS[i]);
+        }
+    }
+
+    class DFA234 extends DFA {
+
+        public DFA234(BaseRecognizer recognizer) {
+            this.recognizer = recognizer;
+            this.decisionNumber = 234;
+            this.eot = DFA234_eot;
+            this.eof = DFA234_eof;
+            this.min = DFA234_min;
+            this.max = DFA234_max;
+            this.accept = DFA234_accept;
+            this.special = DFA234_special;
+            this.transition = DFA234_transition;
+        }
+        public String getDescription() {
+            return "40006:2: ( rule__Style__UnorderedGroup_4__1 )?";
+        }
+        public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
+            TokenStream input = (TokenStream)_input;
+        	int _s = s;
+            switch ( s ) {
+                    case 0 : 
+                        int LA234_0 = input.LA(1);
+
+                         
+                        int index234_0 = input.index();
+                        input.rewind();
+                        s = -1;
+                        if ( LA234_0 ==150 && getUnorderedGroupHelper().canSelect(grammarAccess.getStyleAccess().getUnorderedGroup_4(), 0) ) {s = 1;}
+
+                        else if ( LA234_0 ==146 && getUnorderedGroupHelper().canSelect(grammarAccess.getStyleAccess().getUnorderedGroup_4(), 1) ) {s = 2;}
+
+                        else if ( LA234_0 ==151 && getUnorderedGroupHelper().canSelect(grammarAccess.getStyleAccess().getUnorderedGroup_4(), 2) ) {s = 3;}
+
+                        else if ( LA234_0 ==153 && getUnorderedGroupHelper().canSelect(grammarAccess.getStyleAccess().getUnorderedGroup_4(), 3) ) {s = 4;}
+
+                        else if ( LA234_0 ==154 && getUnorderedGroupHelper().canSelect(grammarAccess.getStyleAccess().getUnorderedGroup_4(), 4) ) {s = 5;}
+
+                        else if ( LA234_0 ==155 && getUnorderedGroupHelper().canSelect(grammarAccess.getStyleAccess().getUnorderedGroup_4(), 5) ) {s = 6;}
+
+                        else if ( LA234_0 ==156 && getUnorderedGroupHelper().canSelect(grammarAccess.getStyleAccess().getUnorderedGroup_4(), 6) ) {s = 7;}
+
+                        else if ( LA234_0 ==157 && getUnorderedGroupHelper().canSelect(grammarAccess.getStyleAccess().getUnorderedGroup_4(), 7) ) {s = 8;}
+
+                        else if ( LA234_0 ==158 && getUnorderedGroupHelper().canSelect(grammarAccess.getStyleAccess().getUnorderedGroup_4(), 8) ) {s = 9;}
+
+                        else if ( LA234_0 ==159 && getUnorderedGroupHelper().canSelect(grammarAccess.getStyleAccess().getUnorderedGroup_4(), 9) ) {s = 10;}
+
+                        else if ( LA234_0 ==160 && getUnorderedGroupHelper().canSelect(grammarAccess.getStyleAccess().getUnorderedGroup_4(), 10) ) {s = 11;}
+
+                        else if ( LA234_0 ==161 && getUnorderedGroupHelper().canSelect(grammarAccess.getStyleAccess().getUnorderedGroup_4(), 11) ) {s = 12;}
+
+                        else if ( LA234_0 ==162 && getUnorderedGroupHelper().canSelect(grammarAccess.getStyleAccess().getUnorderedGroup_4(), 12) ) {s = 13;}
+
+                        else if ( LA234_0 ==163 && getUnorderedGroupHelper().canSelect(grammarAccess.getStyleAccess().getUnorderedGroup_4(), 13) ) {s = 14;}
+
+                        else if ( LA234_0 ==164 && getUnorderedGroupHelper().canSelect(grammarAccess.getStyleAccess().getUnorderedGroup_4(), 14) ) {s = 15;}
+
+                        else if ( LA234_0 ==165 && getUnorderedGroupHelper().canSelect(grammarAccess.getStyleAccess().getUnorderedGroup_4(), 15) ) {s = 16;}
+
+                        else if ( LA234_0 ==166 && getUnorderedGroupHelper().canSelect(grammarAccess.getStyleAccess().getUnorderedGroup_4(), 16) ) {s = 17;}
+
+                        else if ( (LA234_0==EOF||LA234_0==123||LA234_0==131) ) {s = 18;}
+
+                         
+                        input.seek(index234_0);
+                        if ( s>=0 ) return s;
+                        break;
+            }
+            if (state.backtracking>0) {state.failed=true; return -1;}
+            NoViableAltException nvae =
+                new NoViableAltException(getDescription(), 234, _s, input);
+            error(nvae);
+            throw nvae;
+        }
+    }
+    static final String DFA235_eotS =
+        "\23\uffff";
+    static final String DFA235_eofS =
+        "\1\22\22\uffff";
+    static final String DFA235_minS =
+        "\1\173\22\uffff";
+    static final String DFA235_maxS =
+        "\1\u00a6\22\uffff";
+    static final String DFA235_acceptS =
+        "\1\uffff\21\1\1\2";
+    static final String DFA235_specialS =
+        "\1\0\22\uffff}>";
+    static final String[] DFA235_transitionS = {
+            "\1\22\7\uffff\1\22\16\uffff\1\2\3\uffff\1\1\1\3\1\uffff\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",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            ""
+    };
+
+    static final short[] DFA235_eot = DFA.unpackEncodedString(DFA235_eotS);
+    static final short[] DFA235_eof = DFA.unpackEncodedString(DFA235_eofS);
+    static final char[] DFA235_min = DFA.unpackEncodedStringToUnsignedChars(DFA235_minS);
+    static final char[] DFA235_max = DFA.unpackEncodedStringToUnsignedChars(DFA235_maxS);
+    static final short[] DFA235_accept = DFA.unpackEncodedString(DFA235_acceptS);
+    static final short[] DFA235_special = DFA.unpackEncodedString(DFA235_specialS);
+    static final short[][] DFA235_transition;
+
+    static {
+        int numStates = DFA235_transitionS.length;
+        DFA235_transition = new short[numStates][];
+        for (int i=0; i<numStates; i++) {
+            DFA235_transition[i] = DFA.unpackEncodedString(DFA235_transitionS[i]);
+        }
+    }
+
+    class DFA235 extends DFA {
+
+        public DFA235(BaseRecognizer recognizer) {
+            this.recognizer = recognizer;
+            this.decisionNumber = 235;
+            this.eot = DFA235_eot;
+            this.eof = DFA235_eof;
+            this.min = DFA235_min;
+            this.max = DFA235_max;
+            this.accept = DFA235_accept;
+            this.special = DFA235_special;
+            this.transition = DFA235_transition;
+        }
+        public String getDescription() {
+            return "40019:2: ( rule__Style__UnorderedGroup_4__2 )?";
+        }
+        public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
+            TokenStream input = (TokenStream)_input;
+        	int _s = s;
diff --git a/org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/internal/ReportDSLActivator.java b/org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/internal/ReportDSLActivator.java
new file mode 100644
index 0000000..7297e4f
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl.ui/src-gen/org/eclipse/osbp/xtext/reportdsl/ui/internal/ReportDSLActivator.java
@@ -0,0 +1,106 @@
+/**
+ *                                                                            
+ *  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.reportdsl.ui.internal;
+
+import java.util.Collections;
+import java.util.Map;
+
+import org.apache.log4j.Logger;
+import org.eclipse.ui.plugin.AbstractUIPlugin;
+import org.eclipse.xtext.ui.shared.SharedStateModule;
+import org.eclipse.xtext.util.Modules2;
+import org.osgi.framework.BundleContext;
+
+import com.google.common.collect.Maps;
+import com.google.inject.Guice;
+import com.google.inject.Injector;
+import com.google.inject.Module;
+
+/**
+ * This class was generated. Customizations should only happen in a newly
+ * introduced subclass. 
+ */
+public class ReportDSLActivator extends AbstractUIPlugin {
+	
+	public static final String ORG_ECLIPSE_OSBP_XTEXT_REPORTDSL_REPORTDSL = "org.eclipse.osbp.xtext.reportdsl.ReportDSL";
+	
+	private static final Logger logger = Logger.getLogger(ReportDSLActivator.class);
+	
+	private static ReportDSLActivator 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 ReportDSLActivator 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_REPORTDSL_REPORTDSL.equals(grammar)) {
+			return new org.eclipse.osbp.xtext.reportdsl.ReportDSLRuntimeModule();
+		}
+		
+		throw new IllegalArgumentException(grammar);
+	}
+	
+	protected Module getUiModule(String grammar) {
+		if (ORG_ECLIPSE_OSBP_XTEXT_REPORTDSL_REPORTDSL.equals(grammar)) {
+			return new org.eclipse.osbp.xtext.reportdsl.ui.ReportDSLUiModule(this);
+		}
+		
+		throw new IllegalArgumentException(grammar);
+	}
+	
+	protected Module getSharedStateModule() {
+		return new SharedStateModule();
+	}
+	
+}
diff --git a/org.eclipse.osbp.xtext.reportdsl.ui/src/org/eclipse/osbp/xtext/reportdsl/ui/ReportDSLEObjectHover.java b/org.eclipse.osbp.xtext.reportdsl.ui/src/org/eclipse/osbp/xtext/reportdsl/ui/ReportDSLEObjectHover.java
new file mode 100644
index 0000000..02746dd
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl.ui/src/org/eclipse/osbp/xtext/reportdsl/ui/ReportDSLEObjectHover.java
@@ -0,0 +1,26 @@
+/**
+ *                                                                            
+ * 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.reportdsl.ui;
+
+import org.eclipse.xtext.ui.editor.hover.IEObjectHoverProvider;
+
+import org.eclipse.osbp.xtext.basic.ui.BasicDSLEObjectHover;
+
+
+public class ReportDSLEObjectHover extends BasicDSLEObjectHover {
+
+	@Override
+	public IEObjectHoverProvider getHoverProvider() {
+		return ReportDSLEObjectHoverProvider.instance();
+	}
+}
diff --git a/org.eclipse.osbp.xtext.reportdsl.ui/src/org/eclipse/osbp/xtext/reportdsl/ui/ReportDSLEObjectHoverDocumentationProvider.java b/org.eclipse.osbp.xtext.reportdsl.ui/src/org/eclipse/osbp/xtext/reportdsl/ui/ReportDSLEObjectHoverDocumentationProvider.java
new file mode 100644
index 0000000..fa1b262
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl.ui/src/org/eclipse/osbp/xtext/reportdsl/ui/ReportDSLEObjectHoverDocumentationProvider.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 
+ */
+package org.eclipse.osbp.xtext.reportdsl.ui;
+
+import org.eclipse.osbp.xtext.basic.ui.BasicDSLDocumentationTranslator;
+import org.eclipse.osbp.xtext.basic.ui.BasicDSLEObjectHoverDocumentationProvider;
+
+public class ReportDSLEObjectHoverDocumentationProvider extends BasicDSLEObjectHoverDocumentationProvider {
+
+	private static ReportDSLEObjectHoverDocumentationProvider INSTANCE;
+
+	public static ReportDSLEObjectHoverDocumentationProvider instance() {
+		return INSTANCE;
+	}
+	
+	public ReportDSLEObjectHoverDocumentationProvider() {
+		super();
+		INSTANCE = this;
+	}
+
+	@Override
+	protected BasicDSLDocumentationTranslator getTranslator() {
+		return ReportDSLUiDocumentationTranslator.instance();
+	}
+}
diff --git a/org.eclipse.osbp.xtext.reportdsl.ui/src/org/eclipse/osbp/xtext/reportdsl/ui/ReportDSLEObjectHoverProvider.java b/org.eclipse.osbp.xtext.reportdsl.ui/src/org/eclipse/osbp/xtext/reportdsl/ui/ReportDSLEObjectHoverProvider.java
new file mode 100644
index 0000000..010afc7
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl.ui/src/org/eclipse/osbp/xtext/reportdsl/ui/ReportDSLEObjectHoverProvider.java
@@ -0,0 +1,37 @@
+/**
+ *                                                                            
+ * 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.reportdsl.ui;
+
+import org.eclipse.xtext.ui.editor.hover.html.IEObjectHoverDocumentationProvider;
+
+import org.eclipse.osbp.xtext.basic.ui.BasicDSLEObjectHoverProvider;
+
+
+public class ReportDSLEObjectHoverProvider extends BasicDSLEObjectHoverProvider {
+
+	private static ReportDSLEObjectHoverProvider INSTANCE;
+	
+	public static ReportDSLEObjectHoverProvider instance() {
+		return INSTANCE;
+	}
+	
+	public ReportDSLEObjectHoverProvider() {
+		super();
+		INSTANCE = this;
+	}
+
+	@Override
+	public IEObjectHoverDocumentationProvider getDocumentationHoverProvider() {
+		return ReportDSLEObjectHoverDocumentationProvider.instance();
+	}
+}
diff --git a/org.eclipse.osbp.xtext.reportdsl.ui/src/org/eclipse/osbp/xtext/reportdsl/ui/ReportDSLUiDocumentationTranslator.java b/org.eclipse.osbp.xtext.reportdsl.ui/src/org/eclipse/osbp/xtext/reportdsl/ui/ReportDSLUiDocumentationTranslator.java
new file mode 100644
index 0000000..2c19cc9
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl.ui/src/org/eclipse/osbp/xtext/reportdsl/ui/ReportDSLUiDocumentationTranslator.java
@@ -0,0 +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 
+ */
+package org.eclipse.osbp.xtext.reportdsl.ui;
+
+import java.util.ResourceBundle;
+
+import org.eclipse.osbp.utils.constants.GeneratorConstants;
+import org.eclipse.osbp.xtext.basic.ui.BasicDSLDocumentationTranslator;
+
+
+
+/**
+ * Documentation Translator for ReportDSL
+ */
+public class ReportDSLUiDocumentationTranslator extends BasicDSLDocumentationTranslator {
+	
+	private static ReportDSLUiDocumentationTranslator INSTANCE = new ReportDSLUiDocumentationTranslator();
+
+	/**
+	 * @return the one and only translator instance
+	 */
+	public static BasicDSLDocumentationTranslator instance() {
+		return INSTANCE;
+	}
+	
+	@Override
+	protected ResourceBundle getResourceBundle() {
+        return java.util.ResourceBundle.getBundle(GeneratorConstants.I18N_RESOURCE_FULL_BUNDLE_NAME, getLocale(), getClass().getClassLoader());
+	}
+}
diff --git a/org.eclipse.osbp.xtext.reportdsl.ui/src/org/eclipse/osbp/xtext/reportdsl/ui/ReportDSLUiModule.java b/org.eclipse.osbp.xtext.reportdsl.ui/src/org/eclipse/osbp/xtext/reportdsl/ui/ReportDSLUiModule.java
new file mode 100644
index 0000000..3ad91c9
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl.ui/src/org/eclipse/osbp/xtext/reportdsl/ui/ReportDSLUiModule.java
@@ -0,0 +1,51 @@
+/**
+ *                                                                            
+ * 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.reportdsl.ui;
+
+import org.eclipse.ui.plugin.AbstractUIPlugin;
+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.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 ReportDSLUiModule extends org.eclipse.osbp.xtext.reportdsl.ui.AbstractReportDSLUiModule {
+	
+    private static Logger LOGGER = LoggerFactory.getLogger(ReportDSLUiModule.class);
+	
+	public ReportDSLUiModule(AbstractUIPlugin plugin) {
+		super(plugin);
+		BasicDSLUiModuleHelper.unitTestTemplates(plugin, LOGGER);
+	}
+
+	@Override
+    public Class<? extends IEObjectHover> bindIEObjectHover() {
+        return ReportDSLEObjectHover.class;
+    }
+
+	@Override
+    public Class<? extends IEObjectHoverProvider> bindIEObjectHoverProvider() {
+        return ReportDSLEObjectHoverProvider.class;
+    }
+	 
+	@Override
+    public Class<? extends IEObjectHoverDocumentationProvider> bindIEObjectHoverDocumentationProvider() {
+        return ReportDSLEObjectHoverDocumentationProvider.class;
+    }
+ 
+}
diff --git a/org.eclipse.osbp.xtext.reportdsl.ui/src/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/ReportDSLProposalProvider.xtend b/org.eclipse.osbp.xtext.reportdsl.ui/src/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/ReportDSLProposalProvider.xtend
new file mode 100644
index 0000000..79124ac
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl.ui/src/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/ReportDSLProposalProvider.xtend
@@ -0,0 +1,313 @@
+/**
+ *                                                                            
+ * 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.reportdsl.ui.contentassist
+
+import com.google.inject.Inject
+import org.eclipse.emf.ecore.EObject
+import org.eclipse.jface.viewers.StyledString
+import org.eclipse.osbp.xtext.basic.ui.contentassist.BasicDSLProposalProviderHelper
+import org.eclipse.osbp.xtext.datamartdsl.DatamartEntity
+import org.eclipse.osbp.xtext.reportdsl.Color
+import org.eclipse.osbp.xtext.reportdsl.DatamartTable
+import org.eclipse.osbp.xtext.reportdsl.common.ColorUtilities
+import org.eclipse.osbp.xtext.reportdsl.ui.ReportDSLUiDocumentationTranslator
+import org.eclipse.swt.graphics.RGB
+import org.eclipse.swt.layout.FillLayout
+import org.eclipse.swt.widgets.ColorDialog
+import org.eclipse.swt.widgets.Shell
+import org.eclipse.xtext.Assignment
+import org.eclipse.xtext.Keyword
+import org.eclipse.xtext.RuleCall
+import org.eclipse.xtext.common.ui.contentassist.TerminalsProposalProvider
+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.ui.editor.contentassist.ReplacementTextApplier
+
+class ColorTextApplier extends ReplacementTextApplier {
+	var ContentAssistContext context
+
+	def setContext(ContentAssistContext context) {
+		this.context = context
+	}
+
+	// this will inject a file dialog when selecting the file picker proposal 
+	override getActualReplacementString(ConfigurableCompletionProposal proposal) {
+		var display = context.getViewer().getTextWidget().getDisplay();
+		var shell = new Shell(display);
+		shell.setLayout(new FillLayout());
+		var colorDialog = new ColorDialog(shell);
+		if ((context.currentModel as Color).color instanceof String) {
+			try {
+				var awtColor = ColorUtilities.convertToAwtColor(context.currentModel as Color);
+				colorDialog.setRGB(new RGB(awtColor.red, awtColor.green, awtColor.blue));
+			} finally {
+			}
+		}
+		var newColor = colorDialog.open();
+		if (newColor != null) {
+			return String.format("\"#%02x%02x%02x\"", newColor.red, newColor.green, newColor.blue);
+		}
+	}
+}
+
+/**
+ * see http://www.eclipse.org/Xtext/documentation.html#contentAssist on how to customize content assistant
+ */
+class ReportDSLProposalProvider extends AbstractReportDSLProposalProvider {
+
+	@Inject TerminalsProposalProvider provider
+	@Inject BasicDSLProposalProviderHelper providerHelper
+
+	override void completeColor_Color(EObject model, Assignment assignment, ContentAssistContext context,
+		ICompletionProposalAcceptor acceptor) {
+		var color = createCompletionProposal("Select color...", context) as ConfigurableCompletionProposal
+		if (color != null) {
+			var applier = new ColorTextApplier()
+			applier.setContext(context)
+			color.setTextApplier = applier
+		}
+		acceptor.accept(color)
+	}
+
+	/**
+	 * This override will enable 1 length non letter characters as keyword.
+	 */
+	override protected boolean isKeywordWorthyToPropose(Keyword keyword) {
+		true
+	}
+
+	def getContainingDatamartTable(EObject o) {
+		var result = o
+		while (!(result instanceof DatamartTable) && (result.eContainer != null)) {
+			result = result.eContainer
+		}
+		return result as DatamartTable
+	}
+
+	override protected boolean isValidProposal(String proposal, String prefix, ContentAssistContext context) {
+		if (!super.isValidProposal(proposal, prefix, context)) {
+			return false
+		} else {
+
+			//			var currentModel = context.getCurrentModel();
+			//		if (context.getCurrentModel() instanceof Datamart) {
+			//			return isDatamartValidProposal(context, proposal)
+			//		}
+			//			switch (currentModel) {
+			//				CCTableProperty: 	{
+			//					var source = getContainingDatamartTable(currentModel).datamartRef.source
+			//					switch (source) {
+			//						CCDatamartEntity: 	return datamartEntityContainsProperty(source, proposal)
+			//						default:			return true
+			//					}
+			//				}
+			//				default: 			return true //super.isValidProposal(proposal, prefix, context)
+			//			}
+			return true
+		}
+	}
+
+	def protected boolean datamartEntityContainsProperty(DatamartEntity entity, String proposal) {
+		for (navigation : entity.navigations) {
+			if (datamartEntityContainsProperty(navigation.datamartEntity, proposal)) {
+				return true
+			}
+		}
+		for (property : entity.properties) {
+			//			val attribute = property.propertyRef as LEntityAttribute
+			//			if	(attribute.name.equals(proposal)) {
+			//				return true
+			//			}
+		}
+		return false
+	}
+
+	//	def isDatamartValidProposal(ContentAssistContext context, String proposal) {
+	//		var eObj = context.currentModel
+	//		while (!(eObj instanceof Datamart)) {
+	//			eObj = eObj.eContainer
+	//		}
+	//		
+	//		return true
+	//	}
+	/**
+	 * @see BasicDSLProposalProviderHelper#getKeywordDisplayString(Keyword, BasicDSLUiTranslator)
+	 * @param keyword the keyword to get the displayed string for
+	 * @return the displayed string
+	 */
+	override protected StyledString getKeywordDisplayString(Keyword keyword) {
+		return BasicDSLProposalProviderHelper.getKeywordDisplayString(keyword,
+			ReportDSLUiDocumentationTranslator.instance())
+	}
+
+	override public void complete_QualifiedName(EObject model, RuleCall ruleCall, ContentAssistContext context,
+		ICompletionProposalAcceptor acceptor) {
+		providerHelper.complete_PackageName(model, ruleCall, context, acceptor, this)
+	}
+
+	override public void complete_ReportQualifiedNameWithWildCard(EObject model, RuleCall ruleCall,
+		ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		providerHelper.complete_PackageName(model, ruleCall, context, acceptor, this)
+	}
+
+	override complete_UnsignedNumber(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		providerHelper.createNumberProposal(context, acceptor, ruleCall, this)
+	}
+
+	override complete_SignedNumber(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		providerHelper.createNumberProposal(context, acceptor, ruleCall, this)
+	}
+
+	// ------------------------ delegates to TerminalsProposalProvider -----------------
+	override public void complete_INT(EObject model, RuleCall ruleCall, ContentAssistContext context,
+		ICompletionProposalAcceptor acceptor) {
+		provider.complete_INT(model, ruleCall, context, acceptor)
+	}
+
+	override public void complete_ID(EObject model, RuleCall ruleCall, ContentAssistContext context,
+		ICompletionProposalAcceptor acceptor) {
+		provider.complete_ID(model, ruleCall, context, acceptor)
+	}
+
+	override public void complete_TRANSLATABLESTRING(EObject model, RuleCall ruleCall, ContentAssistContext context,
+		ICompletionProposalAcceptor acceptor) {
+		provider.complete_STRING(model, ruleCall, context, acceptor)
+	}
+
+	override public void completeTableStringLookup_LookupValue(EObject model, Assignment assignment,
+		ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		provider.complete_STRING(model, (assignment.getTerminal() as RuleCall), context, acceptor)
+	}
+
+	override public void completeReportPackage_ExternalCssURI(EObject model, Assignment assignment,
+		ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		provider.complete_STRING(model, (assignment.getTerminal() as RuleCall), context, acceptor)
+	}
+
+	override public void completeReportPackage_ExternalCssURIBundle(EObject model, Assignment assignment,
+		ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		provider.complete_STRING(model, (assignment.getTerminal() as RuleCall), context, acceptor)
+	}
+
+	override public void completeReport_ExternalCssURI(EObject model, Assignment assignment,
+		ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		provider.complete_STRING(model, (assignment.getTerminal() as RuleCall), context, acceptor)
+	}
+
+	override public void completeReport_ExternalCssURIBundle(EObject model, Assignment assignment,
+		ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		provider.complete_STRING(model, (assignment.getTerminal() as RuleCall), context, acceptor)
+	}
+
+	override public void completeFont_Family(EObject model, Assignment assignment, ContentAssistContext context,
+		ICompletionProposalAcceptor acceptor) {
+		provider.complete_STRING(model, (assignment.getTerminal() as RuleCall), context, acceptor)
+	}
+
+	override public void completeUomoFormat_Ui_pattern(EObject model, Assignment assignment,
+		ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		provider.complete_STRING(model, (assignment.getTerminal() as RuleCall), context, acceptor)
+	}
+
+	override public void completeNumberFormat_Ui_pattern(EObject model, Assignment assignment,
+		ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		provider.complete_STRING(model, (assignment.getTerminal() as RuleCall), context, acceptor)
+	}
+
+	override public void completeCurrencyFormat_Ui_pattern(EObject model, Assignment assignment,
+		ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		provider.complete_STRING(model, (assignment.getTerminal() as RuleCall), context, acceptor)
+	}
+
+	override public void completeDateFormat_Ui_pattern(EObject model, Assignment assignment,
+		ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		provider.complete_STRING(model, (assignment.getTerminal() as RuleCall), context, acceptor)
+	}
+
+	override public void completeDateTimeFormat_Ui_pattern(EObject model, Assignment assignment,
+		ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		provider.complete_STRING(model, (assignment.getTerminal() as RuleCall), context, acceptor)
+	}
+
+	override public void completeTimeFormat_Ui_pattern(EObject model, Assignment assignment,
+		ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		provider.complete_STRING(model, (assignment.getTerminal() as RuleCall), context, acceptor)
+	}
+
+	override public void completeUomoFormat_Report_pattern(EObject model, Assignment assignment,
+		ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		provider.complete_STRING(model, (assignment.getTerminal() as RuleCall), context, acceptor)
+	}
+
+	override public void completeNumberFormat_Report_pattern(EObject model, Assignment assignment,
+		ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		provider.complete_STRING(model, (assignment.getTerminal() as RuleCall), context, acceptor)
+	}
+
+	override public void completeCurrencyFormat_Report_pattern(EObject model, Assignment assignment,
+		ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		provider.complete_STRING(model, (assignment.getTerminal() as RuleCall), context, acceptor)
+	}
+
+	override public void completeDateFormat_Report_pattern(EObject model, Assignment assignment,
+		ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		provider.complete_STRING(model, (assignment.getTerminal() as RuleCall), context, acceptor)
+	}
+
+	override public void completeDateTimeFormat_Report_pattern(EObject model, Assignment assignment,
+		ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		provider.complete_STRING(model, (assignment.getTerminal() as RuleCall), context, acceptor)
+	}
+
+	override public void completeTimeFormat_Report_pattern(EObject model, Assignment assignment,
+		ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		provider.complete_STRING(model, (assignment.getTerminal() as RuleCall), context, acceptor)
+	}
+
+	override public void completeReportDesignFile_Name(EObject model, Assignment assignment,
+		ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		provider.complete_STRING(model, (assignment.getTerminal() as RuleCall), context, acceptor)
+	}
+
+	override public void completeTableFormatter_Format(EObject model, Assignment assignment,
+		ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		provider.complete_STRING(model, (assignment.getTerminal() as RuleCall), context, acceptor)
+	}
+
+	override public void completeTableImage_ImagePathPattern(EObject model, Assignment assignment,
+		ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		provider.complete_STRING(model, (assignment.getTerminal() as RuleCall), context, acceptor)
+	}
+
+	override public void completeTableImage_ResizeString(EObject model, Assignment assignment,
+		ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		provider.complete_STRING(model, (assignment.getTerminal() as RuleCall), context, acceptor)
+	}
+
+	override public void completeTableIcon_Icon(EObject model, Assignment assignment, ContentAssistContext context,
+		ICompletionProposalAcceptor acceptor) {
+		provider.complete_STRING(model, (assignment.getTerminal() as RuleCall), context, acceptor)
+	}
+
+	override public void completeImage_Filename(EObject model, Assignment assignment, ContentAssistContext context,
+		ICompletionProposalAcceptor acceptor) {
+		provider.complete_STRING(model, (assignment.getTerminal() as RuleCall), context, acceptor)
+	}
+
+}
diff --git a/org.eclipse.osbp.xtext.reportdsl.ui/src/org/eclipse/osbp/xtext/reportdsl/ui/labeling/ReportDSLDescriptionLabelProvider.xtend b/org.eclipse.osbp.xtext.reportdsl.ui/src/org/eclipse/osbp/xtext/reportdsl/ui/labeling/ReportDSLDescriptionLabelProvider.xtend
new file mode 100644
index 0000000..20a280d
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl.ui/src/org/eclipse/osbp/xtext/reportdsl/ui/labeling/ReportDSLDescriptionLabelProvider.xtend
@@ -0,0 +1,38 @@
+/**
+ *                                                                            
+ *  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.reportdsl.ui.labeling
+
+//import org.eclipse.xtext.resource.IEObjectDescription
+
+/**
+ * Provides labels for a IEObjectDescriptions and IResourceDescriptions.
+ * 
+ * see http://www.eclipse.org/Xtext/documentation.html#labelProvider
+ */
+class ReportDSLDescriptionLabelProvider extends org.eclipse.xtext.ui.label.DefaultDescriptionLabelProvider {
+
+	// Labels and icons can be computed like this:
+	
+//	override text(IEObjectDescription ele) {
+//		ele.name.toString
+//	}
+//	 
+//	override image(IEObjectDescription ele) {
+//		ele.EClass.name + '.gif'
+//	}	 
+}
diff --git a/org.eclipse.osbp.xtext.reportdsl.ui/src/org/eclipse/osbp/xtext/reportdsl/ui/labeling/ReportDSLLabelProvider.xtend b/org.eclipse.osbp.xtext.reportdsl.ui/src/org/eclipse/osbp/xtext/reportdsl/ui/labeling/ReportDSLLabelProvider.xtend
new file mode 100644
index 0000000..6601392
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl.ui/src/org/eclipse/osbp/xtext/reportdsl/ui/labeling/ReportDSLLabelProvider.xtend
@@ -0,0 +1,399 @@
+/**
+ *                                                                            
+ *  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.reportdsl.ui.labeling
+
+import com.google.inject.Inject
+import java.util.HashMap
+import java.util.Map
+import org.eclipse.emf.edit.ui.provider.AdapterFactoryLabelProvider
+import org.eclipse.jface.resource.FontDescriptor
+import org.eclipse.jface.resource.JFaceResources
+import org.eclipse.jface.viewers.StyledString
+import org.eclipse.osbp.xtext.basic.ui.labeling.BasicDSLLabelProvider
+import org.eclipse.osbp.xtext.datamartdsl.DatamartDefinition
+import org.eclipse.osbp.xtext.reportdsl.AutoText
+import org.eclipse.osbp.xtext.reportdsl.BuildInFontFamily
+import org.eclipse.osbp.xtext.reportdsl.Color
+import org.eclipse.osbp.xtext.reportdsl.Colors
+import org.eclipse.osbp.xtext.reportdsl.CurrencyFormat
+import org.eclipse.osbp.xtext.reportdsl.CustomFontFamily
+import org.eclipse.osbp.xtext.reportdsl.DatamartTable
+import org.eclipse.osbp.xtext.reportdsl.DatamartTableDetail
+import org.eclipse.osbp.xtext.reportdsl.DatamartTableGroup
+import org.eclipse.osbp.xtext.reportdsl.DatamartTableGroupFooter
+import org.eclipse.osbp.xtext.reportdsl.DatamartTableGroupHeader
+import org.eclipse.osbp.xtext.reportdsl.DatamartTableProperty
+import org.eclipse.osbp.xtext.reportdsl.DateFormat
+import org.eclipse.osbp.xtext.reportdsl.DateTimeFormat
+import org.eclipse.osbp.xtext.reportdsl.Font
+import org.eclipse.osbp.xtext.reportdsl.FontStyle
+import org.eclipse.osbp.xtext.reportdsl.Fonts
+import org.eclipse.osbp.xtext.reportdsl.Grid
+import org.eclipse.osbp.xtext.reportdsl.GridCell
+import org.eclipse.osbp.xtext.reportdsl.GridRow
+import org.eclipse.osbp.xtext.reportdsl.Image
+import org.eclipse.osbp.xtext.reportdsl.Label
+import org.eclipse.osbp.xtext.reportdsl.Media
+import org.eclipse.osbp.xtext.reportdsl.Medias
+import org.eclipse.osbp.xtext.reportdsl.NumberFormat
+import org.eclipse.osbp.xtext.reportdsl.PageDetail
+import org.eclipse.osbp.xtext.reportdsl.PageFooter
+import org.eclipse.osbp.xtext.reportdsl.PageHeader
+import org.eclipse.osbp.xtext.reportdsl.PageTemplate
+import org.eclipse.osbp.xtext.reportdsl.PageTemplates
+import org.eclipse.osbp.xtext.reportdsl.Report
+import org.eclipse.osbp.xtext.reportdsl.ReportDesignFile
+import org.eclipse.osbp.xtext.reportdsl.ReportDesignTemplate
+import org.eclipse.osbp.xtext.reportdsl.ReportModel
+import org.eclipse.osbp.xtext.reportdsl.ReportPackage
+import org.eclipse.osbp.xtext.reportdsl.SomeFormats
+import org.eclipse.osbp.xtext.reportdsl.Style
+import org.eclipse.osbp.xtext.reportdsl.Styles
+import org.eclipse.osbp.xtext.reportdsl.SubSubTitle
+import org.eclipse.osbp.xtext.reportdsl.SubTitle
+import org.eclipse.osbp.xtext.reportdsl.TableAggregation
+import org.eclipse.osbp.xtext.reportdsl.TableCellColor
+import org.eclipse.osbp.xtext.reportdsl.TableDateDayInterval
+import org.eclipse.osbp.xtext.reportdsl.TableDateDayLookup
+import org.eclipse.osbp.xtext.reportdsl.TableIcon
+import org.eclipse.osbp.xtext.reportdsl.TableInterval
+import org.eclipse.osbp.xtext.reportdsl.TableLookup
+import org.eclipse.osbp.xtext.reportdsl.TableNumberInterval
+import org.eclipse.osbp.xtext.reportdsl.TableNumberLookup
+import org.eclipse.osbp.xtext.reportdsl.TableProperty
+import org.eclipse.osbp.xtext.reportdsl.TableStringLookup
+import org.eclipse.osbp.xtext.reportdsl.TableTextColor
+import org.eclipse.osbp.xtext.reportdsl.TableTrend
+import org.eclipse.osbp.xtext.reportdsl.Text
+import org.eclipse.osbp.xtext.reportdsl.TextElement
+import org.eclipse.osbp.xtext.reportdsl.TimeFormat
+import org.eclipse.osbp.xtext.reportdsl.Title
+import org.eclipse.osbp.xtext.reportdsl.UomoFormat
+import org.eclipse.osbp.xtext.reportdsl.common.item.AContainerItem
+import org.eclipse.swt.SWT
+import org.eclipse.swt.graphics.GC
+import org.eclipse.swt.graphics.RGB
+import org.eclipse.swt.graphics.Rectangle
+import org.eclipse.xtext.ui.label.StylerFactory
+import org.eclipse.osbp.xtext.reportdsl.common.ColorUtilities
+
+/**
+ * Provides labels for a EObjects.
+ *
+ * see http://www.eclipse.org/Xtext/documentation.html#labelProvider
+ */
+class ReportDSLLabelProvider extends BasicDSLLabelProvider {
+
+	private Map<String,org.eclipse.swt.graphics.Image> fCachedImages
+
+	/**
+	 * @param swtColor   SWT color
+	 * @param size 		 outlineImgSize containing the size of the image
+	 * @return a - cached - SWT image object
+	 */
+	def public org.eclipse.swt.graphics.Image getColorImage(org.eclipse.swt.graphics.Color swtColor, outlineImgSize size) {
+		return getColorImage(swtColor, size.getWidth, size.getHeight)
+	}
+
+	/**
+	 * @param swtColor SWT color
+	 * @param width    of the rectangular image
+	 * @param height   of the rectangular image
+	 * @return a - cached - SWT rectangular image object
+	 */
+	def public org.eclipse.swt.graphics.Image getColorImage(org.eclipse.swt.graphics.Color swtColor, int width, int height) {
+		try {
+			var swtColorName = '''«width»/«height»/«swtColor.red»/«swtColor.green»/«swtColor.blue»'''
+			var image = fCachedImages.get(swtColorName)
+			if	(image == null) {
+				//var swtBlack = new Color(null,0,0,0)
+				image = new org.eclipse.swt.graphics.Image(null, new Rectangle(0, 0, width, height))
+				var gc = new GC(image)
+				gc.setBackground(swtColor)
+				gc.fillRectangle(0, 0, 16, 16)
+				//gc.fillOval(0,0,15,15)
+				//gc.setForeground(swtBlack)
+				//gc.drawRectangle(0,0,15,15)
+				gc.dispose
+				swtColor.dispose
+				//swtBlack.dispose
+				fCachedImages.put(swtColorName, image)
+			}
+			return image
+		}
+		catch (Exception e) {
+			return getErrorImage()
+		}
+	}
+
+	def private org.eclipse.swt.graphics.Color getColor(String name) {
+		var awtFore = ColorUtilities.convertToAwtColor(name)
+		return new org.eclipse.swt.graphics.Color(null, awtFore.red, awtFore.green, awtFore.blue)
+	}
+
+	def private RGB getRGB(String name) {
+		var awtFore = ColorUtilities.convertToAwtColor(name)
+		return new RGB(awtFore.red, awtFore.green, awtFore.blue)
+	}
+
+	def private org.eclipse.swt.graphics.Image getColorImage(Color color) {
+		var colorName = AContainerItem.applyColor(color)
+		var swtFore = getColor(colorName)
+		return getColorImage(swtFore as org.eclipse.swt.graphics.Color, outlineImgSize.SMALL)
+	}
+
+	@Inject
+	new(AdapterFactoryLabelProvider delegate) {
+		super(delegate);
+		fCachedImages = new HashMap
+	}
+
+	def private org.eclipse.swt.graphics.Font getFont(Font o) {
+		var family = null as String
+		var size = 0
+		var italic = -1
+		var bold = 0
+		var step = o
+		while (step != null) {
+			if	(family == null) {
+				if	(step.family != null) {
+					var f = step.family
+					switch (f) {
+						BuildInFontFamily: family = f.custom.getName()
+						CustomFontFamily:  family = f.custom
+					}
+				}
+				if	((bold == 0) && step.bold) {
+					bold = SWT.BOLD
+				}
+				if	(italic < 0) {
+					switch (step.style) {
+						case FontStyle.NORMAL:	italic = 0
+						case FontStyle.ITALIC:	italic = SWT.ITALIC
+						case FontStyle.OBLIQUE:	italic = SWT.ITALIC
+					}
+				}
+			}
+			step = step.extends
+		}
+		return new org.eclipse.swt.graphics.Font(null, family, size, italic+bold)
+	}
+
+	// http://help.eclipse.org/indigo/index.jsp?topic=%2Forg.eclipse.platform.doc.isv%2Freference%2Fapi%2Forg%2Feclipse%2Fjface%2Fresource%2FFontDescriptor.html
+	def public StyledString getStyledText(Font o) {
+		try {
+			return new StyledString(
+				generateText (o, null),
+				(new StylerFactory).createStyler(FontDescriptor.createFrom(getFont(o)), null, null)
+			)
+		}
+		catch (Exception e) {
+			return new StyledString(generateText (o, null))
+		}
+	}
+
+	def private org.eclipse.swt.graphics.Font getFont(Style o) {
+		var step = o
+		while (step != null) {
+			if	(step.font != null) {
+				return getFont(step.font)
+			}
+			step = step.extends
+		}
+	}
+
+	def private String getForeColor(Style o) {
+		var step = o
+		while (step != null) {
+			if	(step.textcolor != null) {
+				return AContainerItem.applyColor(step.textcolor)
+			}
+			step = step.extends
+		}
+		null
+	}
+
+	def private String getBackColor(Style o) {
+		var step = o
+		while (step != null) {
+			if	(step.backgroundcolor != null) {
+				return AContainerItem.applyColor(step.backgroundcolor)
+			}
+			step = step.extends
+		}
+		null
+	}
+
+	def private String registerColor(String color) {
+		if	(color != null) {
+			var name = "reportdsl_".concat(color)
+			var colorRegistry = JFaceResources.getColorRegistry();
+			if	(colorRegistry.get(name) == null) {
+				colorRegistry.put(name, getRGB(color))
+			}
+			return name
+		}
+		return color
+	}
+
+	// http://help.eclipse.org/indigo/index.jsp?topic=%2Forg.eclipse.platform.doc.isv%2Freference%2Fapi%2Forg%2Feclipse%2Fjface%2Fresource%2FFontDescriptor.html
+	def public StyledString getStyledText(Style o) {
+		try {
+			var font = getFont(o)
+			var fore = registerColor(getForeColor(o))
+			var back = registerColor(getBackColor(o))
+			if	(font == null) {
+				if (fore == null && back == null) {
+					return new StyledString(generateText (o, null))
+				}
+				else {
+					return new StyledString(
+						generateText (o, null),
+						(new StylerFactory).createStyler(fore, back)
+					)
+				}
+			}
+			else {
+				return new StyledString(
+					generateText (o, null),
+					(new StylerFactory).createStyler(
+						FontDescriptor.createFrom(font),
+						fore, back
+					)
+				)
+			}
+		}
+		catch (Exception e) {
+			return new StyledString(generateText (o, null))
+		}
+	}
+
+	override text (Object o) {
+		switch (o) {
+			ReportPackage				: generateText( o, 'report package'     )
+			PageTemplates				: generateText( o, 'page templates'     )
+			SomeFormats					: generateText( o, 'formatters'         )
+			Colors						: generateText( o, 'colors'             )
+			Fonts						: generateText( o, 'fonts'              )
+			Styles						: generateText( o, 'styles'             )
+			Medias						: generateText( o, 'medias'             )
+			PageTemplate				: generateText( o, 'page template'      , o.name )
+			ReportDesignFile			: generateText( o, 'via design file'    , o.name )
+			ReportDesignTemplate		: generateText( o, 'via description'    )
+			PageHeader					: generateText( o, 'page header'        )
+			PageDetail					: generateText( o, 'page detail'        )
+			PageFooter					: generateText( o, 'page footer'        )
+			Color						: generateText( o, null )
+			Font						: getStyledText( o )
+			Media						: generateText( o, null )
+			Style						: getStyledText( o )
+			Report						: generateText( o, 'report', o.name     )
+			DatamartDefinition			: generateText( o, 'datamart'           )
+			DatamartTable				: generateText( o, 'datamart'           )
+			DatamartTableGroup			: generateText( o, 'table group'        )
+			DatamartTableGroupHeader	: generateText( o, 'table group header' , o.style.name )
+			DatamartTableGroupFooter	: generateText( o, 'table group footer' , o.style.name )
+			DatamartTableDetail			: generateText( o, 'table detail'       , o.style.name )
+			DatamartTableProperty		: generateText( o, 'table property'     )
+			TableProperty				: generateText( o, 'property'           , o.valueRef.propertyRef.name )
+			TableAggregation			: generateText( o, 'aggregation'        )
+			UomoFormat					: generateText( o, 'number & unit: '.concat( o.report_pattern ), o.name )
+			NumberFormat				: generateText( o,        'number: '.concat( o.report_pattern ), o.name )
+			CurrencyFormat				: generateText( o,      'currency: '.concat( o.report_pattern ), o.name )
+			DateFormat					: generateText( o,          'date: '.concat( o.report_pattern ), o.name )
+			DateTimeFormat				: generateText( o,   'date & time: '.concat( o.report_pattern ), o.name )
+			TimeFormat					: generateText( o,          'time: '.concat( o.report_pattern ), o.name )
+			TableNumberInterval			: generateText( o, 'number interval'    )
+			TableDateDayInterval		: generateText( o, 'day interval'       )
+			TableNumberLookup			: generateText( o, 'number lookup'      )
+			TableStringLookup			: generateText( o, 'text lookup'        )
+			TableDateDayLookup			: generateText( o, 'day lookup'         )
+			TableTextColor				: generateText( o, 'text color'         , o.color.color )
+			TableCellColor				: generateText( o, 'background color'   , o.color.color )
+			TableIcon					: generateText( o, 'icon'               , o.icon )
+			TableTrend					: generateText( o, 'trend icon'         )
+			Grid						: generateText( o, 'grid'               )
+			GridRow						: generateText( o, 'row'                )
+			GridCell					: generateText( o, 'cell'               )
+			Title						: generateText( o, 'title'              , o.text )
+			SubTitle					: generateText( o, 'subtitle'           , o.text )
+			SubSubTitle					: generateText( o, 'subsubtile'         , o.text )
+			Label						: generateText( o, 'label'              , o.text )
+			Text						: generateText( o, 'text'               )
+			AutoText					: generateText( o, 'auto text'          , o.type.toString )
+			Image						: generateText( o, 'image'              )
+			default 					: super.text( o )
+		}
+	}
+
+	override image (Object o) {
+		switch (o) {
+			ReportModel					: getInternalImage( 'model.png'                  , class )
+			ReportPackage				: getInternalImage( 'package.gif'                , class )
+			PageTemplates				: getInternalImage( 'master_page.gif'            , class )
+			SomeFormats					: getInternalImage( 'formatbuilder.gif'          , class )
+			Colors						: getInternalImage( 'color.gif'                  , class )
+			Fonts						: getInternalImage( 'font.gif'                   , class )
+			Styles						: getInternalImage( 'style.gif'                  , class )
+			Medias						: getInternalImage( 'master_page.gif'            , class )
+			PageTemplate				: getInternalImage( 'master_page.gif'            , class )
+			ReportDesignFile			: getInternalImage( 'finder_descriptor_obj.gif'  , class )
+			ReportDesignTemplate		: getInternalImage( 'api_tools.gif'              , class )
+			PageHeader					: getInternalImage( 'header.gif'                 , class )
+			PageDetail					: getInternalImage( 'details.gif'                , class )
+			PageFooter					: getInternalImage( 'footer.gif'                 , class )
+			Color						: getColorImage(o)
+			Font:						try {
+											getFont(o); getInternalImage('font.gif',class)
+										} catch (Exception e) {
+											getErrorImage()
+										}
+			Media						: getInternalImage( 'master_page.gif'            , class )
+			Style						: getInternalImage( 'style.gif'                  , class )
+			Report						: getInternalImage( 'dsl_report.gif'             , class )
+			DatamartDefinition			: getInternalImage( 'dsl_datamart.png'           , class )
+			DatamartTable				: getInternalImage( 'dsl_datamart.png'           , class )
+			DatamartTableGroup			: getInternalImage( 'group.gif'                  , class )
+			DatamartTableGroupHeader	: getInternalImage( 'group_header.gif'           , class )
+			DatamartTableGroupFooter	: getInternalImage( 'group_footer.gif'           , class )
+			DatamartTableDetail			: getInternalImage( 'detail-area.gif'            , class )
+			DatamartTableProperty		: getInternalImage( 'properties.png'             , class )
+			TableProperty				: getInternalImage( 'properties.png'             , class )
+			TableAggregation			: getInternalImage( 'aggregate.png'              , class )
+			UomoFormat					: getInternalImage( 'length_measure-16x16.png'   , class )
+			NumberFormat				: getInternalImage( 'formatbuilder.gif'          , class )
+			CurrencyFormat				: getInternalImage( 'currency_euro.png'          , class )
+			DateFormat					: getInternalImage( 'calendar-small.gif'         , class )
+			DateTimeFormat				: getInternalImage( 'datetime.gif'               , class )
+			TimeFormat					: getInternalImage( 'time.gif'                   , class )
+			TableInterval				: getInternalImage( 'null-attribute-mapping.gif' , class )
+			TableLookup					: getInternalImage( 'enum_alt_obj.gif'           , class )
+			TableTextColor				: getInternalImage( 'font_color.gif'             , class )
+			TableCellColor				: getInternalImage( 'foreground_fill_color.png'  , class )
+			TableIcon					: getInternalImage( 'img.png'                    , class )
+			TableTrend					: getInternalImage( 'trend_rising.png'           , class )
+			Grid						: getInternalImage( 'gridlayout_obj.gif'         , class )
+			GridRow						: getInternalImage( 'row.gif'                    , class )
+			GridCell					: getInternalImage( 'cell.gif'                   , class )
+			TextElement					: getInternalImage( 'text.gif'                   , class )
+			AutoText					: getInternalImage( 'autotext.gif'               , class )
+			Image						: getInternalImage( 'img.png'                    , class )
+			default						: null
+		}
+	}
+}
diff --git a/org.eclipse.osbp.xtext.reportdsl.ui/src/org/eclipse/osbp/xtext/reportdsl/ui/outline/ReportDSLOutlineTreeProvider.xtend b/org.eclipse.osbp.xtext.reportdsl.ui/src/org/eclipse/osbp/xtext/reportdsl/ui/outline/ReportDSLOutlineTreeProvider.xtend
new file mode 100644
index 0000000..07b27ec
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl.ui/src/org/eclipse/osbp/xtext/reportdsl/ui/outline/ReportDSLOutlineTreeProvider.xtend
@@ -0,0 +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
+ * 
+ * 
+ *  This copyright notice shows up in the generated Java code
+ *
+ */
+ 
+package org.eclipse.osbp.xtext.reportdsl.ui.outline
+
+/**
+ * Customization of the default outline structure.
+ *
+ * see http://www.eclipse.org/Xtext/documentation.html#outline
+ */
+class ReportDSLOutlineTreeProvider extends org.eclipse.xtext.ui.editor.outline.impl.DefaultOutlineTreeProvider {
+	
+}
diff --git a/org.eclipse.osbp.xtext.reportdsl.ui/src/org/eclipse/osbp/xtext/reportdsl/ui/quickfix/ReportDSLQuickfixProvider.xtend b/org.eclipse.osbp.xtext.reportdsl.ui/src/org/eclipse/osbp/xtext/reportdsl/ui/quickfix/ReportDSLQuickfixProvider.xtend
new file mode 100644
index 0000000..01f338d
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl.ui/src/org/eclipse/osbp/xtext/reportdsl/ui/quickfix/ReportDSLQuickfixProvider.xtend
@@ -0,0 +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
+ * 
+ * 
+ *  This copyright notice shows up in the generated Java code
+ *
+ */
+ 
+package org.eclipse.osbp.xtext.reportdsl.ui.quickfix
+
+//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 ReportDSLQuickfixProvider 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)
+//		]
+//	}
+}
diff --git a/org.eclipse.osbp.xtext.reportdsl.ui/templates/templates.xml b/org.eclipse.osbp.xtext.reportdsl.ui/templates/templates.xml
new file mode 100644
index 0000000..bd1c3ce
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl.ui/templates/templates.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?><templates>
+<template id="de.osbp.xtext.reportdsl.ReportDSL.CCReport.1" autoinsert="true" context="de.osbp.xtext.reportdsl.ReportDSL.CCReport" deleted="false" description="generate report for a datamart with all available properties" enabled="true" name="complete report for datamart">
+    report AutoReport${source} described by "${source}" {&#13;
+        datamart ${source}&#13;
+        rendering html&#13;
+        pagetemplate A4_Portrait&#13;
+        media small&#13;
+        template {&#13;
+            header {&#13;
+                showOnFirst&#13;
+                height 10 mm&#13;
+                label "${source} Report"&#13;
+            }&#13;
+            detail {&#13;
+                table style bootstrap {&#13;
+                    detailheader style grouping_1_header&#13;
+                    details style defaultrow all&#13;
+                }&#13;
+            }&#13;
+        }&#13;
+    }&#13;
+</template>
+</templates>
\ No newline at end of file
diff --git a/org.eclipse.osbp.xtext.reportdsl.ui/xtend-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/ColorTextApplier.java b/org.eclipse.osbp.xtext.reportdsl.ui/xtend-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/ColorTextApplier.java
new file mode 100644
index 0000000..e91f7ae
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl.ui/xtend-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/ColorTextApplier.java
@@ -0,0 +1,69 @@
+/**
+ * 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.reportdsl.ui.contentassist;
+
+import com.google.common.base.Objects;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.jface.text.ITextViewer;
+import org.eclipse.osbp.xtext.reportdsl.Color;
+import org.eclipse.osbp.xtext.reportdsl.common.ColorUtilities;
+import org.eclipse.swt.custom.StyledText;
+import org.eclipse.swt.graphics.RGB;
+import org.eclipse.swt.layout.FillLayout;
+import org.eclipse.swt.widgets.ColorDialog;
+import org.eclipse.swt.widgets.Display;
+import org.eclipse.swt.widgets.Shell;
+import org.eclipse.xtext.ui.editor.contentassist.ConfigurableCompletionProposal;
+import org.eclipse.xtext.ui.editor.contentassist.ContentAssistContext;
+import org.eclipse.xtext.ui.editor.contentassist.ReplacementTextApplier;
+
+@SuppressWarnings("all")
+public class ColorTextApplier extends ReplacementTextApplier {
+  private ContentAssistContext context;
+  
+  public ContentAssistContext setContext(final ContentAssistContext context) {
+    return this.context = context;
+  }
+  
+  public String getActualReplacementString(final ConfigurableCompletionProposal proposal) {
+    ITextViewer _viewer = this.context.getViewer();
+    StyledText _textWidget = _viewer.getTextWidget();
+    Display display = _textWidget.getDisplay();
+    Shell shell = new Shell(display);
+    FillLayout _fillLayout = new FillLayout();
+    shell.setLayout(_fillLayout);
+    ColorDialog colorDialog = new ColorDialog(shell);
+    EObject _currentModel = this.context.getCurrentModel();
+    String _color = ((Color) _currentModel).getColor();
+    if ((_color instanceof String)) {
+      try {
+        EObject _currentModel_1 = this.context.getCurrentModel();
+        java.awt.Color awtColor = ColorUtilities.convertToAwtColor(((Color) _currentModel_1));
+        int _red = awtColor.getRed();
+        int _green = awtColor.getGreen();
+        int _blue = awtColor.getBlue();
+        RGB _rGB = new RGB(_red, _green, _blue);
+        colorDialog.setRGB(_rGB);
+      } finally {
+      }
+    }
+    RGB newColor = colorDialog.open();
+    boolean _notEquals = (!Objects.equal(newColor, null));
+    if (_notEquals) {
+      return String.format("\"#%02x%02x%02x\"", Integer.valueOf(newColor.red), Integer.valueOf(newColor.green), Integer.valueOf(newColor.blue));
+    }
+    return null;
+  }
+}
diff --git a/org.eclipse.osbp.xtext.reportdsl.ui/xtend-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/ReportDSLProposalProvider.java b/org.eclipse.osbp.xtext.reportdsl.ui/xtend-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/ReportDSLProposalProvider.java
new file mode 100644
index 0000000..edaaa63
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl.ui/xtend-gen/org/eclipse/osbp/xtext/reportdsl/ui/contentassist/ReportDSLProposalProvider.java
@@ -0,0 +1,262 @@
+/**
+ * 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.reportdsl.ui.contentassist;
+
+import com.google.common.base.Objects;
+import com.google.inject.Inject;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.jface.text.contentassist.ICompletionProposal;
+import org.eclipse.jface.viewers.StyledString;
+import org.eclipse.osbp.xtext.basic.ui.BasicDSLDocumentationTranslator;
+import org.eclipse.osbp.xtext.basic.ui.contentassist.BasicDSLProposalProviderHelper;
+import org.eclipse.osbp.xtext.datamartdsl.DatamartEntity;
+import org.eclipse.osbp.xtext.datamartdsl.DatamartNavigation;
+import org.eclipse.osbp.xtext.datamartdsl.DatamartProperty;
+import org.eclipse.osbp.xtext.reportdsl.DatamartTable;
+import org.eclipse.osbp.xtext.reportdsl.ui.ReportDSLUiDocumentationTranslator;
+import org.eclipse.osbp.xtext.reportdsl.ui.contentassist.AbstractReportDSLProposalProvider;
+import org.eclipse.osbp.xtext.reportdsl.ui.contentassist.ColorTextApplier;
+import org.eclipse.xtext.AbstractElement;
+import org.eclipse.xtext.Assignment;
+import org.eclipse.xtext.Keyword;
+import org.eclipse.xtext.RuleCall;
+import org.eclipse.xtext.common.ui.contentassist.TerminalsProposalProvider;
+import org.eclipse.xtext.ui.editor.contentassist.ConfigurableCompletionProposal;
+import org.eclipse.xtext.ui.editor.contentassist.ContentAssistContext;
+import org.eclipse.xtext.ui.editor.contentassist.ICompletionProposalAcceptor;
+
+/**
+ * see http://www.eclipse.org/Xtext/documentation.html#contentAssist on how to customize content assistant
+ */
+@SuppressWarnings("all")
+public class ReportDSLProposalProvider extends AbstractReportDSLProposalProvider {
+  @Inject
+  private TerminalsProposalProvider provider;
+  
+  @Inject
+  private BasicDSLProposalProviderHelper providerHelper;
+  
+  public void completeColor_Color(final EObject model, final Assignment assignment, final ContentAssistContext context, final ICompletionProposalAcceptor acceptor) {
+    ICompletionProposal _createCompletionProposal = this.createCompletionProposal("Select color...", context);
+    ConfigurableCompletionProposal color = ((ConfigurableCompletionProposal) _createCompletionProposal);
+    boolean _notEquals = (!Objects.equal(color, null));
+    if (_notEquals) {
+      ColorTextApplier applier = new ColorTextApplier();
+      applier.setContext(context);
+      color.setTextApplier(applier);
+    }
+    acceptor.accept(color);
+  }
+  
+  /**
+   * This override will enable 1 length non letter characters as keyword.
+   */
+  protected boolean isKeywordWorthyToPropose(final Keyword keyword) {
+    return true;
+  }
+  
+  public DatamartTable getContainingDatamartTable(final EObject o) {
+    EObject result = o;
+    while (((!(result instanceof DatamartTable)) && (!Objects.equal(result.eContainer(), null)))) {
+      EObject _eContainer = result.eContainer();
+      result = _eContainer;
+    }
+    return ((DatamartTable) result);
+  }
+  
+  protected boolean isValidProposal(final String proposal, final String prefix, final ContentAssistContext context) {
+    boolean _isValidProposal = super.isValidProposal(proposal, prefix, context);
+    boolean _not = (!_isValidProposal);
+    if (_not) {
+      return false;
+    } else {
+      return true;
+    }
+  }
+  
+  protected boolean datamartEntityContainsProperty(final DatamartEntity entity, final String proposal) {
+    EList<DatamartNavigation> _navigations = entity.getNavigations();
+    for (final DatamartNavigation navigation : _navigations) {
+      DatamartEntity _datamartEntity = navigation.getDatamartEntity();
+      boolean _datamartEntityContainsProperty = this.datamartEntityContainsProperty(_datamartEntity, proposal);
+      if (_datamartEntityContainsProperty) {
+        return true;
+      }
+    }
+    EList<DatamartProperty> _properties = entity.getProperties();
+    for (final DatamartProperty property : _properties) {
+    }
+    return false;
+  }
+  
+  /**
+   * @see BasicDSLProposalProviderHelper#getKeywordDisplayString(Keyword, BasicDSLUiTranslator)
+   * @param keyword the keyword to get the displayed string for
+   * @return the displayed string
+   */
+  protected StyledString getKeywordDisplayString(final Keyword keyword) {
+    BasicDSLDocumentationTranslator _instance = ReportDSLUiDocumentationTranslator.instance();
+    return BasicDSLProposalProviderHelper.getKeywordDisplayString(keyword, _instance);
+  }
+  
+  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_ReportQualifiedNameWithWildCard(final EObject model, final RuleCall ruleCall, final ContentAssistContext context, final ICompletionProposalAcceptor acceptor) {
+    this.providerHelper.complete_PackageName(model, ruleCall, context, acceptor, this);
+  }
+  
+  public void complete_UnsignedNumber(final EObject model, final RuleCall ruleCall, final ContentAssistContext context, final ICompletionProposalAcceptor acceptor) {
+    this.providerHelper.createNumberProposal(context, acceptor, ruleCall, this);
+  }
+  
+  public void complete_SignedNumber(final EObject model, final RuleCall ruleCall, final ContentAssistContext context, final ICompletionProposalAcceptor acceptor) {
+    this.providerHelper.createNumberProposal(context, acceptor, ruleCall, this);
+  }
+  
+  public void complete_INT(final EObject model, final RuleCall ruleCall, final ContentAssistContext context, final ICompletionProposalAcceptor acceptor) {
+    this.provider.complete_INT(model, ruleCall, context, acceptor);
+  }
+  
+  public void complete_ID(final EObject model, final RuleCall ruleCall, final ContentAssistContext context, final ICompletionProposalAcceptor acceptor) {
+    this.provider.complete_ID(model, ruleCall, context, acceptor);
+  }
+  
+  public void complete_TRANSLATABLESTRING(final EObject model, final RuleCall ruleCall, final ContentAssistContext context, final ICompletionProposalAcceptor acceptor) {
+    this.provider.complete_STRING(model, ruleCall, context, acceptor);
+  }
+  
+  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);
+  }
+  
+  public void completeReportPackage_ExternalCssURI(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);
+  }
+  
+  public void completeReportPackage_ExternalCssURIBundle(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);
+  }
+  
+  public void completeReport_ExternalCssURI(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);
+  }
+  
+  public void completeReport_ExternalCssURIBundle(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);
+  }
+  
+  public void completeFont_Family(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);
+  }
+  
+  public void completeUomoFormat_Ui_pattern(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);
+  }
+  
+  public void completeNumberFormat_Ui_pattern(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);
+  }
+  
+  public void completeCurrencyFormat_Ui_pattern(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);
+  }
+  
+  public void completeDateFormat_Ui_pattern(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);
+  }
+  
+  public void completeDateTimeFormat_Ui_pattern(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);
+  }
+  
+  public void completeTimeFormat_Ui_pattern(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);
+  }
+  
+  public void completeUomoFormat_Report_pattern(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);
+  }
+  
+  public void completeNumberFormat_Report_pattern(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);
+  }
+  
+  public void completeCurrencyFormat_Report_pattern(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);
+  }
+  
+  public void completeDateFormat_Report_pattern(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);
+  }
+  
+  public void completeDateTimeFormat_Report_pattern(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);
+  }
+  
+  public void completeTimeFormat_Report_pattern(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);
+  }
+  
+  public void completeReportDesignFile_Name(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);
+  }
+  
+  public void completeTableFormatter_Format(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);
+  }
+  
+  public void completeTableImage_ImagePathPattern(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);
+  }
+  
+  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);
+  }
+  
+  public void completeTableIcon_Icon(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);
+  }
+  
+  public void completeImage_Filename(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.reportdsl.ui/xtend-gen/org/eclipse/osbp/xtext/reportdsl/ui/labeling/ReportDSLDescriptionLabelProvider.java b/org.eclipse.osbp.xtext.reportdsl.ui/xtend-gen/org/eclipse/osbp/xtext/reportdsl/ui/labeling/ReportDSLDescriptionLabelProvider.java
new file mode 100644
index 0000000..dc151d4
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl.ui/xtend-gen/org/eclipse/osbp/xtext/reportdsl/ui/labeling/ReportDSLDescriptionLabelProvider.java
@@ -0,0 +1,26 @@
+/**
+ * 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.reportdsl.ui.labeling;
+
+import org.eclipse.xtext.ui.label.DefaultDescriptionLabelProvider;
+
+/**
+ * Provides labels for a IEObjectDescriptions and IResourceDescriptions.
+ * 
+ * see http://www.eclipse.org/Xtext/documentation.html#labelProvider
+ */
+@SuppressWarnings("all")
+public class ReportDSLDescriptionLabelProvider extends DefaultDescriptionLabelProvider {
+}
diff --git a/org.eclipse.osbp.xtext.reportdsl.ui/xtend-gen/org/eclipse/osbp/xtext/reportdsl/ui/labeling/ReportDSLLabelProvider.java b/org.eclipse.osbp.xtext.reportdsl.ui/xtend-gen/org/eclipse/osbp/xtext/reportdsl/ui/labeling/ReportDSLLabelProvider.java
new file mode 100644
index 0000000..03028ae
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl.ui/xtend-gen/org/eclipse/osbp/xtext/reportdsl/ui/labeling/ReportDSLLabelProvider.java
@@ -0,0 +1,1113 @@
+/**
+ * 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.reportdsl.ui.labeling;
+
+import com.google.common.base.Objects;
+import com.google.inject.Inject;
+import java.util.HashMap;
+import java.util.Map;
+import org.eclipse.emf.edit.ui.provider.AdapterFactoryLabelProvider;
+import org.eclipse.jface.resource.ColorRegistry;
+import org.eclipse.jface.resource.FontDescriptor;
+import org.eclipse.jface.resource.JFaceResources;
+import org.eclipse.jface.viewers.StyledString;
+import org.eclipse.osbp.dsl.semantic.entity.LEntityAttribute;
+import org.eclipse.osbp.xtext.basic.ui.labeling.BasicDSLLabelProvider;
+import org.eclipse.osbp.xtext.datamartdsl.DatamartDefinition;
+import org.eclipse.osbp.xtext.datamartdsl.DatamartProperty;
+import org.eclipse.osbp.xtext.reportdsl.AutoText;
+import org.eclipse.osbp.xtext.reportdsl.AutoTextEnum;
+import org.eclipse.osbp.xtext.reportdsl.BuildInFontFamily;
+import org.eclipse.osbp.xtext.reportdsl.BuildInFontFamilyEnum;
+import org.eclipse.osbp.xtext.reportdsl.Colors;
+import org.eclipse.osbp.xtext.reportdsl.CurrencyFormat;
+import org.eclipse.osbp.xtext.reportdsl.CustomFontFamily;
+import org.eclipse.osbp.xtext.reportdsl.DatamartTable;
+import org.eclipse.osbp.xtext.reportdsl.DatamartTableDetail;
+import org.eclipse.osbp.xtext.reportdsl.DatamartTableGroup;
+import org.eclipse.osbp.xtext.reportdsl.DatamartTableGroupFooter;
+import org.eclipse.osbp.xtext.reportdsl.DatamartTableGroupHeader;
+import org.eclipse.osbp.xtext.reportdsl.DatamartTableProperty;
+import org.eclipse.osbp.xtext.reportdsl.DateFormat;
+import org.eclipse.osbp.xtext.reportdsl.DateTimeFormat;
+import org.eclipse.osbp.xtext.reportdsl.FontFamily;
+import org.eclipse.osbp.xtext.reportdsl.FontStyle;
+import org.eclipse.osbp.xtext.reportdsl.FontStyleEnum;
+import org.eclipse.osbp.xtext.reportdsl.Fonts;
+import org.eclipse.osbp.xtext.reportdsl.Grid;
+import org.eclipse.osbp.xtext.reportdsl.GridCell;
+import org.eclipse.osbp.xtext.reportdsl.GridRow;
+import org.eclipse.osbp.xtext.reportdsl.Label;
+import org.eclipse.osbp.xtext.reportdsl.Media;
+import org.eclipse.osbp.xtext.reportdsl.Medias;
+import org.eclipse.osbp.xtext.reportdsl.NumberFormat;
+import org.eclipse.osbp.xtext.reportdsl.PageDetail;
+import org.eclipse.osbp.xtext.reportdsl.PageFooter;
+import org.eclipse.osbp.xtext.reportdsl.PageHeader;
+import org.eclipse.osbp.xtext.reportdsl.PageTemplate;
+import org.eclipse.osbp.xtext.reportdsl.PageTemplates;
+import org.eclipse.osbp.xtext.reportdsl.Report;
+import org.eclipse.osbp.xtext.reportdsl.ReportDesignFile;
+import org.eclipse.osbp.xtext.reportdsl.ReportDesignTemplate;
+import org.eclipse.osbp.xtext.reportdsl.ReportModel;
+import org.eclipse.osbp.xtext.reportdsl.ReportPackage;
+import org.eclipse.osbp.xtext.reportdsl.SomeFormats;
+import org.eclipse.osbp.xtext.reportdsl.Style;
+import org.eclipse.osbp.xtext.reportdsl.Styles;
+import org.eclipse.osbp.xtext.reportdsl.SubSubTitle;
+import org.eclipse.osbp.xtext.reportdsl.SubTitle;
+import org.eclipse.osbp.xtext.reportdsl.TableAggregation;
+import org.eclipse.osbp.xtext.reportdsl.TableCellColor;
+import org.eclipse.osbp.xtext.reportdsl.TableDateDayInterval;
+import org.eclipse.osbp.xtext.reportdsl.TableDateDayLookup;
+import org.eclipse.osbp.xtext.reportdsl.TableIcon;
+import org.eclipse.osbp.xtext.reportdsl.TableInterval;
+import org.eclipse.osbp.xtext.reportdsl.TableLookup;
+import org.eclipse.osbp.xtext.reportdsl.TableNumberInterval;
+import org.eclipse.osbp.xtext.reportdsl.TableNumberLookup;
+import org.eclipse.osbp.xtext.reportdsl.TableProperty;
+import org.eclipse.osbp.xtext.reportdsl.TableStringLookup;
+import org.eclipse.osbp.xtext.reportdsl.TableTextColor;
+import org.eclipse.osbp.xtext.reportdsl.TableTrend;
+import org.eclipse.osbp.xtext.reportdsl.Text;
+import org.eclipse.osbp.xtext.reportdsl.TextElement;
+import org.eclipse.osbp.xtext.reportdsl.TimeFormat;
+import org.eclipse.osbp.xtext.reportdsl.Title;
+import org.eclipse.osbp.xtext.reportdsl.UomoFormat;
+import org.eclipse.osbp.xtext.reportdsl.common.ColorUtilities;
+import org.eclipse.osbp.xtext.reportdsl.common.item.AContainerItem;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.graphics.Color;
+import org.eclipse.swt.graphics.Font;
+import org.eclipse.swt.graphics.GC;
+import org.eclipse.swt.graphics.Image;
+import org.eclipse.swt.graphics.RGB;
+import org.eclipse.swt.graphics.Rectangle;
+import org.eclipse.xtend2.lib.StringConcatenation;
+import org.eclipse.xtext.ui.label.StylerFactory;
+import org.eclipse.xtext.xbase.lib.Exceptions;
+
+/**
+ * Provides labels for a EObjects.
+ * 
+ * see http://www.eclipse.org/Xtext/documentation.html#labelProvider
+ */
+@SuppressWarnings("all")
+public class ReportDSLLabelProvider extends BasicDSLLabelProvider {
+  private Map<String, Image> fCachedImages;
+  
+  /**
+   * @param swtColor   SWT color
+   * @param size 		 outlineImgSize containing the size of the image
+   * @return a - cached - SWT image object
+   */
+  public Image getColorImage(final Color swtColor, final BasicDSLLabelProvider.outlineImgSize size) {
+    int _width = size.getWidth();
+    int _height = size.getHeight();
+    return this.getColorImage(swtColor, _width, _height);
+  }
+  
+  /**
+   * @param swtColor SWT color
+   * @param width    of the rectangular image
+   * @param height   of the rectangular image
+   * @return a - cached - SWT rectangular image object
+   */
+  public Image getColorImage(final Color swtColor, final int width, final int height) {
+    try {
+      StringConcatenation _builder = new StringConcatenation();
+      _builder.append(width, "");
+      _builder.append("/");
+      _builder.append(height, "");
+      _builder.append("/");
+      int _red = swtColor.getRed();
+      _builder.append(_red, "");
+      _builder.append("/");
+      int _green = swtColor.getGreen();
+      _builder.append(_green, "");
+      _builder.append("/");
+      int _blue = swtColor.getBlue();
+      _builder.append(_blue, "");
+      String swtColorName = _builder.toString();
+      Image image = this.fCachedImages.get(swtColorName);
+      boolean _equals = Objects.equal(image, null);
+      if (_equals) {
+        Rectangle _rectangle = new Rectangle(0, 0, width, height);
+        Image _image = new Image(null, _rectangle);
+        image = _image;
+        GC gc = new GC(image);
+        gc.setBackground(swtColor);
+        gc.fillRectangle(0, 0, 16, 16);
+        gc.dispose();
+        swtColor.dispose();
+        this.fCachedImages.put(swtColorName, image);
+      }
+      return image;
+    } catch (final Throwable _t) {
+      if (_t instanceof Exception) {
+        final Exception e = (Exception)_t;
+        return this.getErrorImage();
+      } else {
+        throw Exceptions.sneakyThrow(_t);
+      }
+    }
+  }
+  
+  private Color getColor(final String name) {
+    java.awt.Color awtFore = ColorUtilities.convertToAwtColor(name);
+    int _red = awtFore.getRed();
+    int _green = awtFore.getGreen();
+    int _blue = awtFore.getBlue();
+    return new Color(null, _red, _green, _blue);
+  }
+  
+  private RGB getRGB(final String name) {
+    java.awt.Color awtFore = ColorUtilities.convertToAwtColor(name);
+    int _red = awtFore.getRed();
+    int _green = awtFore.getGreen();
+    int _blue = awtFore.getBlue();
+    return new RGB(_red, _green, _blue);
+  }
+  
+  private Image getColorImage(final org.eclipse.osbp.xtext.reportdsl.Color color) {
+    String colorName = AContainerItem.applyColor(color);
+    Color swtFore = this.getColor(colorName);
+    return this.getColorImage(((Color) swtFore), BasicDSLLabelProvider.outlineImgSize.SMALL);
+  }
+  
+  @Inject
+  public ReportDSLLabelProvider(final AdapterFactoryLabelProvider delegate) {
+    super(delegate);
+    HashMap<String, Image> _hashMap = new HashMap<String, Image>();
+    this.fCachedImages = _hashMap;
+  }
+  
+  private Font getFont(final org.eclipse.osbp.xtext.reportdsl.Font o) {
+    String family = ((String) null);
+    int size = 0;
+    int italic = (-1);
+    int bold = 0;
+    org.eclipse.osbp.xtext.reportdsl.Font step = o;
+    while ((!Objects.equal(step, null))) {
+      {
+        boolean _equals = Objects.equal(family, null);
+        if (_equals) {
+          FontFamily _family = step.getFamily();
+          boolean _notEquals = (!Objects.equal(_family, null));
+          if (_notEquals) {
+            FontFamily f = step.getFamily();
+            boolean _matched = false;
+            if (!_matched) {
+              if (f instanceof BuildInFontFamily) {
+                _matched=true;
+                BuildInFontFamilyEnum _custom = ((BuildInFontFamily)f).getCustom();
+                String _name = _custom.getName();
+                family = _name;
+              }
+            }
+            if (!_matched) {
+              if (f instanceof CustomFontFamily) {
+                _matched=true;
+                String _custom = ((CustomFontFamily)f).getCustom();
+                family = _custom;
+              }
+            }
+          }
+          boolean _and = false;
+          if (!(bold == 0)) {
+            _and = false;
+          } else {
+            boolean _isBold = step.isBold();
+            _and = _isBold;
+          }
+          if (_and) {
+            bold = SWT.BOLD;
+          }
+          if ((italic < 0)) {
+            FontStyleEnum _style = step.getStyle();
+            boolean _matched_1 = false;
+            if (!_matched_1) {
+              if (Objects.equal(_style, FontStyle.NORMAL)) {
+                _matched_1=true;
+                italic = 0;
+              }
+            }
+            if (!_matched_1) {
+              if (Objects.equal(_style, FontStyle.ITALIC)) {
+                _matched_1=true;
+                italic = SWT.ITALIC;
+              }
+            }
+            if (!_matched_1) {
+              if (Objects.equal(_style, FontStyle.OBLIQUE)) {
+                _matched_1=true;
+                italic = SWT.ITALIC;
+              }
+            }
+          }
+        }
+        org.eclipse.osbp.xtext.reportdsl.Font _extends = step.getExtends();
+        step = _extends;
+      }
+    }
+    return new Font(null, family, size, (italic + bold));
+  }
+  
+  public StyledString getStyledText(final org.eclipse.osbp.xtext.reportdsl.Font o) {
+    try {
+      String _generateText = this.generateText(o, null);
+      StylerFactory _stylerFactory = new StylerFactory();
+      Font _font = this.getFont(o);
+      FontDescriptor _createFrom = FontDescriptor.createFrom(_font);
+      StyledString.Styler _createStyler = _stylerFactory.createStyler(_createFrom, null, null);
+      return new StyledString(_generateText, _createStyler);
+    } catch (final Throwable _t) {
+      if (_t instanceof Exception) {
+        final Exception e = (Exception)_t;
+        String _generateText_1 = this.generateText(o, null);
+        return new StyledString(_generateText_1);
+      } else {
+        throw Exceptions.sneakyThrow(_t);
+      }
+    }
+  }
+  
+  private Font getFont(final Style o) {
+    Style step = o;
+    while ((!Objects.equal(step, null))) {
+      {
+        org.eclipse.osbp.xtext.reportdsl.Font _font = step.getFont();
+        boolean _notEquals = (!Objects.equal(_font, null));
+        if (_notEquals) {
+          org.eclipse.osbp.xtext.reportdsl.Font _font_1 = step.getFont();
+          return this.getFont(_font_1);
+        }
+        Style _extends = step.getExtends();
+        step = _extends;
+      }
+    }
+    return null;
+  }
+  
+  private String getForeColor(final Style o) {
+    Object _xblockexpression = null;
+    {
+      Style step = o;
+      while ((!Objects.equal(step, null))) {
+        {
+          org.eclipse.osbp.xtext.reportdsl.Color _textcolor = step.getTextcolor();
+          boolean _notEquals = (!Objects.equal(_textcolor, null));
+          if (_notEquals) {
+            org.eclipse.osbp.xtext.reportdsl.Color _textcolor_1 = step.getTextcolor();
+            return AContainerItem.applyColor(_textcolor_1);
+          }
+          Style _extends = step.getExtends();
+          step = _extends;
+        }
+      }
+      _xblockexpression = null;
+    }
+    return ((String)_xblockexpression);
+  }
+  
+  private String getBackColor(final Style o) {
+    Object _xblockexpression = null;
+    {
+      Style step = o;
+      while ((!Objects.equal(step, null))) {
+        {
+          org.eclipse.osbp.xtext.reportdsl.Color _backgroundcolor = step.getBackgroundcolor();
+          boolean _notEquals = (!Objects.equal(_backgroundcolor, null));
+          if (_notEquals) {
+            org.eclipse.osbp.xtext.reportdsl.Color _backgroundcolor_1 = step.getBackgroundcolor();
+            return AContainerItem.applyColor(_backgroundcolor_1);
+          }
+          Style _extends = step.getExtends();
+          step = _extends;
+        }
+      }
+      _xblockexpression = null;
+    }
+    return ((String)_xblockexpression);
+  }
+  
+  private String registerColor(final String color) {
+    boolean _notEquals = (!Objects.equal(color, null));
+    if (_notEquals) {
+      String name = "reportdsl_".concat(color);
+      ColorRegistry colorRegistry = JFaceResources.getColorRegistry();
+      Color _get = colorRegistry.get(name);
+      boolean _equals = Objects.equal(_get, null);
+      if (_equals) {
+        RGB _rGB = this.getRGB(color);
+        colorRegistry.put(name, _rGB);
+      }
+      return name;
+    }
+    return color;
+  }
+  
+  public StyledString getStyledText(final Style o) {
+    try {
+      Font font = this.getFont(o);
+      String _foreColor = this.getForeColor(o);
+      String fore = this.registerColor(_foreColor);
+      String _backColor = this.getBackColor(o);
+      String back = this.registerColor(_backColor);
+      boolean _equals = Objects.equal(font, null);
+      if (_equals) {
+        boolean _and = false;
+        boolean _equals_1 = Objects.equal(fore, null);
+        if (!_equals_1) {
+          _and = false;
+        } else {
+          boolean _equals_2 = Objects.equal(back, null);
+          _and = _equals_2;
+        }
+        if (_and) {
+          String _generateText = this.generateText(o, null);
+          return new StyledString(_generateText);
+        } else {
+          String _generateText_1 = this.generateText(o, null);
+          StylerFactory _stylerFactory = new StylerFactory();
+          StyledString.Styler _createStyler = _stylerFactory.createStyler(fore, back);
+          return new StyledString(_generateText_1, _createStyler);
+        }
+      } else {
+        String _generateText_2 = this.generateText(o, null);
+        StylerFactory _stylerFactory_1 = new StylerFactory();
+        FontDescriptor _createFrom = FontDescriptor.createFrom(font);
+        StyledString.Styler _createStyler_1 = _stylerFactory_1.createStyler(_createFrom, fore, back);
+        return new StyledString(_generateText_2, _createStyler_1);
+      }
+    } catch (final Throwable _t) {
+      if (_t instanceof Exception) {
+        final Exception e = (Exception)_t;
+        String _generateText_3 = this.generateText(o, null);
+        return new StyledString(_generateText_3);
+      } else {
+        throw Exceptions.sneakyThrow(_t);
+      }
+    }
+  }
+  
+  public Object text(final Object o) {
+    Object _switchResult = null;
+    boolean _matched = false;
+    if (!_matched) {
+      if (o instanceof ReportPackage) {
+        _matched=true;
+        _switchResult = this.generateText(o, "report package");
+      }
+    }
+    if (!_matched) {
+      if (o instanceof PageTemplates) {
+        _matched=true;
+        _switchResult = this.generateText(o, "page templates");
+      }
+    }
+    if (!_matched) {
+      if (o instanceof SomeFormats) {
+        _matched=true;
+        _switchResult = this.generateText(o, "formatters");
+      }
+    }
+    if (!_matched) {
+      if (o instanceof Colors) {
+        _matched=true;
+        _switchResult = this.generateText(o, "colors");
+      }
+    }
+    if (!_matched) {
+      if (o instanceof Fonts) {
+        _matched=true;
+        _switchResult = this.generateText(o, "fonts");
+      }
+    }
+    if (!_matched) {
+      if (o instanceof Styles) {
+        _matched=true;
+        _switchResult = this.generateText(o, "styles");
+      }
+    }
+    if (!_matched) {
+      if (o instanceof Medias) {
+        _matched=true;
+        _switchResult = this.generateText(o, "medias");
+      }
+    }
+    if (!_matched) {
+      if (o instanceof PageTemplate) {
+        _matched=true;
+        String _name = ((PageTemplate)o).getName();
+        _switchResult = this.generateText(o, "page template", _name);
+      }
+    }
+    if (!_matched) {
+      if (o instanceof ReportDesignFile) {
+        _matched=true;
+        String _name = ((ReportDesignFile)o).getName();
+        _switchResult = this.generateText(o, "via design file", _name);
+      }
+    }
+    if (!_matched) {
+      if (o instanceof ReportDesignTemplate) {
+        _matched=true;
+        _switchResult = this.generateText(o, "via description");
+      }
+    }
+    if (!_matched) {
+      if (o instanceof PageHeader) {
+        _matched=true;
+        _switchResult = this.generateText(o, "page header");
+      }
+    }
+    if (!_matched) {
+      if (o instanceof PageDetail) {
+        _matched=true;
+        _switchResult = this.generateText(o, "page detail");
+      }
+    }
+    if (!_matched) {
+      if (o instanceof PageFooter) {
+        _matched=true;
+        _switchResult = this.generateText(o, "page footer");
+      }
+    }
+    if (!_matched) {
+      if (o instanceof org.eclipse.osbp.xtext.reportdsl.Color) {
+        _matched=true;
+        _switchResult = this.generateText(o, null);
+      }
+    }
+    if (!_matched) {
+      if (o instanceof org.eclipse.osbp.xtext.reportdsl.Font) {
+        _matched=true;
+        _switchResult = this.getStyledText(((org.eclipse.osbp.xtext.reportdsl.Font)o));
+      }
+    }
+    if (!_matched) {
+      if (o instanceof Media) {
+        _matched=true;
+        _switchResult = this.generateText(o, null);
+      }
+    }
+    if (!_matched) {
+      if (o instanceof Style) {
+        _matched=true;
+        _switchResult = this.getStyledText(((Style)o));
+      }
+    }
+    if (!_matched) {
+      if (o instanceof Report) {
+        _matched=true;
+        String _name = ((Report)o).getName();
+        _switchResult = this.generateText(o, "report", _name);
+      }
+    }
+    if (!_matched) {
+      if (o instanceof DatamartDefinition) {
+        _matched=true;
+        _switchResult = this.generateText(o, "datamart");
+      }
+    }
+    if (!_matched) {
+      if (o instanceof DatamartTable) {
+        _matched=true;
+        _switchResult = this.generateText(o, "datamart");
+      }
+    }
+    if (!_matched) {
+      if (o instanceof DatamartTableGroup) {
+        _matched=true;
+        _switchResult = this.generateText(o, "table group");
+      }
+    }
+    if (!_matched) {
+      if (o instanceof DatamartTableGroupHeader) {
+        _matched=true;
+        Style _style = ((DatamartTableGroupHeader)o).getStyle();
+        String _name = _style.getName();
+        _switchResult = this.generateText(o, "table group header", _name);
+      }
+    }
+    if (!_matched) {
+      if (o instanceof DatamartTableGroupFooter) {
+        _matched=true;
+        Style _style = ((DatamartTableGroupFooter)o).getStyle();
+        String _name = _style.getName();
+        _switchResult = this.generateText(o, "table group footer", _name);
+      }
+    }
+    if (!_matched) {
+      if (o instanceof DatamartTableDetail) {
+        _matched=true;
+        Style _style = ((DatamartTableDetail)o).getStyle();
+        String _name = _style.getName();
+        _switchResult = this.generateText(o, "table detail", _name);
+      }
+    }
+    if (!_matched) {
+      if (o instanceof DatamartTableProperty) {
+        _matched=true;
+        _switchResult = this.generateText(o, "table property");
+      }
+    }
+    if (!_matched) {
+      if (o instanceof TableProperty) {
+        _matched=true;
+        DatamartProperty _valueRef = ((TableProperty)o).getValueRef();
+        LEntityAttribute _propertyRef = _valueRef.getPropertyRef();
+        String _name = _propertyRef.getName();
+        _switchResult = this.generateText(o, "property", _name);
+      }
+    }
+    if (!_matched) {
+      if (o instanceof TableAggregation) {
+        _matched=true;
+        _switchResult = this.generateText(o, "aggregation");
+      }
+    }
+    if (!_matched) {
+      if (o instanceof UomoFormat) {
+        _matched=true;
+        String _report_pattern = ((UomoFormat)o).getReport_pattern();
+        String _concat = "number & unit: ".concat(_report_pattern);
+        String _name = ((UomoFormat)o).getName();
+        _switchResult = this.generateText(o, _concat, _name);
+      }
+    }
+    if (!_matched) {
+      if (o instanceof NumberFormat) {
+        _matched=true;
+        String _report_pattern = ((NumberFormat)o).getReport_pattern();
+        String _concat = "number: ".concat(_report_pattern);
+        String _name = ((NumberFormat)o).getName();
+        _switchResult = this.generateText(o, _concat, _name);
+      }
+    }
+    if (!_matched) {
+      if (o instanceof CurrencyFormat) {
+        _matched=true;
+        String _report_pattern = ((CurrencyFormat)o).getReport_pattern();
+        String _concat = "currency: ".concat(_report_pattern);
+        String _name = ((CurrencyFormat)o).getName();
+        _switchResult = this.generateText(o, _concat, _name);
+      }
+    }
+    if (!_matched) {
+      if (o instanceof DateFormat) {
+        _matched=true;
+        String _report_pattern = ((DateFormat)o).getReport_pattern();
+        String _concat = "date: ".concat(_report_pattern);
+        String _name = ((DateFormat)o).getName();
+        _switchResult = this.generateText(o, _concat, _name);
+      }
+    }
+    if (!_matched) {
+      if (o instanceof DateTimeFormat) {
+        _matched=true;
+        String _report_pattern = ((DateTimeFormat)o).getReport_pattern();
+        String _concat = "date & time: ".concat(_report_pattern);
+        String _name = ((DateTimeFormat)o).getName();
+        _switchResult = this.generateText(o, _concat, _name);
+      }
+    }
+    if (!_matched) {
+      if (o instanceof TimeFormat) {
+        _matched=true;
+        String _report_pattern = ((TimeFormat)o).getReport_pattern();
+        String _concat = "time: ".concat(_report_pattern);
+        String _name = ((TimeFormat)o).getName();
+        _switchResult = this.generateText(o, _concat, _name);
+      }
+    }
+    if (!_matched) {
+      if (o instanceof TableNumberInterval) {
+        _matched=true;
+        _switchResult = this.generateText(o, "number interval");
+      }
+    }
+    if (!_matched) {
+      if (o instanceof TableDateDayInterval) {
+        _matched=true;
+        _switchResult = this.generateText(o, "day interval");
+      }
+    }
+    if (!_matched) {
+      if (o instanceof TableNumberLookup) {
+        _matched=true;
+        _switchResult = this.generateText(o, "number lookup");
+      }
+    }
+    if (!_matched) {
+      if (o instanceof TableStringLookup) {
+        _matched=true;
+        _switchResult = this.generateText(o, "text lookup");
+      }
+    }
+    if (!_matched) {
+      if (o instanceof TableDateDayLookup) {
+        _matched=true;
+        _switchResult = this.generateText(o, "day lookup");
+      }
+    }
+    if (!_matched) {
+      if (o instanceof TableTextColor) {
+        _matched=true;
+        org.eclipse.osbp.xtext.reportdsl.Color _color = ((TableTextColor)o).getColor();
+        String _color_1 = _color.getColor();
+        _switchResult = this.generateText(o, "text color", _color_1);
+      }
+    }
+    if (!_matched) {
+      if (o instanceof TableCellColor) {
+        _matched=true;
+        org.eclipse.osbp.xtext.reportdsl.Color _color = ((TableCellColor)o).getColor();
+        String _color_1 = _color.getColor();
+        _switchResult = this.generateText(o, "background color", _color_1);
+      }
+    }
+    if (!_matched) {
+      if (o instanceof TableIcon) {
+        _matched=true;
+        String _icon = ((TableIcon)o).getIcon();
+        _switchResult = this.generateText(o, "icon", _icon);
+      }
+    }
+    if (!_matched) {
+      if (o instanceof TableTrend) {
+        _matched=true;
+        _switchResult = this.generateText(o, "trend icon");
+      }
+    }
+    if (!_matched) {
+      if (o instanceof Grid) {
+        _matched=true;
+        _switchResult = this.generateText(o, "grid");
+      }
+    }
+    if (!_matched) {
+      if (o instanceof GridRow) {
+        _matched=true;
+        _switchResult = this.generateText(o, "row");
+      }
+    }
+    if (!_matched) {
+      if (o instanceof GridCell) {
+        _matched=true;
+        _switchResult = this.generateText(o, "cell");
+      }
+    }
+    if (!_matched) {
+      if (o instanceof Title) {
+        _matched=true;
+        String _text = ((Title)o).getText();
+        _switchResult = this.generateText(o, "title", _text);
+      }
+    }
+    if (!_matched) {
+      if (o instanceof SubTitle) {
+        _matched=true;
+        String _text = ((SubTitle)o).getText();
+        _switchResult = this.generateText(o, "subtitle", _text);
+      }
+    }
+    if (!_matched) {
+      if (o instanceof SubSubTitle) {
+        _matched=true;
+        String _text = ((SubSubTitle)o).getText();
+        _switchResult = this.generateText(o, "subsubtile", _text);
+      }
+    }
+    if (!_matched) {
+      if (o instanceof Label) {
+        _matched=true;
+        String _text = ((Label)o).getText();
+        _switchResult = this.generateText(o, "label", _text);
+      }
+    }
+    if (!_matched) {
+      if (o instanceof Text) {
+        _matched=true;
+        _switchResult = this.generateText(o, "text");
+      }
+    }
+    if (!_matched) {
+      if (o instanceof AutoText) {
+        _matched=true;
+        AutoTextEnum _type = ((AutoText)o).getType();
+        String _string = _type.toString();
+        _switchResult = this.generateText(o, "auto text", _string);
+      }
+    }
+    if (!_matched) {
+      if (o instanceof org.eclipse.osbp.xtext.reportdsl.Image) {
+        _matched=true;
+        _switchResult = this.generateText(o, "image");
+      }
+    }
+    if (!_matched) {
+      _switchResult = super.text(o);
+    }
+    return _switchResult;
+  }
+  
+  public Object image(final Object o) {
+    Image _switchResult = null;
+    boolean _matched = false;
+    if (!_matched) {
+      if (o instanceof ReportModel) {
+        _matched=true;
+        Class<? extends ReportDSLLabelProvider> _class = this.getClass();
+        _switchResult = this.getInternalImage("model.png", _class);
+      }
+    }
+    if (!_matched) {
+      if (o instanceof ReportPackage) {
+        _matched=true;
+        Class<? extends ReportDSLLabelProvider> _class = this.getClass();
+        _switchResult = this.getInternalImage("package.gif", _class);
+      }
+    }
+    if (!_matched) {
+      if (o instanceof PageTemplates) {
+        _matched=true;
+        Class<? extends ReportDSLLabelProvider> _class = this.getClass();
+        _switchResult = this.getInternalImage("master_page.gif", _class);
+      }
+    }
+    if (!_matched) {
+      if (o instanceof SomeFormats) {
+        _matched=true;
+        Class<? extends ReportDSLLabelProvider> _class = this.getClass();
+        _switchResult = this.getInternalImage("formatbuilder.gif", _class);
+      }
+    }
+    if (!_matched) {
+      if (o instanceof Colors) {
+        _matched=true;
+        Class<? extends ReportDSLLabelProvider> _class = this.getClass();
+        _switchResult = this.getInternalImage("color.gif", _class);
+      }
+    }
+    if (!_matched) {
+      if (o instanceof Fonts) {
+        _matched=true;
+        Class<? extends ReportDSLLabelProvider> _class = this.getClass();
+        _switchResult = this.getInternalImage("font.gif", _class);
+      }
+    }
+    if (!_matched) {
+      if (o instanceof Styles) {
+        _matched=true;
+        Class<? extends ReportDSLLabelProvider> _class = this.getClass();
+        _switchResult = this.getInternalImage("style.gif", _class);
+      }
+    }
+    if (!_matched) {
+      if (o instanceof Medias) {
+        _matched=true;
+        Class<? extends ReportDSLLabelProvider> _class = this.getClass();
+        _switchResult = this.getInternalImage("master_page.gif", _class);
+      }
+    }
+    if (!_matched) {
+      if (o instanceof PageTemplate) {
+        _matched=true;
+        Class<? extends ReportDSLLabelProvider> _class = this.getClass();
+        _switchResult = this.getInternalImage("master_page.gif", _class);
+      }
+    }
+    if (!_matched) {
+      if (o instanceof ReportDesignFile) {
+        _matched=true;
+        Class<? extends ReportDSLLabelProvider> _class = this.getClass();
+        _switchResult = this.getInternalImage("finder_descriptor_obj.gif", _class);
+      }
+    }
+    if (!_matched) {
+      if (o instanceof ReportDesignTemplate) {
+        _matched=true;
+        Class<? extends ReportDSLLabelProvider> _class = this.getClass();
+        _switchResult = this.getInternalImage("api_tools.gif", _class);
+      }
+    }
+    if (!_matched) {
+      if (o instanceof PageHeader) {
+        _matched=true;
+        Class<? extends ReportDSLLabelProvider> _class = this.getClass();
+        _switchResult = this.getInternalImage("header.gif", _class);
+      }
+    }
+    if (!_matched) {
+      if (o instanceof PageDetail) {
+        _matched=true;
+        Class<? extends ReportDSLLabelProvider> _class = this.getClass();
+        _switchResult = this.getInternalImage("details.gif", _class);
+      }
+    }
+    if (!_matched) {
+      if (o instanceof PageFooter) {
+        _matched=true;
+        Class<? extends ReportDSLLabelProvider> _class = this.getClass();
+        _switchResult = this.getInternalImage("footer.gif", _class);
+      }
+    }
+    if (!_matched) {
+      if (o instanceof org.eclipse.osbp.xtext.reportdsl.Color) {
+        _matched=true;
+        _switchResult = this.getColorImage(((org.eclipse.osbp.xtext.reportdsl.Color)o));
+      }
+    }
+    if (!_matched) {
+      if (o instanceof org.eclipse.osbp.xtext.reportdsl.Font) {
+        _matched=true;
+        Image _xtrycatchfinallyexpression = null;
+        try {
+          Image _xblockexpression = null;
+          {
+            this.getFont(((org.eclipse.osbp.xtext.reportdsl.Font)o));
+            Class<? extends ReportDSLLabelProvider> _class = this.getClass();
+            _xblockexpression = this.getInternalImage("font.gif", _class);
+          }
+          _xtrycatchfinallyexpression = _xblockexpression;
+        } catch (final Throwable _t) {
+          if (_t instanceof Exception) {
+            final Exception e = (Exception)_t;
+            _xtrycatchfinallyexpression = this.getErrorImage();
+          } else {
+            throw Exceptions.sneakyThrow(_t);
+          }
+        }
+        _switchResult = _xtrycatchfinallyexpression;
+      }
+    }
+    if (!_matched) {
+      if (o instanceof Media) {
+        _matched=true;
+        Class<? extends ReportDSLLabelProvider> _class = this.getClass();
+        _switchResult = this.getInternalImage("master_page.gif", _class);
+      }
+    }
+    if (!_matched) {
+      if (o instanceof Style) {
+        _matched=true;
+        Class<? extends ReportDSLLabelProvider> _class = this.getClass();
+        _switchResult = this.getInternalImage("style.gif", _class);
+      }
+    }
+    if (!_matched) {
+      if (o instanceof Report) {
+        _matched=true;
+        Class<? extends ReportDSLLabelProvider> _class = this.getClass();
+        _switchResult = this.getInternalImage("dsl_report.gif", _class);
+      }
+    }
+    if (!_matched) {
+      if (o instanceof DatamartDefinition) {
+        _matched=true;
+        Class<? extends ReportDSLLabelProvider> _class = this.getClass();
+        _switchResult = this.getInternalImage("dsl_datamart.png", _class);
+      }
+    }
+    if (!_matched) {
+      if (o instanceof DatamartTable) {
+        _matched=true;
+        Class<? extends ReportDSLLabelProvider> _class = this.getClass();
+        _switchResult = this.getInternalImage("dsl_datamart.png", _class);
+      }
+    }
+    if (!_matched) {
+      if (o instanceof DatamartTableGroup) {
+        _matched=true;
+        Class<? extends ReportDSLLabelProvider> _class = this.getClass();
+        _switchResult = this.getInternalImage("group.gif", _class);
+      }
+    }
+    if (!_matched) {
+      if (o instanceof DatamartTableGroupHeader) {
+        _matched=true;
+        Class<? extends ReportDSLLabelProvider> _class = this.getClass();
+        _switchResult = this.getInternalImage("group_header.gif", _class);
+      }
+    }
+    if (!_matched) {
+      if (o instanceof DatamartTableGroupFooter) {
+        _matched=true;
+        Class<? extends ReportDSLLabelProvider> _class = this.getClass();
+        _switchResult = this.getInternalImage("group_footer.gif", _class);
+      }
+    }
+    if (!_matched) {
+      if (o instanceof DatamartTableDetail) {
+        _matched=true;
+        Class<? extends ReportDSLLabelProvider> _class = this.getClass();
+        _switchResult = this.getInternalImage("detail-area.gif", _class);
+      }
+    }
+    if (!_matched) {
+      if (o instanceof DatamartTableProperty) {
+        _matched=true;
+        Class<? extends ReportDSLLabelProvider> _class = this.getClass();
+        _switchResult = this.getInternalImage("properties.png", _class);
+      }
+    }
+    if (!_matched) {
+      if (o instanceof TableProperty) {
+        _matched=true;
+        Class<? extends ReportDSLLabelProvider> _class = this.getClass();
+        _switchResult = this.getInternalImage("properties.png", _class);
+      }
+    }
+    if (!_matched) {
+      if (o instanceof TableAggregation) {
+        _matched=true;
+        Class<? extends ReportDSLLabelProvider> _class = this.getClass();
+        _switchResult = this.getInternalImage("aggregate.png", _class);
+      }
+    }
+    if (!_matched) {
+      if (o instanceof UomoFormat) {
+        _matched=true;
+        Class<? extends ReportDSLLabelProvider> _class = this.getClass();
+        _switchResult = this.getInternalImage("length_measure-16x16.png", _class);
+      }
+    }
+    if (!_matched) {
+      if (o instanceof NumberFormat) {
+        _matched=true;
+        Class<? extends ReportDSLLabelProvider> _class = this.getClass();
+        _switchResult = this.getInternalImage("formatbuilder.gif", _class);
+      }
+    }
+    if (!_matched) {
+      if (o instanceof CurrencyFormat) {
+        _matched=true;
+        Class<? extends ReportDSLLabelProvider> _class = this.getClass();
+        _switchResult = this.getInternalImage("currency_euro.png", _class);
+      }
+    }
+    if (!_matched) {
+      if (o instanceof DateFormat) {
+        _matched=true;
+        Class<? extends ReportDSLLabelProvider> _class = this.getClass();
+        _switchResult = this.getInternalImage("calendar-small.gif", _class);
+      }
+    }
+    if (!_matched) {
+      if (o instanceof DateTimeFormat) {
+        _matched=true;
+        Class<? extends ReportDSLLabelProvider> _class = this.getClass();
+        _switchResult = this.getInternalImage("datetime.gif", _class);
+      }
+    }
+    if (!_matched) {
+      if (o instanceof TimeFormat) {
+        _matched=true;
+        Class<? extends ReportDSLLabelProvider> _class = this.getClass();
+        _switchResult = this.getInternalImage("time.gif", _class);
+      }
+    }
+    if (!_matched) {
+      if (o instanceof TableInterval) {
+        _matched=true;
+        Class<? extends ReportDSLLabelProvider> _class = this.getClass();
+        _switchResult = this.getInternalImage("null-attribute-mapping.gif", _class);
+      }
+    }
+    if (!_matched) {
+      if (o instanceof TableLookup) {
+        _matched=true;
+        Class<? extends ReportDSLLabelProvider> _class = this.getClass();
+        _switchResult = this.getInternalImage("enum_alt_obj.gif", _class);
+      }
+    }
+    if (!_matched) {
+      if (o instanceof TableTextColor) {
+        _matched=true;
+        Class<? extends ReportDSLLabelProvider> _class = this.getClass();
+        _switchResult = this.getInternalImage("font_color.gif", _class);
+      }
+    }
+    if (!_matched) {
+      if (o instanceof TableCellColor) {
+        _matched=true;
+        Class<? extends ReportDSLLabelProvider> _class = this.getClass();
+        _switchResult = this.getInternalImage("foreground_fill_color.png", _class);
+      }
+    }
+    if (!_matched) {
+      if (o instanceof TableIcon) {
+        _matched=true;
+        Class<? extends ReportDSLLabelProvider> _class = this.getClass();
+        _switchResult = this.getInternalImage("img.png", _class);
+      }
+    }
+    if (!_matched) {
+      if (o instanceof TableTrend) {
+        _matched=true;
+        Class<? extends ReportDSLLabelProvider> _class = this.getClass();
+        _switchResult = this.getInternalImage("trend_rising.png", _class);
+      }
+    }
+    if (!_matched) {
+      if (o instanceof Grid) {
+        _matched=true;
+        Class<? extends ReportDSLLabelProvider> _class = this.getClass();
+        _switchResult = this.getInternalImage("gridlayout_obj.gif", _class);
+      }
+    }
+    if (!_matched) {
+      if (o instanceof GridRow) {
+        _matched=true;
+        Class<? extends ReportDSLLabelProvider> _class = this.getClass();
+        _switchResult = this.getInternalImage("row.gif", _class);
+      }
+    }
+    if (!_matched) {
+      if (o instanceof GridCell) {
+        _matched=true;
+        Class<? extends ReportDSLLabelProvider> _class = this.getClass();
+        _switchResult = this.getInternalImage("cell.gif", _class);
+      }
+    }
+    if (!_matched) {
+      if (o instanceof TextElement) {
+        _matched=true;
+        Class<? extends ReportDSLLabelProvider> _class = this.getClass();
+        _switchResult = this.getInternalImage("text.gif", _class);
+      }
+    }
+    if (!_matched) {
+      if (o instanceof AutoText) {
+        _matched=true;
+        Class<? extends ReportDSLLabelProvider> _class = this.getClass();
+        _switchResult = this.getInternalImage("autotext.gif", _class);
+      }
+    }
+    if (!_matched) {
+      if (o instanceof org.eclipse.osbp.xtext.reportdsl.Image) {
+        _matched=true;
+        Class<? extends ReportDSLLabelProvider> _class = this.getClass();
+        _switchResult = this.getInternalImage("img.png", _class);
+      }
+    }
+    if (!_matched) {
+      _switchResult = null;
+    }
+    return _switchResult;
+  }
+}
diff --git a/org.eclipse.osbp.xtext.reportdsl.ui/xtend-gen/org/eclipse/osbp/xtext/reportdsl/ui/outline/ReportDSLOutlineTreeProvider.java b/org.eclipse.osbp.xtext.reportdsl.ui/xtend-gen/org/eclipse/osbp/xtext/reportdsl/ui/outline/ReportDSLOutlineTreeProvider.java
new file mode 100644
index 0000000..2928b5b
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl.ui/xtend-gen/org/eclipse/osbp/xtext/reportdsl/ui/outline/ReportDSLOutlineTreeProvider.java
@@ -0,0 +1,26 @@
+/**
+ * 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.reportdsl.ui.outline;
+
+import org.eclipse.xtext.ui.editor.outline.impl.DefaultOutlineTreeProvider;
+
+/**
+ * Customization of the default outline structure.
+ * 
+ * see http://www.eclipse.org/Xtext/documentation.html#outline
+ */
+@SuppressWarnings("all")
+public class ReportDSLOutlineTreeProvider extends DefaultOutlineTreeProvider {
+}
diff --git a/org.eclipse.osbp.xtext.reportdsl.ui/xtend-gen/org/eclipse/osbp/xtext/reportdsl/ui/quickfix/ReportDSLQuickfixProvider.java b/org.eclipse.osbp.xtext.reportdsl.ui/xtend-gen/org/eclipse/osbp/xtext/reportdsl/ui/quickfix/ReportDSLQuickfixProvider.java
new file mode 100644
index 0000000..507ff84
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl.ui/xtend-gen/org/eclipse/osbp/xtext/reportdsl/ui/quickfix/ReportDSLQuickfixProvider.java
@@ -0,0 +1,26 @@
+/**
+ * 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.reportdsl.ui.quickfix;
+
+import org.eclipse.xtext.ui.editor.quickfix.DefaultQuickfixProvider;
+
+/**
+ * Custom quickfixes.
+ * 
+ * see http://www.eclipse.org/Xtext/documentation.html#quickfixes
+ */
+@SuppressWarnings("all")
+public class ReportDSLQuickfixProvider extends DefaultQuickfixProvider {
+}
diff --git a/org.eclipse.osbp.xtext.reportdsl/.project b/org.eclipse.osbp.xtext.reportdsl/.project
new file mode 100644
index 0000000..3ad15a6
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl/.project
@@ -0,0 +1,51 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>org.eclipse.osbp.xtext.reportdsl</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.sonarlint.eclipse.core.sonarlintBuilder</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.reportdsl/LICENSE.txt b/org.eclipse.osbp.xtext.reportdsl/LICENSE.txt
new file mode 100644
index 0000000..ff42ad4
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl/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.reportdsl/META-INF/MANIFEST.MF b/org.eclipse.osbp.xtext.reportdsl/META-INF/MANIFEST.MF
new file mode 100644
index 0000000..c3f02ae
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl/META-INF/MANIFEST.MF
@@ -0,0 +1,125 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: org.eclipse.osbp.xtext.reportdsl
+Bundle-Vendor: Eclipse OSBP
+Bundle-Localization: plugin
+Bundle-Version: 0.9.0.qualifier
+Bundle-ClassPath: .
+Bundle-SymbolicName: org.eclipse.osbp.xtext.reportdsl;singleton:=true
+Bundle-ActivationPolicy: lazy
+Require-Bundle: org.slf4j.api;bundle-version="1.7.2",
+ org.apache.xerces;bundle-version="2.9.0",
+ org.eclipse.osgi.services;bundle-version="3.4.0",
+ olap4j.osgi;bundle-version="[1.1.0,1.3.0)",
+ org.drools.api;bundle-version="[5.5.1,5.5.2)",
+ mondrian.osgi;bundle-version="[3.5.0,3.5.1)",
+ com.ibm.icu,
+ com.vaadin.server;bundle-version="[7.5.7,7.7.0)",
+ org.antlr.runtime;bundle-version="3.2.0",
+ org.apache.commons.logging;bundle-version="1.0.4";resolution:=optional,
+ org.eclipse.core.runtime,
+ org.eclipse.core.databinding,
+ org.eclipse.core.databinding.beans,
+ org.eclipse.e4.core.contexts,
+ org.eclipse.e4.core.services,
+ org.eclipse.e4.ui.model.workbench,
+ org.eclipse.e4.ui.workbench,
+ org.eclipse.e4.core.di.extensions,
+ org.eclipse.emf.common,
+ org.eclipse.emf.ecore;visibility:=reexport,
+ org.mozilla.javascript;bundle-version="[1.7.2,1.7.4)";visibility:=reexport,
+ org.eclipse.xtext.xbase.lib;bundle-version="[2.7.3,2.8.0)",
+ org.eclipse.emf.ecore.xcore;bundle-version="1.1.2",
+ org.eclipse.emf.ecore.xcore.lib,
+ org.eclipse.emf.mwe.utils;resolution:=optional,
+ org.eclipse.xtext;bundle-version="[2.7.3,2.8.0)",
+ org.eclipse.xtext.xbase;bundle-version="[2.7.3,2.8.0)";resolution:=optional;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.common.types;bundle-version="[2.7.3,2.8.0)";visibility:=reexport,
+ org.objectweb.asm;bundle-version="3.3.1",
+ javax.persistence;bundle-version="2.1.0",
+ org.eclipse.osbp.xtext.blip;visibility:=reexport,
+ org.eclipse.osbp.dsl.entity.xtext;bundle-version="[0.9.0,0.10.0)",
+ org.eclipse.osbp.runtime.web.vaadin.databinding;bundle-version="[0.9.0,0.10.0)",
+ org.eclipse.osbp.runtime.common;bundle-version="[0.9.0,0.10.0)",
+ org.eclipse.osbp.ecview.core.extension.model;bundle-version="[0.9.0,0.10.0)",
+ 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.osgi.hybrid.api;bundle-version="[0.9.0,0.10.0)",
+ org.eclipse.osbp.preferences;bundle-version="[0.9.0,0.10.0)",
+ org.eclipse.osbp.webserver.messagequeue;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.xtext.i18n;bundle-version="[0.9.0,0.10.0)",
+ org.eclipse.osbp.xtext.cubedsl;bundle-version="[0.9.0,0.10.0)";visibility:=reexport,
+ org.eclipse.osbp.xtext.datamartdsl;bundle-version="[0.9.0,0.10.0)";visibility:=reexport,
+ org.eclipse.bpmn2;visibility:=reexport,
+ org.eclipse.osbp.dsl.mwe;bundle-version="[0.9.0,0.10.0)";resolution:=optional,
+ 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.ecview.core.common;bundle-version="[0.9.0,0.10.0)",
+ org.eclipse.osbp.gitinfo;bundle-version="[0.9.0,0.10.0)",
+ org.eclipse.emf.mwe2.launch;bundle-version="2.7.1";resolution:=optional,
+ org.eclipse.osbp.xtext.datamart.common;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.xtext.addons;bundle-version="[0.9.0,0.10.0)",
+ org.eclipse.osbp.xtext.builder.types.bundles;bundle-version="[0.9.0,0.10.0)",
+ org.eclipse.osbp.xtext.builder.types.loader.api;bundle-version="[0.9.0,0.10.0)",
+ 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.apache.pdfbox;bundle-version="2.0.4",
+ org.apache.pdfbox.fontbox;bundle-version="2.0.4"
+Bundle-RequiredExecutionEnvironment: JavaSE-1.8
+Export-Package: org.eclipse.osbp.xtext.reportdsl;version="0.9.0",
+ org.eclipse.osbp.xtext.reportdsl.common;version="0.9.0",
+ org.eclipse.osbp.xtext.reportdsl.common.attribute;version="0.9.0",
+ org.eclipse.osbp.xtext.reportdsl.common.item;version="0.9.0",
+ org.eclipse.osbp.xtext.reportdsl.formatting;version="0.9.0",
+ org.eclipse.osbp.xtext.reportdsl.impl;version="0.9.0",
+ org.eclipse.osbp.xtext.reportdsl.jvmmodel;version="0.9.0",
+ org.eclipse.osbp.xtext.reportdsl.parser.antlr;version="0.9.0",
+ org.eclipse.osbp.xtext.reportdsl.parser.antlr.internal;version="0.9.0",
+ org.eclipse.osbp.xtext.reportdsl.scoping;version="0.9.0",
+ org.eclipse.osbp.xtext.reportdsl.serializer;version="0.9.0",
+ org.eclipse.osbp.xtext.reportdsl.services;version="0.9.0",
+ org.eclipse.osbp.xtext.reportdsl.util;version="0.9.0",
+ org.eclipse.osbp.xtext.reportdsl.validation;version="0.9.0"
+Import-Package: com.lowagie.text;version="2.1.7",
+ com.lowagie.text.pdf;version="2.1.7",
+ javax.validation,
+ javax.validation.constraints,
+ mondrian.olap,
+ mondrian.rolap,
+ org.apache.log4j,
+ org.eclipse.birt.core.data,
+ org.eclipse.birt.core.exception,
+ org.eclipse.birt.core.framework,
+ org.eclipse.birt.report.engine.api,
+ org.eclipse.birt.report.model.api,
+ org.eclipse.birt.report.model.api.activity,
+ org.eclipse.birt.report.model.api.command,
+ org.eclipse.birt.report.model.api.core,
+ org.eclipse.birt.report.model.api.css,
+ org.eclipse.birt.report.model.api.elements,
+ org.eclipse.birt.report.model.api.elements.structures,
+ org.eclipse.birt.report.model.api.metadata,
+ org.eclipse.birt.report.model.core,
+ org.eclipse.birt.report.model.css,
+ org.eclipse.birt.report.model.elements,
+ org.eclipse.birt.report.model.elements.interfaces,
+ org.eclipse.birt.report.model.metadata,
+ org.eclipse.birt.report.model.util,
+ org.eclipse.birt.report.model.writer,
+ org.eclipse.e4.core.di.extensions,
+ org.eclipse.e4.core.services.events,
+ org.eclipse.osbp.dsl.common.datatypes;version="0.9.0",
+ org.eclipse.osbp.ui.api.datamart;version="0.9.0",
+ org.eclipse.osbp.ui.api.layout,
+ org.eclipse.osbp.ui.api.metadata;version="0.9.0",
+ org.eclipse.osbp.ui.api.report;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.utils.themes.ui;version="0.9.0"
+Bundle-Activator: org.eclipse.osbp.xtext.reportdsl.common.Activator
diff --git a/org.eclipse.osbp.xtext.reportdsl/about.html b/org.eclipse.osbp.xtext.reportdsl/about.html
new file mode 100644
index 0000000..64c0598
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl/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.reportdsl/about.ini b/org.eclipse.osbp.xtext.reportdsl/about.ini
new file mode 100644
index 0000000..7df671f
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl/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.reportdsl/about.mappings b/org.eclipse.osbp.xtext.reportdsl/about.mappings
new file mode 100644
index 0000000..4511a0a
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl/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.reportdsl/about.properties b/org.eclipse.osbp.xtext.reportdsl/about.properties
new file mode 100644
index 0000000..44006c5
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl/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.reportdsl
+
+################ 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.reportdsl/build.properties b/org.eclipse.osbp.xtext.reportdsl/build.properties
new file mode 100644
index 0000000..c7bdd18
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl/build.properties
@@ -0,0 +1,18 @@
+source.. = src/,\
+           src-gen/,\
+           xtend-gen/,\
+           emf-gen/
+bin.includes = about.properties,  about.mappings,  about.ini,  about.html,  model/,\
+               META-INF/,\
+               .,\
+               plugin.xml,\
+               plugin.properties,\
+               .classpath,\
+               .project,\
+               .settings/,\
+               license.html,\
+               LICENSE.txt,\
+               epl-v10.html
+src.includes = about.properties,  about.mappings,  about.ini,  about.html,  license.html,\
+               LICENSE.txt,\
+               epl-v10.html			   
diff --git a/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/AutoText.java b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/AutoText.java
new file mode 100644
index 0000000..d139a2e
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/AutoText.java
@@ -0,0 +1,63 @@
+/**
+ * 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:  
+ *  		Christophe Loetz  (Loetz GmbH&Co.KG) - Initial implementation 
+ *  
+ */
+package org.eclipse.osbp.xtext.reportdsl;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Auto Text</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.AutoText#getType <em>Type</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.osbp.xtext.reportdsl.ReportDSLPackage#getAutoText()
+ * @model
+ * @generated
+ */
+public interface AutoText extends Element, WithStyle {
+	/**
+	 * Returns the value of the '<em><b>Type</b></em>' attribute.
+	 * The literals are from the enumeration {@link org.eclipse.osbp.xtext.reportdsl.AutoTextEnum}.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Type</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Type</em>' attribute.
+	 * @see org.eclipse.osbp.xtext.reportdsl.AutoTextEnum
+	 * @see #setType(AutoTextEnum)
+	 * @see org.eclipse.osbp.xtext.reportdsl.ReportDSLPackage#getAutoText_Type()
+	 * @model unique="false"
+	 * @generated
+	 */
+	AutoTextEnum getType();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.xtext.reportdsl.AutoText#getType <em>Type</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Type</em>' attribute.
+	 * @see org.eclipse.osbp.xtext.reportdsl.AutoTextEnum
+	 * @see #getType()
+	 * @generated
+	 */
+	void setType(AutoTextEnum value);
+
+} // AutoText
diff --git a/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/AutoTextEnum.java b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/AutoTextEnum.java
new file mode 100644
index 0000000..4fa307c
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/AutoTextEnum.java
@@ -0,0 +1,296 @@
+/**
+ * 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:  
+ *  		Christophe Loetz  (Loetz GmbH&Co.KG) - Initial implementation 
+ *  
+ */
+package org.eclipse.osbp.xtext.reportdsl;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.emf.common.util.Enumerator;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the literals of the enumeration '<em><b>Auto Text Enum</b></em>',
+ * and utility methods for working with them.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.osbp.xtext.reportdsl.ReportDSLPackage#getAutoTextEnum()
+ * @model
+ * @generated
+ */
+public enum AutoTextEnum implements Enumerator {
+	/**
+	 * The '<em><b>PAGE NUMBER</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #PAGE_NUMBER_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	PAGE_NUMBER(0, "PAGE_NUMBER", "page-number"),
+
+	/**
+	 * The '<em><b>TOTAL PAGE</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #TOTAL_PAGE_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	TOTAL_PAGE(0, "TOTAL_PAGE", "total-page"),
+
+	/**
+	 * The '<em><b>PAGE NUMBER UNFILTERED</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #PAGE_NUMBER_UNFILTERED_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	PAGE_NUMBER_UNFILTERED(0, "PAGE_NUMBER_UNFILTERED", "page-number-unfiltered"),
+
+	/**
+	 * The '<em><b>TOTAL PAGE UNFILTERED</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #TOTAL_PAGE_UNFILTERED_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	TOTAL_PAGE_UNFILTERED(0, "TOTAL_PAGE_UNFILTERED", "total-page-unfiltered"),
+
+	/**
+	 * The '<em><b>PAGE VARIABLE</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #PAGE_VARIABLE_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	PAGE_VARIABLE(0, "PAGE_VARIABLE", "page-variable");
+
+	/**
+	 * The '<em><b>PAGE NUMBER</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>PAGE NUMBER</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @see #PAGE_NUMBER
+	 * @model literal="page-number"
+	 * @generated
+	 * @ordered
+	 */
+	public static final int PAGE_NUMBER_VALUE = 0;
+
+	/**
+	 * The '<em><b>TOTAL PAGE</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>TOTAL PAGE</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @see #TOTAL_PAGE
+	 * @model literal="total-page"
+	 * @generated
+	 * @ordered
+	 */
+	public static final int TOTAL_PAGE_VALUE = 0;
+
+	/**
+	 * The '<em><b>PAGE NUMBER UNFILTERED</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>PAGE NUMBER UNFILTERED</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @see #PAGE_NUMBER_UNFILTERED
+	 * @model literal="page-number-unfiltered"
+	 * @generated
+	 * @ordered
+	 */
+	public static final int PAGE_NUMBER_UNFILTERED_VALUE = 0;
+
+	/**
+	 * The '<em><b>TOTAL PAGE UNFILTERED</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>TOTAL PAGE UNFILTERED</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @see #TOTAL_PAGE_UNFILTERED
+	 * @model literal="total-page-unfiltered"
+	 * @generated
+	 * @ordered
+	 */
+	public static final int TOTAL_PAGE_UNFILTERED_VALUE = 0;
+
+	/**
+	 * The '<em><b>PAGE VARIABLE</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>PAGE VARIABLE</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @see #PAGE_VARIABLE
+	 * @model literal="page-variable"
+	 * @generated
+	 * @ordered
+	 */
+	public static final int PAGE_VARIABLE_VALUE = 0;
+
+	/**
+	 * An array of all the '<em><b>Auto Text Enum</b></em>' enumerators.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private static final AutoTextEnum[] VALUES_ARRAY =
+		new AutoTextEnum[] {
+			PAGE_NUMBER,
+			TOTAL_PAGE,
+			PAGE_NUMBER_UNFILTERED,
+			TOTAL_PAGE_UNFILTERED,
+			PAGE_VARIABLE,
+		};
+
+	/**
+	 * A public read-only list of all the '<em><b>Auto Text Enum</b></em>' enumerators.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static final List<AutoTextEnum> VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
+
+	/**
+	 * Returns the '<em><b>Auto Text Enum</b></em>' literal with the specified literal value.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static AutoTextEnum get(String literal) {
+		for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+			AutoTextEnum result = VALUES_ARRAY[i];
+			if (result.toString().equals(literal)) {
+				return result;
+			}
+		}
+		return null;
+	}
+
+	/**
+	 * Returns the '<em><b>Auto Text Enum</b></em>' literal with the specified name.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static AutoTextEnum getByName(String name) {
+		for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+			AutoTextEnum result = VALUES_ARRAY[i];
+			if (result.getName().equals(name)) {
+				return result;
+			}
+		}
+		return null;
+	}
+
+	/**
+	 * Returns the '<em><b>Auto Text Enum</b></em>' literal with the specified integer value.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static AutoTextEnum get(int value) {
+		switch (value) {
+			case PAGE_NUMBER_VALUE: return PAGE_NUMBER;
+		}
+		return null;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private final int value;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private final String name;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private final String literal;
+
+	/**
+	 * Only this class can construct instances.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private AutoTextEnum(int value, String name, String literal) {
+		this.value = value;
+		this.name = name;
+		this.literal = literal;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public int getValue() {
+	  return value;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getName() {
+	  return name;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getLiteral() {
+	  return literal;
+	}
+
+	/**
+	 * Returns the literal value of the enumerator, which is its string representation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String toString() {
+		return literal;
+	}
+	
+} //AutoTextEnum
diff --git a/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/BaseStyle.java b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/BaseStyle.java
new file mode 100644
index 0000000..9485a39
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/BaseStyle.java
@@ -0,0 +1,762 @@
+/**
+ * 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:  
+ *  		Christophe Loetz  (Loetz GmbH&Co.KG) - Initial implementation 
+ *  
+ */
+package org.eclipse.osbp.xtext.reportdsl;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Base Style</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.BaseStyle#getFormat <em>Format</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.BaseStyle#getFont <em>Font</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.BaseStyle#getBackgroundcolor <em>Backgroundcolor</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.BaseStyle#getBackgroundcolor_alternate <em>Backgroundcolor alternate</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.BaseStyle#getTextcolor <em>Textcolor</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.BaseStyle#getTextalign <em>Textalign</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.BaseStyle#getBorderTop <em>Border Top</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.BaseStyle#getBorderBottom <em>Border Bottom</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.BaseStyle#getBorderLeft <em>Border Left</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.BaseStyle#getBorderRight <em>Border Right</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.BaseStyle#getPaddingTopValue <em>Padding Top Value</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.BaseStyle#getPaddingTopUnit <em>Padding Top Unit</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.BaseStyle#getPaddingBottomValue <em>Padding Bottom Value</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.BaseStyle#getPaddingBottomUnit <em>Padding Bottom Unit</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.BaseStyle#getPaddingLeftValue <em>Padding Left Value</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.BaseStyle#getPaddingLeftUnit <em>Padding Left Unit</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.BaseStyle#getPaddingRightValue <em>Padding Right Value</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.BaseStyle#getPaddingRightUnit <em>Padding Right Unit</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.BaseStyle#getMarginTopValue <em>Margin Top Value</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.BaseStyle#getMarginTopUnit <em>Margin Top Unit</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.BaseStyle#getMarginLeftValue <em>Margin Left Value</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.BaseStyle#getMarginLeftUnit <em>Margin Left Unit</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.BaseStyle#getMarginBottomValue <em>Margin Bottom Value</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.BaseStyle#getMarginBottomUnit <em>Margin Bottom Unit</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.BaseStyle#getMarginRightValue <em>Margin Right Value</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.BaseStyle#getMarginRightUnit <em>Margin Right Unit</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.osbp.xtext.reportdsl.ReportDSLPackage#getBaseStyle()
+ * @model
+ * @generated
+ */
+public interface BaseStyle extends ReportLazyResolver {
+	/**
+	 * Returns the value of the '<em><b>Format</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Format</em>' reference isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Format</em>' reference.
+	 * @see #setFormat(SomeFormat)
+	 * @see org.eclipse.osbp.xtext.reportdsl.ReportDSLPackage#getBaseStyle_Format()
+	 * @model
+	 * @generated
+	 */
+	SomeFormat getFormat();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.xtext.reportdsl.BaseStyle#getFormat <em>Format</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Format</em>' reference.
+	 * @see #getFormat()
+	 * @generated
+	 */
+	void setFormat(SomeFormat value);
+
+	/**
+	 * Returns the value of the '<em><b>Font</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Font</em>' reference isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Font</em>' reference.
+	 * @see #setFont(Font)
+	 * @see org.eclipse.osbp.xtext.reportdsl.ReportDSLPackage#getBaseStyle_Font()
+	 * @model
+	 * @generated
+	 */
+	Font getFont();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.xtext.reportdsl.BaseStyle#getFont <em>Font</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Font</em>' reference.
+	 * @see #getFont()
+	 * @generated
+	 */
+	void setFont(Font value);
+
+	/**
+	 * Returns the value of the '<em><b>Backgroundcolor</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Backgroundcolor</em>' reference isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Backgroundcolor</em>' reference.
+	 * @see #setBackgroundcolor(Color)
+	 * @see org.eclipse.osbp.xtext.reportdsl.ReportDSLPackage#getBaseStyle_Backgroundcolor()
+	 * @model
+	 * @generated
+	 */
+	Color getBackgroundcolor();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.xtext.reportdsl.BaseStyle#getBackgroundcolor <em>Backgroundcolor</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Backgroundcolor</em>' reference.
+	 * @see #getBackgroundcolor()
+	 * @generated
+	 */
+	void setBackgroundcolor(Color value);
+
+	/**
+	 * Returns the value of the '<em><b>Backgroundcolor alternate</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Backgroundcolor alternate</em>' reference isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Backgroundcolor alternate</em>' reference.
+	 * @see #setBackgroundcolor_alternate(Color)
+	 * @see org.eclipse.osbp.xtext.reportdsl.ReportDSLPackage#getBaseStyle_Backgroundcolor_alternate()
+	 * @model
+	 * @generated
+	 */
+	Color getBackgroundcolor_alternate();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.xtext.reportdsl.BaseStyle#getBackgroundcolor_alternate <em>Backgroundcolor alternate</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Backgroundcolor alternate</em>' reference.
+	 * @see #getBackgroundcolor_alternate()
+	 * @generated
+	 */
+	void setBackgroundcolor_alternate(Color value);
+
+	/**
+	 * Returns the value of the '<em><b>Textcolor</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Textcolor</em>' reference isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Textcolor</em>' reference.
+	 * @see #setTextcolor(Color)
+	 * @see org.eclipse.osbp.xtext.reportdsl.ReportDSLPackage#getBaseStyle_Textcolor()
+	 * @model
+	 * @generated
+	 */
+	Color getTextcolor();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.xtext.reportdsl.BaseStyle#getTextcolor <em>Textcolor</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Textcolor</em>' reference.
+	 * @see #getTextcolor()
+	 * @generated
+	 */
+	void setTextcolor(Color value);
+
+	/**
+	 * Returns the value of the '<em><b>Textalign</b></em>' attribute.
+	 * The literals are from the enumeration {@link org.eclipse.osbp.xtext.reportdsl.TextAlignEnum}.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Textalign</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Textalign</em>' attribute.
+	 * @see org.eclipse.osbp.xtext.reportdsl.TextAlignEnum
+	 * @see #setTextalign(TextAlignEnum)
+	 * @see org.eclipse.osbp.xtext.reportdsl.ReportDSLPackage#getBaseStyle_Textalign()
+	 * @model unique="false"
+	 * @generated
+	 */
+	TextAlignEnum getTextalign();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.xtext.reportdsl.BaseStyle#getTextalign <em>Textalign</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Textalign</em>' attribute.
+	 * @see org.eclipse.osbp.xtext.reportdsl.TextAlignEnum
+	 * @see #getTextalign()
+	 * @generated
+	 */
+	void setTextalign(TextAlignEnum value);
+
+	/**
+	 * Returns the value of the '<em><b>Border Top</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Border Top</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>Border Top</em>' containment reference.
+	 * @see #setBorderTop(BorderStyle)
+	 * @see org.eclipse.osbp.xtext.reportdsl.ReportDSLPackage#getBaseStyle_BorderTop()
+	 * @model containment="true"
+	 * @generated
+	 */
+	BorderStyle getBorderTop();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.xtext.reportdsl.BaseStyle#getBorderTop <em>Border Top</em>}' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Border Top</em>' containment reference.
+	 * @see #getBorderTop()
+	 * @generated
+	 */
+	void setBorderTop(BorderStyle value);
+
+	/**
+	 * Returns the value of the '<em><b>Border Bottom</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Border Bottom</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>Border Bottom</em>' containment reference.
+	 * @see #setBorderBottom(BorderStyle)
+	 * @see org.eclipse.osbp.xtext.reportdsl.ReportDSLPackage#getBaseStyle_BorderBottom()
+	 * @model containment="true"
+	 * @generated
+	 */
+	BorderStyle getBorderBottom();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.xtext.reportdsl.BaseStyle#getBorderBottom <em>Border Bottom</em>}' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Border Bottom</em>' containment reference.
+	 * @see #getBorderBottom()
+	 * @generated
+	 */
+	void setBorderBottom(BorderStyle value);
+
+	/**
+	 * Returns the value of the '<em><b>Border Left</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Border Left</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>Border Left</em>' containment reference.
+	 * @see #setBorderLeft(BorderStyle)
+	 * @see org.eclipse.osbp.xtext.reportdsl.ReportDSLPackage#getBaseStyle_BorderLeft()
+	 * @model containment="true"
+	 * @generated
+	 */
+	BorderStyle getBorderLeft();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.xtext.reportdsl.BaseStyle#getBorderLeft <em>Border Left</em>}' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Border Left</em>' containment reference.
+	 * @see #getBorderLeft()
+	 * @generated
+	 */
+	void setBorderLeft(BorderStyle value);
+
+	/**
+	 * Returns the value of the '<em><b>Border Right</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Border Right</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>Border Right</em>' containment reference.
+	 * @see #setBorderRight(BorderStyle)
+	 * @see org.eclipse.osbp.xtext.reportdsl.ReportDSLPackage#getBaseStyle_BorderRight()
+	 * @model containment="true"
+	 * @generated
+	 */
+	BorderStyle getBorderRight();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.xtext.reportdsl.BaseStyle#getBorderRight <em>Border Right</em>}' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Border Right</em>' containment reference.
+	 * @see #getBorderRight()
+	 * @generated
+	 */
+	void setBorderRight(BorderStyle value);
+
+	/**
+	 * Returns the value of the '<em><b>Padding Top Value</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Padding Top 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>Padding Top Value</em>' attribute.
+	 * @see #setPaddingTopValue(double)
+	 * @see org.eclipse.osbp.xtext.reportdsl.ReportDSLPackage#getBaseStyle_PaddingTopValue()
+	 * @model unique="false"
+	 * @generated
+	 */
+	double getPaddingTopValue();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.xtext.reportdsl.BaseStyle#getPaddingTopValue <em>Padding Top Value</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Padding Top Value</em>' attribute.
+	 * @see #getPaddingTopValue()
+	 * @generated
+	 */
+	void setPaddingTopValue(double value);
+
+	/**
+	 * Returns the value of the '<em><b>Padding Top Unit</b></em>' attribute.
+	 * The literals are from the enumeration {@link org.eclipse.osbp.xtext.reportdsl.UnitEnum}.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Padding Top Unit</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Padding Top Unit</em>' attribute.
+	 * @see org.eclipse.osbp.xtext.reportdsl.UnitEnum
+	 * @see #setPaddingTopUnit(UnitEnum)
+	 * @see org.eclipse.osbp.xtext.reportdsl.ReportDSLPackage#getBaseStyle_PaddingTopUnit()
+	 * @model unique="false"
+	 * @generated
+	 */
+	UnitEnum getPaddingTopUnit();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.xtext.reportdsl.BaseStyle#getPaddingTopUnit <em>Padding Top Unit</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Padding Top Unit</em>' attribute.
+	 * @see org.eclipse.osbp.xtext.reportdsl.UnitEnum
+	 * @see #getPaddingTopUnit()
+	 * @generated
+	 */
+	void setPaddingTopUnit(UnitEnum value);
+
+	/**
+	 * Returns the value of the '<em><b>Padding Bottom Value</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Padding Bottom 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>Padding Bottom Value</em>' attribute.
+	 * @see #setPaddingBottomValue(double)
+	 * @see org.eclipse.osbp.xtext.reportdsl.ReportDSLPackage#getBaseStyle_PaddingBottomValue()
+	 * @model unique="false"
+	 * @generated
+	 */
+	double getPaddingBottomValue();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.xtext.reportdsl.BaseStyle#getPaddingBottomValue <em>Padding Bottom Value</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Padding Bottom Value</em>' attribute.
+	 * @see #getPaddingBottomValue()
+	 * @generated
+	 */
+	void setPaddingBottomValue(double value);
+
+	/**
+	 * Returns the value of the '<em><b>Padding Bottom Unit</b></em>' attribute.
+	 * The literals are from the enumeration {@link org.eclipse.osbp.xtext.reportdsl.UnitEnum}.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Padding Bottom Unit</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Padding Bottom Unit</em>' attribute.
+	 * @see org.eclipse.osbp.xtext.reportdsl.UnitEnum
+	 * @see #setPaddingBottomUnit(UnitEnum)
+	 * @see org.eclipse.osbp.xtext.reportdsl.ReportDSLPackage#getBaseStyle_PaddingBottomUnit()
+	 * @model unique="false"
+	 * @generated
+	 */
+	UnitEnum getPaddingBottomUnit();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.xtext.reportdsl.BaseStyle#getPaddingBottomUnit <em>Padding Bottom Unit</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Padding Bottom Unit</em>' attribute.
+	 * @see org.eclipse.osbp.xtext.reportdsl.UnitEnum
+	 * @see #getPaddingBottomUnit()
+	 * @generated
+	 */
+	void setPaddingBottomUnit(UnitEnum value);
+
+	/**
+	 * Returns the value of the '<em><b>Padding Left Value</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Padding Left 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>Padding Left Value</em>' attribute.
+	 * @see #setPaddingLeftValue(double)
+	 * @see org.eclipse.osbp.xtext.reportdsl.ReportDSLPackage#getBaseStyle_PaddingLeftValue()
+	 * @model unique="false"
+	 * @generated
+	 */
+	double getPaddingLeftValue();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.xtext.reportdsl.BaseStyle#getPaddingLeftValue <em>Padding Left Value</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Padding Left Value</em>' attribute.
+	 * @see #getPaddingLeftValue()
+	 * @generated
+	 */
+	void setPaddingLeftValue(double value);
+
+	/**
+	 * Returns the value of the '<em><b>Padding Left Unit</b></em>' attribute.
+	 * The literals are from the enumeration {@link org.eclipse.osbp.xtext.reportdsl.UnitEnum}.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Padding Left Unit</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Padding Left Unit</em>' attribute.
+	 * @see org.eclipse.osbp.xtext.reportdsl.UnitEnum
+	 * @see #setPaddingLeftUnit(UnitEnum)
+	 * @see org.eclipse.osbp.xtext.reportdsl.ReportDSLPackage#getBaseStyle_PaddingLeftUnit()
+	 * @model unique="false"
+	 * @generated
+	 */
+	UnitEnum getPaddingLeftUnit();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.xtext.reportdsl.BaseStyle#getPaddingLeftUnit <em>Padding Left Unit</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Padding Left Unit</em>' attribute.
+	 * @see org.eclipse.osbp.xtext.reportdsl.UnitEnum
+	 * @see #getPaddingLeftUnit()
+	 * @generated
+	 */
+	void setPaddingLeftUnit(UnitEnum value);
+
+	/**
+	 * Returns the value of the '<em><b>Padding Right Value</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Padding Right 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>Padding Right Value</em>' attribute.
+	 * @see #setPaddingRightValue(double)
+	 * @see org.eclipse.osbp.xtext.reportdsl.ReportDSLPackage#getBaseStyle_PaddingRightValue()
+	 * @model unique="false"
+	 * @generated
+	 */
+	double getPaddingRightValue();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.xtext.reportdsl.BaseStyle#getPaddingRightValue <em>Padding Right Value</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Padding Right Value</em>' attribute.
+	 * @see #getPaddingRightValue()
+	 * @generated
+	 */
+	void setPaddingRightValue(double value);
+
+	/**
+	 * Returns the value of the '<em><b>Padding Right Unit</b></em>' attribute.
+	 * The literals are from the enumeration {@link org.eclipse.osbp.xtext.reportdsl.UnitEnum}.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Padding Right Unit</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Padding Right Unit</em>' attribute.
+	 * @see org.eclipse.osbp.xtext.reportdsl.UnitEnum
+	 * @see #setPaddingRightUnit(UnitEnum)
+	 * @see org.eclipse.osbp.xtext.reportdsl.ReportDSLPackage#getBaseStyle_PaddingRightUnit()
+	 * @model unique="false"
+	 * @generated
+	 */
+	UnitEnum getPaddingRightUnit();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.xtext.reportdsl.BaseStyle#getPaddingRightUnit <em>Padding Right Unit</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Padding Right Unit</em>' attribute.
+	 * @see org.eclipse.osbp.xtext.reportdsl.UnitEnum
+	 * @see #getPaddingRightUnit()
+	 * @generated
+	 */
+	void setPaddingRightUnit(UnitEnum value);
+
+	/**
+	 * Returns the value of the '<em><b>Margin Top Value</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Margin Top 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>Margin Top Value</em>' attribute.
+	 * @see #setMarginTopValue(double)
+	 * @see org.eclipse.osbp.xtext.reportdsl.ReportDSLPackage#getBaseStyle_MarginTopValue()
+	 * @model unique="false"
+	 * @generated
+	 */
+	double getMarginTopValue();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.xtext.reportdsl.BaseStyle#getMarginTopValue <em>Margin Top Value</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Margin Top Value</em>' attribute.
+	 * @see #getMarginTopValue()
+	 * @generated
+	 */
+	void setMarginTopValue(double value);
+
+	/**
+	 * Returns the value of the '<em><b>Margin Top Unit</b></em>' attribute.
+	 * The literals are from the enumeration {@link org.eclipse.osbp.xtext.reportdsl.UnitEnum}.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Margin Top Unit</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Margin Top Unit</em>' attribute.
+	 * @see org.eclipse.osbp.xtext.reportdsl.UnitEnum
+	 * @see #setMarginTopUnit(UnitEnum)
+	 * @see org.eclipse.osbp.xtext.reportdsl.ReportDSLPackage#getBaseStyle_MarginTopUnit()
+	 * @model unique="false"
+	 * @generated
+	 */
+	UnitEnum getMarginTopUnit();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.xtext.reportdsl.BaseStyle#getMarginTopUnit <em>Margin Top Unit</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Margin Top Unit</em>' attribute.
+	 * @see org.eclipse.osbp.xtext.reportdsl.UnitEnum
+	 * @see #getMarginTopUnit()
+	 * @generated
+	 */
+	void setMarginTopUnit(UnitEnum value);
+
+	/**
+	 * Returns the value of the '<em><b>Margin Left Value</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Margin Left 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>Margin Left Value</em>' attribute.
+	 * @see #setMarginLeftValue(double)
+	 * @see org.eclipse.osbp.xtext.reportdsl.ReportDSLPackage#getBaseStyle_MarginLeftValue()
+	 * @model unique="false"
+	 * @generated
+	 */
+	double getMarginLeftValue();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.xtext.reportdsl.BaseStyle#getMarginLeftValue <em>Margin Left Value</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Margin Left Value</em>' attribute.
+	 * @see #getMarginLeftValue()
+	 * @generated
+	 */
+	void setMarginLeftValue(double value);
+
+	/**
+	 * Returns the value of the '<em><b>Margin Left Unit</b></em>' attribute.
+	 * The literals are from the enumeration {@link org.eclipse.osbp.xtext.reportdsl.UnitEnum}.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Margin Left Unit</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Margin Left Unit</em>' attribute.
+	 * @see org.eclipse.osbp.xtext.reportdsl.UnitEnum
+	 * @see #setMarginLeftUnit(UnitEnum)
+	 * @see org.eclipse.osbp.xtext.reportdsl.ReportDSLPackage#getBaseStyle_MarginLeftUnit()
+	 * @model unique="false"
+	 * @generated
+	 */
+	UnitEnum getMarginLeftUnit();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.xtext.reportdsl.BaseStyle#getMarginLeftUnit <em>Margin Left Unit</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Margin Left Unit</em>' attribute.
+	 * @see org.eclipse.osbp.xtext.reportdsl.UnitEnum
+	 * @see #getMarginLeftUnit()
+	 * @generated
+	 */
+	void setMarginLeftUnit(UnitEnum value);
+
+	/**
+	 * Returns the value of the '<em><b>Margin Bottom Value</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Margin Bottom 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>Margin Bottom Value</em>' attribute.
+	 * @see #setMarginBottomValue(double)
+	 * @see org.eclipse.osbp.xtext.reportdsl.ReportDSLPackage#getBaseStyle_MarginBottomValue()
+	 * @model unique="false"
+	 * @generated
+	 */
+	double getMarginBottomValue();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.xtext.reportdsl.BaseStyle#getMarginBottomValue <em>Margin Bottom Value</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Margin Bottom Value</em>' attribute.
+	 * @see #getMarginBottomValue()
+	 * @generated
+	 */
+	void setMarginBottomValue(double value);
+
+	/**
+	 * Returns the value of the '<em><b>Margin Bottom Unit</b></em>' attribute.
+	 * The literals are from the enumeration {@link org.eclipse.osbp.xtext.reportdsl.UnitEnum}.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Margin Bottom Unit</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Margin Bottom Unit</em>' attribute.
+	 * @see org.eclipse.osbp.xtext.reportdsl.UnitEnum
+	 * @see #setMarginBottomUnit(UnitEnum)
+	 * @see org.eclipse.osbp.xtext.reportdsl.ReportDSLPackage#getBaseStyle_MarginBottomUnit()
+	 * @model unique="false"
+	 * @generated
+	 */
+	UnitEnum getMarginBottomUnit();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.xtext.reportdsl.BaseStyle#getMarginBottomUnit <em>Margin Bottom Unit</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Margin Bottom Unit</em>' attribute.
+	 * @see org.eclipse.osbp.xtext.reportdsl.UnitEnum
+	 * @see #getMarginBottomUnit()
+	 * @generated
+	 */
+	void setMarginBottomUnit(UnitEnum value);
+
+	/**
+	 * Returns the value of the '<em><b>Margin Right Value</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Margin Right 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>Margin Right Value</em>' attribute.
+	 * @see #setMarginRightValue(double)
+	 * @see org.eclipse.osbp.xtext.reportdsl.ReportDSLPackage#getBaseStyle_MarginRightValue()
+	 * @model unique="false"
+	 * @generated
+	 */
+	double getMarginRightValue();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.xtext.reportdsl.BaseStyle#getMarginRightValue <em>Margin Right Value</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Margin Right Value</em>' attribute.
+	 * @see #getMarginRightValue()
+	 * @generated
+	 */
+	void setMarginRightValue(double value);
+
+	/**
+	 * Returns the value of the '<em><b>Margin Right Unit</b></em>' attribute.
+	 * The literals are from the enumeration {@link org.eclipse.osbp.xtext.reportdsl.UnitEnum}.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Margin Right Unit</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Margin Right Unit</em>' attribute.
+	 * @see org.eclipse.osbp.xtext.reportdsl.UnitEnum
+	 * @see #setMarginRightUnit(UnitEnum)
+	 * @see org.eclipse.osbp.xtext.reportdsl.ReportDSLPackage#getBaseStyle_MarginRightUnit()
+	 * @model unique="false"
+	 * @generated
+	 */
+	UnitEnum getMarginRightUnit();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.xtext.reportdsl.BaseStyle#getMarginRightUnit <em>Margin Right Unit</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Margin Right Unit</em>' attribute.
+	 * @see org.eclipse.osbp.xtext.reportdsl.UnitEnum
+	 * @see #getMarginRightUnit()
+	 * @generated
+	 */
+	void setMarginRightUnit(UnitEnum value);
+
+} // BaseStyle
diff --git a/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/BinaryAggregationTypeEnum.java b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/BinaryAggregationTypeEnum.java
new file mode 100644
index 0000000..6d56ad4
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/BinaryAggregationTypeEnum.java
@@ -0,0 +1,192 @@
+/**
+ * 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:  
+ *  		Christophe Loetz  (Loetz GmbH&Co.KG) - Initial implementation 
+ *  
+ */
+package org.eclipse.osbp.xtext.reportdsl;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.emf.common.util.Enumerator;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the literals of the enumeration '<em><b>Binary Aggregation Type Enum</b></em>',
+ * and utility methods for working with them.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.osbp.xtext.reportdsl.ReportDSLPackage#getBinaryAggregationTypeEnum()
+ * @model
+ * @generated
+ */
+public enum BinaryAggregationTypeEnum implements Enumerator {
+	/**
+	 * The '<em><b>DIV</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #DIV_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	DIV(0, "DIV", "divide");
+
+	/**
+	 * The '<em><b>DIV</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>DIV</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @see #DIV
+	 * @model literal="divide"
+	 * @generated
+	 * @ordered
+	 */
+	public static final int DIV_VALUE = 0;
+
+	/**
+	 * An array of all the '<em><b>Binary Aggregation Type Enum</b></em>' enumerators.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private static final BinaryAggregationTypeEnum[] VALUES_ARRAY =
+		new BinaryAggregationTypeEnum[] {
+			DIV,
+		};
+
+	/**
+	 * A public read-only list of all the '<em><b>Binary Aggregation Type Enum</b></em>' enumerators.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static final List<BinaryAggregationTypeEnum> VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
+
+	/**
+	 * Returns the '<em><b>Binary Aggregation Type Enum</b></em>' literal with the specified literal value.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static BinaryAggregationTypeEnum get(String literal) {
+		for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+			BinaryAggregationTypeEnum result = VALUES_ARRAY[i];
+			if (result.toString().equals(literal)) {
+				return result;
+			}
+		}
+		return null;
+	}
+
+	/**
+	 * Returns the '<em><b>Binary Aggregation Type Enum</b></em>' literal with the specified name.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static BinaryAggregationTypeEnum getByName(String name) {
+		for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+			BinaryAggregationTypeEnum result = VALUES_ARRAY[i];
+			if (result.getName().equals(name)) {
+				return result;
+			}
+		}
+		return null;
+	}
+
+	/**
+	 * Returns the '<em><b>Binary Aggregation Type Enum</b></em>' literal with the specified integer value.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static BinaryAggregationTypeEnum get(int value) {
+		switch (value) {
+			case DIV_VALUE: return DIV;
+		}
+		return null;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private final int value;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private final String name;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private final String literal;
+
+	/**
+	 * Only this class can construct instances.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private BinaryAggregationTypeEnum(int value, String name, String literal) {
+		this.value = value;
+		this.name = name;
+		this.literal = literal;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public int getValue() {
+	  return value;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getName() {
+	  return name;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getLiteral() {
+	  return literal;
+	}
+
+	/**
+	 * Returns the literal value of the enumerator, which is its string representation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String toString() {
+		return literal;
+	}
+	
+} //BinaryAggregationTypeEnum
diff --git a/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/BorderStyle.java b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/BorderStyle.java
new file mode 100644
index 0000000..8871fb2
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/BorderStyle.java
@@ -0,0 +1,147 @@
+/**
+ * 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:  
+ *  		Christophe Loetz  (Loetz GmbH&Co.KG) - Initial implementation 
+ *  
+ */
+package org.eclipse.osbp.xtext.reportdsl;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Border Style</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.BorderStyle#getType <em>Type</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.BorderStyle#getWidthvalue <em>Widthvalue</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.BorderStyle#getWidthunit <em>Widthunit</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.BorderStyle#getColor <em>Color</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.osbp.xtext.reportdsl.ReportDSLPackage#getBorderStyle()
+ * @model
+ * @generated
+ */
+public interface BorderStyle extends ReportLazyResolver {
+	/**
+	 * Returns the value of the '<em><b>Type</b></em>' attribute.
+	 * The literals are from the enumeration {@link org.eclipse.osbp.xtext.reportdsl.BorderTypeEnum}.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Type</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Type</em>' attribute.
+	 * @see org.eclipse.osbp.xtext.reportdsl.BorderTypeEnum
+	 * @see #setType(BorderTypeEnum)
+	 * @see org.eclipse.osbp.xtext.reportdsl.ReportDSLPackage#getBorderStyle_Type()
+	 * @model unique="false"
+	 * @generated
+	 */
+	BorderTypeEnum getType();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.xtext.reportdsl.BorderStyle#getType <em>Type</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Type</em>' attribute.
+	 * @see org.eclipse.osbp.xtext.reportdsl.BorderTypeEnum
+	 * @see #getType()
+	 * @generated
+	 */
+	void setType(BorderTypeEnum value);
+
+	/**
+	 * Returns the value of the '<em><b>Widthvalue</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Widthvalue</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Widthvalue</em>' attribute.
+	 * @see #setWidthvalue(double)
+	 * @see org.eclipse.osbp.xtext.reportdsl.ReportDSLPackage#getBorderStyle_Widthvalue()
+	 * @model unique="false"
+	 * @generated
+	 */
+	double getWidthvalue();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.xtext.reportdsl.BorderStyle#getWidthvalue <em>Widthvalue</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Widthvalue</em>' attribute.
+	 * @see #getWidthvalue()
+	 * @generated
+	 */
+	void setWidthvalue(double value);
+
+	/**
+	 * Returns the value of the '<em><b>Widthunit</b></em>' attribute.
+	 * The literals are from the enumeration {@link org.eclipse.osbp.xtext.reportdsl.UnitEnum}.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Widthunit</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Widthunit</em>' attribute.
+	 * @see org.eclipse.osbp.xtext.reportdsl.UnitEnum
+	 * @see #setWidthunit(UnitEnum)
+	 * @see org.eclipse.osbp.xtext.reportdsl.ReportDSLPackage#getBorderStyle_Widthunit()
+	 * @model unique="false"
+	 * @generated
+	 */
+	UnitEnum getWidthunit();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.xtext.reportdsl.BorderStyle#getWidthunit <em>Widthunit</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Widthunit</em>' attribute.
+	 * @see org.eclipse.osbp.xtext.reportdsl.UnitEnum
+	 * @see #getWidthunit()
+	 * @generated
+	 */
+	void setWidthunit(UnitEnum value);
+
+	/**
+	 * Returns the value of the '<em><b>Color</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Color</em>' reference isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Color</em>' reference.
+	 * @see #setColor(Color)
+	 * @see org.eclipse.osbp.xtext.reportdsl.ReportDSLPackage#getBorderStyle_Color()
+	 * @model
+	 * @generated
+	 */
+	Color getColor();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.xtext.reportdsl.BorderStyle#getColor <em>Color</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Color</em>' reference.
+	 * @see #getColor()
+	 * @generated
+	 */
+	void setColor(Color value);
+
+} // BorderStyle
diff --git a/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/BorderType.java b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/BorderType.java
new file mode 100644
index 0000000..384b344
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/BorderType.java
@@ -0,0 +1,400 @@
+/**
+ * Copyright (c) 2013-2014, 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 
+ * 
+ *  Based on ideas from Xtext, Xtend, Xcore
+ *   
+ *  Contributors:  
+ *  		Christophe Loetz  (Loetz GmbH&Co.KG) - Initial implementation 
+ *  
+ */
+package org.eclipse.osbp.xtext.reportdsl;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.emf.common.util.Enumerator;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the literals of the enumeration '<em><b>Border Type</b></em>',
+ * and utility methods for working with them.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.osbp.xtext.reportdsl.ReportDSLPackage#getBorderType()
+ * @model
+ * @generated
+ */
+public enum BorderType implements Enumerator {
+	/**
+	 * The '<em><b>NONE</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #NONE_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	NONE(0, "NONE", "none"),
+
+	/**
+	 * The '<em><b>SOLID</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #SOLID_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	SOLID(0, "SOLID", "solid"),
+
+	/**
+	 * The '<em><b>DOTTED</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #DOTTED_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	DOTTED(0, "DOTTED", "dotted"),
+
+	/**
+	 * The '<em><b>DASHED</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #DASHED_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	DASHED(0, "DASHED", "dashed"),
+
+	/**
+	 * The '<em><b>DOUBLE</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #DOUBLE_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	DOUBLE(0, "DOUBLE", "double"),
+
+	/**
+	 * The '<em><b>GROOVE</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #GROOVE_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	GROOVE(0, "GROOVE", "groove"),
+
+	/**
+	 * The '<em><b>RIDGE</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #RIDGE_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	RIDGE(0, "RIDGE", "ridge"),
+
+	/**
+	 * The '<em><b>INSET</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #INSET_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	INSET(0, "INSET", "inset"),
+
+	/**
+	 * The '<em><b>OUTSET</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #OUTSET_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	OUTSET(0, "OUTSET", "outset");
+
+	/**
+	 * The '<em><b>NONE</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>NONE</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @see #NONE
+	 * @model literal="none"
+	 * @generated
+	 * @ordered
+	 */
+	public static final int NONE_VALUE = 0;
+
+	/**
+	 * The '<em><b>SOLID</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>SOLID</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @see #SOLID
+	 * @model literal="solid"
+	 * @generated
+	 * @ordered
+	 */
+	public static final int SOLID_VALUE = 0;
+
+	/**
+	 * The '<em><b>DOTTED</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>DOTTED</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @see #DOTTED
+	 * @model literal="dotted"
+	 * @generated
+	 * @ordered
+	 */
+	public static final int DOTTED_VALUE = 0;
+
+	/**
+	 * The '<em><b>DASHED</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>DASHED</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @see #DASHED
+	 * @model literal="dashed"
+	 * @generated
+	 * @ordered
+	 */
+	public static final int DASHED_VALUE = 0;
+
+	/**
+	 * The '<em><b>DOUBLE</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>DOUBLE</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @see #DOUBLE
+	 * @model literal="double"
+	 * @generated
+	 * @ordered
+	 */
+	public static final int DOUBLE_VALUE = 0;
+
+	/**
+	 * The '<em><b>GROOVE</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>GROOVE</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @see #GROOVE
+	 * @model literal="groove"
+	 * @generated
+	 * @ordered
+	 */
+	public static final int GROOVE_VALUE = 0;
+
+	/**
+	 * The '<em><b>RIDGE</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>RIDGE</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @see #RIDGE
+	 * @model literal="ridge"
+	 * @generated
+	 * @ordered
+	 */
+	public static final int RIDGE_VALUE = 0;
+
+	/**
+	 * The '<em><b>INSET</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>INSET</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @see #INSET
+	 * @model literal="inset"
+	 * @generated
+	 * @ordered
+	 */
+	public static final int INSET_VALUE = 0;
+
+	/**
+	 * The '<em><b>OUTSET</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>OUTSET</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @see #OUTSET
+	 * @model literal="outset"
+	 * @generated
+	 * @ordered
+	 */
+	public static final int OUTSET_VALUE = 0;
+
+	/**
+	 * An array of all the '<em><b>Border Type</b></em>' enumerators.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private static final BorderType[] VALUES_ARRAY =
+		new BorderType[] {
+			NONE,
+			SOLID,
+			DOTTED,
+			DASHED,
+			DOUBLE,
+			GROOVE,
+			RIDGE,
+			INSET,
+			OUTSET,
+		};
+
+	/**
+	 * A public read-only list of all the '<em><b>Border Type</b></em>' enumerators.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static final List<BorderType> VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
+
+	/**
+	 * Returns the '<em><b>Border Type</b></em>' literal with the specified literal value.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static BorderType get(String literal) {
+		for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+			BorderType result = VALUES_ARRAY[i];
+			if (result.toString().equals(literal)) {
+				return result;
+			}
+		}
+		return null;
+	}
+
+	/**
+	 * Returns the '<em><b>Border Type</b></em>' literal with the specified name.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static BorderType getByName(String name) {
+		for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+			BorderType result = VALUES_ARRAY[i];
+			if (result.getName().equals(name)) {
+				return result;
+			}
+		}
+		return null;
+	}
+
+	/**
+	 * Returns the '<em><b>Border Type</b></em>' literal with the specified integer value.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static BorderType get(int value) {
+		switch (value) {
+			case NONE_VALUE: return NONE;
+		}
+		return null;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private final int value;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private final String name;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private final String literal;
+
+	/**
+	 * Only this class can construct instances.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private BorderType(int value, String name, String literal) {
+		this.value = value;
+		this.name = name;
+		this.literal = literal;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public int getValue() {
+	  return value;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getName() {
+	  return name;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getLiteral() {
+	  return literal;
+	}
+
+	/**
+	 * Returns the literal value of the enumerator, which is its string representation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String toString() {
+		return literal;
+	}
+	
+} //BorderType
diff --git a/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/BorderTypeEnum.java b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/BorderTypeEnum.java
new file mode 100644
index 0000000..8c0171b
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/BorderTypeEnum.java
@@ -0,0 +1,400 @@
+/**
+ * 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:  
+ *  		Christophe Loetz  (Loetz GmbH&Co.KG) - Initial implementation 
+ *  
+ */
+package org.eclipse.osbp.xtext.reportdsl;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.emf.common.util.Enumerator;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the literals of the enumeration '<em><b>Border Type Enum</b></em>',
+ * and utility methods for working with them.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.osbp.xtext.reportdsl.ReportDSLPackage#getBorderTypeEnum()
+ * @model
+ * @generated
+ */
+public enum BorderTypeEnum implements Enumerator {
+	/**
+	 * The '<em><b>NONE</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #NONE_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	NONE(0, "NONE", "none"),
+
+	/**
+	 * The '<em><b>SOLID</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #SOLID_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	SOLID(0, "SOLID", "solid"),
+
+	/**
+	 * The '<em><b>DOTTED</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #DOTTED_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	DOTTED(0, "DOTTED", "dotted"),
+
+	/**
+	 * The '<em><b>DASHED</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #DASHED_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	DASHED(0, "DASHED", "dashed"),
+
+	/**
+	 * The '<em><b>DOUBLE</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #DOUBLE_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	DOUBLE(0, "DOUBLE", "double"),
+
+	/**
+	 * The '<em><b>GROOVE</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #GROOVE_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	GROOVE(0, "GROOVE", "groove"),
+
+	/**
+	 * The '<em><b>RIDGE</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #RIDGE_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	RIDGE(0, "RIDGE", "ridge"),
+
+	/**
+	 * The '<em><b>INSET</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #INSET_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	INSET(0, "INSET", "inset"),
+
+	/**
+	 * The '<em><b>OUTSET</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #OUTSET_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	OUTSET(0, "OUTSET", "outset");
+
+	/**
+	 * The '<em><b>NONE</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>NONE</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @see #NONE
+	 * @model literal="none"
+	 * @generated
+	 * @ordered
+	 */
+	public static final int NONE_VALUE = 0;
+
+	/**
+	 * The '<em><b>SOLID</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>SOLID</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @see #SOLID
+	 * @model literal="solid"
+	 * @generated
+	 * @ordered
+	 */
+	public static final int SOLID_VALUE = 0;
+
+	/**
+	 * The '<em><b>DOTTED</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>DOTTED</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @see #DOTTED
+	 * @model literal="dotted"
+	 * @generated
+	 * @ordered
+	 */
+	public static final int DOTTED_VALUE = 0;
+
+	/**
+	 * The '<em><b>DASHED</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>DASHED</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @see #DASHED
+	 * @model literal="dashed"
+	 * @generated
+	 * @ordered
+	 */
+	public static final int DASHED_VALUE = 0;
+
+	/**
+	 * The '<em><b>DOUBLE</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>DOUBLE</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @see #DOUBLE
+	 * @model literal="double"
+	 * @generated
+	 * @ordered
+	 */
+	public static final int DOUBLE_VALUE = 0;
+
+	/**
+	 * The '<em><b>GROOVE</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>GROOVE</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @see #GROOVE
+	 * @model literal="groove"
+	 * @generated
+	 * @ordered
+	 */
+	public static final int GROOVE_VALUE = 0;
+
+	/**
+	 * The '<em><b>RIDGE</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>RIDGE</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @see #RIDGE
+	 * @model literal="ridge"
+	 * @generated
+	 * @ordered
+	 */
+	public static final int RIDGE_VALUE = 0;
+
+	/**
+	 * The '<em><b>INSET</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>INSET</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @see #INSET
+	 * @model literal="inset"
+	 * @generated
+	 * @ordered
+	 */
+	public static final int INSET_VALUE = 0;
+
+	/**
+	 * The '<em><b>OUTSET</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>OUTSET</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @see #OUTSET
+	 * @model literal="outset"
+	 * @generated
+	 * @ordered
+	 */
+	public static final int OUTSET_VALUE = 0;
+
+	/**
+	 * An array of all the '<em><b>Border Type Enum</b></em>' enumerators.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private static final BorderTypeEnum[] VALUES_ARRAY =
+		new BorderTypeEnum[] {
+			NONE,
+			SOLID,
+			DOTTED,
+			DASHED,
+			DOUBLE,
+			GROOVE,
+			RIDGE,
+			INSET,
+			OUTSET,
+		};
+
+	/**
+	 * A public read-only list of all the '<em><b>Border Type Enum</b></em>' enumerators.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static final List<BorderTypeEnum> VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
+
+	/**
+	 * Returns the '<em><b>Border Type Enum</b></em>' literal with the specified literal value.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static BorderTypeEnum get(String literal) {
+		for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+			BorderTypeEnum result = VALUES_ARRAY[i];
+			if (result.toString().equals(literal)) {
+				return result;
+			}
+		}
+		return null;
+	}
+
+	/**
+	 * Returns the '<em><b>Border Type Enum</b></em>' literal with the specified name.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static BorderTypeEnum getByName(String name) {
+		for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+			BorderTypeEnum result = VALUES_ARRAY[i];
+			if (result.getName().equals(name)) {
+				return result;
+			}
+		}
+		return null;
+	}
+
+	/**
+	 * Returns the '<em><b>Border Type Enum</b></em>' literal with the specified integer value.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static BorderTypeEnum get(int value) {
+		switch (value) {
+			case NONE_VALUE: return NONE;
+		}
+		return null;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private final int value;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private final String name;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private final String literal;
+
+	/**
+	 * Only this class can construct instances.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private BorderTypeEnum(int value, String name, String literal) {
+		this.value = value;
+		this.name = name;
+		this.literal = literal;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public int getValue() {
+	  return value;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getName() {
+	  return name;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getLiteral() {
+	  return literal;
+	}
+
+	/**
+	 * Returns the literal value of the enumerator, which is its string representation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String toString() {
+		return literal;
+	}
+	
+} //BorderTypeEnum
diff --git a/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/BuildInFontFamily.java b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/BuildInFontFamily.java
new file mode 100644
index 0000000..73b02ca
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/BuildInFontFamily.java
@@ -0,0 +1,63 @@
+/**
+ * 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:  
+ *  		Christophe Loetz  (Loetz GmbH&Co.KG) - Initial implementation 
+ *  
+ */
+package org.eclipse.osbp.xtext.reportdsl;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Build In Font Family</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.BuildInFontFamily#getCustom <em>Custom</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.osbp.xtext.reportdsl.ReportDSLPackage#getBuildInFontFamily()
+ * @model
+ * @generated
+ */
+public interface BuildInFontFamily extends FontFamily {
+	/**
+	 * Returns the value of the '<em><b>Custom</b></em>' attribute.
+	 * The literals are from the enumeration {@link org.eclipse.osbp.xtext.reportdsl.BuildInFontFamilyEnum}.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Custom</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Custom</em>' attribute.
+	 * @see org.eclipse.osbp.xtext.reportdsl.BuildInFontFamilyEnum
+	 * @see #setCustom(BuildInFontFamilyEnum)
+	 * @see org.eclipse.osbp.xtext.reportdsl.ReportDSLPackage#getBuildInFontFamily_Custom()
+	 * @model unique="false"
+	 * @generated
+	 */
+	BuildInFontFamilyEnum getCustom();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.xtext.reportdsl.BuildInFontFamily#getCustom <em>Custom</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Custom</em>' attribute.
+	 * @see org.eclipse.osbp.xtext.reportdsl.BuildInFontFamilyEnum
+	 * @see #getCustom()
+	 * @generated
+	 */
+	void setCustom(BuildInFontFamilyEnum value);
+
+} // BuildInFontFamily
diff --git a/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/BuildInFontFamilyEnum.java b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/BuildInFontFamilyEnum.java
new file mode 100644
index 0000000..8b7835d
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/BuildInFontFamilyEnum.java
@@ -0,0 +1,244 @@
+/**
+ * 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:  
+ *  		Christophe Loetz  (Loetz GmbH&Co.KG) - Initial implementation 
+ *  
+ */
+package org.eclipse.osbp.xtext.reportdsl;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.emf.common.util.Enumerator;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the literals of the enumeration '<em><b>Build In Font Family Enum</b></em>',
+ * and utility methods for working with them.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.osbp.xtext.reportdsl.ReportDSLPackage#getBuildInFontFamilyEnum()
+ * @model
+ * @generated
+ */
+public enum BuildInFontFamilyEnum implements Enumerator {
+	/**
+	 * The '<em><b>MONOSPACE</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #MONOSPACE_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	MONOSPACE(0, "MONOSPACE", "monospace"),
+
+	/**
+	 * The '<em><b>SANS SERIF</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #SANS_SERIF_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	SANS_SERIF(0, "SANS_SERIF", "sans-serif"),
+
+	/**
+	 * The '<em><b>SERIF</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #SERIF_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	SERIF(0, "SERIF", "serif");
+
+	/**
+	 * The '<em><b>MONOSPACE</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>MONOSPACE</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @see #MONOSPACE
+	 * @model literal="monospace"
+	 * @generated
+	 * @ordered
+	 */
+	public static final int MONOSPACE_VALUE = 0;
+
+	/**
+	 * The '<em><b>SANS SERIF</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>SANS SERIF</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @see #SANS_SERIF
+	 * @model literal="sans-serif"
+	 * @generated
+	 * @ordered
+	 */
+	public static final int SANS_SERIF_VALUE = 0;
+
+	/**
+	 * The '<em><b>SERIF</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>SERIF</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @see #SERIF
+	 * @model literal="serif"
+	 * @generated
+	 * @ordered
+	 */
+	public static final int SERIF_VALUE = 0;
+
+	/**
+	 * An array of all the '<em><b>Build In Font Family Enum</b></em>' enumerators.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private static final BuildInFontFamilyEnum[] VALUES_ARRAY =
+		new BuildInFontFamilyEnum[] {
+			MONOSPACE,
+			SANS_SERIF,
+			SERIF,
+		};
+
+	/**
+	 * A public read-only list of all the '<em><b>Build In Font Family Enum</b></em>' enumerators.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static final List<BuildInFontFamilyEnum> VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
+
+	/**
+	 * Returns the '<em><b>Build In Font Family Enum</b></em>' literal with the specified literal value.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static BuildInFontFamilyEnum get(String literal) {
+		for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+			BuildInFontFamilyEnum result = VALUES_ARRAY[i];
+			if (result.toString().equals(literal)) {
+				return result;
+			}
+		}
+		return null;
+	}
+
+	/**
+	 * Returns the '<em><b>Build In Font Family Enum</b></em>' literal with the specified name.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static BuildInFontFamilyEnum getByName(String name) {
+		for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+			BuildInFontFamilyEnum result = VALUES_ARRAY[i];
+			if (result.getName().equals(name)) {
+				return result;
+			}
+		}
+		return null;
+	}
+
+	/**
+	 * Returns the '<em><b>Build In Font Family Enum</b></em>' literal with the specified integer value.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static BuildInFontFamilyEnum get(int value) {
+		switch (value) {
+			case MONOSPACE_VALUE: return MONOSPACE;
+		}
+		return null;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private final int value;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private final String name;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private final String literal;
+
+	/**
+	 * Only this class can construct instances.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private BuildInFontFamilyEnum(int value, String name, String literal) {
+		this.value = value;
+		this.name = name;
+		this.literal = literal;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public int getValue() {
+	  return value;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getName() {
+	  return name;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getLiteral() {
+	  return literal;
+	}
+
+	/**
+	 * Returns the literal value of the enumerator, which is its string representation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String toString() {
+		return literal;
+	}
+	
+} //BuildInFontFamilyEnum
diff --git a/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/Color.java b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/Color.java
new file mode 100644
index 0000000..2cbf652
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/Color.java
@@ -0,0 +1,195 @@
+/**
+ * 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:  
+ *  		Christophe Loetz  (Loetz GmbH&Co.KG) - Initial implementation 
+ *  
+ */
+package org.eclipse.osbp.xtext.reportdsl;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Color</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.Color#getColor <em>Color</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.Color#getBasecolor <em>Basecolor</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.Color#getDarkensby <em>Darkensby</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.Color#getLightensby <em>Lightensby</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.Color#getTransformsby <em>Transformsby</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.Color#getTargetcolor <em>Targetcolor</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.osbp.xtext.reportdsl.ReportDSLPackage#getColor()
+ * @model
+ * @generated
+ */
+public interface Color extends ReportBase {
+	/**
+	 * Returns the value of the '<em><b>Color</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Color</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Color</em>' attribute.
+	 * @see #setColor(String)
+	 * @see org.eclipse.osbp.xtext.reportdsl.ReportDSLPackage#getColor_Color()
+	 * @model unique="false"
+	 * @generated
+	 */
+	String getColor();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.xtext.reportdsl.Color#getColor <em>Color</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Color</em>' attribute.
+	 * @see #getColor()
+	 * @generated
+	 */
+	void setColor(String value);
+
+	/**
+	 * Returns the value of the '<em><b>Basecolor</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Basecolor</em>' reference isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Basecolor</em>' reference.
+	 * @see #setBasecolor(Color)
+	 * @see org.eclipse.osbp.xtext.reportdsl.ReportDSLPackage#getColor_Basecolor()
+	 * @model
+	 * @generated
+	 */
+	Color getBasecolor();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.xtext.reportdsl.Color#getBasecolor <em>Basecolor</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Basecolor</em>' reference.
+	 * @see #getBasecolor()
+	 * @generated
+	 */
+	void setBasecolor(Color value);
+
+	/**
+	 * Returns the value of the '<em><b>Darkensby</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Darkensby</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Darkensby</em>' attribute.
+	 * @see #setDarkensby(Integer)
+	 * @see org.eclipse.osbp.xtext.reportdsl.ReportDSLPackage#getColor_Darkensby()
+	 * @model unique="false"
+	 * @generated
+	 */
+	Integer getDarkensby();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.xtext.reportdsl.Color#getDarkensby <em>Darkensby</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Darkensby</em>' attribute.
+	 * @see #getDarkensby()
+	 * @generated
+	 */
+	void setDarkensby(Integer value);
+
+	/**
+	 * Returns the value of the '<em><b>Lightensby</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Lightensby</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Lightensby</em>' attribute.
+	 * @see #setLightensby(Integer)
+	 * @see org.eclipse.osbp.xtext.reportdsl.ReportDSLPackage#getColor_Lightensby()
+	 * @model unique="false"
+	 * @generated
+	 */
+	Integer getLightensby();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.xtext.reportdsl.Color#getLightensby <em>Lightensby</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Lightensby</em>' attribute.
+	 * @see #getLightensby()
+	 * @generated
+	 */
+	void setLightensby(Integer value);
+
+	/**
+	 * Returns the value of the '<em><b>Transformsby</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Transformsby</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Transformsby</em>' attribute.
+	 * @see #setTransformsby(Integer)
+	 * @see org.eclipse.osbp.xtext.reportdsl.ReportDSLPackage#getColor_Transformsby()
+	 * @model unique="false"
+	 * @generated
+	 */
+	Integer getTransformsby();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.xtext.reportdsl.Color#getTransformsby <em>Transformsby</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Transformsby</em>' attribute.
+	 * @see #getTransformsby()
+	 * @generated
+	 */
+	void setTransformsby(Integer value);
+
+	/**
+	 * Returns the value of the '<em><b>Targetcolor</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Targetcolor</em>' reference isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Targetcolor</em>' reference.
+	 * @see #setTargetcolor(Color)
+	 * @see org.eclipse.osbp.xtext.reportdsl.ReportDSLPackage#getColor_Targetcolor()
+	 * @model
+	 * @generated
+	 */
+	Color getTargetcolor();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.xtext.reportdsl.Color#getTargetcolor <em>Targetcolor</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Targetcolor</em>' reference.
+	 * @see #getTargetcolor()
+	 * @generated
+	 */
+	void setTargetcolor(Color value);
+
+} // Color
diff --git a/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/Colors.java b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/Colors.java
new file mode 100644
index 0000000..d3f02c8
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/Colors.java
@@ -0,0 +1,51 @@
+/**
+ * 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:  
+ *  		Christophe Loetz  (Loetz GmbH&Co.KG) - Initial implementation 
+ *  
+ */
+package org.eclipse.osbp.xtext.reportdsl;
+
+import org.eclipse.emf.common.util.EList;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Colors</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.Colors#getColors <em>Colors</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.osbp.xtext.reportdsl.ReportDSLPackage#getColors()
+ * @model
+ * @generated
+ */
+public interface Colors extends ReportLazyResolver {
+	/**
+	 * Returns the value of the '<em><b>Colors</b></em>' containment reference list.
+	 * The list contents are of type {@link org.eclipse.osbp.xtext.reportdsl.Color}.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Colors</em>' containment reference list isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Colors</em>' containment reference list.
+	 * @see org.eclipse.osbp.xtext.reportdsl.ReportDSLPackage#getColors_Colors()
+	 * @model containment="true"
+	 * @generated
+	 */
+	EList<Color> getColors();
+
+} // Colors
diff --git a/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/Container.java b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/Container.java
new file mode 100644
index 0000000..6594574
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/Container.java
@@ -0,0 +1,51 @@
+/**
+ * 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:  
+ *  		Christophe Loetz  (Loetz GmbH&Co.KG) - Initial implementation 
+ *  
+ */
+package org.eclipse.osbp.xtext.reportdsl;
+
+import org.eclipse.emf.common.util.EList;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Container</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.Container#getElements <em>Elements</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.osbp.xtext.reportdsl.ReportDSLPackage#getContainer()
+ * @model
+ * @generated
+ */
+public interface Container extends ReportLazyResolver {
+	/**
+	 * Returns the value of the '<em><b>Elements</b></em>' containment reference list.
+	 * The list contents are of type {@link org.eclipse.osbp.xtext.reportdsl.Element}.
+	 * <!-- 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.reportdsl.ReportDSLPackage#getContainer_Elements()
+	 * @model containment="true"
+	 * @generated
+	 */
+	EList<Element> getElements();
+
+} // Container
diff --git a/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/CurrencyFormat.java b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/CurrencyFormat.java
new file mode 100644
index 0000000..0ff4d44
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/CurrencyFormat.java
@@ -0,0 +1,63 @@
+/**
+ * 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:  
+ *  		Christophe Loetz  (Loetz GmbH&Co.KG) - Initial implementation 
+ *  
+ */
+package org.eclipse.osbp.xtext.reportdsl;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Currency Format</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.CurrencyFormat#getReport_category <em>Report category</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.osbp.xtext.reportdsl.ReportDSLPackage#getCurrencyFormat()
+ * @model
+ * @generated
+ */
+public interface CurrencyFormat extends SomeFormat {
+	/**
+	 * Returns the value of the '<em><b>Report category</b></em>' attribute.
+	 * The literals are from the enumeration {@link org.eclipse.osbp.xtext.reportdsl.CurrencyFormatCategoryEnum}.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Report category</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Report category</em>' attribute.
+	 * @see org.eclipse.osbp.xtext.reportdsl.CurrencyFormatCategoryEnum
+	 * @see #setReport_category(CurrencyFormatCategoryEnum)
+	 * @see org.eclipse.osbp.xtext.reportdsl.ReportDSLPackage#getCurrencyFormat_Report_category()
+	 * @model unique="false"
+	 * @generated
+	 */
+	CurrencyFormatCategoryEnum getReport_category();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.xtext.reportdsl.CurrencyFormat#getReport_category <em>Report category</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Report category</em>' attribute.
+	 * @see org.eclipse.osbp.xtext.reportdsl.CurrencyFormatCategoryEnum
+	 * @see #getReport_category()
+	 * @generated
+	 */
+	void setReport_category(CurrencyFormatCategoryEnum value);
+
+} // CurrencyFormat
diff --git a/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/CurrencyFormatCategory.java b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/CurrencyFormatCategory.java
new file mode 100644
index 0000000..f3c21d9
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/CurrencyFormatCategory.java
@@ -0,0 +1,244 @@
+/**
+ * Copyright (c) 2013-2014, 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 
+ * 
+ *  Based on ideas from Xtext, Xtend, Xcore
+ *   
+ *  Contributors:  
+ *  		Christophe Loetz  (Loetz GmbH&Co.KG) - Initial implementation 
+ *  
+ */
+package org.eclipse.osbp.xtext.reportdsl;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.emf.common.util.Enumerator;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the literals of the enumeration '<em><b>Currency Format Category</b></em>',
+ * and utility methods for working with them.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.osbp.xtext.reportdsl.ReportDSLPackage#getCurrencyFormatCategory()
+ * @model
+ * @generated
+ */
+public enum CurrencyFormatCategory implements Enumerator {
+	/**
+	 * The '<em><b>UNFORMATTED</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #UNFORMATTED_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	UNFORMATTED(0, "UNFORMATTED", "unformatted"),
+
+	/**
+	 * The '<em><b>CURRENCY</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #CURRENCY_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	CURRENCY(0, "CURRENCY", "currency"),
+
+	/**
+	 * The '<em><b>CUSTOM</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #CUSTOM_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	CUSTOM(0, "CUSTOM", "custom");
+
+	/**
+	 * The '<em><b>UNFORMATTED</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>UNFORMATTED</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @see #UNFORMATTED
+	 * @model literal="unformatted"
+	 * @generated
+	 * @ordered
+	 */
+	public static final int UNFORMATTED_VALUE = 0;
+
+	/**
+	 * The '<em><b>CURRENCY</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>CURRENCY</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @see #CURRENCY
+	 * @model literal="currency"
+	 * @generated
+	 * @ordered
+	 */
+	public static final int CURRENCY_VALUE = 0;
+
+	/**
+	 * The '<em><b>CUSTOM</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>CUSTOM</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @see #CUSTOM
+	 * @model literal="custom"
+	 * @generated
+	 * @ordered
+	 */
+	public static final int CUSTOM_VALUE = 0;
+
+	/**
+	 * An array of all the '<em><b>Currency Format Category</b></em>' enumerators.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private static final CurrencyFormatCategory[] VALUES_ARRAY =
+		new CurrencyFormatCategory[] {
+			UNFORMATTED,
+			CURRENCY,
+			CUSTOM,
+		};
+
+	/**
+	 * A public read-only list of all the '<em><b>Currency Format Category</b></em>' enumerators.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static final List<CurrencyFormatCategory> VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
+
+	/**
+	 * Returns the '<em><b>Currency Format Category</b></em>' literal with the specified literal value.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static CurrencyFormatCategory get(String literal) {
+		for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+			CurrencyFormatCategory result = VALUES_ARRAY[i];
+			if (result.toString().equals(literal)) {
+				return result;
+			}
+		}
+		return null;
+	}
+
+	/**
+	 * Returns the '<em><b>Currency Format Category</b></em>' literal with the specified name.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static CurrencyFormatCategory getByName(String name) {
+		for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+			CurrencyFormatCategory result = VALUES_ARRAY[i];
+			if (result.getName().equals(name)) {
+				return result;
+			}
+		}
+		return null;
+	}
+
+	/**
+	 * Returns the '<em><b>Currency Format Category</b></em>' literal with the specified integer value.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static CurrencyFormatCategory get(int value) {
+		switch (value) {
+			case UNFORMATTED_VALUE: return UNFORMATTED;
+		}
+		return null;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private final int value;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private final String name;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private final String literal;
+
+	/**
+	 * Only this class can construct instances.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private CurrencyFormatCategory(int value, String name, String literal) {
+		this.value = value;
+		this.name = name;
+		this.literal = literal;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public int getValue() {
+	  return value;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getName() {
+	  return name;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getLiteral() {
+	  return literal;
+	}
+
+	/**
+	 * Returns the literal value of the enumerator, which is its string representation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String toString() {
+		return literal;
+	}
+	
+} //CurrencyFormatCategory
diff --git a/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/CurrencyFormatCategoryEnum.java b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/CurrencyFormatCategoryEnum.java
new file mode 100644
index 0000000..55a7375
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/CurrencyFormatCategoryEnum.java
@@ -0,0 +1,244 @@
+/**
+ * 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:  
+ *  		Christophe Loetz  (Loetz GmbH&Co.KG) - Initial implementation 
+ *  
+ */
+package org.eclipse.osbp.xtext.reportdsl;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.emf.common.util.Enumerator;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the literals of the enumeration '<em><b>Currency Format Category Enum</b></em>',
+ * and utility methods for working with them.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.osbp.xtext.reportdsl.ReportDSLPackage#getCurrencyFormatCategoryEnum()
+ * @model
+ * @generated
+ */
+public enum CurrencyFormatCategoryEnum implements Enumerator {
+	/**
+	 * The '<em><b>UNFORMATTED</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #UNFORMATTED_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	UNFORMATTED(0, "UNFORMATTED", "unformatted"),
+
+	/**
+	 * The '<em><b>CURRENCY</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #CURRENCY_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	CURRENCY(0, "CURRENCY", "currency"),
+
+	/**
+	 * The '<em><b>CUSTOM</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #CUSTOM_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	CUSTOM(0, "CUSTOM", "custom");
+
+	/**
+	 * The '<em><b>UNFORMATTED</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>UNFORMATTED</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @see #UNFORMATTED
+	 * @model literal="unformatted"
+	 * @generated
+	 * @ordered
+	 */
+	public static final int UNFORMATTED_VALUE = 0;
+
+	/**
+	 * The '<em><b>CURRENCY</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>CURRENCY</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @see #CURRENCY
+	 * @model literal="currency"
+	 * @generated
+	 * @ordered
+	 */
+	public static final int CURRENCY_VALUE = 0;
+
+	/**
+	 * The '<em><b>CUSTOM</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>CUSTOM</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @see #CUSTOM
+	 * @model literal="custom"
+	 * @generated
+	 * @ordered
+	 */
+	public static final int CUSTOM_VALUE = 0;
+
+	/**
+	 * An array of all the '<em><b>Currency Format Category Enum</b></em>' enumerators.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private static final CurrencyFormatCategoryEnum[] VALUES_ARRAY =
+		new CurrencyFormatCategoryEnum[] {
+			UNFORMATTED,
+			CURRENCY,
+			CUSTOM,
+		};
+
+	/**
+	 * A public read-only list of all the '<em><b>Currency Format Category Enum</b></em>' enumerators.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static final List<CurrencyFormatCategoryEnum> VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
+
+	/**
+	 * Returns the '<em><b>Currency Format Category Enum</b></em>' literal with the specified literal value.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static CurrencyFormatCategoryEnum get(String literal) {
+		for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+			CurrencyFormatCategoryEnum result = VALUES_ARRAY[i];
+			if (result.toString().equals(literal)) {
+				return result;
+			}
+		}
+		return null;
+	}
+
+	/**
+	 * Returns the '<em><b>Currency Format Category Enum</b></em>' literal with the specified name.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static CurrencyFormatCategoryEnum getByName(String name) {
+		for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+			CurrencyFormatCategoryEnum result = VALUES_ARRAY[i];
+			if (result.getName().equals(name)) {
+				return result;
+			}
+		}
+		return null;
+	}
+
+	/**
+	 * Returns the '<em><b>Currency Format Category Enum</b></em>' literal with the specified integer value.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static CurrencyFormatCategoryEnum get(int value) {
+		switch (value) {
+			case UNFORMATTED_VALUE: return UNFORMATTED;
+		}
+		return null;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private final int value;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private final String name;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private final String literal;
+
+	/**
+	 * Only this class can construct instances.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private CurrencyFormatCategoryEnum(int value, String name, String literal) {
+		this.value = value;
+		this.name = name;
+		this.literal = literal;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public int getValue() {
+	  return value;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getName() {
+	  return name;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getLiteral() {
+	  return literal;
+	}
+
+	/**
+	 * Returns the literal value of the enumerator, which is its string representation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String toString() {
+		return literal;
+	}
+	
+} //CurrencyFormatCategoryEnum
diff --git a/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/CustomFontFamily.java b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/CustomFontFamily.java
new file mode 100644
index 0000000..9c4460c
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/CustomFontFamily.java
@@ -0,0 +1,60 @@
+/**
+ * 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:  
+ *  		Christophe Loetz  (Loetz GmbH&Co.KG) - Initial implementation 
+ *  
+ */
+package org.eclipse.osbp.xtext.reportdsl;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Custom Font Family</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.CustomFontFamily#getCustom <em>Custom</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.osbp.xtext.reportdsl.ReportDSLPackage#getCustomFontFamily()
+ * @model
+ * @generated
+ */
+public interface CustomFontFamily extends FontFamily {
+	/**
+	 * Returns the value of the '<em><b>Custom</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Custom</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Custom</em>' attribute.
+	 * @see #setCustom(String)
+	 * @see org.eclipse.osbp.xtext.reportdsl.ReportDSLPackage#getCustomFontFamily_Custom()
+	 * @model unique="false"
+	 * @generated
+	 */
+	String getCustom();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.xtext.reportdsl.CustomFontFamily#getCustom <em>Custom</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Custom</em>' attribute.
+	 * @see #getCustom()
+	 * @generated
+	 */
+	void setCustom(String value);
+
+} // CustomFontFamily
diff --git a/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/DatamartTable.java b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/DatamartTable.java
new file mode 100644
index 0000000..28f88a3
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/DatamartTable.java
@@ -0,0 +1,78 @@
+/**
+ * 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:  
+ *  		Christophe Loetz  (Loetz GmbH&Co.KG) - Initial implementation 
+ *  
+ */
+package org.eclipse.osbp.xtext.reportdsl;
+
+import org.eclipse.emf.common.util.EList;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Datamart Table</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.DatamartTable#getGroups <em>Groups</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.DatamartTable#getDetail <em>Detail</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.osbp.xtext.reportdsl.ReportDSLPackage#getDatamartTable()
+ * @model
+ * @generated
+ */
+public interface DatamartTable extends ReportBase, Element, WithStyle, WithHeaderFooter {
+	/**
+	 * Returns the value of the '<em><b>Groups</b></em>' containment reference list.
+	 * The list contents are of type {@link org.eclipse.osbp.xtext.reportdsl.DatamartTableGroup}.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Groups</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>Groups</em>' containment reference list.
+	 * @see org.eclipse.osbp.xtext.reportdsl.ReportDSLPackage#getDatamartTable_Groups()
+	 * @model containment="true"
+	 * @generated
+	 */
+	EList<DatamartTableGroup> getGroups();
+
+	/**
+	 * Returns the value of the '<em><b>Detail</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Detail</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>Detail</em>' containment reference.
+	 * @see #setDetail(DatamartTableDetail)
+	 * @see org.eclipse.osbp.xtext.reportdsl.ReportDSLPackage#getDatamartTable_Detail()
+	 * @model containment="true"
+	 * @generated
+	 */
+	DatamartTableDetail getDetail();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.xtext.reportdsl.DatamartTable#getDetail <em>Detail</em>}' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Detail</em>' containment reference.
+	 * @see #getDetail()
+	 * @generated
+	 */
+	void setDetail(DatamartTableDetail value);
+
+} // DatamartTable
diff --git a/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/DatamartTableDetail.java b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/DatamartTableDetail.java
new file mode 100644
index 0000000..c8d4778
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/DatamartTableDetail.java
@@ -0,0 +1,51 @@
+/**
+ * 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:  
+ *  		Christophe Loetz  (Loetz GmbH&Co.KG) - Initial implementation 
+ *  
+ */
+package org.eclipse.osbp.xtext.reportdsl;
+
+import org.eclipse.emf.common.util.EList;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Datamart Table Detail</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.DatamartTableDetail#getColumnFormatters <em>Column Formatters</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.osbp.xtext.reportdsl.ReportDSLPackage#getDatamartTableDetail()
+ * @model
+ * @generated
+ */
+public interface DatamartTableDetail extends WithStyle {
+	/**
+	 * Returns the value of the '<em><b>Column Formatters</b></em>' containment reference list.
+	 * The list contents are of type {@link org.eclipse.osbp.xtext.reportdsl.DatamartTableProperty}.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Column Formatters</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>Column Formatters</em>' containment reference list.
+	 * @see org.eclipse.osbp.xtext.reportdsl.ReportDSLPackage#getDatamartTableDetail_ColumnFormatters()
+	 * @model containment="true"
+	 * @generated
+	 */
+	EList<DatamartTableProperty> getColumnFormatters();
+
+} // DatamartTableDetail
diff --git a/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/DatamartTableGroup.java b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/DatamartTableGroup.java
new file mode 100644
index 0000000..57bdeeb
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/DatamartTableGroup.java
@@ -0,0 +1,115 @@
+/**
+ * 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:  
+ *  		Christophe Loetz  (Loetz GmbH&Co.KG) - Initial implementation 
+ *  
+ */
+package org.eclipse.osbp.xtext.reportdsl;
+
+import org.eclipse.osbp.xtext.datamartdsl.DatamartProperty;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Datamart Table Group</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.DatamartTableGroup#getGroupingRef <em>Grouping Ref</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.DatamartTableGroup#getHeader <em>Header</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.DatamartTableGroup#getFooter <em>Footer</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.osbp.xtext.reportdsl.ReportDSLPackage#getDatamartTableGroup()
+ * @model
+ * @generated
+ */
+public interface DatamartTableGroup extends ReportBase, WithHeaderFooter {
+	/**
+	 * Returns the value of the '<em><b>Grouping Ref</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Grouping 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>Grouping Ref</em>' reference.
+	 * @see #setGroupingRef(DatamartProperty)
+	 * @see org.eclipse.osbp.xtext.reportdsl.ReportDSLPackage#getDatamartTableGroup_GroupingRef()
+	 * @model
+	 * @generated
+	 */
+	DatamartProperty getGroupingRef();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.xtext.reportdsl.DatamartTableGroup#getGroupingRef <em>Grouping Ref</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Grouping Ref</em>' reference.
+	 * @see #getGroupingRef()
+	 * @generated
+	 */
+	void setGroupingRef(DatamartProperty value);
+
+	/**
+	 * Returns the value of the '<em><b>Header</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Header</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>Header</em>' containment reference.
+	 * @see #setHeader(DatamartTableGroupHeader)
+	 * @see org.eclipse.osbp.xtext.reportdsl.ReportDSLPackage#getDatamartTableGroup_Header()
+	 * @model containment="true"
+	 * @generated
+	 */
+	DatamartTableGroupHeader getHeader();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.xtext.reportdsl.DatamartTableGroup#getHeader <em>Header</em>}' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Header</em>' containment reference.
+	 * @see #getHeader()
+	 * @generated
+	 */
+	void setHeader(DatamartTableGroupHeader value);
+
+	/**
+	 * Returns the value of the '<em><b>Footer</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Footer</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>Footer</em>' containment reference.
+	 * @see #setFooter(DatamartTableGroupFooter)
+	 * @see org.eclipse.osbp.xtext.reportdsl.ReportDSLPackage#getDatamartTableGroup_Footer()
+	 * @model containment="true"
+	 * @generated
+	 */
+	DatamartTableGroupFooter getFooter();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.xtext.reportdsl.DatamartTableGroup#getFooter <em>Footer</em>}' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Footer</em>' containment reference.
+	 * @see #getFooter()
+	 * @generated
+	 */
+	void setFooter(DatamartTableGroupFooter value);
+
+} // DatamartTableGroup
diff --git a/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/DatamartTableGroupFooter.java b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/DatamartTableGroupFooter.java
new file mode 100644
index 0000000..98407b9
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/DatamartTableGroupFooter.java
@@ -0,0 +1,28 @@
+/**
+ * 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:  
+ *  		Christophe Loetz  (Loetz GmbH&Co.KG) - Initial implementation 
+ *  
+ */
+package org.eclipse.osbp.xtext.reportdsl;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Datamart Table Group Footer</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see org.eclipse.osbp.xtext.reportdsl.ReportDSLPackage#getDatamartTableGroupFooter()
+ * @model
+ * @generated
+ */
+public interface DatamartTableGroupFooter extends Element, SomeGrid, WithStyle {
+} // DatamartTableGroupFooter
diff --git a/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/DatamartTableGroupHeader.java b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/DatamartTableGroupHeader.java
new file mode 100644
index 0000000..5e5db35
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/DatamartTableGroupHeader.java
@@ -0,0 +1,28 @@
+/**
+ * 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:  
+ *  		Christophe Loetz  (Loetz GmbH&Co.KG) - Initial implementation 
+ *  
+ */
+package org.eclipse.osbp.xtext.reportdsl;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Datamart Table Group Header</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see org.eclipse.osbp.xtext.reportdsl.ReportDSLPackage#getDatamartTableGroupHeader()
+ * @model
+ * @generated
+ */
+public interface DatamartTableGroupHeader extends Element, SomeGrid, WithStyle {
+} // DatamartTableGroupHeader
diff --git a/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/DatamartTableProperty.java b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/DatamartTableProperty.java
new file mode 100644
index 0000000..306e134
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/DatamartTableProperty.java
@@ -0,0 +1,207 @@
+/**
+ * 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:  
+ *  		Christophe Loetz  (Loetz GmbH&Co.KG) - Initial implementation 
+ *  
+ */
+package org.eclipse.osbp.xtext.reportdsl;
+
+import org.eclipse.emf.common.util.EList;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Datamart Table Property</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ *  !!! copy from tabledsl ...
+ * <!-- end-model-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.DatamartTableProperty#getColumn <em>Column</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.DatamartTableProperty#getIntervals <em>Intervals</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.DatamartTableProperty#isHideLabelInterval <em>Hide Label Interval</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.DatamartTableProperty#getLookups <em>Lookups</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.DatamartTableProperty#isHideLabelLookup <em>Hide Label Lookup</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.DatamartTableProperty#isHasImage <em>Has Image</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.DatamartTableProperty#getImage <em>Image</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.osbp.xtext.reportdsl.ReportDSLPackage#getDatamartTableProperty()
+ * @model
+ * @generated
+ */
+public interface DatamartTableProperty extends Element, WithStyle {
+	/**
+	 * Returns the value of the '<em><b>Column</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Column</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>Column</em>' containment reference.
+	 * @see #setColumn(TableValueElement)
+	 * @see org.eclipse.osbp.xtext.reportdsl.ReportDSLPackage#getDatamartTableProperty_Column()
+	 * @model containment="true"
+	 * @generated
+	 */
+	TableValueElement getColumn();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.xtext.reportdsl.DatamartTableProperty#getColumn <em>Column</em>}' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Column</em>' containment reference.
+	 * @see #getColumn()
+	 * @generated
+	 */
+	void setColumn(TableValueElement value);
+
+	/**
+	 * Returns the value of the '<em><b>Intervals</b></em>' containment reference list.
+	 * The list contents are of type {@link org.eclipse.osbp.xtext.reportdsl.TableInterval}.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Intervals</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>Intervals</em>' containment reference list.
+	 * @see org.eclipse.osbp.xtext.reportdsl.ReportDSLPackage#getDatamartTableProperty_Intervals()
+	 * @model containment="true"
+	 * @generated
+	 */
+	EList<TableInterval> getIntervals();
+
+	/**
+	 * Returns the value of the '<em><b>Hide Label Interval</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Hide Label Interval</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Hide Label Interval</em>' attribute.
+	 * @see #setHideLabelInterval(boolean)
+	 * @see org.eclipse.osbp.xtext.reportdsl.ReportDSLPackage#getDatamartTableProperty_HideLabelInterval()
+	 * @model unique="false"
+	 * @generated
+	 */
+	boolean isHideLabelInterval();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.xtext.reportdsl.DatamartTableProperty#isHideLabelInterval <em>Hide Label Interval</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Hide Label Interval</em>' attribute.
+	 * @see #isHideLabelInterval()
+	 * @generated
+	 */
+	void setHideLabelInterval(boolean value);
+
+	/**
+	 * Returns the value of the '<em><b>Lookups</b></em>' containment reference list.
+	 * The list contents are of type {@link org.eclipse.osbp.xtext.reportdsl.TableLookup}.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Lookups</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>Lookups</em>' containment reference list.
+	 * @see org.eclipse.osbp.xtext.reportdsl.ReportDSLPackage#getDatamartTableProperty_Lookups()
+	 * @model containment="true"
+	 * @generated
+	 */
+	EList<TableLookup> getLookups();
+
+	/**
+	 * Returns the value of the '<em><b>Hide Label Lookup</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Hide Label Lookup</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Hide Label Lookup</em>' attribute.
+	 * @see #setHideLabelLookup(boolean)
+	 * @see org.eclipse.osbp.xtext.reportdsl.ReportDSLPackage#getDatamartTableProperty_HideLabelLookup()
+	 * @model unique="false"
+	 * @generated
+	 */
+	boolean isHideLabelLookup();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.xtext.reportdsl.DatamartTableProperty#isHideLabelLookup <em>Hide Label Lookup</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Hide Label Lookup</em>' attribute.
+	 * @see #isHideLabelLookup()
+	 * @generated
+	 */
+	void setHideLabelLookup(boolean value);
+
+	/**
+	 * Returns the value of the '<em><b>Has Image</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Has Image</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Has Image</em>' attribute.
+	 * @see #setHasImage(boolean)
+	 * @see org.eclipse.osbp.xtext.reportdsl.ReportDSLPackage#getDatamartTableProperty_HasImage()
+	 * @model unique="false"
+	 * @generated
+	 */
+	boolean isHasImage();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.xtext.reportdsl.DatamartTableProperty#isHasImage <em>Has Image</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Has Image</em>' attribute.
+	 * @see #isHasImage()
+	 * @generated
+	 */
+	void setHasImage(boolean value);
+
+	/**
+	 * Returns the value of the '<em><b>Image</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Image</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>Image</em>' containment reference.
+	 * @see #setImage(TableImage)
+	 * @see org.eclipse.osbp.xtext.reportdsl.ReportDSLPackage#getDatamartTableProperty_Image()
+	 * @model containment="true"
+	 * @generated
+	 */
+	TableImage getImage();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.xtext.reportdsl.DatamartTableProperty#getImage <em>Image</em>}' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Image</em>' containment reference.
+	 * @see #getImage()
+	 * @generated
+	 */
+	void setImage(TableImage value);
+
+} // DatamartTableProperty
diff --git a/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/DateFormat.java b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/DateFormat.java
new file mode 100644
index 0000000..5c899f0
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/DateFormat.java
@@ -0,0 +1,63 @@
+/**
+ * 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:  
+ *  		Christophe Loetz  (Loetz GmbH&Co.KG) - Initial implementation 
+ *  
+ */
+package org.eclipse.osbp.xtext.reportdsl;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Date Format</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.DateFormat#getReport_category <em>Report category</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.osbp.xtext.reportdsl.ReportDSLPackage#getDateFormat()
+ * @model
+ * @generated
+ */
+public interface DateFormat extends SomeFormat {
+	/**
+	 * Returns the value of the '<em><b>Report category</b></em>' attribute.
+	 * The literals are from the enumeration {@link org.eclipse.osbp.xtext.reportdsl.DateFormatCategoryEnum}.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Report category</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Report category</em>' attribute.
+	 * @see org.eclipse.osbp.xtext.reportdsl.DateFormatCategoryEnum
+	 * @see #setReport_category(DateFormatCategoryEnum)
+	 * @see org.eclipse.osbp.xtext.reportdsl.ReportDSLPackage#getDateFormat_Report_category()
+	 * @model unique="false"
+	 * @generated
+	 */
+	DateFormatCategoryEnum getReport_category();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.xtext.reportdsl.DateFormat#getReport_category <em>Report category</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Report category</em>' attribute.
+	 * @see org.eclipse.osbp.xtext.reportdsl.DateFormatCategoryEnum
+	 * @see #getReport_category()
+	 * @generated
+	 */
+	void setReport_category(DateFormatCategoryEnum value);
+
+} // DateFormat
diff --git a/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/DateFormatCategory.java b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/DateFormatCategory.java
new file mode 100644
index 0000000..bba697d
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/DateFormatCategory.java
@@ -0,0 +1,192 @@
+/**
+ * Copyright (c) 2013-2014, 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 
+ * 
+ *  Based on ideas from Xtext, Xtend, Xcore
+ *   
+ *  Contributors:  
+ *  		Christophe Loetz  (Loetz GmbH&Co.KG) - Initial implementation 
+ *  
+ */
+package org.eclipse.osbp.xtext.reportdsl;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.emf.common.util.Enumerator;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the literals of the enumeration '<em><b>Date Format Category</b></em>',
+ * and utility methods for working with them.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.osbp.xtext.reportdsl.ReportDSLPackage#getDateFormatCategory()
+ * @model
+ * @generated
+ */
+public enum DateFormatCategory implements Enumerator {
+	/**
+	 * The '<em><b>CUSTOM</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #CUSTOM_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	CUSTOM(0, "CUSTOM", "custom");
+
+	/**
+	 * The '<em><b>CUSTOM</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>CUSTOM</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @see #CUSTOM
+	 * @model literal="custom"
+	 * @generated
+	 * @ordered
+	 */
+	public static final int CUSTOM_VALUE = 0;
+
+	/**
+	 * An array of all the '<em><b>Date Format Category</b></em>' enumerators.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private static final DateFormatCategory[] VALUES_ARRAY =
+		new DateFormatCategory[] {
+			CUSTOM,
+		};
+
+	/**
+	 * A public read-only list of all the '<em><b>Date Format Category</b></em>' enumerators.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static final List<DateFormatCategory> VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
+
+	/**
+	 * Returns the '<em><b>Date Format Category</b></em>' literal with the specified literal value.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static DateFormatCategory get(String literal) {
+		for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+			DateFormatCategory result = VALUES_ARRAY[i];
+			if (result.toString().equals(literal)) {
+				return result;
+			}
+		}
+		return null;
+	}
+
+	/**
+	 * Returns the '<em><b>Date Format Category</b></em>' literal with the specified name.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static DateFormatCategory getByName(String name) {
+		for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+			DateFormatCategory result = VALUES_ARRAY[i];
+			if (result.getName().equals(name)) {
+				return result;
+			}
+		}
+		return null;
+	}
+
+	/**
+	 * Returns the '<em><b>Date Format Category</b></em>' literal with the specified integer value.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static DateFormatCategory get(int value) {
+		switch (value) {
+			case CUSTOM_VALUE: return CUSTOM;
+		}
+		return null;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private final int value;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private final String name;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private final String literal;
+
+	/**
+	 * Only this class can construct instances.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private DateFormatCategory(int value, String name, String literal) {
+		this.value = value;
+		this.name = name;
+		this.literal = literal;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public int getValue() {
+	  return value;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getName() {
+	  return name;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getLiteral() {
+	  return literal;
+	}
+
+	/**
+	 * Returns the literal value of the enumerator, which is its string representation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String toString() {
+		return literal;
+	}
+	
+} //DateFormatCategory
diff --git a/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/DateFormatCategoryEnum.java b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/DateFormatCategoryEnum.java
new file mode 100644
index 0000000..c60aa2c
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/DateFormatCategoryEnum.java
@@ -0,0 +1,192 @@
+/**
+ * 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:  
+ *  		Christophe Loetz  (Loetz GmbH&Co.KG) - Initial implementation 
+ *  
+ */
+package org.eclipse.osbp.xtext.reportdsl;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.emf.common.util.Enumerator;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the literals of the enumeration '<em><b>Date Format Category Enum</b></em>',
+ * and utility methods for working with them.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.osbp.xtext.reportdsl.ReportDSLPackage#getDateFormatCategoryEnum()
+ * @model
+ * @generated
+ */
+public enum DateFormatCategoryEnum implements Enumerator {
+	/**
+	 * The '<em><b>CUSTOM</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #CUSTOM_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	CUSTOM(0, "CUSTOM", "custom");
+
+	/**
+	 * The '<em><b>CUSTOM</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>CUSTOM</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @see #CUSTOM
+	 * @model literal="custom"
+	 * @generated
+	 * @ordered
+	 */
+	public static final int CUSTOM_VALUE = 0;
+
+	/**
+	 * An array of all the '<em><b>Date Format Category Enum</b></em>' enumerators.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private static final DateFormatCategoryEnum[] VALUES_ARRAY =
+		new DateFormatCategoryEnum[] {
+			CUSTOM,
+		};
+
+	/**
+	 * A public read-only list of all the '<em><b>Date Format Category Enum</b></em>' enumerators.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static final List<DateFormatCategoryEnum> VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
+
+	/**
+	 * Returns the '<em><b>Date Format Category Enum</b></em>' literal with the specified literal value.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static DateFormatCategoryEnum get(String literal) {
+		for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+			DateFormatCategoryEnum result = VALUES_ARRAY[i];
+			if (result.toString().equals(literal)) {
+				return result;
+			}
+		}
+		return null;
+	}
+
+	/**
+	 * Returns the '<em><b>Date Format Category Enum</b></em>' literal with the specified name.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static DateFormatCategoryEnum getByName(String name) {
+		for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+			DateFormatCategoryEnum result = VALUES_ARRAY[i];
+			if (result.getName().equals(name)) {
+				return result;
+			}
+		}
+		return null;
+	}
+
+	/**
+	 * Returns the '<em><b>Date Format Category Enum</b></em>' literal with the specified integer value.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static DateFormatCategoryEnum get(int value) {
+		switch (value) {
+			case CUSTOM_VALUE: return CUSTOM;
+		}
+		return null;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private final int value;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private final String name;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private final String literal;
+
+	/**
+	 * Only this class can construct instances.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private DateFormatCategoryEnum(int value, String name, String literal) {
+		this.value = value;
+		this.name = name;
+		this.literal = literal;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public int getValue() {
+	  return value;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getName() {
+	  return name;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getLiteral() {
+	  return literal;
+	}
+
+	/**
+	 * Returns the literal value of the enumerator, which is its string representation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String toString() {
+		return literal;
+	}
+	
+} //DateFormatCategoryEnum
diff --git a/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/DateTimeFormat.java b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/DateTimeFormat.java
new file mode 100644
index 0000000..c9e8d6d
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/DateTimeFormat.java
@@ -0,0 +1,63 @@
+/**
+ * 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:  
+ *  		Christophe Loetz  (Loetz GmbH&Co.KG) - Initial implementation 
+ *  
+ */
+package org.eclipse.osbp.xtext.reportdsl;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Date Time Format</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.DateTimeFormat#getReport_category <em>Report category</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.osbp.xtext.reportdsl.ReportDSLPackage#getDateTimeFormat()
+ * @model
+ * @generated
+ */
+public interface DateTimeFormat extends SomeFormat {
+	/**
+	 * Returns the value of the '<em><b>Report category</b></em>' attribute.
+	 * The literals are from the enumeration {@link org.eclipse.osbp.xtext.reportdsl.DateTimeFormatCategoryEnum}.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Report category</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Report category</em>' attribute.
+	 * @see org.eclipse.osbp.xtext.reportdsl.DateTimeFormatCategoryEnum
+	 * @see #setReport_category(DateTimeFormatCategoryEnum)
+	 * @see org.eclipse.osbp.xtext.reportdsl.ReportDSLPackage#getDateTimeFormat_Report_category()
+	 * @model unique="false"
+	 * @generated
+	 */
+	DateTimeFormatCategoryEnum getReport_category();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.xtext.reportdsl.DateTimeFormat#getReport_category <em>Report category</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Report category</em>' attribute.
+	 * @see org.eclipse.osbp.xtext.reportdsl.DateTimeFormatCategoryEnum
+	 * @see #getReport_category()
+	 * @generated
+	 */
+	void setReport_category(DateTimeFormatCategoryEnum value);
+
+} // DateTimeFormat
diff --git a/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/DateTimeFormatCategory.java b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/DateTimeFormatCategory.java
new file mode 100644
index 0000000..3f4ace9
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/DateTimeFormatCategory.java
@@ -0,0 +1,192 @@
+/**
+ * Copyright (c) 2013-2014, 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 
+ * 
+ *  Based on ideas from Xtext, Xtend, Xcore
+ *   
+ *  Contributors:  
+ *  		Christophe Loetz  (Loetz GmbH&Co.KG) - Initial implementation 
+ *  
+ */
+package org.eclipse.osbp.xtext.reportdsl;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.emf.common.util.Enumerator;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the literals of the enumeration '<em><b>Date Time Format Category</b></em>',
+ * and utility methods for working with them.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.osbp.xtext.reportdsl.ReportDSLPackage#getDateTimeFormatCategory()
+ * @model
+ * @generated
+ */
+public enum DateTimeFormatCategory implements Enumerator {
+	/**
+	 * The '<em><b>CUSTOM</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #CUSTOM_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	CUSTOM(0, "CUSTOM", "custom");
+
+	/**
+	 * The '<em><b>CUSTOM</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>CUSTOM</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @see #CUSTOM
+	 * @model literal="custom"
+	 * @generated
+	 * @ordered
+	 */
+	public static final int CUSTOM_VALUE = 0;
+
+	/**
+	 * An array of all the '<em><b>Date Time Format Category</b></em>' enumerators.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private static final DateTimeFormatCategory[] VALUES_ARRAY =
+		new DateTimeFormatCategory[] {
+			CUSTOM,
+		};
+
+	/**
+	 * A public read-only list of all the '<em><b>Date Time Format Category</b></em>' enumerators.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static final List<DateTimeFormatCategory> VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
+
+	/**
+	 * Returns the '<em><b>Date Time Format Category</b></em>' literal with the specified literal value.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static DateTimeFormatCategory get(String literal) {
+		for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+			DateTimeFormatCategory result = VALUES_ARRAY[i];
+			if (result.toString().equals(literal)) {
+				return result;
+			}
+		}
+		return null;
+	}
+
+	/**
+	 * Returns the '<em><b>Date Time Format Category</b></em>' literal with the specified name.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static DateTimeFormatCategory getByName(String name) {
+		for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+			DateTimeFormatCategory result = VALUES_ARRAY[i];
+			if (result.getName().equals(name)) {
+				return result;
+			}
+		}
+		return null;
+	}
+
+	/**
+	 * Returns the '<em><b>Date Time Format Category</b></em>' literal with the specified integer value.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static DateTimeFormatCategory get(int value) {
+		switch (value) {
+			case CUSTOM_VALUE: return CUSTOM;
+		}
+		return null;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private final int value;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private final String name;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private final String literal;
+
+	/**
+	 * Only this class can construct instances.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private DateTimeFormatCategory(int value, String name, String literal) {
+		this.value = value;
+		this.name = name;
+		this.literal = literal;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public int getValue() {
+	  return value;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getName() {
+	  return name;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getLiteral() {
+	  return literal;
+	}
+
+	/**
+	 * Returns the literal value of the enumerator, which is its string representation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String toString() {
+		return literal;
+	}
+	
+} //DateTimeFormatCategory
diff --git a/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/DateTimeFormatCategoryEnum.java b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/DateTimeFormatCategoryEnum.java
new file mode 100644
index 0000000..d92bff1
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/DateTimeFormatCategoryEnum.java
@@ -0,0 +1,192 @@
+/**
+ * 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:  
+ *  		Christophe Loetz  (Loetz GmbH&Co.KG) - Initial implementation 
+ *  
+ */
+package org.eclipse.osbp.xtext.reportdsl;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.emf.common.util.Enumerator;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the literals of the enumeration '<em><b>Date Time Format Category Enum</b></em>',
+ * and utility methods for working with them.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.osbp.xtext.reportdsl.ReportDSLPackage#getDateTimeFormatCategoryEnum()
+ * @model
+ * @generated
+ */
+public enum DateTimeFormatCategoryEnum implements Enumerator {
+	/**
+	 * The '<em><b>CUSTOM</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #CUSTOM_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	CUSTOM(0, "CUSTOM", "custom");
+
+	/**
+	 * The '<em><b>CUSTOM</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>CUSTOM</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @see #CUSTOM
+	 * @model literal="custom"
+	 * @generated
+	 * @ordered
+	 */
+	public static final int CUSTOM_VALUE = 0;
+
+	/**
+	 * An array of all the '<em><b>Date Time Format Category Enum</b></em>' enumerators.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private static final DateTimeFormatCategoryEnum[] VALUES_ARRAY =
+		new DateTimeFormatCategoryEnum[] {
+			CUSTOM,
+		};
+
+	/**
+	 * A public read-only list of all the '<em><b>Date Time Format Category Enum</b></em>' enumerators.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static final List<DateTimeFormatCategoryEnum> VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
+
+	/**
+	 * Returns the '<em><b>Date Time Format Category Enum</b></em>' literal with the specified literal value.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static DateTimeFormatCategoryEnum get(String literal) {
+		for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+			DateTimeFormatCategoryEnum result = VALUES_ARRAY[i];
+			if (result.toString().equals(literal)) {
+				return result;
+			}
+		}
+		return null;
+	}
+
+	/**
+	 * Returns the '<em><b>Date Time Format Category Enum</b></em>' literal with the specified name.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static DateTimeFormatCategoryEnum getByName(String name) {
+		for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+			DateTimeFormatCategoryEnum result = VALUES_ARRAY[i];
+			if (result.getName().equals(name)) {
+				return result;
+			}
+		}
+		return null;
+	}
+
+	/**
+	 * Returns the '<em><b>Date Time Format Category Enum</b></em>' literal with the specified integer value.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static DateTimeFormatCategoryEnum get(int value) {
+		switch (value) {
+			case CUSTOM_VALUE: return CUSTOM;
+		}
+		return null;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private final int value;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private final String name;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private final String literal;
+
+	/**
+	 * Only this class can construct instances.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private DateTimeFormatCategoryEnum(int value, String name, String literal) {
+		this.value = value;
+		this.name = name;
+		this.literal = literal;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public int getValue() {
+	  return value;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getName() {
+	  return name;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getLiteral() {
+	  return literal;
+	}
+
+	/**
+	 * Returns the literal value of the enumerator, which is its string representation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String toString() {
+		return literal;
+	}
+	
+} //DateTimeFormatCategoryEnum
diff --git a/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/Element.java b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/Element.java
new file mode 100644
index 0000000..d27ed98
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/Element.java
@@ -0,0 +1,28 @@
+/**
+ * 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:  
+ *  		Christophe Loetz  (Loetz GmbH&Co.KG) - Initial implementation 
+ *  
+ */
+package org.eclipse.osbp.xtext.reportdsl;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Element</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see org.eclipse.osbp.xtext.reportdsl.ReportDSLPackage#getElement()
+ * @model interface="true" abstract="true"
+ * @generated
+ */
+public interface Element extends ReportLazyResolver {
+} // Element
diff --git a/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/Font.java b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/Font.java
new file mode 100644
index 0000000..70059c9
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/Font.java
@@ -0,0 +1,201 @@
+/**
+ * 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:  
+ *  		Christophe Loetz  (Loetz GmbH&Co.KG) - Initial implementation 
+ *  
+ */
+package org.eclipse.osbp.xtext.reportdsl;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Font</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.Font#getExtends <em>Extends</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.Font#getFamily <em>Family</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.Font#getStyle <em>Style</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.Font#isBold <em>Bold</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.Font#getSizevalue <em>Sizevalue</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.Font#getSizeunit <em>Sizeunit</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.osbp.xtext.reportdsl.ReportDSLPackage#getFont()
+ * @model
+ * @generated
+ */
+public interface Font extends ReportBase {
+	/**
+	 * Returns the value of the '<em><b>Extends</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Extends</em>' reference isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Extends</em>' reference.
+	 * @see #setExtends(Font)
+	 * @see org.eclipse.osbp.xtext.reportdsl.ReportDSLPackage#getFont_Extends()
+	 * @model
+	 * @generated
+	 */
+	Font getExtends();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.xtext.reportdsl.Font#getExtends <em>Extends</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Extends</em>' reference.
+	 * @see #getExtends()
+	 * @generated
+	 */
+	void setExtends(Font value);
+
+	/**
+	 * Returns the value of the '<em><b>Family</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Family</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>Family</em>' containment reference.
+	 * @see #setFamily(FontFamily)
+	 * @see org.eclipse.osbp.xtext.reportdsl.ReportDSLPackage#getFont_Family()
+	 * @model containment="true"
+	 * @generated
+	 */
+	FontFamily getFamily();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.xtext.reportdsl.Font#getFamily <em>Family</em>}' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Family</em>' containment reference.
+	 * @see #getFamily()
+	 * @generated
+	 */
+	void setFamily(FontFamily value);
+
+	/**
+	 * Returns the value of the '<em><b>Style</b></em>' attribute.
+	 * The literals are from the enumeration {@link org.eclipse.osbp.xtext.reportdsl.FontStyleEnum}.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Style</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Style</em>' attribute.
+	 * @see org.eclipse.osbp.xtext.reportdsl.FontStyleEnum
+	 * @see #setStyle(FontStyleEnum)
+	 * @see org.eclipse.osbp.xtext.reportdsl.ReportDSLPackage#getFont_Style()
+	 * @model unique="false"
+	 * @generated
+	 */
+	FontStyleEnum getStyle();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.xtext.reportdsl.Font#getStyle <em>Style</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Style</em>' attribute.
+	 * @see org.eclipse.osbp.xtext.reportdsl.FontStyleEnum
+	 * @see #getStyle()
+	 * @generated
+	 */
+	void setStyle(FontStyleEnum value);
+
+	/**
+	 * Returns the value of the '<em><b>Bold</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Bold</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Bold</em>' attribute.
+	 * @see #setBold(boolean)
+	 * @see org.eclipse.osbp.xtext.reportdsl.ReportDSLPackage#getFont_Bold()
+	 * @model unique="false"
+	 * @generated
+	 */
+	boolean isBold();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.xtext.reportdsl.Font#isBold <em>Bold</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Bold</em>' attribute.
+	 * @see #isBold()
+	 * @generated
+	 */
+	void setBold(boolean value);
+
+	/**
+	 * Returns the value of the '<em><b>Sizevalue</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Sizevalue</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Sizevalue</em>' attribute.
+	 * @see #setSizevalue(double)
+	 * @see org.eclipse.osbp.xtext.reportdsl.ReportDSLPackage#getFont_Sizevalue()
+	 * @model unique="false"
+	 * @generated
+	 */
+	double getSizevalue();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.xtext.reportdsl.Font#getSizevalue <em>Sizevalue</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Sizevalue</em>' attribute.
+	 * @see #getSizevalue()
+	 * @generated
+	 */
+	void setSizevalue(double value);
+
+	/**
+	 * Returns the value of the '<em><b>Sizeunit</b></em>' attribute.
+	 * The literals are from the enumeration {@link org.eclipse.osbp.xtext.reportdsl.UnitEnum}.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Sizeunit</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Sizeunit</em>' attribute.
+	 * @see org.eclipse.osbp.xtext.reportdsl.UnitEnum
+	 * @see #setSizeunit(UnitEnum)
+	 * @see org.eclipse.osbp.xtext.reportdsl.ReportDSLPackage#getFont_Sizeunit()
+	 * @model unique="false"
+	 * @generated
+	 */
+	UnitEnum getSizeunit();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.xtext.reportdsl.Font#getSizeunit <em>Sizeunit</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Sizeunit</em>' attribute.
+	 * @see org.eclipse.osbp.xtext.reportdsl.UnitEnum
+	 * @see #getSizeunit()
+	 * @generated
+	 */
+	void setSizeunit(UnitEnum value);
+
+} // Font
diff --git a/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/FontFamily.java b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/FontFamily.java
new file mode 100644
index 0000000..09088f2
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/FontFamily.java
@@ -0,0 +1,28 @@
+/**
+ * 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:  
+ *  		Christophe Loetz  (Loetz GmbH&Co.KG) - Initial implementation 
+ *  
+ */
+package org.eclipse.osbp.xtext.reportdsl;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Font Family</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see org.eclipse.osbp.xtext.reportdsl.ReportDSLPackage#getFontFamily()
+ * @model interface="true" abstract="true"
+ * @generated
+ */
+public interface FontFamily extends ReportLazyResolver {
+} // FontFamily
diff --git a/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/FontStyle.java b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/FontStyle.java
new file mode 100644
index 0000000..1a0eeea
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/FontStyle.java
@@ -0,0 +1,244 @@
+/**
+ * Copyright (c) 2013-2014, 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 
+ * 
+ *  Based on ideas from Xtext, Xtend, Xcore
+ *   
+ *  Contributors:  
+ *  		Christophe Loetz  (Loetz GmbH&Co.KG) - Initial implementation 
+ *  
+ */
+package org.eclipse.osbp.xtext.reportdsl;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.emf.common.util.Enumerator;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the literals of the enumeration '<em><b>Font Style</b></em>',
+ * and utility methods for working with them.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.osbp.xtext.reportdsl.ReportDSLPackage#getFontStyle()
+ * @model
+ * @generated
+ */
+public enum FontStyle implements Enumerator {
+	/**
+	 * The '<em><b>NORMAL</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #NORMAL_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	NORMAL(0, "NORMAL", "normal"),
+
+	/**
+	 * The '<em><b>ITALIC</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #ITALIC_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	ITALIC(0, "ITALIC", "italic"),
+
+	/**
+	 * The '<em><b>OBLIQUE</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #OBLIQUE_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	OBLIQUE(0, "OBLIQUE", "oblique");
+
+	/**
+	 * The '<em><b>NORMAL</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>NORMAL</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @see #NORMAL
+	 * @model literal="normal"
+	 * @generated
+	 * @ordered
+	 */
+	public static final int NORMAL_VALUE = 0;
+
+	/**
+	 * The '<em><b>ITALIC</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>ITALIC</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @see #ITALIC
+	 * @model literal="italic"
+	 * @generated
+	 * @ordered
+	 */
+	public static final int ITALIC_VALUE = 0;
+
+	/**
+	 * The '<em><b>OBLIQUE</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>OBLIQUE</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @see #OBLIQUE
+	 * @model literal="oblique"
+	 * @generated
+	 * @ordered
+	 */
+	public static final int OBLIQUE_VALUE = 0;
+
+	/**
+	 * An array of all the '<em><b>Font Style</b></em>' enumerators.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private static final FontStyle[] VALUES_ARRAY =
+		new FontStyle[] {
+			NORMAL,
+			ITALIC,
+			OBLIQUE,
+		};
+
+	/**
+	 * A public read-only list of all the '<em><b>Font Style</b></em>' enumerators.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static final List<FontStyle> VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
+
+	/**
+	 * Returns the '<em><b>Font Style</b></em>' literal with the specified literal value.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static FontStyle get(String literal) {
+		for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+			FontStyle result = VALUES_ARRAY[i];
+			if (result.toString().equals(literal)) {
+				return result;
+			}
+		}
+		return null;
+	}
+
+	/**
+	 * Returns the '<em><b>Font Style</b></em>' literal with the specified name.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static FontStyle getByName(String name) {
+		for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+			FontStyle result = VALUES_ARRAY[i];
+			if (result.getName().equals(name)) {
+				return result;
+			}
+		}
+		return null;
+	}
+
+	/**
+	 * Returns the '<em><b>Font Style</b></em>' literal with the specified integer value.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static FontStyle get(int value) {
+		switch (value) {
+			case NORMAL_VALUE: return NORMAL;
+		}
+		return null;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private final int value;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private final String name;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private final String literal;
+
+	/**
+	 * Only this class can construct instances.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private FontStyle(int value, String name, String literal) {
+		this.value = value;
+		this.name = name;
+		this.literal = literal;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public int getValue() {
+	  return value;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getName() {
+	  return name;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getLiteral() {
+	  return literal;
+	}
+
+	/**
+	 * Returns the literal value of the enumerator, which is its string representation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String toString() {
+		return literal;
+	}
+	
+} //FontStyle
diff --git a/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/FontStyleEnum.java b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/FontStyleEnum.java
new file mode 100644
index 0000000..f4e6d4b
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/FontStyleEnum.java
@@ -0,0 +1,244 @@
+/**
+ * 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:  
+ *  		Christophe Loetz  (Loetz GmbH&Co.KG) - Initial implementation 
+ *  
+ */
+package org.eclipse.osbp.xtext.reportdsl;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.emf.common.util.Enumerator;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the literals of the enumeration '<em><b>Font Style Enum</b></em>',
+ * and utility methods for working with them.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.osbp.xtext.reportdsl.ReportDSLPackage#getFontStyleEnum()
+ * @model
+ * @generated
+ */
+public enum FontStyleEnum implements Enumerator {
+	/**
+	 * The '<em><b>NORMAL</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #NORMAL_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	NORMAL(0, "NORMAL", "normal"),
+
+	/**
+	 * The '<em><b>ITALIC</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #ITALIC_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	ITALIC(0, "ITALIC", "italic"),
+
+	/**
+	 * The '<em><b>OBLIQUE</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #OBLIQUE_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	OBLIQUE(0, "OBLIQUE", "oblique");
+
+	/**
+	 * The '<em><b>NORMAL</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>NORMAL</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @see #NORMAL
+	 * @model literal="normal"
+	 * @generated
+	 * @ordered
+	 */
+	public static final int NORMAL_VALUE = 0;
+
+	/**
+	 * The '<em><b>ITALIC</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>ITALIC</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @see #ITALIC
+	 * @model literal="italic"
+	 * @generated
+	 * @ordered
+	 */
+	public static final int ITALIC_VALUE = 0;
+
+	/**
+	 * The '<em><b>OBLIQUE</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>OBLIQUE</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @see #OBLIQUE
+	 * @model literal="oblique"
+	 * @generated
+	 * @ordered
+	 */
+	public static final int OBLIQUE_VALUE = 0;
+
+	/**
+	 * An array of all the '<em><b>Font Style Enum</b></em>' enumerators.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private static final FontStyleEnum[] VALUES_ARRAY =
+		new FontStyleEnum[] {
+			NORMAL,
+			ITALIC,
+			OBLIQUE,
+		};
+
+	/**
+	 * A public read-only list of all the '<em><b>Font Style Enum</b></em>' enumerators.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static final List<FontStyleEnum> VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
+
+	/**
+	 * Returns the '<em><b>Font Style Enum</b></em>' literal with the specified literal value.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static FontStyleEnum get(String literal) {
+		for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+			FontStyleEnum result = VALUES_ARRAY[i];
+			if (result.toString().equals(literal)) {
+				return result;
+			}
+		}
+		return null;
+	}
+
+	/**
+	 * Returns the '<em><b>Font Style Enum</b></em>' literal with the specified name.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static FontStyleEnum getByName(String name) {
+		for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+			FontStyleEnum result = VALUES_ARRAY[i];
+			if (result.getName().equals(name)) {
+				return result;
+			}
+		}
+		return null;
+	}
+
+	/**
+	 * Returns the '<em><b>Font Style Enum</b></em>' literal with the specified integer value.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static FontStyleEnum get(int value) {
+		switch (value) {
+			case NORMAL_VALUE: return NORMAL;
+		}
+		return null;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private final int value;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private final String name;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private final String literal;
+
+	/**
+	 * Only this class can construct instances.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private FontStyleEnum(int value, String name, String literal) {
+		this.value = value;
+		this.name = name;
+		this.literal = literal;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public int getValue() {
+	  return value;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getName() {
+	  return name;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getLiteral() {
+	  return literal;
+	}
+
+	/**
+	 * Returns the literal value of the enumerator, which is its string representation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String toString() {
+		return literal;
+	}
+	
+} //FontStyleEnum
diff --git a/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/Fonts.java b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/Fonts.java
new file mode 100644
index 0000000..0aa84fd
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/Fonts.java
@@ -0,0 +1,51 @@
+/**
+ * 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:  
+ *  		Christophe Loetz  (Loetz GmbH&Co.KG) - Initial implementation 
+ *  
+ */
+package org.eclipse.osbp.xtext.reportdsl;
+
+import org.eclipse.emf.common.util.EList;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Fonts</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.Fonts#getFonts <em>Fonts</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.osbp.xtext.reportdsl.ReportDSLPackage#getFonts()
+ * @model
+ * @generated
+ */
+public interface Fonts extends ReportLazyResolver {
+	/**
+	 * Returns the value of the '<em><b>Fonts</b></em>' containment reference list.
+	 * The list contents are of type {@link org.eclipse.osbp.xtext.reportdsl.Font}.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Fonts</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>Fonts</em>' containment reference list.
+	 * @see org.eclipse.osbp.xtext.reportdsl.ReportDSLPackage#getFonts_Fonts()
+	 * @model containment="true"
+	 * @generated
+	 */
+	EList<Font> getFonts();
+
+} // Fonts
diff --git a/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/Grid.java b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/Grid.java
new file mode 100644
index 0000000..d95e770
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/Grid.java
@@ -0,0 +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 
+ * 
+ *  Based on ideas from Xtext, Xtend, Xcore
+ *   
+ *  Contributors:  
+ *  		Christophe Loetz  (Loetz GmbH&Co.KG) - Initial implementation 
+ *  
+ */
+package org.eclipse.osbp.xtext.reportdsl;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Grid</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ *  ... copy from tabledsl !!!
+ * <!-- end-model-doc -->
+ *
+ *
+ * @see org.eclipse.osbp.xtext.reportdsl.ReportDSLPackage#getGrid()
+ * @model
+ * @generated
+ */
+public interface Grid extends ReportBase, Element, SomeGrid {
+} // Grid
diff --git a/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/GridCell.java b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/GridCell.java
new file mode 100644
index 0000000..7eb76eb
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/GridCell.java
@@ -0,0 +1,60 @@
+/**
+ * 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:  
+ *  		Christophe Loetz  (Loetz GmbH&Co.KG) - Initial implementation 
+ *  
+ */
+package org.eclipse.osbp.xtext.reportdsl;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Grid Cell</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.GridCell#getColumnspan <em>Columnspan</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.osbp.xtext.reportdsl.ReportDSLPackage#getGridCell()
+ * @model
+ * @generated
+ */
+public interface GridCell extends ReportBase, Container {
+	/**
+	 * Returns the value of the '<em><b>Columnspan</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Columnspan</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Columnspan</em>' attribute.
+	 * @see #setColumnspan(int)
+	 * @see org.eclipse.osbp.xtext.reportdsl.ReportDSLPackage#getGridCell_Columnspan()
+	 * @model unique="false"
+	 * @generated
+	 */
+	int getColumnspan();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.xtext.reportdsl.GridCell#getColumnspan <em>Columnspan</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Columnspan</em>' attribute.
+	 * @see #getColumnspan()
+	 * @generated
+	 */
+	void setColumnspan(int value);
+
+} // GridCell
diff --git a/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/GridRow.java b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/GridRow.java
new file mode 100644
index 0000000..86b45ff
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/GridRow.java
@@ -0,0 +1,51 @@
+/**
+ * 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:  
+ *  		Christophe Loetz  (Loetz GmbH&Co.KG) - Initial implementation 
+ *  
+ */
+package org.eclipse.osbp.xtext.reportdsl;
+
+import org.eclipse.emf.common.util.EList;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Grid Row</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.GridRow#getCells <em>Cells</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.osbp.xtext.reportdsl.ReportDSLPackage#getGridRow()
+ * @model
+ * @generated
+ */
+public interface GridRow extends ReportBase, WithStyle {
+	/**
+	 * Returns the value of the '<em><b>Cells</b></em>' containment reference list.
+	 * The list contents are of type {@link org.eclipse.osbp.xtext.reportdsl.GridCell}.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Cells</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>Cells</em>' containment reference list.
+	 * @see org.eclipse.osbp.xtext.reportdsl.ReportDSLPackage#getGridRow_Cells()
+	 * @model containment="true"
+	 * @generated
+	 */
+	EList<GridCell> getCells();
+
+} // GridRow
diff --git a/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/Image.java b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/Image.java
new file mode 100644
index 0000000..1a4701a
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/Image.java
@@ -0,0 +1,147 @@
+/**
+ * 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:  
+ *  		Christophe Loetz  (Loetz GmbH&Co.KG) - Initial implementation 
+ *  
+ */
+package org.eclipse.osbp.xtext.reportdsl;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Image</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.Image#getSize <em>Size</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.Image#getScale <em>Scale</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.Image#getSourceType <em>Source Type</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.Image#getFilename <em>Filename</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.osbp.xtext.reportdsl.ReportDSLPackage#getImage()
+ * @model
+ * @generated
+ */
+public interface Image extends Element, WithStyle {
+	/**
+	 * Returns the value of the '<em><b>Size</b></em>' attribute.
+	 * The literals are from the enumeration {@link org.eclipse.osbp.xtext.reportdsl.ImageSizeEnum}.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Size</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Size</em>' attribute.
+	 * @see org.eclipse.osbp.xtext.reportdsl.ImageSizeEnum
+	 * @see #setSize(ImageSizeEnum)
+	 * @see org.eclipse.osbp.xtext.reportdsl.ReportDSLPackage#getImage_Size()
+	 * @model unique="false"
+	 * @generated
+	 */
+	ImageSizeEnum getSize();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.xtext.reportdsl.Image#getSize <em>Size</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Size</em>' attribute.
+	 * @see org.eclipse.osbp.xtext.reportdsl.ImageSizeEnum
+	 * @see #getSize()
+	 * @generated
+	 */
+	void setSize(ImageSizeEnum value);
+
+	/**
+	 * Returns the value of the '<em><b>Scale</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Scale</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Scale</em>' attribute.
+	 * @see #setScale(double)
+	 * @see org.eclipse.osbp.xtext.reportdsl.ReportDSLPackage#getImage_Scale()
+	 * @model unique="false"
+	 * @generated
+	 */
+	double getScale();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.xtext.reportdsl.Image#getScale <em>Scale</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Scale</em>' attribute.
+	 * @see #getScale()
+	 * @generated
+	 */
+	void setScale(double value);
+
+	/**
+	 * Returns the value of the '<em><b>Source Type</b></em>' attribute.
+	 * The literals are from the enumeration {@link org.eclipse.osbp.xtext.reportdsl.ImageSourceEnum}.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Source Type</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Source Type</em>' attribute.
+	 * @see org.eclipse.osbp.xtext.reportdsl.ImageSourceEnum
+	 * @see #setSourceType(ImageSourceEnum)
+	 * @see org.eclipse.osbp.xtext.reportdsl.ReportDSLPackage#getImage_SourceType()
+	 * @model unique="false"
+	 * @generated
+	 */
+	ImageSourceEnum getSourceType();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.xtext.reportdsl.Image#getSourceType <em>Source Type</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Source Type</em>' attribute.
+	 * @see org.eclipse.osbp.xtext.reportdsl.ImageSourceEnum
+	 * @see #getSourceType()
+	 * @generated
+	 */
+	void setSourceType(ImageSourceEnum value);
+
+	/**
+	 * Returns the value of the '<em><b>Filename</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Filename</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Filename</em>' attribute.
+	 * @see #setFilename(String)
+	 * @see org.eclipse.osbp.xtext.reportdsl.ReportDSLPackage#getImage_Filename()
+	 * @model unique="false"
+	 * @generated
+	 */
+	String getFilename();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.xtext.reportdsl.Image#getFilename <em>Filename</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Filename</em>' attribute.
+	 * @see #getFilename()
+	 * @generated
+	 */
+	void setFilename(String value);
+
+} // Image
diff --git a/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/ImageSizeEnum.java b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/ImageSizeEnum.java
new file mode 100644
index 0000000..9e1156d
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/ImageSizeEnum.java
@@ -0,0 +1,244 @@
+/**
+ * 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:  
+ *  		Christophe Loetz  (Loetz GmbH&Co.KG) - Initial implementation 
+ *  
+ */
+package org.eclipse.osbp.xtext.reportdsl;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.emf.common.util.Enumerator;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the literals of the enumeration '<em><b>Image Size Enum</b></em>',
+ * and utility methods for working with them.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.osbp.xtext.reportdsl.ReportDSLPackage#getImageSizeEnum()
+ * @model
+ * @generated
+ */
+public enum ImageSizeEnum implements Enumerator {
+	/**
+	 * The '<em><b>SIZE TO IMAGE</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #SIZE_TO_IMAGE_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	SIZE_TO_IMAGE(0, "SIZE_TO_IMAGE", "size-to-image"),
+
+	/**
+	 * The '<em><b>SCALE TO ITEM</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #SCALE_TO_ITEM_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	SCALE_TO_ITEM(0, "SCALE_TO_ITEM", "scale-to-item"),
+
+	/**
+	 * The '<em><b>CLIP</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #CLIP_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	CLIP(0, "CLIP", "clip");
+
+	/**
+	 * The '<em><b>SIZE TO IMAGE</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>SIZE TO IMAGE</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @see #SIZE_TO_IMAGE
+	 * @model literal="size-to-image"
+	 * @generated
+	 * @ordered
+	 */
+	public static final int SIZE_TO_IMAGE_VALUE = 0;
+
+	/**
+	 * The '<em><b>SCALE TO ITEM</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>SCALE TO ITEM</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @see #SCALE_TO_ITEM
+	 * @model literal="scale-to-item"
+	 * @generated
+	 * @ordered
+	 */
+	public static final int SCALE_TO_ITEM_VALUE = 0;
+
+	/**
+	 * The '<em><b>CLIP</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>CLIP</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @see #CLIP
+	 * @model literal="clip"
+	 * @generated
+	 * @ordered
+	 */
+	public static final int CLIP_VALUE = 0;
+
+	/**
+	 * An array of all the '<em><b>Image Size Enum</b></em>' enumerators.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private static final ImageSizeEnum[] VALUES_ARRAY =
+		new ImageSizeEnum[] {
+			SIZE_TO_IMAGE,
+			SCALE_TO_ITEM,
+			CLIP,
+		};
+
+	/**
+	 * A public read-only list of all the '<em><b>Image Size Enum</b></em>' enumerators.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static final List<ImageSizeEnum> VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
+
+	/**
+	 * Returns the '<em><b>Image Size Enum</b></em>' literal with the specified literal value.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static ImageSizeEnum get(String literal) {
+		for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+			ImageSizeEnum result = VALUES_ARRAY[i];
+			if (result.toString().equals(literal)) {
+				return result;
+			}
+		}
+		return null;
+	}
+
+	/**
+	 * Returns the '<em><b>Image Size Enum</b></em>' literal with the specified name.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static ImageSizeEnum getByName(String name) {
+		for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+			ImageSizeEnum result = VALUES_ARRAY[i];
+			if (result.getName().equals(name)) {
+				return result;
+			}
+		}
+		return null;
+	}
+
+	/**
+	 * Returns the '<em><b>Image Size Enum</b></em>' literal with the specified integer value.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static ImageSizeEnum get(int value) {
+		switch (value) {
+			case SIZE_TO_IMAGE_VALUE: return SIZE_TO_IMAGE;
+		}
+		return null;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private final int value;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private final String name;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private final String literal;
+
+	/**
+	 * Only this class can construct instances.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private ImageSizeEnum(int value, String name, String literal) {
+		this.value = value;
+		this.name = name;
+		this.literal = literal;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public int getValue() {
+	  return value;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getName() {
+	  return name;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getLiteral() {
+	  return literal;
+	}
+
+	/**
+	 * Returns the literal value of the enumerator, which is its string representation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String toString() {
+		return literal;
+	}
+	
+} //ImageSizeEnum
diff --git a/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/ImageSourceEnum.java b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/ImageSourceEnum.java
new file mode 100644
index 0000000..f45a136
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/ImageSourceEnum.java
@@ -0,0 +1,244 @@
+/**
+ * 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:  
+ *  		Christophe Loetz  (Loetz GmbH&Co.KG) - Initial implementation 
+ *  
+ */
+package org.eclipse.osbp.xtext.reportdsl;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.emf.common.util.Enumerator;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the literals of the enumeration '<em><b>Image Source Enum</b></em>',
+ * and utility methods for working with them.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.osbp.xtext.reportdsl.ReportDSLPackage#getImageSourceEnum()
+ * @model
+ * @generated
+ */
+public enum ImageSourceEnum implements Enumerator {
+	/**
+	 * The '<em><b>FILE</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #FILE_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	FILE(0, "FILE", "file"),
+
+	/**
+	 * The '<em><b>URL</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #URL_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	URL(0, "URL", "url"),
+
+	/**
+	 * The '<em><b>EMBED</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #EMBED_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	EMBED(0, "EMBED", "embed");
+
+	/**
+	 * The '<em><b>FILE</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>FILE</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @see #FILE
+	 * @model literal="file"
+	 * @generated
+	 * @ordered
+	 */
+	public static final int FILE_VALUE = 0;
+
+	/**
+	 * The '<em><b>URL</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>URL</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @see #URL
+	 * @model literal="url"
+	 * @generated
+	 * @ordered
+	 */
+	public static final int URL_VALUE = 0;
+
+	/**
+	 * The '<em><b>EMBED</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>EMBED</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @see #EMBED
+	 * @model literal="embed"
+	 * @generated
+	 * @ordered
+	 */
+	public static final int EMBED_VALUE = 0;
+
+	/**
+	 * An array of all the '<em><b>Image Source Enum</b></em>' enumerators.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private static final ImageSourceEnum[] VALUES_ARRAY =
+		new ImageSourceEnum[] {
+			FILE,
+			URL,
+			EMBED,
+		};
+
+	/**
+	 * A public read-only list of all the '<em><b>Image Source Enum</b></em>' enumerators.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static final List<ImageSourceEnum> VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
+
+	/**
+	 * Returns the '<em><b>Image Source Enum</b></em>' literal with the specified literal value.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static ImageSourceEnum get(String literal) {
+		for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+			ImageSourceEnum result = VALUES_ARRAY[i];
+			if (result.toString().equals(literal)) {
+				return result;
+			}
+		}
+		return null;
+	}
+
+	/**
+	 * Returns the '<em><b>Image Source Enum</b></em>' literal with the specified name.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static ImageSourceEnum getByName(String name) {
+		for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+			ImageSourceEnum result = VALUES_ARRAY[i];
+			if (result.getName().equals(name)) {
+				return result;
+			}
+		}
+		return null;
+	}
+
+	/**
+	 * Returns the '<em><b>Image Source Enum</b></em>' literal with the specified integer value.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static ImageSourceEnum get(int value) {
+		switch (value) {
+			case FILE_VALUE: return FILE;
+		}
+		return null;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private final int value;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private final String name;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private final String literal;
+
+	/**
+	 * Only this class can construct instances.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private ImageSourceEnum(int value, String name, String literal) {
+		this.value = value;
+		this.name = name;
+		this.literal = literal;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public int getValue() {
+	  return value;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getName() {
+	  return name;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getLiteral() {
+	  return literal;
+	}
+
+	/**
+	 * Returns the literal value of the enumerator, which is its string representation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String toString() {
+		return literal;
+	}
+	
+} //ImageSourceEnum
diff --git a/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/Label.java b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/Label.java
new file mode 100644
index 0000000..2bd89c8
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/Label.java
@@ -0,0 +1,28 @@
+/**
+ * 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:  
+ *  		Christophe Loetz  (Loetz GmbH&Co.KG) - Initial implementation 
+ *  
+ */
+package org.eclipse.osbp.xtext.reportdsl;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Label</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see org.eclipse.osbp.xtext.reportdsl.ReportDSLPackage#getLabel()
+ * @model
+ * @generated
+ */
+public interface Label extends TextElement {
+} // Label
diff --git a/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/Media.java b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/Media.java
new file mode 100644
index 0000000..305f2b0
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/Media.java
@@ -0,0 +1,28 @@
+/**
+ * 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:  
+ *  		Christophe Loetz  (Loetz GmbH&Co.KG) - Initial implementation 
+ *  
+ */
+package org.eclipse.osbp.xtext.reportdsl;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Media</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see org.eclipse.osbp.xtext.reportdsl.ReportDSLPackage#getMedia()
+ * @model
+ * @generated
+ */
+public interface Media extends ReportBase {
+} // Media
diff --git a/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/MediaStyle.java b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/MediaStyle.java
new file mode 100644
index 0000000..87719fb
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/MediaStyle.java
@@ -0,0 +1,60 @@
+/**
+ * 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:  
+ *  		Christophe Loetz  (Loetz GmbH&Co.KG) - Initial implementation 
+ *  
+ */
+package org.eclipse.osbp.xtext.reportdsl;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Media Style</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.MediaStyle#getMedia <em>Media</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.osbp.xtext.reportdsl.ReportDSLPackage#getMediaStyle()
+ * @model
+ * @generated
+ */
+public interface MediaStyle extends BaseStyle {
+	/**
+	 * Returns the value of the '<em><b>Media</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Media</em>' reference isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Media</em>' reference.
+	 * @see #setMedia(Media)
+	 * @see org.eclipse.osbp.xtext.reportdsl.ReportDSLPackage#getMediaStyle_Media()
+	 * @model
+	 * @generated
+	 */
+	Media getMedia();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.xtext.reportdsl.MediaStyle#getMedia <em>Media</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Media</em>' reference.
+	 * @see #getMedia()
+	 * @generated
+	 */
+	void setMedia(Media value);
+
+} // MediaStyle
diff --git a/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/Medias.java b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/Medias.java
new file mode 100644
index 0000000..e72067a
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/Medias.java
@@ -0,0 +1,51 @@
+/**
+ * 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:  
+ *  		Christophe Loetz  (Loetz GmbH&Co.KG) - Initial implementation 
+ *  
+ */
+package org.eclipse.osbp.xtext.reportdsl;
+
+import org.eclipse.emf.common.util.EList;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Medias</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.Medias#getMedias <em>Medias</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.osbp.xtext.reportdsl.ReportDSLPackage#getMedias()
+ * @model
+ * @generated
+ */
+public interface Medias extends ReportLazyResolver {
+	/**
+	 * Returns the value of the '<em><b>Medias</b></em>' containment reference list.
+	 * The list contents are of type {@link org.eclipse.osbp.xtext.reportdsl.Media}.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Medias</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>Medias</em>' containment reference list.
+	 * @see org.eclipse.osbp.xtext.reportdsl.ReportDSLPackage#getMedias_Medias()
+	 * @model containment="true"
+	 * @generated
+	 */
+	EList<Media> getMedias();
+
+} // Medias
diff --git a/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/MultipleAggregationTypeEnum.java b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/MultipleAggregationTypeEnum.java
new file mode 100644
index 0000000..316ff71
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/MultipleAggregationTypeEnum.java
@@ -0,0 +1,192 @@
+/**
+ * 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:  
+ *  		Christophe Loetz  (Loetz GmbH&Co.KG) - Initial implementation 
+ *  
+ */
+package org.eclipse.osbp.xtext.reportdsl;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.emf.common.util.Enumerator;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the literals of the enumeration '<em><b>Multiple Aggregation Type Enum</b></em>',
+ * and utility methods for working with them.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.osbp.xtext.reportdsl.ReportDSLPackage#getMultipleAggregationTypeEnum()
+ * @model
+ * @generated
+ */
+public enum MultipleAggregationTypeEnum implements Enumerator {
+	/**
+	 * The '<em><b>CONCAT</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #CONCAT_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	CONCAT(0, "CONCAT", "concat");
+
+	/**
+	 * The '<em><b>CONCAT</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>CONCAT</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @see #CONCAT
+	 * @model literal="concat"
+	 * @generated
+	 * @ordered
+	 */
+	public static final int CONCAT_VALUE = 0;
+
+	/**
+	 * An array of all the '<em><b>Multiple Aggregation Type Enum</b></em>' enumerators.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private static final MultipleAggregationTypeEnum[] VALUES_ARRAY =
+		new MultipleAggregationTypeEnum[] {
+			CONCAT,
+		};
+
+	/**
+	 * A public read-only list of all the '<em><b>Multiple Aggregation Type Enum</b></em>' enumerators.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static final List<MultipleAggregationTypeEnum> VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
+
+	/**
+	 * Returns the '<em><b>Multiple Aggregation Type Enum</b></em>' literal with the specified literal value.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static MultipleAggregationTypeEnum get(String literal) {
+		for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+			MultipleAggregationTypeEnum result = VALUES_ARRAY[i];
+			if (result.toString().equals(literal)) {
+				return result;
+			}
+		}
+		return null;
+	}
+
+	/**
+	 * Returns the '<em><b>Multiple Aggregation Type Enum</b></em>' literal with the specified name.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static MultipleAggregationTypeEnum getByName(String name) {
+		for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+			MultipleAggregationTypeEnum result = VALUES_ARRAY[i];
+			if (result.getName().equals(name)) {
+				return result;
+			}
+		}
+		return null;
+	}
+
+	/**
+	 * Returns the '<em><b>Multiple Aggregation Type Enum</b></em>' literal with the specified integer value.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static MultipleAggregationTypeEnum get(int value) {
+		switch (value) {
+			case CONCAT_VALUE: return CONCAT;
+		}
+		return null;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private final int value;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private final String name;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private final String literal;
+
+	/**
+	 * Only this class can construct instances.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private MultipleAggregationTypeEnum(int value, String name, String literal) {
+		this.value = value;
+		this.name = name;
+		this.literal = literal;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public int getValue() {
+	  return value;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getName() {
+	  return name;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getLiteral() {
+	  return literal;
+	}
+
+	/**
+	 * Returns the literal value of the enumerator, which is its string representation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String toString() {
+		return literal;
+	}
+	
+} //MultipleAggregationTypeEnum
diff --git a/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/NumberFormat.java b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/NumberFormat.java
new file mode 100644
index 0000000..b686734
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/NumberFormat.java
@@ -0,0 +1,63 @@
+/**
+ * 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:  
+ *  		Christophe Loetz  (Loetz GmbH&Co.KG) - Initial implementation 
+ *  
+ */
+package org.eclipse.osbp.xtext.reportdsl;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Number Format</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.NumberFormat#getReport_category <em>Report category</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.osbp.xtext.reportdsl.ReportDSLPackage#getNumberFormat()
+ * @model
+ * @generated
+ */
+public interface NumberFormat extends SomeFormat {
+	/**
+	 * Returns the value of the '<em><b>Report category</b></em>' attribute.
+	 * The literals are from the enumeration {@link org.eclipse.osbp.xtext.reportdsl.NumberFormatCategoryEnum}.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Report category</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Report category</em>' attribute.
+	 * @see org.eclipse.osbp.xtext.reportdsl.NumberFormatCategoryEnum
+	 * @see #setReport_category(NumberFormatCategoryEnum)
+	 * @see org.eclipse.osbp.xtext.reportdsl.ReportDSLPackage#getNumberFormat_Report_category()
+	 * @model unique="false"
+	 * @generated
+	 */
+	NumberFormatCategoryEnum getReport_category();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.xtext.reportdsl.NumberFormat#getReport_category <em>Report category</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Report category</em>' attribute.
+	 * @see org.eclipse.osbp.xtext.reportdsl.NumberFormatCategoryEnum
+	 * @see #getReport_category()
+	 * @generated
+	 */
+	void setReport_category(NumberFormatCategoryEnum value);
+
+} // NumberFormat
diff --git a/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/NumberFormatCategory.java b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/NumberFormatCategory.java
new file mode 100644
index 0000000..010b702
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/NumberFormatCategory.java
@@ -0,0 +1,322 @@
+/**
+ * Copyright (c) 2013-2014, 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 
+ * 
+ *  Based on ideas from Xtext, Xtend, Xcore
+ *   
+ *  Contributors:  
+ *  		Christophe Loetz  (Loetz GmbH&Co.KG) - Initial implementation 
+ *  
+ */
+package org.eclipse.osbp.xtext.reportdsl;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.emf.common.util.Enumerator;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the literals of the enumeration '<em><b>Number Format Category</b></em>',
+ * and utility methods for working with them.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.osbp.xtext.reportdsl.ReportDSLPackage#getNumberFormatCategory()
+ * @model
+ * @generated
+ */
+public enum NumberFormatCategory implements Enumerator {
+	/**
+	 * The '<em><b>UNFORMATTED</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #UNFORMATTED_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	UNFORMATTED(0, "UNFORMATTED", "unformatted"),
+
+	/**
+	 * The '<em><b>GENERAL NUMBER</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #GENERAL_NUMBER_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	GENERAL_NUMBER(0, "GENERAL_NUMBER", "general-number"),
+
+	/**
+	 * The '<em><b>FIXED</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #FIXED_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	FIXED(0, "FIXED", "fixed"),
+
+	/**
+	 * The '<em><b>PERCENT</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #PERCENT_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	PERCENT(0, "PERCENT", "percent"),
+
+	/**
+	 * The '<em><b>SCIENTIFIC</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #SCIENTIFIC_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	SCIENTIFIC(0, "SCIENTIFIC", "scientific"),
+
+	/**
+	 * The '<em><b>CUSTOM</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #CUSTOM_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	CUSTOM(0, "CUSTOM", "custom");
+
+	/**
+	 * The '<em><b>UNFORMATTED</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>UNFORMATTED</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @see #UNFORMATTED
+	 * @model literal="unformatted"
+	 * @generated
+	 * @ordered
+	 */
+	public static final int UNFORMATTED_VALUE = 0;
+
+	/**
+	 * The '<em><b>GENERAL NUMBER</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>GENERAL NUMBER</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @see #GENERAL_NUMBER
+	 * @model literal="general-number"
+	 * @generated
+	 * @ordered
+	 */
+	public static final int GENERAL_NUMBER_VALUE = 0;
+
+	/**
+	 * The '<em><b>FIXED</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>FIXED</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @see #FIXED
+	 * @model literal="fixed"
+	 * @generated
+	 * @ordered
+	 */
+	public static final int FIXED_VALUE = 0;
+
+	/**
+	 * The '<em><b>PERCENT</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>PERCENT</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @see #PERCENT
+	 * @model literal="percent"
+	 * @generated
+	 * @ordered
+	 */
+	public static final int PERCENT_VALUE = 0;
+
+	/**
+	 * The '<em><b>SCIENTIFIC</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>SCIENTIFIC</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @see #SCIENTIFIC
+	 * @model literal="scientific"
+	 * @generated
+	 * @ordered
+	 */
+	public static final int SCIENTIFIC_VALUE = 0;
+
+	/**
+	 * The '<em><b>CUSTOM</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>CUSTOM</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @see #CUSTOM
+	 * @model literal="custom"
+	 * @generated
+	 * @ordered
+	 */
+	public static final int CUSTOM_VALUE = 0;
+
+	/**
+	 * An array of all the '<em><b>Number Format Category</b></em>' enumerators.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private static final NumberFormatCategory[] VALUES_ARRAY =
+		new NumberFormatCategory[] {
+			UNFORMATTED,
+			GENERAL_NUMBER,
+			FIXED,
+			PERCENT,
+			SCIENTIFIC,
+			CUSTOM,
+		};
+
+	/**
+	 * A public read-only list of all the '<em><b>Number Format Category</b></em>' enumerators.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static final List<NumberFormatCategory> VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
+
+	/**
+	 * Returns the '<em><b>Number Format Category</b></em>' literal with the specified literal value.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static NumberFormatCategory get(String literal) {
+		for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+			NumberFormatCategory result = VALUES_ARRAY[i];
+			if (result.toString().equals(literal)) {
+				return result;
+			}
+		}
+		return null;
+	}
+
+	/**
+	 * Returns the '<em><b>Number Format Category</b></em>' literal with the specified name.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static NumberFormatCategory getByName(String name) {
+		for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+			NumberFormatCategory result = VALUES_ARRAY[i];
+			if (result.getName().equals(name)) {
+				return result;
+			}
+		}
+		return null;
+	}
+
+	/**
+	 * Returns the '<em><b>Number Format Category</b></em>' literal with the specified integer value.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static NumberFormatCategory get(int value) {
+		switch (value) {
+			case UNFORMATTED_VALUE: return UNFORMATTED;
+		}
+		return null;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private final int value;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private final String name;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private final String literal;
+
+	/**
+	 * Only this class can construct instances.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private NumberFormatCategory(int value, String name, String literal) {
+		this.value = value;
+		this.name = name;
+		this.literal = literal;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public int getValue() {
+	  return value;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getName() {
+	  return name;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getLiteral() {
+	  return literal;
+	}
+
+	/**
+	 * Returns the literal value of the enumerator, which is its string representation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String toString() {
+		return literal;
+	}
+	
+} //NumberFormatCategory
diff --git a/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/NumberFormatCategoryEnum.java b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/NumberFormatCategoryEnum.java
new file mode 100644
index 0000000..a07ad60
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/NumberFormatCategoryEnum.java
@@ -0,0 +1,322 @@
+/**
+ * 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:  
+ *  		Christophe Loetz  (Loetz GmbH&Co.KG) - Initial implementation 
+ *  
+ */
+package org.eclipse.osbp.xtext.reportdsl;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.emf.common.util.Enumerator;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the literals of the enumeration '<em><b>Number Format Category Enum</b></em>',
+ * and utility methods for working with them.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.osbp.xtext.reportdsl.ReportDSLPackage#getNumberFormatCategoryEnum()
+ * @model
+ * @generated
+ */
+public enum NumberFormatCategoryEnum implements Enumerator {
+	/**
+	 * The '<em><b>UNFORMATTED</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #UNFORMATTED_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	UNFORMATTED(0, "UNFORMATTED", "unformatted"),
+
+	/**
+	 * The '<em><b>GENERAL NUMBER</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #GENERAL_NUMBER_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	GENERAL_NUMBER(0, "GENERAL_NUMBER", "general-number"),
+
+	/**
+	 * The '<em><b>FIXED</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #FIXED_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	FIXED(0, "FIXED", "fixed"),
+
+	/**
+	 * The '<em><b>PERCENT</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #PERCENT_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	PERCENT(0, "PERCENT", "percent"),
+
+	/**
+	 * The '<em><b>SCIENTIFIC</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #SCIENTIFIC_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	SCIENTIFIC(0, "SCIENTIFIC", "scientific"),
+
+	/**
+	 * The '<em><b>CUSTOM</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #CUSTOM_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	CUSTOM(0, "CUSTOM", "custom");
+
+	/**
+	 * The '<em><b>UNFORMATTED</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>UNFORMATTED</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @see #UNFORMATTED
+	 * @model literal="unformatted"
+	 * @generated
+	 * @ordered
+	 */
+	public static final int UNFORMATTED_VALUE = 0;
+
+	/**
+	 * The '<em><b>GENERAL NUMBER</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>GENERAL NUMBER</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @see #GENERAL_NUMBER
+	 * @model literal="general-number"
+	 * @generated
+	 * @ordered
+	 */
+	public static final int GENERAL_NUMBER_VALUE = 0;
+
+	/**
+	 * The '<em><b>FIXED</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>FIXED</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @see #FIXED
+	 * @model literal="fixed"
+	 * @generated
+	 * @ordered
+	 */
+	public static final int FIXED_VALUE = 0;
+
+	/**
+	 * The '<em><b>PERCENT</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>PERCENT</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @see #PERCENT
+	 * @model literal="percent"
+	 * @generated
+	 * @ordered
+	 */
+	public static final int PERCENT_VALUE = 0;
+
+	/**
+	 * The '<em><b>SCIENTIFIC</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>SCIENTIFIC</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @see #SCIENTIFIC
+	 * @model literal="scientific"
+	 * @generated
+	 * @ordered
+	 */
+	public static final int SCIENTIFIC_VALUE = 0;
+
+	/**
+	 * The '<em><b>CUSTOM</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>CUSTOM</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @see #CUSTOM
+	 * @model literal="custom"
+	 * @generated
+	 * @ordered
+	 */
+	public static final int CUSTOM_VALUE = 0;
+
+	/**
+	 * An array of all the '<em><b>Number Format Category Enum</b></em>' enumerators.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private static final NumberFormatCategoryEnum[] VALUES_ARRAY =
+		new NumberFormatCategoryEnum[] {
+			UNFORMATTED,
+			GENERAL_NUMBER,
+			FIXED,
+			PERCENT,
+			SCIENTIFIC,
+			CUSTOM,
+		};
+
+	/**
+	 * A public read-only list of all the '<em><b>Number Format Category Enum</b></em>' enumerators.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static final List<NumberFormatCategoryEnum> VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
+
+	/**
+	 * Returns the '<em><b>Number Format Category Enum</b></em>' literal with the specified literal value.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static NumberFormatCategoryEnum get(String literal) {
+		for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+			NumberFormatCategoryEnum result = VALUES_ARRAY[i];
+			if (result.toString().equals(literal)) {
+				return result;
+			}
+		}
+		return null;
+	}
+
+	/**
+	 * Returns the '<em><b>Number Format Category Enum</b></em>' literal with the specified name.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static NumberFormatCategoryEnum getByName(String name) {
+		for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+			NumberFormatCategoryEnum result = VALUES_ARRAY[i];
+			if (result.getName().equals(name)) {
+				return result;
+			}
+		}
+		return null;
+	}
+
+	/**
+	 * Returns the '<em><b>Number Format Category Enum</b></em>' literal with the specified integer value.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static NumberFormatCategoryEnum get(int value) {
+		switch (value) {
+			case UNFORMATTED_VALUE: return UNFORMATTED;
+		}
+		return null;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private final int value;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private final String name;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private final String literal;
+
+	/**
+	 * Only this class can construct instances.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private NumberFormatCategoryEnum(int value, String name, String literal) {
+		this.value = value;
+		this.name = name;
+		this.literal = literal;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public int getValue() {
+	  return value;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getName() {
+	  return name;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getLiteral() {
+	  return literal;
+	}
+
+	/**
+	 * Returns the literal value of the enumerator, which is its string representation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String toString() {
+		return literal;
+	}
+	
+} //NumberFormatCategoryEnum
diff --git a/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/OrientationEnum.java b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/OrientationEnum.java
new file mode 100644
index 0000000..6c8e18c
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/OrientationEnum.java
@@ -0,0 +1,218 @@
+/**
+ * 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:  
+ *  		Christophe Loetz  (Loetz GmbH&Co.KG) - Initial implementation 
+ *  
+ */
+package org.eclipse.osbp.xtext.reportdsl;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.emf.common.util.Enumerator;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the literals of the enumeration '<em><b>Orientation Enum</b></em>',
+ * and utility methods for working with them.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.osbp.xtext.reportdsl.ReportDSLPackage#getOrientationEnum()
+ * @model
+ * @generated
+ */
+public enum OrientationEnum implements Enumerator {
+	/**
+	 * The '<em><b>PORTRAIT</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #PORTRAIT_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	PORTRAIT(0, "PORTRAIT", "portrait"),
+
+	/**
+	 * The '<em><b>LANDSCAPE</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #LANDSCAPE_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	LANDSCAPE(0, "LANDSCAPE", "landscape");
+
+	/**
+	 * The '<em><b>PORTRAIT</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>PORTRAIT</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @see #PORTRAIT
+	 * @model literal="portrait"
+	 * @generated
+	 * @ordered
+	 */
+	public static final int PORTRAIT_VALUE = 0;
+
+	/**
+	 * The '<em><b>LANDSCAPE</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>LANDSCAPE</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @see #LANDSCAPE
+	 * @model literal="landscape"
+	 * @generated
+	 * @ordered
+	 */
+	public static final int LANDSCAPE_VALUE = 0;
+
+	/**
+	 * An array of all the '<em><b>Orientation Enum</b></em>' enumerators.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private static final OrientationEnum[] VALUES_ARRAY =
+		new OrientationEnum[] {
+			PORTRAIT,
+			LANDSCAPE,
+		};
+
+	/**
+	 * A public read-only list of all the '<em><b>Orientation Enum</b></em>' enumerators.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static final List<OrientationEnum> VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
+
+	/**
+	 * Returns the '<em><b>Orientation Enum</b></em>' literal with the specified literal value.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static OrientationEnum get(String literal) {
+		for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+			OrientationEnum result = VALUES_ARRAY[i];
+			if (result.toString().equals(literal)) {
+				return result;
+			}
+		}
+		return null;
+	}
+
+	/**
+	 * Returns the '<em><b>Orientation Enum</b></em>' literal with the specified name.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static OrientationEnum getByName(String name) {
+		for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+			OrientationEnum result = VALUES_ARRAY[i];
+			if (result.getName().equals(name)) {
+				return result;
+			}
+		}
+		return null;
+	}
+
+	/**
+	 * Returns the '<em><b>Orientation Enum</b></em>' literal with the specified integer value.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static OrientationEnum get(int value) {
+		switch (value) {
+			case PORTRAIT_VALUE: return PORTRAIT;
+		}
+		return null;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private final int value;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private final String name;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private final String literal;
+
+	/**
+	 * Only this class can construct instances.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private OrientationEnum(int value, String name, String literal) {
+		this.value = value;
+		this.name = name;
+		this.literal = literal;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public int getValue() {
+	  return value;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getName() {
+	  return name;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getLiteral() {
+	  return literal;
+	}
+
+	/**
+	 * Returns the literal value of the enumerator, which is its string representation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String toString() {
+		return literal;
+	}
+	
+} //OrientationEnum
diff --git a/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/PageDetail.java b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/PageDetail.java
new file mode 100644
index 0000000..5480624
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/PageDetail.java
@@ -0,0 +1,28 @@
+/**
+ * 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:  
+ *  		Christophe Loetz  (Loetz GmbH&Co.KG) - Initial implementation 
+ *  
+ */
+package org.eclipse.osbp.xtext.reportdsl;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Page Detail</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see org.eclipse.osbp.xtext.reportdsl.ReportDSLPackage#getPageDetail()
+ * @model
+ * @generated
+ */
+public interface PageDetail extends Container {
+} // PageDetail
diff --git a/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/PageFooter.java b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/PageFooter.java
new file mode 100644
index 0000000..b57b33f
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/PageFooter.java
@@ -0,0 +1,117 @@
+/**
+ * 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:  
+ *  		Christophe Loetz  (Loetz GmbH&Co.KG) - Initial implementation 
+ *  
+ */
+package org.eclipse.osbp.xtext.reportdsl;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Page Footer</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.PageFooter#isShowOnLast <em>Show On Last</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.PageFooter#getHeightValue <em>Height Value</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.PageFooter#getHeightUnit <em>Height Unit</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.osbp.xtext.reportdsl.ReportDSLPackage#getPageFooter()
+ * @model
+ * @generated
+ */
+public interface PageFooter extends Container {
+	/**
+	 * Returns the value of the '<em><b>Show On Last</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Show On Last</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Show On Last</em>' attribute.
+	 * @see #setShowOnLast(boolean)
+	 * @see org.eclipse.osbp.xtext.reportdsl.ReportDSLPackage#getPageFooter_ShowOnLast()
+	 * @model unique="false"
+	 * @generated
+	 */
+	boolean isShowOnLast();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.xtext.reportdsl.PageFooter#isShowOnLast <em>Show On Last</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Show On Last</em>' attribute.
+	 * @see #isShowOnLast()
+	 * @generated
+	 */
+	void setShowOnLast(boolean value);
+
+	/**
+	 * Returns the value of the '<em><b>Height Value</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Height 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>Height Value</em>' attribute.
+	 * @see #setHeightValue(double)
+	 * @see org.eclipse.osbp.xtext.reportdsl.ReportDSLPackage#getPageFooter_HeightValue()
+	 * @model unique="false"
+	 * @generated
+	 */
+	double getHeightValue();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.xtext.reportdsl.PageFooter#getHeightValue <em>Height Value</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Height Value</em>' attribute.
+	 * @see #getHeightValue()
+	 * @generated
+	 */
+	void setHeightValue(double value);
+
+	/**
+	 * Returns the value of the '<em><b>Height Unit</b></em>' attribute.
+	 * The literals are from the enumeration {@link org.eclipse.osbp.xtext.reportdsl.UnitEnum}.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Height Unit</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Height Unit</em>' attribute.
+	 * @see org.eclipse.osbp.xtext.reportdsl.UnitEnum
+	 * @see #setHeightUnit(UnitEnum)
+	 * @see org.eclipse.osbp.xtext.reportdsl.ReportDSLPackage#getPageFooter_HeightUnit()
+	 * @model unique="false"
+	 * @generated
+	 */
+	UnitEnum getHeightUnit();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.xtext.reportdsl.PageFooter#getHeightUnit <em>Height Unit</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Height Unit</em>' attribute.
+	 * @see org.eclipse.osbp.xtext.reportdsl.UnitEnum
+	 * @see #getHeightUnit()
+	 * @generated
+	 */
+	void setHeightUnit(UnitEnum value);
+
+} // PageFooter
diff --git a/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/PageHeader.java b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/PageHeader.java
new file mode 100644
index 0000000..90bdd73
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/PageHeader.java
@@ -0,0 +1,117 @@
+/**
+ * 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:  
+ *  		Christophe Loetz  (Loetz GmbH&Co.KG) - Initial implementation 
+ *  
+ */
+package org.eclipse.osbp.xtext.reportdsl;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Page Header</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.PageHeader#isShowOnFirst <em>Show On First</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.PageHeader#getHeightValue <em>Height Value</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.PageHeader#getHeightUnit <em>Height Unit</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.osbp.xtext.reportdsl.ReportDSLPackage#getPageHeader()
+ * @model
+ * @generated
+ */
+public interface PageHeader extends Container {
+	/**
+	 * Returns the value of the '<em><b>Show On First</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Show On First</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Show On First</em>' attribute.
+	 * @see #setShowOnFirst(boolean)
+	 * @see org.eclipse.osbp.xtext.reportdsl.ReportDSLPackage#getPageHeader_ShowOnFirst()
+	 * @model unique="false"
+	 * @generated
+	 */
+	boolean isShowOnFirst();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.xtext.reportdsl.PageHeader#isShowOnFirst <em>Show On First</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Show On First</em>' attribute.
+	 * @see #isShowOnFirst()
+	 * @generated
+	 */
+	void setShowOnFirst(boolean value);
+
+	/**
+	 * Returns the value of the '<em><b>Height Value</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Height 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>Height Value</em>' attribute.
+	 * @see #setHeightValue(double)
+	 * @see org.eclipse.osbp.xtext.reportdsl.ReportDSLPackage#getPageHeader_HeightValue()
+	 * @model unique="false"
+	 * @generated
+	 */
+	double getHeightValue();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.xtext.reportdsl.PageHeader#getHeightValue <em>Height Value</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Height Value</em>' attribute.
+	 * @see #getHeightValue()
+	 * @generated
+	 */
+	void setHeightValue(double value);
+
+	/**
+	 * Returns the value of the '<em><b>Height Unit</b></em>' attribute.
+	 * The literals are from the enumeration {@link org.eclipse.osbp.xtext.reportdsl.UnitEnum}.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Height Unit</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Height Unit</em>' attribute.
+	 * @see org.eclipse.osbp.xtext.reportdsl.UnitEnum
+	 * @see #setHeightUnit(UnitEnum)
+	 * @see org.eclipse.osbp.xtext.reportdsl.ReportDSLPackage#getPageHeader_HeightUnit()
+	 * @model unique="false"
+	 * @generated
+	 */
+	UnitEnum getHeightUnit();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.xtext.reportdsl.PageHeader#getHeightUnit <em>Height Unit</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Height Unit</em>' attribute.
+	 * @see org.eclipse.osbp.xtext.reportdsl.UnitEnum
+	 * @see #getHeightUnit()
+	 * @generated
+	 */
+	void setHeightUnit(UnitEnum value);
+
+} // PageHeader
diff --git a/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/PageSizeEnum.java b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/PageSizeEnum.java
new file mode 100644
index 0000000..1d681e5
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/PageSizeEnum.java
@@ -0,0 +1,348 @@
+/**
+ * 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:  
+ *  		Christophe Loetz  (Loetz GmbH&Co.KG) - Initial implementation 
+ *  
+ */
+package org.eclipse.osbp.xtext.reportdsl;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.emf.common.util.Enumerator;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the literals of the enumeration '<em><b>Page Size Enum</b></em>',
+ * and utility methods for working with them.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.osbp.xtext.reportdsl.ReportDSLPackage#getPageSizeEnum()
+ * @model
+ * @generated
+ */
+public enum PageSizeEnum implements Enumerator {
+	/**
+	 * The '<em><b>A4</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #A4_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	A4(0, "A4", "a4"),
+
+	/**
+	 * The '<em><b>A3</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #A3_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	A3(0, "A3", "a3"),
+
+	/**
+	 * The '<em><b>A5</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #A5_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	A5(0, "A5", "a5"),
+
+	/**
+	 * The '<em><b>US LETTER</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #US_LETTER_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	US_LETTER(0, "US_LETTER", "us-letter"),
+
+	/**
+	 * The '<em><b>US LEGAL</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #US_LEGAL_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	US_LEGAL(0, "US_LEGAL", "us-legal"),
+
+	/**
+	 * The '<em><b>US LEDGER</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #US_LEDGER_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	US_LEDGER(0, "US_LEDGER", "us-ledger"),
+
+	/**
+	 * The '<em><b>US SUPER B</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #US_SUPER_B_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	US_SUPER_B(0, "US_SUPER_B", "us-super-b");
+
+	/**
+	 * The '<em><b>A4</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>A4</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @see #A4
+	 * @model literal="a4"
+	 * @generated
+	 * @ordered
+	 */
+	public static final int A4_VALUE = 0;
+
+	/**
+	 * The '<em><b>A3</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>A3</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @see #A3
+	 * @model literal="a3"
+	 * @generated
+	 * @ordered
+	 */
+	public static final int A3_VALUE = 0;
+
+	/**
+	 * The '<em><b>A5</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>A5</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @see #A5
+	 * @model literal="a5"
+	 * @generated
+	 * @ordered
+	 */
+	public static final int A5_VALUE = 0;
+
+	/**
+	 * The '<em><b>US LETTER</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>US LETTER</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @see #US_LETTER
+	 * @model literal="us-letter"
+	 * @generated
+	 * @ordered
+	 */
+	public static final int US_LETTER_VALUE = 0;
+
+	/**
+	 * The '<em><b>US LEGAL</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>US LEGAL</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @see #US_LEGAL
+	 * @model literal="us-legal"
+	 * @generated
+	 * @ordered
+	 */
+	public static final int US_LEGAL_VALUE = 0;
+
+	/**
+	 * The '<em><b>US LEDGER</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>US LEDGER</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @see #US_LEDGER
+	 * @model literal="us-ledger"
+	 * @generated
+	 * @ordered
+	 */
+	public static final int US_LEDGER_VALUE = 0;
+
+	/**
+	 * The '<em><b>US SUPER B</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>US SUPER B</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @see #US_SUPER_B
+	 * @model literal="us-super-b"
+	 * @generated
+	 * @ordered
+	 */
+	public static final int US_SUPER_B_VALUE = 0;
+
+	/**
+	 * An array of all the '<em><b>Page Size Enum</b></em>' enumerators.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private static final PageSizeEnum[] VALUES_ARRAY =
+		new PageSizeEnum[] {
+			A4,
+			A3,
+			A5,
+			US_LETTER,
+			US_LEGAL,
+			US_LEDGER,
+			US_SUPER_B,
+		};
+
+	/**
+	 * A public read-only list of all the '<em><b>Page Size Enum</b></em>' enumerators.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static final List<PageSizeEnum> VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
+
+	/**
+	 * Returns the '<em><b>Page Size Enum</b></em>' literal with the specified literal value.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static PageSizeEnum get(String literal) {
+		for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+			PageSizeEnum result = VALUES_ARRAY[i];
+			if (result.toString().equals(literal)) {
+				return result;
+			}
+		}
+		return null;
+	}
+
+	/**
+	 * Returns the '<em><b>Page Size Enum</b></em>' literal with the specified name.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static PageSizeEnum getByName(String name) {
+		for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+			PageSizeEnum result = VALUES_ARRAY[i];
+			if (result.getName().equals(name)) {
+				return result;
+			}
+		}
+		return null;
+	}
+
+	/**
+	 * Returns the '<em><b>Page Size Enum</b></em>' literal with the specified integer value.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static PageSizeEnum get(int value) {
+		switch (value) {
+			case A4_VALUE: return A4;
+		}
+		return null;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private final int value;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private final String name;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private final String literal;
+
+	/**
+	 * Only this class can construct instances.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private PageSizeEnum(int value, String name, String literal) {
+		this.value = value;
+		this.name = name;
+		this.literal = literal;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public int getValue() {
+	  return value;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getName() {
+	  return name;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getLiteral() {
+	  return literal;
+	}
+
+	/**
+	 * Returns the literal value of the enumerator, which is its string representation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String toString() {
+		return literal;
+	}
+	
+} //PageSizeEnum
diff --git a/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/PageTemplate.java b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/PageTemplate.java
new file mode 100644
index 0000000..892f764
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/PageTemplate.java
@@ -0,0 +1,375 @@
+/**
+ * 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:  
+ *  		Christophe Loetz  (Loetz GmbH&Co.KG) - Initial implementation 
+ *  
+ */
+package org.eclipse.osbp.xtext.reportdsl;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Page Template</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.PageTemplate#getSize <em>Size</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.PageTemplate#getOrientation <em>Orientation</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.PageTemplate#getTopMarginValue <em>Top Margin Value</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.PageTemplate#getTopMarginUnit <em>Top Margin Unit</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.PageTemplate#getLeftMarginValue <em>Left Margin Value</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.PageTemplate#getLeftMarginUnit <em>Left Margin Unit</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.PageTemplate#getBottomMarginValue <em>Bottom Margin Value</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.PageTemplate#getBottomMarginUnit <em>Bottom Margin Unit</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.PageTemplate#getRightMarginValue <em>Right Margin Value</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.PageTemplate#getRightMarginUnit <em>Right Margin Unit</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.PageTemplate#getHeader <em>Header</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.PageTemplate#getFooter <em>Footer</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.osbp.xtext.reportdsl.ReportDSLPackage#getPageTemplate()
+ * @model
+ * @generated
+ */
+public interface PageTemplate extends ReportBase {
+	/**
+	 * Returns the value of the '<em><b>Size</b></em>' attribute.
+	 * The literals are from the enumeration {@link org.eclipse.osbp.xtext.reportdsl.PageSizeEnum}.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Size</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Size</em>' attribute.
+	 * @see org.eclipse.osbp.xtext.reportdsl.PageSizeEnum
+	 * @see #setSize(PageSizeEnum)
+	 * @see org.eclipse.osbp.xtext.reportdsl.ReportDSLPackage#getPageTemplate_Size()
+	 * @model unique="false"
+	 * @generated
+	 */
+	PageSizeEnum getSize();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.xtext.reportdsl.PageTemplate#getSize <em>Size</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Size</em>' attribute.
+	 * @see org.eclipse.osbp.xtext.reportdsl.PageSizeEnum
+	 * @see #getSize()
+	 * @generated
+	 */
+	void setSize(PageSizeEnum value);
+
+	/**
+	 * Returns the value of the '<em><b>Orientation</b></em>' attribute.
+	 * The literals are from the enumeration {@link org.eclipse.osbp.xtext.reportdsl.OrientationEnum}.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Orientation</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Orientation</em>' attribute.
+	 * @see org.eclipse.osbp.xtext.reportdsl.OrientationEnum
+	 * @see #setOrientation(OrientationEnum)
+	 * @see org.eclipse.osbp.xtext.reportdsl.ReportDSLPackage#getPageTemplate_Orientation()
+	 * @model unique="false"
+	 * @generated
+	 */
+	OrientationEnum getOrientation();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.xtext.reportdsl.PageTemplate#getOrientation <em>Orientation</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Orientation</em>' attribute.
+	 * @see org.eclipse.osbp.xtext.reportdsl.OrientationEnum
+	 * @see #getOrientation()
+	 * @generated
+	 */
+	void setOrientation(OrientationEnum value);
+
+	/**
+	 * Returns the value of the '<em><b>Top Margin Value</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Top Margin 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>Top Margin Value</em>' attribute.
+	 * @see #setTopMarginValue(double)
+	 * @see org.eclipse.osbp.xtext.reportdsl.ReportDSLPackage#getPageTemplate_TopMarginValue()
+	 * @model unique="false"
+	 * @generated
+	 */
+	double getTopMarginValue();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.xtext.reportdsl.PageTemplate#getTopMarginValue <em>Top Margin Value</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Top Margin Value</em>' attribute.
+	 * @see #getTopMarginValue()
+	 * @generated
+	 */
+	void setTopMarginValue(double value);
+
+	/**
+	 * Returns the value of the '<em><b>Top Margin Unit</b></em>' attribute.
+	 * The literals are from the enumeration {@link org.eclipse.osbp.xtext.reportdsl.UnitEnum}.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Top Margin Unit</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Top Margin Unit</em>' attribute.
+	 * @see org.eclipse.osbp.xtext.reportdsl.UnitEnum
+	 * @see #setTopMarginUnit(UnitEnum)
+	 * @see org.eclipse.osbp.xtext.reportdsl.ReportDSLPackage#getPageTemplate_TopMarginUnit()
+	 * @model unique="false"
+	 * @generated
+	 */
+	UnitEnum getTopMarginUnit();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.xtext.reportdsl.PageTemplate#getTopMarginUnit <em>Top Margin Unit</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Top Margin Unit</em>' attribute.
+	 * @see org.eclipse.osbp.xtext.reportdsl.UnitEnum
+	 * @see #getTopMarginUnit()
+	 * @generated
+	 */
+	void setTopMarginUnit(UnitEnum value);
+
+	/**
+	 * Returns the value of the '<em><b>Left Margin Value</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Left Margin 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>Left Margin Value</em>' attribute.
+	 * @see #setLeftMarginValue(double)
+	 * @see org.eclipse.osbp.xtext.reportdsl.ReportDSLPackage#getPageTemplate_LeftMarginValue()
+	 * @model unique="false"
+	 * @generated
+	 */
+	double getLeftMarginValue();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.xtext.reportdsl.PageTemplate#getLeftMarginValue <em>Left Margin Value</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Left Margin Value</em>' attribute.
+	 * @see #getLeftMarginValue()
+	 * @generated
+	 */
+	void setLeftMarginValue(double value);
+
+	/**
+	 * Returns the value of the '<em><b>Left Margin Unit</b></em>' attribute.
+	 * The literals are from the enumeration {@link org.eclipse.osbp.xtext.reportdsl.UnitEnum}.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Left Margin Unit</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Left Margin Unit</em>' attribute.
+	 * @see org.eclipse.osbp.xtext.reportdsl.UnitEnum
+	 * @see #setLeftMarginUnit(UnitEnum)
+	 * @see org.eclipse.osbp.xtext.reportdsl.ReportDSLPackage#getPageTemplate_LeftMarginUnit()
+	 * @model unique="false"
+	 * @generated
+	 */
+	UnitEnum getLeftMarginUnit();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.xtext.reportdsl.PageTemplate#getLeftMarginUnit <em>Left Margin Unit</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Left Margin Unit</em>' attribute.
+	 * @see org.eclipse.osbp.xtext.reportdsl.UnitEnum
+	 * @see #getLeftMarginUnit()
+	 * @generated
+	 */
+	void setLeftMarginUnit(UnitEnum value);
+
+	/**
+	 * Returns the value of the '<em><b>Bottom Margin Value</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Bottom Margin 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>Bottom Margin Value</em>' attribute.
+	 * @see #setBottomMarginValue(double)
+	 * @see org.eclipse.osbp.xtext.reportdsl.ReportDSLPackage#getPageTemplate_BottomMarginValue()
+	 * @model unique="false"
+	 * @generated
+	 */
+	double getBottomMarginValue();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.xtext.reportdsl.PageTemplate#getBottomMarginValue <em>Bottom Margin Value</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Bottom Margin Value</em>' attribute.
+	 * @see #getBottomMarginValue()
+	 * @generated
+	 */
+	void setBottomMarginValue(double value);
+
+	/**
+	 * Returns the value of the '<em><b>Bottom Margin Unit</b></em>' attribute.
+	 * The literals are from the enumeration {@link org.eclipse.osbp.xtext.reportdsl.UnitEnum}.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Bottom Margin Unit</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Bottom Margin Unit</em>' attribute.
+	 * @see org.eclipse.osbp.xtext.reportdsl.UnitEnum
+	 * @see #setBottomMarginUnit(UnitEnum)
+	 * @see org.eclipse.osbp.xtext.reportdsl.ReportDSLPackage#getPageTemplate_BottomMarginUnit()
+	 * @model unique="false"
+	 * @generated
+	 */
+	UnitEnum getBottomMarginUnit();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.xtext.reportdsl.PageTemplate#getBottomMarginUnit <em>Bottom Margin Unit</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Bottom Margin Unit</em>' attribute.
+	 * @see org.eclipse.osbp.xtext.reportdsl.UnitEnum
+	 * @see #getBottomMarginUnit()
+	 * @generated
+	 */
+	void setBottomMarginUnit(UnitEnum value);
+
+	/**
+	 * Returns the value of the '<em><b>Right Margin Value</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Right Margin 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>Right Margin Value</em>' attribute.
+	 * @see #setRightMarginValue(double)
+	 * @see org.eclipse.osbp.xtext.reportdsl.ReportDSLPackage#getPageTemplate_RightMarginValue()
+	 * @model unique="false"
+	 * @generated
+	 */
+	double getRightMarginValue();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.xtext.reportdsl.PageTemplate#getRightMarginValue <em>Right Margin Value</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Right Margin Value</em>' attribute.
+	 * @see #getRightMarginValue()
+	 * @generated
+	 */
+	void setRightMarginValue(double value);
+
+	/**
+	 * Returns the value of the '<em><b>Right Margin Unit</b></em>' attribute.
+	 * The literals are from the enumeration {@link org.eclipse.osbp.xtext.reportdsl.UnitEnum}.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Right Margin Unit</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Right Margin Unit</em>' attribute.
+	 * @see org.eclipse.osbp.xtext.reportdsl.UnitEnum
+	 * @see #setRightMarginUnit(UnitEnum)
+	 * @see org.eclipse.osbp.xtext.reportdsl.ReportDSLPackage#getPageTemplate_RightMarginUnit()
+	 * @model unique="false"
+	 * @generated
+	 */
+	UnitEnum getRightMarginUnit();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.xtext.reportdsl.PageTemplate#getRightMarginUnit <em>Right Margin Unit</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Right Margin Unit</em>' attribute.
+	 * @see org.eclipse.osbp.xtext.reportdsl.UnitEnum
+	 * @see #getRightMarginUnit()
+	 * @generated
+	 */
+	void setRightMarginUnit(UnitEnum value);
+
+	/**
+	 * Returns the value of the '<em><b>Header</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Header</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>Header</em>' containment reference.
+	 * @see #setHeader(PageHeader)
+	 * @see org.eclipse.osbp.xtext.reportdsl.ReportDSLPackage#getPageTemplate_Header()
+	 * @model containment="true"
+	 * @generated
+	 */
+	PageHeader getHeader();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.xtext.reportdsl.PageTemplate#getHeader <em>Header</em>}' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Header</em>' containment reference.
+	 * @see #getHeader()
+	 * @generated
+	 */
+	void setHeader(PageHeader value);
+
+	/**
+	 * Returns the value of the '<em><b>Footer</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Footer</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>Footer</em>' containment reference.
+	 * @see #setFooter(PageFooter)
+	 * @see org.eclipse.osbp.xtext.reportdsl.ReportDSLPackage#getPageTemplate_Footer()
+	 * @model containment="true"
+	 * @generated
+	 */
+	PageFooter getFooter();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.xtext.reportdsl.PageTemplate#getFooter <em>Footer</em>}' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Footer</em>' containment reference.
+	 * @see #getFooter()
+	 * @generated
+	 */
+	void setFooter(PageFooter value);
+
+} // PageTemplate
diff --git a/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/PageTemplates.java b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/PageTemplates.java
new file mode 100644
index 0000000..0351b18
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/PageTemplates.java
@@ -0,0 +1,51 @@
+/**
+ * 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:  
+ *  		Christophe Loetz  (Loetz GmbH&Co.KG) - Initial implementation 
+ *  
+ */
+package org.eclipse.osbp.xtext.reportdsl;
+
+import org.eclipse.emf.common.util.EList;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Page Templates</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.PageTemplates#getPagetemplates <em>Pagetemplates</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.osbp.xtext.reportdsl.ReportDSLPackage#getPageTemplates()
+ * @model
+ * @generated
+ */
+public interface PageTemplates extends ReportLazyResolver {
+	/**
+	 * Returns the value of the '<em><b>Pagetemplates</b></em>' containment reference list.
+	 * The list contents are of type {@link org.eclipse.osbp.xtext.reportdsl.PageTemplate}.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Pagetemplates</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>Pagetemplates</em>' containment reference list.
+	 * @see org.eclipse.osbp.xtext.reportdsl.ReportDSLPackage#getPageTemplates_Pagetemplates()
+	 * @model containment="true"
+	 * @generated
+	 */
+	EList<PageTemplate> getPagetemplates();
+
+} // PageTemplates
diff --git a/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/PureAggregationTypeEnum.java b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/PureAggregationTypeEnum.java
new file mode 100644
index 0000000..8311d06
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/PureAggregationTypeEnum.java
@@ -0,0 +1,218 @@
+/**
+ * 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:  
+ *  		Christophe Loetz  (Loetz GmbH&Co.KG) - Initial implementation 
+ *  
+ */
+package org.eclipse.osbp.xtext.reportdsl;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.emf.common.util.Enumerator;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the literals of the enumeration '<em><b>Pure Aggregation Type Enum</b></em>',
+ * and utility methods for working with them.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.osbp.xtext.reportdsl.ReportDSLPackage#getPureAggregationTypeEnum()
+ * @model
+ * @generated
+ */
+public enum PureAggregationTypeEnum implements Enumerator {
+	/**
+	 * The '<em><b>COUNT</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #COUNT_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	COUNT(0, "COUNT", "count"),
+
+	/**
+	 * The '<em><b>RUNNINGCOUNT</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #RUNNINGCOUNT_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	RUNNINGCOUNT(0, "RUNNINGCOUNT", "running-count");
+
+	/**
+	 * The '<em><b>COUNT</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>COUNT</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @see #COUNT
+	 * @model literal="count"
+	 * @generated
+	 * @ordered
+	 */
+	public static final int COUNT_VALUE = 0;
+
+	/**
+	 * The '<em><b>RUNNINGCOUNT</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>RUNNINGCOUNT</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @see #RUNNINGCOUNT
+	 * @model literal="running-count"
+	 * @generated
+	 * @ordered
+	 */
+	public static final int RUNNINGCOUNT_VALUE = 0;
+
+	/**
+	 * An array of all the '<em><b>Pure Aggregation Type Enum</b></em>' enumerators.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private static final PureAggregationTypeEnum[] VALUES_ARRAY =
+		new PureAggregationTypeEnum[] {
+			COUNT,
+			RUNNINGCOUNT,
+		};
+
+	/**
+	 * A public read-only list of all the '<em><b>Pure Aggregation Type Enum</b></em>' enumerators.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static final List<PureAggregationTypeEnum> VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
+
+	/**
+	 * Returns the '<em><b>Pure Aggregation Type Enum</b></em>' literal with the specified literal value.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static PureAggregationTypeEnum get(String literal) {
+		for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+			PureAggregationTypeEnum result = VALUES_ARRAY[i];
+			if (result.toString().equals(literal)) {
+				return result;
+			}
+		}
+		return null;
+	}
+
+	/**
+	 * Returns the '<em><b>Pure Aggregation Type Enum</b></em>' literal with the specified name.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static PureAggregationTypeEnum getByName(String name) {
+		for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+			PureAggregationTypeEnum result = VALUES_ARRAY[i];
+			if (result.getName().equals(name)) {
+				return result;
+			}
+		}
+		return null;
+	}
+
+	/**
+	 * Returns the '<em><b>Pure Aggregation Type Enum</b></em>' literal with the specified integer value.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static PureAggregationTypeEnum get(int value) {
+		switch (value) {
+			case COUNT_VALUE: return COUNT;
+		}
+		return null;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private final int value;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private final String name;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private final String literal;
+
+	/**
+	 * Only this class can construct instances.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private PureAggregationTypeEnum(int value, String name, String literal) {
+		this.value = value;
+		this.name = name;
+		this.literal = literal;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public int getValue() {
+	  return value;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getName() {
+	  return name;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getLiteral() {
+	  return literal;
+	}
+
+	/**
+	 * Returns the literal value of the enumerator, which is its string representation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String toString() {
+		return literal;
+	}
+	
+} //PureAggregationTypeEnum
diff --git a/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/RenderingEnum.java b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/RenderingEnum.java
new file mode 100644
index 0000000..2db3ccd
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/RenderingEnum.java
@@ -0,0 +1,218 @@
+/**
+ * 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:  
+ *  		Christophe Loetz  (Loetz GmbH&Co.KG) - Initial implementation 
+ *  
+ */
+package org.eclipse.osbp.xtext.reportdsl;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.emf.common.util.Enumerator;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the literals of the enumeration '<em><b>Rendering Enum</b></em>',
+ * and utility methods for working with them.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.osbp.xtext.reportdsl.ReportDSLPackage#getRenderingEnum()
+ * @model
+ * @generated
+ */
+public enum RenderingEnum implements Enumerator {
+	/**
+	 * The '<em><b>HTML</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #HTML_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	HTML(0, "HTML", "html"),
+
+	/**
+	 * The '<em><b>PDF</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #PDF_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	PDF(0, "PDF", "pdf");
+
+	/**
+	 * The '<em><b>HTML</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>HTML</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @see #HTML
+	 * @model literal="html"
+	 * @generated
+	 * @ordered
+	 */
+	public static final int HTML_VALUE = 0;
+
+	/**
+	 * The '<em><b>PDF</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>PDF</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @see #PDF
+	 * @model literal="pdf"
+	 * @generated
+	 * @ordered
+	 */
+	public static final int PDF_VALUE = 0;
+
+	/**
+	 * An array of all the '<em><b>Rendering Enum</b></em>' enumerators.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private static final RenderingEnum[] VALUES_ARRAY =
+		new RenderingEnum[] {
+			HTML,
+			PDF,
+		};
+
+	/**
+	 * A public read-only list of all the '<em><b>Rendering Enum</b></em>' enumerators.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static final List<RenderingEnum> VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
+
+	/**
+	 * Returns the '<em><b>Rendering Enum</b></em>' literal with the specified literal value.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static RenderingEnum get(String literal) {
+		for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+			RenderingEnum result = VALUES_ARRAY[i];
+			if (result.toString().equals(literal)) {
+				return result;
+			}
+		}
+		return null;
+	}
+
+	/**
+	 * Returns the '<em><b>Rendering Enum</b></em>' literal with the specified name.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static RenderingEnum getByName(String name) {
+		for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+			RenderingEnum result = VALUES_ARRAY[i];
+			if (result.getName().equals(name)) {
+				return result;
+			}
+		}
+		return null;
+	}
+
+	/**
+	 * Returns the '<em><b>Rendering Enum</b></em>' literal with the specified integer value.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static RenderingEnum get(int value) {
+		switch (value) {
+			case HTML_VALUE: return HTML;
+		}
+		return null;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private final int value;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private final String name;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private final String literal;
+
+	/**
+	 * Only this class can construct instances.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private RenderingEnum(int value, String name, String literal) {
+		this.value = value;
+		this.name = name;
+		this.literal = literal;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public int getValue() {
+	  return value;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getName() {
+	  return name;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getLiteral() {
+	  return literal;
+	}
+
+	/**
+	 * Returns the literal value of the enumerator, which is its string representation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String toString() {
+		return literal;
+	}
+	
+} //RenderingEnum
diff --git a/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/Report.java b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/Report.java
new file mode 100644
index 0000000..0ee4a91
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/Report.java
@@ -0,0 +1,309 @@
+/**
+ * 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:  
+ *  		Christophe Loetz  (Loetz GmbH&Co.KG) - Initial implementation 
+ *  
+ */
+package org.eclipse.osbp.xtext.reportdsl;
+
+import org.eclipse.osbp.xtext.action.ActionToolbar;
+
+import org.eclipse.osbp.xtext.datamartdsl.DatamartDefinition;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Report</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.Report#isDescription <em>Description</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.Report#getDescriptionValue <em>Description Value</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.Report#getDatamartRef <em>Datamart Ref</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.Report#getRendering <em>Rendering</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.Report#getExternalCssURI <em>External Css URI</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.Report#getExternalCssURIBundle <em>External Css URI Bundle</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.Report#getPageTemplate <em>Page Template</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.Report#getMedia <em>Media</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.Report#getToolbar <em>Toolbar</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.Report#getDesign <em>Design</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.osbp.xtext.reportdsl.ReportDSLPackage#getReport()
+ * @model
+ * @generated
+ */
+public interface Report extends ReportBase {
+	/**
+	 * Returns the value of the '<em><b>Description</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Description</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Description</em>' attribute.
+	 * @see #setDescription(boolean)
+	 * @see org.eclipse.osbp.xtext.reportdsl.ReportDSLPackage#getReport_Description()
+	 * @model unique="false"
+	 * @generated
+	 */
+	boolean isDescription();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.xtext.reportdsl.Report#isDescription <em>Description</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Description</em>' attribute.
+	 * @see #isDescription()
+	 * @generated
+	 */
+	void setDescription(boolean value);
+
+	/**
+	 * Returns the value of the '<em><b>Description Value</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Description 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>Description Value</em>' attribute.
+	 * @see #setDescriptionValue(String)
+	 * @see org.eclipse.osbp.xtext.reportdsl.ReportDSLPackage#getReport_DescriptionValue()
+	 * @model unique="false"
+	 * @generated
+	 */
+	String getDescriptionValue();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.xtext.reportdsl.Report#getDescriptionValue <em>Description Value</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Description Value</em>' attribute.
+	 * @see #getDescriptionValue()
+	 * @generated
+	 */
+	void setDescriptionValue(String value);
+
+	/**
+	 * 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.reportdsl.ReportDSLPackage#getReport_DatamartRef()
+	 * @model
+	 * @generated
+	 */
+	DatamartDefinition getDatamartRef();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.xtext.reportdsl.Report#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>Rendering</b></em>' attribute.
+	 * The literals are from the enumeration {@link org.eclipse.osbp.xtext.reportdsl.RenderingEnum}.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Rendering</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Rendering</em>' attribute.
+	 * @see org.eclipse.osbp.xtext.reportdsl.RenderingEnum
+	 * @see #setRendering(RenderingEnum)
+	 * @see org.eclipse.osbp.xtext.reportdsl.ReportDSLPackage#getReport_Rendering()
+	 * @model unique="false"
+	 * @generated
+	 */
+	RenderingEnum getRendering();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.xtext.reportdsl.Report#getRendering <em>Rendering</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Rendering</em>' attribute.
+	 * @see org.eclipse.osbp.xtext.reportdsl.RenderingEnum
+	 * @see #getRendering()
+	 * @generated
+	 */
+	void setRendering(RenderingEnum value);
+
+	/**
+	 * Returns the value of the '<em><b>External Css URI</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>External Css URI</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>External Css URI</em>' attribute.
+	 * @see #setExternalCssURI(String)
+	 * @see org.eclipse.osbp.xtext.reportdsl.ReportDSLPackage#getReport_ExternalCssURI()
+	 * @model unique="false"
+	 * @generated
+	 */
+	String getExternalCssURI();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.xtext.reportdsl.Report#getExternalCssURI <em>External Css URI</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>External Css URI</em>' attribute.
+	 * @see #getExternalCssURI()
+	 * @generated
+	 */
+	void setExternalCssURI(String value);
+
+	/**
+	 * Returns the value of the '<em><b>External Css URI Bundle</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>External Css URI Bundle</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>External Css URI Bundle</em>' attribute.
+	 * @see #setExternalCssURIBundle(String)
+	 * @see org.eclipse.osbp.xtext.reportdsl.ReportDSLPackage#getReport_ExternalCssURIBundle()
+	 * @model unique="false"
+	 * @generated
+	 */
+	String getExternalCssURIBundle();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.xtext.reportdsl.Report#getExternalCssURIBundle <em>External Css URI Bundle</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>External Css URI Bundle</em>' attribute.
+	 * @see #getExternalCssURIBundle()
+	 * @generated
+	 */
+	void setExternalCssURIBundle(String value);
+
+	/**
+	 * Returns the value of the '<em><b>Page Template</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Page Template</em>' reference isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Page Template</em>' reference.
+	 * @see #setPageTemplate(PageTemplate)
+	 * @see org.eclipse.osbp.xtext.reportdsl.ReportDSLPackage#getReport_PageTemplate()
+	 * @model
+	 * @generated
+	 */
+	PageTemplate getPageTemplate();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.xtext.reportdsl.Report#getPageTemplate <em>Page Template</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Page Template</em>' reference.
+	 * @see #getPageTemplate()
+	 * @generated
+	 */
+	void setPageTemplate(PageTemplate value);
+
+	/**
+	 * Returns the value of the '<em><b>Media</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Media</em>' reference isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Media</em>' reference.
+	 * @see #setMedia(Media)
+	 * @see org.eclipse.osbp.xtext.reportdsl.ReportDSLPackage#getReport_Media()
+	 * @model
+	 * @generated
+	 */
+	Media getMedia();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.xtext.reportdsl.Report#getMedia <em>Media</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Media</em>' reference.
+	 * @see #getMedia()
+	 * @generated
+	 */
+	void setMedia(Media value);
+
+	/**
+	 * Returns the value of the '<em><b>Toolbar</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Toolbar</em>' reference isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Toolbar</em>' reference.
+	 * @see #setToolbar(ActionToolbar)
+	 * @see org.eclipse.osbp.xtext.reportdsl.ReportDSLPackage#getReport_Toolbar()
+	 * @model
+	 * @generated
+	 */
+	ActionToolbar getToolbar();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.xtext.reportdsl.Report#getToolbar <em>Toolbar</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Toolbar</em>' reference.
+	 * @see #getToolbar()
+	 * @generated
+	 */
+	void setToolbar(ActionToolbar value);
+
+	/**
+	 * Returns the value of the '<em><b>Design</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Design</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>Design</em>' containment reference.
+	 * @see #setDesign(ReportDesign)
+	 * @see org.eclipse.osbp.xtext.reportdsl.ReportDSLPackage#getReport_Design()
+	 * @model containment="true"
+	 * @generated
+	 */
+	ReportDesign getDesign();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.xtext.reportdsl.Report#getDesign <em>Design</em>}' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Design</em>' containment reference.
+	 * @see #getDesign()
+	 * @generated
+	 */
+	void setDesign(ReportDesign value);
+
+} // Report
diff --git a/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/ReportBase.java b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/ReportBase.java
new file mode 100644
index 0000000..db1f83b
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/ReportBase.java
@@ -0,0 +1,60 @@
+/**
+ * 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:  
+ *  		Christophe Loetz  (Loetz GmbH&Co.KG) - Initial implementation 
+ *  
+ */
+package org.eclipse.osbp.xtext.reportdsl;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Report Base</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.ReportBase#getName <em>Name</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.osbp.xtext.reportdsl.ReportDSLPackage#getReportBase()
+ * @model
+ * @generated
+ */
+public interface ReportBase extends ReportLazyResolver {
+	/**
+	 * Returns the value of the '<em><b>Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Name</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Name</em>' attribute.
+	 * @see #setName(String)
+	 * @see org.eclipse.osbp.xtext.reportdsl.ReportDSLPackage#getReportBase_Name()
+	 * @model unique="false"
+	 * @generated
+	 */
+	String getName();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.xtext.reportdsl.ReportBase#getName <em>Name</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Name</em>' attribute.
+	 * @see #getName()
+	 * @generated
+	 */
+	void setName(String value);
+
+} // ReportBase
diff --git a/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/ReportDSLFactory.java b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/ReportDSLFactory.java
new file mode 100644
index 0000000..440760c
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/ReportDSLFactory.java
@@ -0,0 +1,701 @@
+/**
+ * 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:  
+ *  		Christophe Loetz  (Loetz GmbH&Co.KG) - Initial implementation 
+ *  
+ */
+package org.eclipse.osbp.xtext.reportdsl;
+
+import org.eclipse.emf.ecore.EFactory;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Factory</b> for the model.
+ * It provides a create method for each non-abstract class of the model.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.osbp.xtext.reportdsl.ReportDSLPackage
+ * @generated
+ */
+public interface ReportDSLFactory extends EFactory {
+	/**
+	 * The singleton instance of the factory.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	ReportDSLFactory eINSTANCE = org.eclipse.osbp.xtext.reportdsl.impl.ReportDSLFactoryImpl.init();
+
+	/**
+	 * Returns a new object of class '<em>Report Model</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Report Model</em>'.
+	 * @generated
+	 */
+	ReportModel createReportModel();
+
+	/**
+	 * Returns a new object of class '<em>Report Lazy Resolver</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Report Lazy Resolver</em>'.
+	 * @generated
+	 */
+	ReportLazyResolver createReportLazyResolver();
+
+	/**
+	 * Returns a new object of class '<em>Report Base</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Report Base</em>'.
+	 * @generated
+	 */
+	ReportBase createReportBase();
+
+	/**
+	 * Returns a new object of class '<em>Report Package</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Report Package</em>'.
+	 * @generated
+	 */
+	ReportPackage createReportPackage();
+
+	/**
+	 * Returns a new object of class '<em>Page Templates</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Page Templates</em>'.
+	 * @generated
+	 */
+	PageTemplates createPageTemplates();
+
+	/**
+	 * Returns a new object of class '<em>Some Formats</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Some Formats</em>'.
+	 * @generated
+	 */
+	SomeFormats createSomeFormats();
+
+	/**
+	 * Returns a new object of class '<em>Colors</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Colors</em>'.
+	 * @generated
+	 */
+	Colors createColors();
+
+	/**
+	 * Returns a new object of class '<em>Fonts</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Fonts</em>'.
+	 * @generated
+	 */
+	Fonts createFonts();
+
+	/**
+	 * Returns a new object of class '<em>Medias</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Medias</em>'.
+	 * @generated
+	 */
+	Medias createMedias();
+
+	/**
+	 * Returns a new object of class '<em>Styles</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Styles</em>'.
+	 * @generated
+	 */
+	Styles createStyles();
+
+	/**
+	 * Returns a new object of class '<em>Page Template</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Page Template</em>'.
+	 * @generated
+	 */
+	PageTemplate createPageTemplate();
+
+	/**
+	 * Returns a new object of class '<em>Color</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Color</em>'.
+	 * @generated
+	 */
+	Color createColor();
+
+	/**
+	 * Returns a new object of class '<em>Font</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Font</em>'.
+	 * @generated
+	 */
+	Font createFont();
+
+	/**
+	 * Returns a new object of class '<em>Build In Font Family</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Build In Font Family</em>'.
+	 * @generated
+	 */
+	BuildInFontFamily createBuildInFontFamily();
+
+	/**
+	 * Returns a new object of class '<em>Custom Font Family</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Custom Font Family</em>'.
+	 * @generated
+	 */
+	CustomFontFamily createCustomFontFamily();
+
+	/**
+	 * Returns a new object of class '<em>Media</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Media</em>'.
+	 * @generated
+	 */
+	Media createMedia();
+
+	/**
+	 * Returns a new object of class '<em>Border Style</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Border Style</em>'.
+	 * @generated
+	 */
+	BorderStyle createBorderStyle();
+
+	/**
+	 * Returns a new object of class '<em>Base Style</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Base Style</em>'.
+	 * @generated
+	 */
+	BaseStyle createBaseStyle();
+
+	/**
+	 * Returns a new object of class '<em>Media Style</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Media Style</em>'.
+	 * @generated
+	 */
+	MediaStyle createMediaStyle();
+
+	/**
+	 * Returns a new object of class '<em>Style</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Style</em>'.
+	 * @generated
+	 */
+	Style createStyle();
+
+	/**
+	 * Returns a new object of class '<em>Some Format</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Some Format</em>'.
+	 * @generated
+	 */
+	SomeFormat createSomeFormat();
+
+	/**
+	 * Returns a new object of class '<em>Uomo Format</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Uomo Format</em>'.
+	 * @generated
+	 */
+	UomoFormat createUomoFormat();
+
+	/**
+	 * Returns a new object of class '<em>Number Format</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Number Format</em>'.
+	 * @generated
+	 */
+	NumberFormat createNumberFormat();
+
+	/**
+	 * Returns a new object of class '<em>Currency Format</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Currency Format</em>'.
+	 * @generated
+	 */
+	CurrencyFormat createCurrencyFormat();
+
+	/**
+	 * Returns a new object of class '<em>Date Format</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Date Format</em>'.
+	 * @generated
+	 */
+	DateFormat createDateFormat();
+
+	/**
+	 * Returns a new object of class '<em>Date Time Format</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Date Time Format</em>'.
+	 * @generated
+	 */
+	DateTimeFormat createDateTimeFormat();
+
+	/**
+	 * Returns a new object of class '<em>Time Format</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Time Format</em>'.
+	 * @generated
+	 */
+	TimeFormat createTimeFormat();
+
+	/**
+	 * Returns a new object of class '<em>Report</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Report</em>'.
+	 * @generated
+	 */
+	Report createReport();
+
+	/**
+	 * Returns a new object of class '<em>Report Design File</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Report Design File</em>'.
+	 * @generated
+	 */
+	ReportDesignFile createReportDesignFile();
+
+	/**
+	 * Returns a new object of class '<em>Report Design Template</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Report Design Template</em>'.
+	 * @generated
+	 */
+	ReportDesignTemplate createReportDesignTemplate();
+
+	/**
+	 * Returns a new object of class '<em>Container</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Container</em>'.
+	 * @generated
+	 */
+	Container createContainer();
+
+	/**
+	 * Returns a new object of class '<em>Page Header</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Page Header</em>'.
+	 * @generated
+	 */
+	PageHeader createPageHeader();
+
+	/**
+	 * Returns a new object of class '<em>Page Detail</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Page Detail</em>'.
+	 * @generated
+	 */
+	PageDetail createPageDetail();
+
+	/**
+	 * Returns a new object of class '<em>Page Footer</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Page Footer</em>'.
+	 * @generated
+	 */
+	PageFooter createPageFooter();
+
+	/**
+	 * Returns a new object of class '<em>With Style</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>With Style</em>'.
+	 * @generated
+	 */
+	WithStyle createWithStyle();
+
+	/**
+	 * Returns a new object of class '<em>Text Element</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Text Element</em>'.
+	 * @generated
+	 */
+	TextElement createTextElement();
+
+	/**
+	 * Returns a new object of class '<em>Title</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Title</em>'.
+	 * @generated
+	 */
+	Title createTitle();
+
+	/**
+	 * Returns a new object of class '<em>Sub Title</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Sub Title</em>'.
+	 * @generated
+	 */
+	SubTitle createSubTitle();
+
+	/**
+	 * Returns a new object of class '<em>Sub Sub Title</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Sub Sub Title</em>'.
+	 * @generated
+	 */
+	SubSubTitle createSubSubTitle();
+
+	/**
+	 * Returns a new object of class '<em>Label</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Label</em>'.
+	 * @generated
+	 */
+	Label createLabel();
+
+	/**
+	 * Returns a new object of class '<em>Text</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Text</em>'.
+	 * @generated
+	 */
+	Text createText();
+
+	/**
+	 * Returns a new object of class '<em>Auto Text</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Auto Text</em>'.
+	 * @generated
+	 */
+	AutoText createAutoText();
+
+	/**
+	 * Returns a new object of class '<em>Image</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Image</em>'.
+	 * @generated
+	 */
+	Image createImage();
+
+	/**
+	 * Returns a new object of class '<em>With Header Footer</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>With Header Footer</em>'.
+	 * @generated
+	 */
+	WithHeaderFooter createWithHeaderFooter();
+
+	/**
+	 * Returns a new object of class '<em>Datamart Table</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Datamart Table</em>'.
+	 * @generated
+	 */
+	DatamartTable createDatamartTable();
+
+	/**
+	 * Returns a new object of class '<em>Datamart Table Group</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Datamart Table Group</em>'.
+	 * @generated
+	 */
+	DatamartTableGroup createDatamartTableGroup();
+
+	/**
+	 * Returns a new object of class '<em>Some Grid</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Some Grid</em>'.
+	 * @generated
+	 */
+	SomeGrid createSomeGrid();
+
+	/**
+	 * Returns a new object of class '<em>Datamart Table Group Header</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Datamart Table Group Header</em>'.
+	 * @generated
+	 */
+	DatamartTableGroupHeader createDatamartTableGroupHeader();
+
+	/**
+	 * Returns a new object of class '<em>Datamart Table Group Footer</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Datamart Table Group Footer</em>'.
+	 * @generated
+	 */
+	DatamartTableGroupFooter createDatamartTableGroupFooter();
+
+	/**
+	 * Returns a new object of class '<em>Datamart Table Detail</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Datamart Table Detail</em>'.
+	 * @generated
+	 */
+	DatamartTableDetail createDatamartTableDetail();
+
+	/**
+	 * Returns a new object of class '<em>Datamart Table Property</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Datamart Table Property</em>'.
+	 * @generated
+	 */
+	DatamartTableProperty createDatamartTableProperty();
+
+	/**
+	 * Returns a new object of class '<em>Table Formatter</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Table Formatter</em>'.
+	 * @generated
+	 */
+	TableFormatter createTableFormatter();
+
+	/**
+	 * Returns a new object of class '<em>Table Image</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Table Image</em>'.
+	 * @generated
+	 */
+	TableImage createTableImage();
+
+	/**
+	 * Returns a new object of class '<em>Table Property</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Table Property</em>'.
+	 * @generated
+	 */
+	TableProperty createTableProperty();
+
+	/**
+	 * Returns a new object of class '<em>Table Aggregation</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Table Aggregation</em>'.
+	 * @generated
+	 */
+	TableAggregation createTableAggregation();
+
+	/**
+	 * Returns a new object of class '<em>Table Base Aggregation</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Table Base Aggregation</em>'.
+	 * @generated
+	 */
+	TableBaseAggregation createTableBaseAggregation();
+
+	/**
+	 * Returns a new object of class '<em>Table Pure Aggregation</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Table Pure Aggregation</em>'.
+	 * @generated
+	 */
+	TablePureAggregation createTablePureAggregation();
+
+	/**
+	 * Returns a new object of class '<em>Table Unary Aggregation</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Table Unary Aggregation</em>'.
+	 * @generated
+	 */
+	TableUnaryAggregation createTableUnaryAggregation();
+
+	/**
+	 * Returns a new object of class '<em>Table Multiple Aggregation</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Table Multiple Aggregation</em>'.
+	 * @generated
+	 */
+	TableMultipleAggregation createTableMultipleAggregation();
+
+	/**
+	 * Returns a new object of class '<em>Table Binary Aggregation</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Table Binary Aggregation</em>'.
+	 * @generated
+	 */
+	TableBinaryAggregation createTableBinaryAggregation();
+
+	/**
+	 * Returns a new object of class '<em>Table Number Interval</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Table Number Interval</em>'.
+	 * @generated
+	 */
+	TableNumberInterval createTableNumberInterval();
+
+	/**
+	 * Returns a new object of class '<em>Table Date Day Interval</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Table Date Day Interval</em>'.
+	 * @generated
+	 */
+	TableDateDayInterval createTableDateDayInterval();
+
+	/**
+	 * Returns a new object of class '<em>Table Number Lookup</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Table Number Lookup</em>'.
+	 * @generated
+	 */
+	TableNumberLookup createTableNumberLookup();
+
+	/**
+	 * Returns a new object of class '<em>Table String Lookup</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Table String Lookup</em>'.
+	 * @generated
+	 */
+	TableStringLookup createTableStringLookup();
+
+	/**
+	 * Returns a new object of class '<em>Table Date Day Lookup</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Table Date Day Lookup</em>'.
+	 * @generated
+	 */
+	TableDateDayLookup createTableDateDayLookup();
+
+	/**
+	 * Returns a new object of class '<em>Table Text Color</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Table Text Color</em>'.
+	 * @generated
+	 */
+	TableTextColor createTableTextColor();
+
+	/**
+	 * Returns a new object of class '<em>Table Cell Color</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Table Cell Color</em>'.
+	 * @generated
+	 */
+	TableCellColor createTableCellColor();
+
+	/**
+	 * Returns a new object of class '<em>Table Icon</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Table Icon</em>'.
+	 * @generated
+	 */
+	TableIcon createTableIcon();
+
+	/**
+	 * Returns a new object of class '<em>Table Trend</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Table Trend</em>'.
+	 * @generated
+	 */
+	TableTrend createTableTrend();
+
+	/**
+	 * Returns a new object of class '<em>Table Tooltip</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Table Tooltip</em>'.
+	 * @generated
+	 */
+	TableTooltip createTableTooltip();
+
+	/**
+	 * Returns a new object of class '<em>Grid</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Grid</em>'.
+	 * @generated
+	 */
+	Grid createGrid();
+
+	/**
+	 * Returns a new object of class '<em>Grid Row</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Grid Row</em>'.
+	 * @generated
+	 */
+	GridRow createGridRow();
+
+	/**
+	 * Returns a new object of class '<em>Grid Cell</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Grid Cell</em>'.
+	 * @generated
+	 */
+	GridCell createGridCell();
+
+	/**
+	 * Returns the package supported by this factory.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the package supported by this factory.
+	 * @generated
+	 */
+	ReportDSLPackage getReportDSLPackage();
+
+} //ReportDSLFactory
diff --git a/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/ReportDSLPackage.java b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/ReportDSLPackage.java
new file mode 100644
index 0000000..04fc618
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/ReportDSLPackage.java
@@ -0,0 +1,11109 @@
+/**
+ * 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:  
+ *  		Christophe Loetz  (Loetz GmbH&Co.KG) - Initial implementation 
+ *  
+ */
+package org.eclipse.osbp.xtext.reportdsl;
+
+import org.eclipse.emf.ecore.EAttribute;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EDataType;
+import org.eclipse.emf.ecore.EEnum;
+import org.eclipse.emf.ecore.EOperation;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.EReference;
+
+import org.eclipse.osbp.dsl.semantic.common.types.OSBPTypesPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Package</b> for the model.
+ * It contains accessors for the meta objects to represent
+ * <ul>
+ *   <li>each class,</li>
+ *   <li>each feature of each class,</li>
+ *   <li>each operation of each class,</li>
+ *   <li>each enum,</li>
+ *   <li>and each data type</li>
+ * </ul>
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * *
+ * 
+ *  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
+ * <!-- end-model-doc -->
+ * @see org.eclipse.osbp.xtext.reportdsl.ReportDSLFactory
+ * @model kind="package"
+ *        annotation="http://www.eclipse.org/emf/2002/GenModel fileExtensions='report' modelName='ReportDSL' prefix='ReportDSL' 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/Ecore rootPackage='reportdsl'"
+ * @generated
+ */
+public interface ReportDSLPackage extends EPackage {
+	/**
+	 * The package name.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	String eNAME = "reportdsl";
+
+	/**
+	 * The package namespace URI.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	String eNS_URI = "http://osbp.eclipse.org/xtext/reportdsl/ReportDSL";
+
+	/**
+	 * The package namespace name.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	String eNS_PREFIX = "reportdsl";
+
+	/**
+	 * The singleton instance of the package.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	ReportDSLPackage eINSTANCE = org.eclipse.osbp.xtext.reportdsl.impl.ReportDSLPackageImpl.init();
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.osbp.xtext.reportdsl.impl.ReportModelImpl <em>Report Model</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.osbp.xtext.reportdsl.impl.ReportModelImpl
+	 * @see org.eclipse.osbp.xtext.reportdsl.impl.ReportDSLPackageImpl#getReportModel()
+	 * @generated
+	 */
+	int REPORT_MODEL = 0;
+
+	/**
+	 * The feature id for the '<em><b>Pckg</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int REPORT_MODEL__PCKG = 0;
+
+	/**
+	 * The number of structural features of the '<em>Report Model</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int REPORT_MODEL_FEATURE_COUNT = 1;
+
+	/**
+	 * The number of operations of the '<em>Report Model</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int REPORT_MODEL_OPERATION_COUNT = 0;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.osbp.xtext.reportdsl.impl.ReportLazyResolverImpl <em>Report Lazy Resolver</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.osbp.xtext.reportdsl.impl.ReportLazyResolverImpl
+	 * @see org.eclipse.osbp.xtext.reportdsl.impl.ReportDSLPackageImpl#getReportLazyResolver()
+	 * @generated
+	 */
+	int REPORT_LAZY_RESOLVER = 1;
+
+	/**
+	 * The number of structural features of the '<em>Report Lazy Resolver</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int REPORT_LAZY_RESOLVER_FEATURE_COUNT = 0;
+
+	/**
+	 * The operation id for the '<em>EResolve Proxy</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int REPORT_LAZY_RESOLVER___ERESOLVE_PROXY__INTERNALEOBJECT = 0;
+
+	/**
+	 * The number of operations of the '<em>Report Lazy Resolver</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int REPORT_LAZY_RESOLVER_OPERATION_COUNT = 1;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.osbp.xtext.reportdsl.impl.ReportBaseImpl <em>Report Base</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.osbp.xtext.reportdsl.impl.ReportBaseImpl
+	 * @see org.eclipse.osbp.xtext.reportdsl.impl.ReportDSLPackageImpl#getReportBase()
+	 * @generated
+	 */
+	int REPORT_BASE = 2;
+
+	/**
+	 * The feature id for the '<em><b>Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int REPORT_BASE__NAME = REPORT_LAZY_RESOLVER_FEATURE_COUNT + 0;
+
+	/**
+	 * The number of structural features of the '<em>Report Base</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int REPORT_BASE_FEATURE_COUNT = REPORT_LAZY_RESOLVER_FEATURE_COUNT + 1;
+
+	/**
+	 * The operation id for the '<em>EResolve Proxy</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int REPORT_BASE___ERESOLVE_PROXY__INTERNALEOBJECT = REPORT_LAZY_RESOLVER___ERESOLVE_PROXY__INTERNALEOBJECT;
+
+	/**
+	 * The number of operations of the '<em>Report Base</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int REPORT_BASE_OPERATION_COUNT = REPORT_LAZY_RESOLVER_OPERATION_COUNT + 0;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.osbp.xtext.reportdsl.impl.ReportPackageImpl <em>Report Package</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.osbp.xtext.reportdsl.impl.ReportPackageImpl
+	 * @see org.eclipse.osbp.xtext.reportdsl.impl.ReportDSLPackageImpl#getReportPackage()
+	 * @generated
+	 */
+	int REPORT_PACKAGE = 3;
+
+	/**
+	 * The feature id for the '<em><b>Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int REPORT_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 REPORT_PACKAGE__IMPORTS = OSBPTypesPackage.LPACKAGE__IMPORTS;
+
+	/**
+	 * The feature id for the '<em><b>Import Section</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int REPORT_PACKAGE__IMPORT_SECTION = OSBPTypesPackage.LPACKAGE_FEATURE_COUNT + 0;
+
+	/**
+	 * The feature id for the '<em><b>External Css URI</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int REPORT_PACKAGE__EXTERNAL_CSS_URI = OSBPTypesPackage.LPACKAGE_FEATURE_COUNT + 1;
+
+	/**
+	 * The feature id for the '<em><b>External Css URI Bundle</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int REPORT_PACKAGE__EXTERNAL_CSS_URI_BUNDLE = OSBPTypesPackage.LPACKAGE_FEATURE_COUNT + 2;
+
+	/**
+	 * The feature id for the '<em><b>Pagetemplates</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int REPORT_PACKAGE__PAGETEMPLATES = OSBPTypesPackage.LPACKAGE_FEATURE_COUNT + 3;
+
+	/**
+	 * The feature id for the '<em><b>Formatters</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int REPORT_PACKAGE__FORMATTERS = OSBPTypesPackage.LPACKAGE_FEATURE_COUNT + 4;
+
+	/**
+	 * The feature id for the '<em><b>Colors</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int REPORT_PACKAGE__COLORS = OSBPTypesPackage.LPACKAGE_FEATURE_COUNT + 5;
+
+	/**
+	 * The feature id for the '<em><b>Fonts</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int REPORT_PACKAGE__FONTS = OSBPTypesPackage.LPACKAGE_FEATURE_COUNT + 6;
+
+	/**
+	 * The feature id for the '<em><b>Medias</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int REPORT_PACKAGE__MEDIAS = OSBPTypesPackage.LPACKAGE_FEATURE_COUNT + 7;
+
+	/**
+	 * The feature id for the '<em><b>Styles</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int REPORT_PACKAGE__STYLES = OSBPTypesPackage.LPACKAGE_FEATURE_COUNT + 8;
+
+	/**
+	 * The feature id for the '<em><b>Reports</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int REPORT_PACKAGE__REPORTS = OSBPTypesPackage.LPACKAGE_FEATURE_COUNT + 9;
+
+	/**
+	 * The number of structural features of the '<em>Report Package</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int REPORT_PACKAGE_FEATURE_COUNT = OSBPTypesPackage.LPACKAGE_FEATURE_COUNT + 10;
+
+	/**
+	 * The operation id for the '<em>EResolve Proxy</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int REPORT_PACKAGE___ERESOLVE_PROXY__INTERNALEOBJECT = OSBPTypesPackage.LPACKAGE___ERESOLVE_PROXY__INTERNALEOBJECT;
+
+	/**
+	 * The number of operations of the '<em>Report Package</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int REPORT_PACKAGE_OPERATION_COUNT = OSBPTypesPackage.LPACKAGE_OPERATION_COUNT + 0;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.osbp.xtext.reportdsl.impl.PageTemplatesImpl <em>Page Templates</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.osbp.xtext.reportdsl.impl.PageTemplatesImpl
+	 * @see org.eclipse.osbp.xtext.reportdsl.impl.ReportDSLPackageImpl#getPageTemplates()
+	 * @generated
+	 */
+	int PAGE_TEMPLATES = 4;
+
+	/**
+	 * The feature id for the '<em><b>Pagetemplates</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PAGE_TEMPLATES__PAGETEMPLATES = REPORT_LAZY_RESOLVER_FEATURE_COUNT + 0;
+
+	/**
+	 * The number of structural features of the '<em>Page Templates</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PAGE_TEMPLATES_FEATURE_COUNT = REPORT_LAZY_RESOLVER_FEATURE_COUNT + 1;
+
+	/**
+	 * The operation id for the '<em>EResolve Proxy</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PAGE_TEMPLATES___ERESOLVE_PROXY__INTERNALEOBJECT = REPORT_LAZY_RESOLVER___ERESOLVE_PROXY__INTERNALEOBJECT;
+
+	/**
+	 * The number of operations of the '<em>Page Templates</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PAGE_TEMPLATES_OPERATION_COUNT = REPORT_LAZY_RESOLVER_OPERATION_COUNT + 0;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.osbp.xtext.reportdsl.impl.SomeFormatsImpl <em>Some Formats</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.osbp.xtext.reportdsl.impl.SomeFormatsImpl
+	 * @see org.eclipse.osbp.xtext.reportdsl.impl.ReportDSLPackageImpl#getSomeFormats()
+	 * @generated
+	 */
+	int SOME_FORMATS = 5;
+
+	/**
+	 * The feature id for the '<em><b>Formatters</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int SOME_FORMATS__FORMATTERS = REPORT_LAZY_RESOLVER_FEATURE_COUNT + 0;
+
+	/**
+	 * The number of structural features of the '<em>Some Formats</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int SOME_FORMATS_FEATURE_COUNT = REPORT_LAZY_RESOLVER_FEATURE_COUNT + 1;
+
+	/**
+	 * The operation id for the '<em>EResolve Proxy</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int SOME_FORMATS___ERESOLVE_PROXY__INTERNALEOBJECT = REPORT_LAZY_RESOLVER___ERESOLVE_PROXY__INTERNALEOBJECT;
+
+	/**
+	 * The number of operations of the '<em>Some Formats</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int SOME_FORMATS_OPERATION_COUNT = REPORT_LAZY_RESOLVER_OPERATION_COUNT + 0;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.osbp.xtext.reportdsl.impl.ColorsImpl <em>Colors</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.osbp.xtext.reportdsl.impl.ColorsImpl
+	 * @see org.eclipse.osbp.xtext.reportdsl.impl.ReportDSLPackageImpl#getColors()
+	 * @generated
+	 */
+	int COLORS = 6;
+
+	/**
+	 * The feature id for the '<em><b>Colors</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int COLORS__COLORS = REPORT_LAZY_RESOLVER_FEATURE_COUNT + 0;
+
+	/**
+	 * The number of structural features of the '<em>Colors</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int COLORS_FEATURE_COUNT = REPORT_LAZY_RESOLVER_FEATURE_COUNT + 1;
+
+	/**
+	 * The operation id for the '<em>EResolve Proxy</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int COLORS___ERESOLVE_PROXY__INTERNALEOBJECT = REPORT_LAZY_RESOLVER___ERESOLVE_PROXY__INTERNALEOBJECT;
+
+	/**
+	 * The number of operations of the '<em>Colors</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int COLORS_OPERATION_COUNT = REPORT_LAZY_RESOLVER_OPERATION_COUNT + 0;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.osbp.xtext.reportdsl.impl.FontsImpl <em>Fonts</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.osbp.xtext.reportdsl.impl.FontsImpl
+	 * @see org.eclipse.osbp.xtext.reportdsl.impl.ReportDSLPackageImpl#getFonts()
+	 * @generated
+	 */
+	int FONTS = 7;
+
+	/**
+	 * The feature id for the '<em><b>Fonts</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int FONTS__FONTS = REPORT_LAZY_RESOLVER_FEATURE_COUNT + 0;
+
+	/**
+	 * The number of structural features of the '<em>Fonts</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int FONTS_FEATURE_COUNT = REPORT_LAZY_RESOLVER_FEATURE_COUNT + 1;
+
+	/**
+	 * The operation id for the '<em>EResolve Proxy</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int FONTS___ERESOLVE_PROXY__INTERNALEOBJECT = REPORT_LAZY_RESOLVER___ERESOLVE_PROXY__INTERNALEOBJECT;
+
+	/**
+	 * The number of operations of the '<em>Fonts</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int FONTS_OPERATION_COUNT = REPORT_LAZY_RESOLVER_OPERATION_COUNT + 0;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.osbp.xtext.reportdsl.impl.MediasImpl <em>Medias</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.osbp.xtext.reportdsl.impl.MediasImpl
+	 * @see org.eclipse.osbp.xtext.reportdsl.impl.ReportDSLPackageImpl#getMedias()
+	 * @generated
+	 */
+	int MEDIAS = 8;
+
+	/**
+	 * The feature id for the '<em><b>Medias</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int MEDIAS__MEDIAS = REPORT_LAZY_RESOLVER_FEATURE_COUNT + 0;
+
+	/**
+	 * The number of structural features of the '<em>Medias</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int MEDIAS_FEATURE_COUNT = REPORT_LAZY_RESOLVER_FEATURE_COUNT + 1;
+
+	/**
+	 * The operation id for the '<em>EResolve Proxy</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int MEDIAS___ERESOLVE_PROXY__INTERNALEOBJECT = REPORT_LAZY_RESOLVER___ERESOLVE_PROXY__INTERNALEOBJECT;
+
+	/**
+	 * The number of operations of the '<em>Medias</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int MEDIAS_OPERATION_COUNT = REPORT_LAZY_RESOLVER_OPERATION_COUNT + 0;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.osbp.xtext.reportdsl.impl.StylesImpl <em>Styles</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.osbp.xtext.reportdsl.impl.StylesImpl
+	 * @see org.eclipse.osbp.xtext.reportdsl.impl.ReportDSLPackageImpl#getStyles()
+	 * @generated
+	 */
+	int STYLES = 9;
+
+	/**
+	 * The feature id for the '<em><b>Styles</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int STYLES__STYLES = REPORT_LAZY_RESOLVER_FEATURE_COUNT + 0;
+
+	/**
+	 * The number of structural features of the '<em>Styles</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int STYLES_FEATURE_COUNT = REPORT_LAZY_RESOLVER_FEATURE_COUNT + 1;
+
+	/**
+	 * The operation id for the '<em>EResolve Proxy</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int STYLES___ERESOLVE_PROXY__INTERNALEOBJECT = REPORT_LAZY_RESOLVER___ERESOLVE_PROXY__INTERNALEOBJECT;
+
+	/**
+	 * The number of operations of the '<em>Styles</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int STYLES_OPERATION_COUNT = REPORT_LAZY_RESOLVER_OPERATION_COUNT + 0;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.osbp.xtext.reportdsl.impl.PageTemplateImpl <em>Page Template</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.osbp.xtext.reportdsl.impl.PageTemplateImpl
+	 * @see org.eclipse.osbp.xtext.reportdsl.impl.ReportDSLPackageImpl#getPageTemplate()
+	 * @generated
+	 */
+	int PAGE_TEMPLATE = 10;
+
+	/**
+	 * The feature id for the '<em><b>Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PAGE_TEMPLATE__NAME = REPORT_BASE__NAME;
+
+	/**
+	 * The feature id for the '<em><b>Size</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PAGE_TEMPLATE__SIZE = REPORT_BASE_FEATURE_COUNT + 0;
+
+	/**
+	 * The feature id for the '<em><b>Orientation</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PAGE_TEMPLATE__ORIENTATION = REPORT_BASE_FEATURE_COUNT + 1;
+
+	/**
+	 * The feature id for the '<em><b>Top Margin Value</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PAGE_TEMPLATE__TOP_MARGIN_VALUE = REPORT_BASE_FEATURE_COUNT + 2;
+
+	/**
+	 * The feature id for the '<em><b>Top Margin Unit</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PAGE_TEMPLATE__TOP_MARGIN_UNIT = REPORT_BASE_FEATURE_COUNT + 3;
+
+	/**
+	 * The feature id for the '<em><b>Left Margin Value</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PAGE_TEMPLATE__LEFT_MARGIN_VALUE = REPORT_BASE_FEATURE_COUNT + 4;
+
+	/**
+	 * The feature id for the '<em><b>Left Margin Unit</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PAGE_TEMPLATE__LEFT_MARGIN_UNIT = REPORT_BASE_FEATURE_COUNT + 5;
+
+	/**
+	 * The feature id for the '<em><b>Bottom Margin Value</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PAGE_TEMPLATE__BOTTOM_MARGIN_VALUE = REPORT_BASE_FEATURE_COUNT + 6;
+
+	/**
+	 * The feature id for the '<em><b>Bottom Margin Unit</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PAGE_TEMPLATE__BOTTOM_MARGIN_UNIT = REPORT_BASE_FEATURE_COUNT + 7;
+
+	/**
+	 * The feature id for the '<em><b>Right Margin Value</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PAGE_TEMPLATE__RIGHT_MARGIN_VALUE = REPORT_BASE_FEATURE_COUNT + 8;
+
+	/**
+	 * The feature id for the '<em><b>Right Margin Unit</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PAGE_TEMPLATE__RIGHT_MARGIN_UNIT = REPORT_BASE_FEATURE_COUNT + 9;
+
+	/**
+	 * The feature id for the '<em><b>Header</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PAGE_TEMPLATE__HEADER = REPORT_BASE_FEATURE_COUNT + 10;
+
+	/**
+	 * The feature id for the '<em><b>Footer</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PAGE_TEMPLATE__FOOTER = REPORT_BASE_FEATURE_COUNT + 11;
+
+	/**
+	 * The number of structural features of the '<em>Page Template</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PAGE_TEMPLATE_FEATURE_COUNT = REPORT_BASE_FEATURE_COUNT + 12;
+
+	/**
+	 * The operation id for the '<em>EResolve Proxy</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PAGE_TEMPLATE___ERESOLVE_PROXY__INTERNALEOBJECT = REPORT_BASE___ERESOLVE_PROXY__INTERNALEOBJECT;
+
+	/**
+	 * The number of operations of the '<em>Page Template</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PAGE_TEMPLATE_OPERATION_COUNT = REPORT_BASE_OPERATION_COUNT + 0;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.osbp.xtext.reportdsl.impl.ColorImpl <em>Color</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.osbp.xtext.reportdsl.impl.ColorImpl
+	 * @see org.eclipse.osbp.xtext.reportdsl.impl.ReportDSLPackageImpl#getColor()
+	 * @generated
+	 */
+	int COLOR = 11;
+
+	/**
+	 * The feature id for the '<em><b>Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int COLOR__NAME = REPORT_BASE__NAME;
+
+	/**
+	 * The feature id for the '<em><b>Color</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int COLOR__COLOR = REPORT_BASE_FEATURE_COUNT + 0;
+
+	/**
+	 * The feature id for the '<em><b>Basecolor</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int COLOR__BASECOLOR = REPORT_BASE_FEATURE_COUNT + 1;
+
+	/**
+	 * The feature id for the '<em><b>Darkensby</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int COLOR__DARKENSBY = REPORT_BASE_FEATURE_COUNT + 2;
+
+	/**
+	 * The feature id for the '<em><b>Lightensby</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int COLOR__LIGHTENSBY = REPORT_BASE_FEATURE_COUNT + 3;
+
+	/**
+	 * The feature id for the '<em><b>Transformsby</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int COLOR__TRANSFORMSBY = REPORT_BASE_FEATURE_COUNT + 4;
+
+	/**
+	 * The feature id for the '<em><b>Targetcolor</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int COLOR__TARGETCOLOR = REPORT_BASE_FEATURE_COUNT + 5;
+
+	/**
+	 * The number of structural features of the '<em>Color</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int COLOR_FEATURE_COUNT = REPORT_BASE_FEATURE_COUNT + 6;
+
+	/**
+	 * The operation id for the '<em>EResolve Proxy</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int COLOR___ERESOLVE_PROXY__INTERNALEOBJECT = REPORT_BASE___ERESOLVE_PROXY__INTERNALEOBJECT;
+
+	/**
+	 * The number of operations of the '<em>Color</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int COLOR_OPERATION_COUNT = REPORT_BASE_OPERATION_COUNT + 0;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.osbp.xtext.reportdsl.impl.FontImpl <em>Font</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.osbp.xtext.reportdsl.impl.FontImpl
+	 * @see org.eclipse.osbp.xtext.reportdsl.impl.ReportDSLPackageImpl#getFont()
+	 * @generated
+	 */
+	int FONT = 12;
+
+	/**
+	 * The feature id for the '<em><b>Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int FONT__NAME = REPORT_BASE__NAME;
+
+	/**
+	 * The feature id for the '<em><b>Extends</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int FONT__EXTENDS = REPORT_BASE_FEATURE_COUNT + 0;
+
+	/**
+	 * The feature id for the '<em><b>Family</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int FONT__FAMILY = REPORT_BASE_FEATURE_COUNT + 1;
+
+	/**
+	 * The feature id for the '<em><b>Style</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int FONT__STYLE = REPORT_BASE_FEATURE_COUNT + 2;
+
+	/**
+	 * The feature id for the '<em><b>Bold</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int FONT__BOLD = REPORT_BASE_FEATURE_COUNT + 3;
+
+	/**
+	 * The feature id for the '<em><b>Sizevalue</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int FONT__SIZEVALUE = REPORT_BASE_FEATURE_COUNT + 4;
+
+	/**
+	 * The feature id for the '<em><b>Sizeunit</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int FONT__SIZEUNIT = REPORT_BASE_FEATURE_COUNT + 5;
+
+	/**
+	 * The number of structural features of the '<em>Font</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int FONT_FEATURE_COUNT = REPORT_BASE_FEATURE_COUNT + 6;
+
+	/**
+	 * The operation id for the '<em>EResolve Proxy</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int FONT___ERESOLVE_PROXY__INTERNALEOBJECT = REPORT_BASE___ERESOLVE_PROXY__INTERNALEOBJECT;
+
+	/**
+	 * The number of operations of the '<em>Font</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int FONT_OPERATION_COUNT = REPORT_BASE_OPERATION_COUNT + 0;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.osbp.xtext.reportdsl.FontFamily <em>Font Family</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.osbp.xtext.reportdsl.FontFamily
+	 * @see org.eclipse.osbp.xtext.reportdsl.impl.ReportDSLPackageImpl#getFontFamily()
+	 * @generated
+	 */
+	int FONT_FAMILY = 13;
+
+	/**
+	 * The number of structural features of the '<em>Font Family</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int FONT_FAMILY_FEATURE_COUNT = REPORT_LAZY_RESOLVER_FEATURE_COUNT + 0;
+
+	/**
+	 * The operation id for the '<em>EResolve Proxy</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int FONT_FAMILY___ERESOLVE_PROXY__INTERNALEOBJECT = REPORT_LAZY_RESOLVER___ERESOLVE_PROXY__INTERNALEOBJECT;
+
+	/**
+	 * The number of operations of the '<em>Font Family</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int FONT_FAMILY_OPERATION_COUNT = REPORT_LAZY_RESOLVER_OPERATION_COUNT + 0;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.osbp.xtext.reportdsl.impl.BuildInFontFamilyImpl <em>Build In Font Family</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.osbp.xtext.reportdsl.impl.BuildInFontFamilyImpl
+	 * @see org.eclipse.osbp.xtext.reportdsl.impl.ReportDSLPackageImpl#getBuildInFontFamily()
+	 * @generated
+	 */
+	int BUILD_IN_FONT_FAMILY = 14;
+
+	/**
+	 * The feature id for the '<em><b>Custom</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int BUILD_IN_FONT_FAMILY__CUSTOM = FONT_FAMILY_FEATURE_COUNT + 0;
+
+	/**
+	 * The number of structural features of the '<em>Build In Font Family</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int BUILD_IN_FONT_FAMILY_FEATURE_COUNT = FONT_FAMILY_FEATURE_COUNT + 1;
+
+	/**
+	 * The operation id for the '<em>EResolve Proxy</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int BUILD_IN_FONT_FAMILY___ERESOLVE_PROXY__INTERNALEOBJECT = FONT_FAMILY___ERESOLVE_PROXY__INTERNALEOBJECT;
+
+	/**
+	 * The number of operations of the '<em>Build In Font Family</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int BUILD_IN_FONT_FAMILY_OPERATION_COUNT = FONT_FAMILY_OPERATION_COUNT + 0;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.osbp.xtext.reportdsl.impl.CustomFontFamilyImpl <em>Custom Font Family</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.osbp.xtext.reportdsl.impl.CustomFontFamilyImpl
+	 * @see org.eclipse.osbp.xtext.reportdsl.impl.ReportDSLPackageImpl#getCustomFontFamily()
+	 * @generated
+	 */
+	int CUSTOM_FONT_FAMILY = 15;
+
+	/**
+	 * The feature id for the '<em><b>Custom</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CUSTOM_FONT_FAMILY__CUSTOM = FONT_FAMILY_FEATURE_COUNT + 0;
+
+	/**
+	 * The number of structural features of the '<em>Custom Font Family</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CUSTOM_FONT_FAMILY_FEATURE_COUNT = FONT_FAMILY_FEATURE_COUNT + 1;
+
+	/**
+	 * The operation id for the '<em>EResolve Proxy</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CUSTOM_FONT_FAMILY___ERESOLVE_PROXY__INTERNALEOBJECT = FONT_FAMILY___ERESOLVE_PROXY__INTERNALEOBJECT;
+
+	/**
+	 * The number of operations of the '<em>Custom Font Family</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CUSTOM_FONT_FAMILY_OPERATION_COUNT = FONT_FAMILY_OPERATION_COUNT + 0;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.osbp.xtext.reportdsl.impl.MediaImpl <em>Media</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.osbp.xtext.reportdsl.impl.MediaImpl
+	 * @see org.eclipse.osbp.xtext.reportdsl.impl.ReportDSLPackageImpl#getMedia()
+	 * @generated
+	 */
+	int MEDIA = 16;
+
+	/**
+	 * The feature id for the '<em><b>Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int MEDIA__NAME = REPORT_BASE__NAME;
+
+	/**
+	 * The number of structural features of the '<em>Media</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int MEDIA_FEATURE_COUNT = REPORT_BASE_FEATURE_COUNT + 0;
+
+	/**
+	 * The operation id for the '<em>EResolve Proxy</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int MEDIA___ERESOLVE_PROXY__INTERNALEOBJECT = REPORT_BASE___ERESOLVE_PROXY__INTERNALEOBJECT;
+
+	/**
+	 * The number of operations of the '<em>Media</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int MEDIA_OPERATION_COUNT = REPORT_BASE_OPERATION_COUNT + 0;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.osbp.xtext.reportdsl.impl.BorderStyleImpl <em>Border Style</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.osbp.xtext.reportdsl.impl.BorderStyleImpl
+	 * @see org.eclipse.osbp.xtext.reportdsl.impl.ReportDSLPackageImpl#getBorderStyle()
+	 * @generated
+	 */
+	int BORDER_STYLE = 17;
+
+	/**
+	 * The feature id for the '<em><b>Type</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int BORDER_STYLE__TYPE = REPORT_LAZY_RESOLVER_FEATURE_COUNT + 0;
+
+	/**
+	 * The feature id for the '<em><b>Widthvalue</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int BORDER_STYLE__WIDTHVALUE = REPORT_LAZY_RESOLVER_FEATURE_COUNT + 1;
+
+	/**
+	 * The feature id for the '<em><b>Widthunit</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int BORDER_STYLE__WIDTHUNIT = REPORT_LAZY_RESOLVER_FEATURE_COUNT + 2;
+
+	/**
+	 * The feature id for the '<em><b>Color</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int BORDER_STYLE__COLOR = REPORT_LAZY_RESOLVER_FEATURE_COUNT + 3;
+
+	/**
+	 * The number of structural features of the '<em>Border Style</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int BORDER_STYLE_FEATURE_COUNT = REPORT_LAZY_RESOLVER_FEATURE_COUNT + 4;
+
+	/**
+	 * The operation id for the '<em>EResolve Proxy</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int BORDER_STYLE___ERESOLVE_PROXY__INTERNALEOBJECT = REPORT_LAZY_RESOLVER___ERESOLVE_PROXY__INTERNALEOBJECT;
+
+	/**
+	 * The number of operations of the '<em>Border Style</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int BORDER_STYLE_OPERATION_COUNT = REPORT_LAZY_RESOLVER_OPERATION_COUNT + 0;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.osbp.xtext.reportdsl.impl.BaseStyleImpl <em>Base Style</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.osbp.xtext.reportdsl.impl.BaseStyleImpl
+	 * @see org.eclipse.osbp.xtext.reportdsl.impl.ReportDSLPackageImpl#getBaseStyle()
+	 * @generated
+	 */
+	int BASE_STYLE = 18;
+
+	/**
+	 * The feature id for the '<em><b>Format</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int BASE_STYLE__FORMAT = REPORT_LAZY_RESOLVER_FEATURE_COUNT + 0;
+
+	/**
+	 * The feature id for the '<em><b>Font</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int BASE_STYLE__FONT = REPORT_LAZY_RESOLVER_FEATURE_COUNT + 1;
+
+	/**
+	 * The feature id for the '<em><b>Backgroundcolor</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int BASE_STYLE__BACKGROUNDCOLOR = REPORT_LAZY_RESOLVER_FEATURE_COUNT + 2;
+
+	/**
+	 * The feature id for the '<em><b>Backgroundcolor alternate</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int BASE_STYLE__BACKGROUNDCOLOR_ALTERNATE = REPORT_LAZY_RESOLVER_FEATURE_COUNT + 3;
+
+	/**
+	 * The feature id for the '<em><b>Textcolor</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int BASE_STYLE__TEXTCOLOR = REPORT_LAZY_RESOLVER_FEATURE_COUNT + 4;
+
+	/**
+	 * The feature id for the '<em><b>Textalign</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int BASE_STYLE__TEXTALIGN = REPORT_LAZY_RESOLVER_FEATURE_COUNT + 5;
+
+	/**
+	 * The feature id for the '<em><b>Border Top</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int BASE_STYLE__BORDER_TOP = REPORT_LAZY_RESOLVER_FEATURE_COUNT + 6;
+
+	/**
+	 * The feature id for the '<em><b>Border Bottom</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int BASE_STYLE__BORDER_BOTTOM = REPORT_LAZY_RESOLVER_FEATURE_COUNT + 7;
+
+	/**
+	 * The feature id for the '<em><b>Border Left</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int BASE_STYLE__BORDER_LEFT = REPORT_LAZY_RESOLVER_FEATURE_COUNT + 8;
+
+	/**
+	 * The feature id for the '<em><b>Border Right</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int BASE_STYLE__BORDER_RIGHT = REPORT_LAZY_RESOLVER_FEATURE_COUNT + 9;
+
+	/**
+	 * The feature id for the '<em><b>Padding Top Value</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int BASE_STYLE__PADDING_TOP_VALUE = REPORT_LAZY_RESOLVER_FEATURE_COUNT + 10;
+
+	/**
+	 * The feature id for the '<em><b>Padding Top Unit</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int BASE_STYLE__PADDING_TOP_UNIT = REPORT_LAZY_RESOLVER_FEATURE_COUNT + 11;
+
+	/**
+	 * The feature id for the '<em><b>Padding Bottom Value</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int BASE_STYLE__PADDING_BOTTOM_VALUE = REPORT_LAZY_RESOLVER_FEATURE_COUNT + 12;
+
+	/**
+	 * The feature id for the '<em><b>Padding Bottom Unit</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int BASE_STYLE__PADDING_BOTTOM_UNIT = REPORT_LAZY_RESOLVER_FEATURE_COUNT + 13;
+
+	/**
+	 * The feature id for the '<em><b>Padding Left Value</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int BASE_STYLE__PADDING_LEFT_VALUE = REPORT_LAZY_RESOLVER_FEATURE_COUNT + 14;
+
+	/**
+	 * The feature id for the '<em><b>Padding Left Unit</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int BASE_STYLE__PADDING_LEFT_UNIT = REPORT_LAZY_RESOLVER_FEATURE_COUNT + 15;
+
+	/**
+	 * The feature id for the '<em><b>Padding Right Value</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int BASE_STYLE__PADDING_RIGHT_VALUE = REPORT_LAZY_RESOLVER_FEATURE_COUNT + 16;
+
+	/**
+	 * The feature id for the '<em><b>Padding Right Unit</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int BASE_STYLE__PADDING_RIGHT_UNIT = REPORT_LAZY_RESOLVER_FEATURE_COUNT + 17;
+
+	/**
+	 * The feature id for the '<em><b>Margin Top Value</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int BASE_STYLE__MARGIN_TOP_VALUE = REPORT_LAZY_RESOLVER_FEATURE_COUNT + 18;
+
+	/**
+	 * The feature id for the '<em><b>Margin Top Unit</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int BASE_STYLE__MARGIN_TOP_UNIT = REPORT_LAZY_RESOLVER_FEATURE_COUNT + 19;
+
+	/**
+	 * The feature id for the '<em><b>Margin Left Value</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int BASE_STYLE__MARGIN_LEFT_VALUE = REPORT_LAZY_RESOLVER_FEATURE_COUNT + 20;
+
+	/**
+	 * The feature id for the '<em><b>Margin Left Unit</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int BASE_STYLE__MARGIN_LEFT_UNIT = REPORT_LAZY_RESOLVER_FEATURE_COUNT + 21;
+
+	/**
+	 * The feature id for the '<em><b>Margin Bottom Value</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int BASE_STYLE__MARGIN_BOTTOM_VALUE = REPORT_LAZY_RESOLVER_FEATURE_COUNT + 22;
+
+	/**
+	 * The feature id for the '<em><b>Margin Bottom Unit</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int BASE_STYLE__MARGIN_BOTTOM_UNIT = REPORT_LAZY_RESOLVER_FEATURE_COUNT + 23;
+
+	/**
+	 * The feature id for the '<em><b>Margin Right Value</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int BASE_STYLE__MARGIN_RIGHT_VALUE = REPORT_LAZY_RESOLVER_FEATURE_COUNT + 24;
+
+	/**
+	 * The feature id for the '<em><b>Margin Right Unit</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int BASE_STYLE__MARGIN_RIGHT_UNIT = REPORT_LAZY_RESOLVER_FEATURE_COUNT + 25;
+
+	/**
+	 * The number of structural features of the '<em>Base Style</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int BASE_STYLE_FEATURE_COUNT = REPORT_LAZY_RESOLVER_FEATURE_COUNT + 26;
+
+	/**
+	 * The operation id for the '<em>EResolve Proxy</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int BASE_STYLE___ERESOLVE_PROXY__INTERNALEOBJECT = REPORT_LAZY_RESOLVER___ERESOLVE_PROXY__INTERNALEOBJECT;
+
+	/**
+	 * The number of operations of the '<em>Base Style</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int BASE_STYLE_OPERATION_COUNT = REPORT_LAZY_RESOLVER_OPERATION_COUNT + 0;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.osbp.xtext.reportdsl.impl.MediaStyleImpl <em>Media Style</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.osbp.xtext.reportdsl.impl.MediaStyleImpl
+	 * @see org.eclipse.osbp.xtext.reportdsl.impl.ReportDSLPackageImpl#getMediaStyle()
+	 * @generated
+	 */
+	int MEDIA_STYLE = 19;
+
+	/**
+	 * The feature id for the '<em><b>Format</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int MEDIA_STYLE__FORMAT = BASE_STYLE__FORMAT;
+
+	/**
+	 * The feature id for the '<em><b>Font</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int MEDIA_STYLE__FONT = BASE_STYLE__FONT;
+
+	/**
+	 * The feature id for the '<em><b>Backgroundcolor</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int MEDIA_STYLE__BACKGROUNDCOLOR = BASE_STYLE__BACKGROUNDCOLOR;
+
+	/**
+	 * The feature id for the '<em><b>Backgroundcolor alternate</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int MEDIA_STYLE__BACKGROUNDCOLOR_ALTERNATE = BASE_STYLE__BACKGROUNDCOLOR_ALTERNATE;
+
+	/**
+	 * The feature id for the '<em><b>Textcolor</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int MEDIA_STYLE__TEXTCOLOR = BASE_STYLE__TEXTCOLOR;
+
+	/**
+	 * The feature id for the '<em><b>Textalign</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int MEDIA_STYLE__TEXTALIGN = BASE_STYLE__TEXTALIGN;
+
+	/**
+	 * The feature id for the '<em><b>Border Top</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int MEDIA_STYLE__BORDER_TOP = BASE_STYLE__BORDER_TOP;
+
+	/**
+	 * The feature id for the '<em><b>Border Bottom</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int MEDIA_STYLE__BORDER_BOTTOM = BASE_STYLE__BORDER_BOTTOM;
+
+	/**
+	 * The feature id for the '<em><b>Border Left</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int MEDIA_STYLE__BORDER_LEFT = BASE_STYLE__BORDER_LEFT;
+
+	/**
+	 * The feature id for the '<em><b>Border Right</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int MEDIA_STYLE__BORDER_RIGHT = BASE_STYLE__BORDER_RIGHT;
+
+	/**
+	 * The feature id for the '<em><b>Padding Top Value</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int MEDIA_STYLE__PADDING_TOP_VALUE = BASE_STYLE__PADDING_TOP_VALUE;
+
+	/**
+	 * The feature id for the '<em><b>Padding Top Unit</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int MEDIA_STYLE__PADDING_TOP_UNIT = BASE_STYLE__PADDING_TOP_UNIT;
+
+	/**
+	 * The feature id for the '<em><b>Padding Bottom Value</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int MEDIA_STYLE__PADDING_BOTTOM_VALUE = BASE_STYLE__PADDING_BOTTOM_VALUE;
+
+	/**
+	 * The feature id for the '<em><b>Padding Bottom Unit</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int MEDIA_STYLE__PADDING_BOTTOM_UNIT = BASE_STYLE__PADDING_BOTTOM_UNIT;
+
+	/**
+	 * The feature id for the '<em><b>Padding Left Value</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int MEDIA_STYLE__PADDING_LEFT_VALUE = BASE_STYLE__PADDING_LEFT_VALUE;
+
+	/**
+	 * The feature id for the '<em><b>Padding Left Unit</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int MEDIA_STYLE__PADDING_LEFT_UNIT = BASE_STYLE__PADDING_LEFT_UNIT;
+
+	/**
+	 * The feature id for the '<em><b>Padding Right Value</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int MEDIA_STYLE__PADDING_RIGHT_VALUE = BASE_STYLE__PADDING_RIGHT_VALUE;
+
+	/**
+	 * The feature id for the '<em><b>Padding Right Unit</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int MEDIA_STYLE__PADDING_RIGHT_UNIT = BASE_STYLE__PADDING_RIGHT_UNIT;
+
+	/**
+	 * The feature id for the '<em><b>Margin Top Value</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int MEDIA_STYLE__MARGIN_TOP_VALUE = BASE_STYLE__MARGIN_TOP_VALUE;
+
+	/**
+	 * The feature id for the '<em><b>Margin Top Unit</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int MEDIA_STYLE__MARGIN_TOP_UNIT = BASE_STYLE__MARGIN_TOP_UNIT;
+
+	/**
+	 * The feature id for the '<em><b>Margin Left Value</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int MEDIA_STYLE__MARGIN_LEFT_VALUE = BASE_STYLE__MARGIN_LEFT_VALUE;
+
+	/**
+	 * The feature id for the '<em><b>Margin Left Unit</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int MEDIA_STYLE__MARGIN_LEFT_UNIT = BASE_STYLE__MARGIN_LEFT_UNIT;
+
+	/**
+	 * The feature id for the '<em><b>Margin Bottom Value</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int MEDIA_STYLE__MARGIN_BOTTOM_VALUE = BASE_STYLE__MARGIN_BOTTOM_VALUE;
+
+	/**
+	 * The feature id for the '<em><b>Margin Bottom Unit</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int MEDIA_STYLE__MARGIN_BOTTOM_UNIT = BASE_STYLE__MARGIN_BOTTOM_UNIT;
+
+	/**
+	 * The feature id for the '<em><b>Margin Right Value</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int MEDIA_STYLE__MARGIN_RIGHT_VALUE = BASE_STYLE__MARGIN_RIGHT_VALUE;
+
+	/**
+	 * The feature id for the '<em><b>Margin Right Unit</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int MEDIA_STYLE__MARGIN_RIGHT_UNIT = BASE_STYLE__MARGIN_RIGHT_UNIT;
+
+	/**
+	 * The feature id for the '<em><b>Media</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int MEDIA_STYLE__MEDIA = BASE_STYLE_FEATURE_COUNT + 0;
+
+	/**
+	 * The number of structural features of the '<em>Media Style</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int MEDIA_STYLE_FEATURE_COUNT = BASE_STYLE_FEATURE_COUNT + 1;
+
+	/**
+	 * The operation id for the '<em>EResolve Proxy</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int MEDIA_STYLE___ERESOLVE_PROXY__INTERNALEOBJECT = BASE_STYLE___ERESOLVE_PROXY__INTERNALEOBJECT;
+
+	/**
+	 * The number of operations of the '<em>Media Style</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int MEDIA_STYLE_OPERATION_COUNT = BASE_STYLE_OPERATION_COUNT + 0;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.osbp.xtext.reportdsl.impl.StyleImpl <em>Style</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.osbp.xtext.reportdsl.impl.StyleImpl
+	 * @see org.eclipse.osbp.xtext.reportdsl.impl.ReportDSLPackageImpl#getStyle()
+	 * @generated
+	 */
+	int STYLE = 20;
+
+	/**
+	 * The feature id for the '<em><b>Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int STYLE__NAME = REPORT_BASE__NAME;
+
+	/**
+	 * The feature id for the '<em><b>Format</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int STYLE__FORMAT = REPORT_BASE_FEATURE_COUNT + 0;
+
+	/**
+	 * The feature id for the '<em><b>Font</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int STYLE__FONT = REPORT_BASE_FEATURE_COUNT + 1;
+
+	/**
+	 * The feature id for the '<em><b>Backgroundcolor</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int STYLE__BACKGROUNDCOLOR = REPORT_BASE_FEATURE_COUNT + 2;
+
+	/**
+	 * The feature id for the '<em><b>Backgroundcolor alternate</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int STYLE__BACKGROUNDCOLOR_ALTERNATE = REPORT_BASE_FEATURE_COUNT + 3;
+
+	/**
+	 * The feature id for the '<em><b>Textcolor</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int STYLE__TEXTCOLOR = REPORT_BASE_FEATURE_COUNT + 4;
+
+	/**
+	 * The feature id for the '<em><b>Textalign</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int STYLE__TEXTALIGN = REPORT_BASE_FEATURE_COUNT + 5;
+
+	/**
+	 * The feature id for the '<em><b>Border Top</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int STYLE__BORDER_TOP = REPORT_BASE_FEATURE_COUNT + 6;
+
+	/**
+	 * The feature id for the '<em><b>Border Bottom</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int STYLE__BORDER_BOTTOM = REPORT_BASE_FEATURE_COUNT + 7;
+
+	/**
+	 * The feature id for the '<em><b>Border Left</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int STYLE__BORDER_LEFT = REPORT_BASE_FEATURE_COUNT + 8;
+
+	/**
+	 * The feature id for the '<em><b>Border Right</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int STYLE__BORDER_RIGHT = REPORT_BASE_FEATURE_COUNT + 9;
+
+	/**
+	 * The feature id for the '<em><b>Padding Top Value</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int STYLE__PADDING_TOP_VALUE = REPORT_BASE_FEATURE_COUNT + 10;
+
+	/**
+	 * The feature id for the '<em><b>Padding Top Unit</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int STYLE__PADDING_TOP_UNIT = REPORT_BASE_FEATURE_COUNT + 11;
+
+	/**
+	 * The feature id for the '<em><b>Padding Bottom Value</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int STYLE__PADDING_BOTTOM_VALUE = REPORT_BASE_FEATURE_COUNT + 12;
+
+	/**
+	 * The feature id for the '<em><b>Padding Bottom Unit</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int STYLE__PADDING_BOTTOM_UNIT = REPORT_BASE_FEATURE_COUNT + 13;
+
+	/**
+	 * The feature id for the '<em><b>Padding Left Value</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int STYLE__PADDING_LEFT_VALUE = REPORT_BASE_FEATURE_COUNT + 14;
+
+	/**
+	 * The feature id for the '<em><b>Padding Left Unit</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int STYLE__PADDING_LEFT_UNIT = REPORT_BASE_FEATURE_COUNT + 15;
+
+	/**
+	 * The feature id for the '<em><b>Padding Right Value</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int STYLE__PADDING_RIGHT_VALUE = REPORT_BASE_FEATURE_COUNT + 16;
+
+	/**
+	 * The feature id for the '<em><b>Padding Right Unit</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int STYLE__PADDING_RIGHT_UNIT = REPORT_BASE_FEATURE_COUNT + 17;
+
+	/**
+	 * The feature id for the '<em><b>Margin Top Value</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int STYLE__MARGIN_TOP_VALUE = REPORT_BASE_FEATURE_COUNT + 18;
+
+	/**
+	 * The feature id for the '<em><b>Margin Top Unit</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int STYLE__MARGIN_TOP_UNIT = REPORT_BASE_FEATURE_COUNT + 19;
+
+	/**
+	 * The feature id for the '<em><b>Margin Left Value</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int STYLE__MARGIN_LEFT_VALUE = REPORT_BASE_FEATURE_COUNT + 20;
+
+	/**
+	 * The feature id for the '<em><b>Margin Left Unit</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int STYLE__MARGIN_LEFT_UNIT = REPORT_BASE_FEATURE_COUNT + 21;
+
+	/**
+	 * The feature id for the '<em><b>Margin Bottom Value</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int STYLE__MARGIN_BOTTOM_VALUE = REPORT_BASE_FEATURE_COUNT + 22;
+
+	/**
+	 * The feature id for the '<em><b>Margin Bottom Unit</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int STYLE__MARGIN_BOTTOM_UNIT = REPORT_BASE_FEATURE_COUNT + 23;
+
+	/**
+	 * The feature id for the '<em><b>Margin Right Value</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int STYLE__MARGIN_RIGHT_VALUE = REPORT_BASE_FEATURE_COUNT + 24;
+
+	/**
+	 * The feature id for the '<em><b>Margin Right Unit</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int STYLE__MARGIN_RIGHT_UNIT = REPORT_BASE_FEATURE_COUNT + 25;
+
+	/**
+	 * The feature id for the '<em><b>Extends</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int STYLE__EXTENDS = REPORT_BASE_FEATURE_COUNT + 26;
+
+	/**
+	 * The feature id for the '<em><b>Mediastyles</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int STYLE__MEDIASTYLES = REPORT_BASE_FEATURE_COUNT + 27;
+
+	/**
+	 * The number of structural features of the '<em>Style</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int STYLE_FEATURE_COUNT = REPORT_BASE_FEATURE_COUNT + 28;
+
+	/**
+	 * The operation id for the '<em>EResolve Proxy</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int STYLE___ERESOLVE_PROXY__INTERNALEOBJECT = REPORT_BASE___ERESOLVE_PROXY__INTERNALEOBJECT;
+
+	/**
+	 * The number of operations of the '<em>Style</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int STYLE_OPERATION_COUNT = REPORT_BASE_OPERATION_COUNT + 0;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.osbp.xtext.reportdsl.impl.SomeFormatImpl <em>Some Format</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.osbp.xtext.reportdsl.impl.SomeFormatImpl
+	 * @see org.eclipse.osbp.xtext.reportdsl.impl.ReportDSLPackageImpl#getSomeFormat()
+	 * @generated
+	 */
+	int SOME_FORMAT = 21;
+
+	/**
+	 * The feature id for the '<em><b>Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int SOME_FORMAT__NAME = REPORT_BASE__NAME;
+
+	/**
+	 * The feature id for the '<em><b>Ui pattern</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int SOME_FORMAT__UI_PATTERN = REPORT_BASE_FEATURE_COUNT + 0;
+
+	/**
+	 * The feature id for the '<em><b>Report pattern</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int SOME_FORMAT__REPORT_PATTERN = REPORT_BASE_FEATURE_COUNT + 1;
+
+	/**
+	 * The feature id for the '<em><b>Textalign</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int SOME_FORMAT__TEXTALIGN = REPORT_BASE_FEATURE_COUNT + 2;
+
+	/**
+	 * The number of structural features of the '<em>Some Format</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int SOME_FORMAT_FEATURE_COUNT = REPORT_BASE_FEATURE_COUNT + 3;
+
+	/**
+	 * The operation id for the '<em>EResolve Proxy</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int SOME_FORMAT___ERESOLVE_PROXY__INTERNALEOBJECT = REPORT_BASE___ERESOLVE_PROXY__INTERNALEOBJECT;
+
+	/**
+	 * The number of operations of the '<em>Some Format</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int SOME_FORMAT_OPERATION_COUNT = REPORT_BASE_OPERATION_COUNT + 0;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.osbp.xtext.reportdsl.impl.UomoFormatImpl <em>Uomo Format</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.osbp.xtext.reportdsl.impl.UomoFormatImpl
+	 * @see org.eclipse.osbp.xtext.reportdsl.impl.ReportDSLPackageImpl#getUomoFormat()
+	 * @generated
+	 */
+	int UOMO_FORMAT = 22;
+
+	/**
+	 * The feature id for the '<em><b>Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int UOMO_FORMAT__NAME = SOME_FORMAT__NAME;
+
+	/**
+	 * The feature id for the '<em><b>Ui pattern</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int UOMO_FORMAT__UI_PATTERN = SOME_FORMAT__UI_PATTERN;
+
+	/**
+	 * The feature id for the '<em><b>Report pattern</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int UOMO_FORMAT__REPORT_PATTERN = SOME_FORMAT__REPORT_PATTERN;
+
+	/**
+	 * The feature id for the '<em><b>Textalign</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int UOMO_FORMAT__TEXTALIGN = SOME_FORMAT__TEXTALIGN;
+
+	/**
+	 * The number of structural features of the '<em>Uomo Format</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int UOMO_FORMAT_FEATURE_COUNT = SOME_FORMAT_FEATURE_COUNT + 0;
+
+	/**
+	 * The operation id for the '<em>EResolve Proxy</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int UOMO_FORMAT___ERESOLVE_PROXY__INTERNALEOBJECT = SOME_FORMAT___ERESOLVE_PROXY__INTERNALEOBJECT;
+
+	/**
+	 * The number of operations of the '<em>Uomo Format</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int UOMO_FORMAT_OPERATION_COUNT = SOME_FORMAT_OPERATION_COUNT + 0;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.osbp.xtext.reportdsl.impl.NumberFormatImpl <em>Number Format</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.osbp.xtext.reportdsl.impl.NumberFormatImpl
+	 * @see org.eclipse.osbp.xtext.reportdsl.impl.ReportDSLPackageImpl#getNumberFormat()
+	 * @generated
+	 */
+	int NUMBER_FORMAT = 23;
+
+	/**
+	 * The feature id for the '<em><b>Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int NUMBER_FORMAT__NAME = SOME_FORMAT__NAME;
+
+	/**
+	 * The feature id for the '<em><b>Ui pattern</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int NUMBER_FORMAT__UI_PATTERN = SOME_FORMAT__UI_PATTERN;
+
+	/**
+	 * The feature id for the '<em><b>Report pattern</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int NUMBER_FORMAT__REPORT_PATTERN = SOME_FORMAT__REPORT_PATTERN;
+
+	/**
+	 * The feature id for the '<em><b>Textalign</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int NUMBER_FORMAT__TEXTALIGN = SOME_FORMAT__TEXTALIGN;
+
+	/**
+	 * The feature id for the '<em><b>Report category</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int NUMBER_FORMAT__REPORT_CATEGORY = SOME_FORMAT_FEATURE_COUNT + 0;
+
+	/**
+	 * The number of structural features of the '<em>Number Format</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int NUMBER_FORMAT_FEATURE_COUNT = SOME_FORMAT_FEATURE_COUNT + 1;
+
+	/**
+	 * The operation id for the '<em>EResolve Proxy</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int NUMBER_FORMAT___ERESOLVE_PROXY__INTERNALEOBJECT = SOME_FORMAT___ERESOLVE_PROXY__INTERNALEOBJECT;
+
+	/**
+	 * The number of operations of the '<em>Number Format</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int NUMBER_FORMAT_OPERATION_COUNT = SOME_FORMAT_OPERATION_COUNT + 0;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.osbp.xtext.reportdsl.impl.CurrencyFormatImpl <em>Currency Format</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.osbp.xtext.reportdsl.impl.CurrencyFormatImpl
+	 * @see org.eclipse.osbp.xtext.reportdsl.impl.ReportDSLPackageImpl#getCurrencyFormat()
+	 * @generated
+	 */
+	int CURRENCY_FORMAT = 24;
+
+	/**
+	 * The feature id for the '<em><b>Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CURRENCY_FORMAT__NAME = SOME_FORMAT__NAME;
+
+	/**
+	 * The feature id for the '<em><b>Ui pattern</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CURRENCY_FORMAT__UI_PATTERN = SOME_FORMAT__UI_PATTERN;
+
+	/**
+	 * The feature id for the '<em><b>Report pattern</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CURRENCY_FORMAT__REPORT_PATTERN = SOME_FORMAT__REPORT_PATTERN;
+
+	/**
+	 * The feature id for the '<em><b>Textalign</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CURRENCY_FORMAT__TEXTALIGN = SOME_FORMAT__TEXTALIGN;
+
+	/**
+	 * The feature id for the '<em><b>Report category</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CURRENCY_FORMAT__REPORT_CATEGORY = SOME_FORMAT_FEATURE_COUNT + 0;
+
+	/**
+	 * The number of structural features of the '<em>Currency Format</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CURRENCY_FORMAT_FEATURE_COUNT = SOME_FORMAT_FEATURE_COUNT + 1;
+
+	/**
+	 * The operation id for the '<em>EResolve Proxy</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CURRENCY_FORMAT___ERESOLVE_PROXY__INTERNALEOBJECT = SOME_FORMAT___ERESOLVE_PROXY__INTERNALEOBJECT;
+
+	/**
+	 * The number of operations of the '<em>Currency Format</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CURRENCY_FORMAT_OPERATION_COUNT = SOME_FORMAT_OPERATION_COUNT + 0;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.osbp.xtext.reportdsl.impl.DateFormatImpl <em>Date Format</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.osbp.xtext.reportdsl.impl.DateFormatImpl
+	 * @see org.eclipse.osbp.xtext.reportdsl.impl.ReportDSLPackageImpl#getDateFormat()
+	 * @generated
+	 */
+	int DATE_FORMAT = 25;
+
+	/**
+	 * The feature id for the '<em><b>Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATE_FORMAT__NAME = SOME_FORMAT__NAME;
+
+	/**
+	 * The feature id for the '<em><b>Ui pattern</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATE_FORMAT__UI_PATTERN = SOME_FORMAT__UI_PATTERN;
+
+	/**
+	 * The feature id for the '<em><b>Report pattern</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATE_FORMAT__REPORT_PATTERN = SOME_FORMAT__REPORT_PATTERN;
+
+	/**
+	 * The feature id for the '<em><b>Textalign</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATE_FORMAT__TEXTALIGN = SOME_FORMAT__TEXTALIGN;
+
+	/**
+	 * The feature id for the '<em><b>Report category</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATE_FORMAT__REPORT_CATEGORY = SOME_FORMAT_FEATURE_COUNT + 0;
+
+	/**
+	 * The number of structural features of the '<em>Date Format</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATE_FORMAT_FEATURE_COUNT = SOME_FORMAT_FEATURE_COUNT + 1;
+
+	/**
+	 * The operation id for the '<em>EResolve Proxy</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATE_FORMAT___ERESOLVE_PROXY__INTERNALEOBJECT = SOME_FORMAT___ERESOLVE_PROXY__INTERNALEOBJECT;
+
+	/**
+	 * The number of operations of the '<em>Date Format</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATE_FORMAT_OPERATION_COUNT = SOME_FORMAT_OPERATION_COUNT + 0;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.osbp.xtext.reportdsl.impl.DateTimeFormatImpl <em>Date Time Format</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.osbp.xtext.reportdsl.impl.DateTimeFormatImpl
+	 * @see org.eclipse.osbp.xtext.reportdsl.impl.ReportDSLPackageImpl#getDateTimeFormat()
+	 * @generated
+	 */
+	int DATE_TIME_FORMAT = 26;
+
+	/**
+	 * The feature id for the '<em><b>Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATE_TIME_FORMAT__NAME = SOME_FORMAT__NAME;
+
+	/**
+	 * The feature id for the '<em><b>Ui pattern</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATE_TIME_FORMAT__UI_PATTERN = SOME_FORMAT__UI_PATTERN;
+
+	/**
+	 * The feature id for the '<em><b>Report pattern</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATE_TIME_FORMAT__REPORT_PATTERN = SOME_FORMAT__REPORT_PATTERN;
+
+	/**
+	 * The feature id for the '<em><b>Textalign</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATE_TIME_FORMAT__TEXTALIGN = SOME_FORMAT__TEXTALIGN;
+
+	/**
+	 * The feature id for the '<em><b>Report category</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATE_TIME_FORMAT__REPORT_CATEGORY = SOME_FORMAT_FEATURE_COUNT + 0;
+
+	/**
+	 * The number of structural features of the '<em>Date Time Format</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATE_TIME_FORMAT_FEATURE_COUNT = SOME_FORMAT_FEATURE_COUNT + 1;
+
+	/**
+	 * The operation id for the '<em>EResolve Proxy</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATE_TIME_FORMAT___ERESOLVE_PROXY__INTERNALEOBJECT = SOME_FORMAT___ERESOLVE_PROXY__INTERNALEOBJECT;
+
+	/**
+	 * The number of operations of the '<em>Date Time Format</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATE_TIME_FORMAT_OPERATION_COUNT = SOME_FORMAT_OPERATION_COUNT + 0;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.osbp.xtext.reportdsl.impl.TimeFormatImpl <em>Time Format</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.osbp.xtext.reportdsl.impl.TimeFormatImpl
+	 * @see org.eclipse.osbp.xtext.reportdsl.impl.ReportDSLPackageImpl#getTimeFormat()
+	 * @generated
+	 */
+	int TIME_FORMAT = 27;
+
+	/**
+	 * The feature id for the '<em><b>Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TIME_FORMAT__NAME = SOME_FORMAT__NAME;
+
+	/**
+	 * The feature id for the '<em><b>Ui pattern</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TIME_FORMAT__UI_PATTERN = SOME_FORMAT__UI_PATTERN;
+
+	/**
+	 * The feature id for the '<em><b>Report pattern</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TIME_FORMAT__REPORT_PATTERN = SOME_FORMAT__REPORT_PATTERN;
+
+	/**
+	 * The feature id for the '<em><b>Textalign</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TIME_FORMAT__TEXTALIGN = SOME_FORMAT__TEXTALIGN;
+
+	/**
+	 * The feature id for the '<em><b>Report category</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TIME_FORMAT__REPORT_CATEGORY = SOME_FORMAT_FEATURE_COUNT + 0;
+
+	/**
+	 * The number of structural features of the '<em>Time Format</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TIME_FORMAT_FEATURE_COUNT = SOME_FORMAT_FEATURE_COUNT + 1;
+
+	/**
+	 * The operation id for the '<em>EResolve Proxy</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TIME_FORMAT___ERESOLVE_PROXY__INTERNALEOBJECT = SOME_FORMAT___ERESOLVE_PROXY__INTERNALEOBJECT;
+
+	/**
+	 * The number of operations of the '<em>Time Format</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TIME_FORMAT_OPERATION_COUNT = SOME_FORMAT_OPERATION_COUNT + 0;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.osbp.xtext.reportdsl.impl.ReportImpl <em>Report</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.osbp.xtext.reportdsl.impl.ReportImpl
+	 * @see org.eclipse.osbp.xtext.reportdsl.impl.ReportDSLPackageImpl#getReport()
+	 * @generated
+	 */
+	int REPORT = 28;
+
+	/**
+	 * The feature id for the '<em><b>Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int REPORT__NAME = REPORT_BASE__NAME;
+
+	/**
+	 * The feature id for the '<em><b>Description</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int REPORT__DESCRIPTION = REPORT_BASE_FEATURE_COUNT + 0;
+
+	/**
+	 * The feature id for the '<em><b>Description Value</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int REPORT__DESCRIPTION_VALUE = REPORT_BASE_FEATURE_COUNT + 1;
+
+	/**
+	 * The feature id for the '<em><b>Datamart Ref</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int REPORT__DATAMART_REF = REPORT_BASE_FEATURE_COUNT + 2;
+
+	/**
+	 * The feature id for the '<em><b>Rendering</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int REPORT__RENDERING = REPORT_BASE_FEATURE_COUNT + 3;
+
+	/**
+	 * The feature id for the '<em><b>External Css URI</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int REPORT__EXTERNAL_CSS_URI = REPORT_BASE_FEATURE_COUNT + 4;
+
+	/**
+	 * The feature id for the '<em><b>External Css URI Bundle</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int REPORT__EXTERNAL_CSS_URI_BUNDLE = REPORT_BASE_FEATURE_COUNT + 5;
+
+	/**
+	 * The feature id for the '<em><b>Page Template</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int REPORT__PAGE_TEMPLATE = REPORT_BASE_FEATURE_COUNT + 6;
+
+	/**
+	 * The feature id for the '<em><b>Media</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int REPORT__MEDIA = REPORT_BASE_FEATURE_COUNT + 7;
+
+	/**
+	 * The feature id for the '<em><b>Toolbar</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int REPORT__TOOLBAR = REPORT_BASE_FEATURE_COUNT + 8;
+
+	/**
+	 * The feature id for the '<em><b>Design</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int REPORT__DESIGN = REPORT_BASE_FEATURE_COUNT + 9;
+
+	/**
+	 * The number of structural features of the '<em>Report</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int REPORT_FEATURE_COUNT = REPORT_BASE_FEATURE_COUNT + 10;
+
+	/**
+	 * The operation id for the '<em>EResolve Proxy</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int REPORT___ERESOLVE_PROXY__INTERNALEOBJECT = REPORT_BASE___ERESOLVE_PROXY__INTERNALEOBJECT;
+
+	/**
+	 * The number of operations of the '<em>Report</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int REPORT_OPERATION_COUNT = REPORT_BASE_OPERATION_COUNT + 0;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.osbp.xtext.reportdsl.ReportDesign <em>Report Design</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.osbp.xtext.reportdsl.ReportDesign
+	 * @see org.eclipse.osbp.xtext.reportdsl.impl.ReportDSLPackageImpl#getReportDesign()
+	 * @generated
+	 */
+	int REPORT_DESIGN = 29;
+
+	/**
+	 * The number of structural features of the '<em>Report Design</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int REPORT_DESIGN_FEATURE_COUNT = REPORT_LAZY_RESOLVER_FEATURE_COUNT + 0;
+
+	/**
+	 * The operation id for the '<em>EResolve Proxy</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int REPORT_DESIGN___ERESOLVE_PROXY__INTERNALEOBJECT = REPORT_LAZY_RESOLVER___ERESOLVE_PROXY__INTERNALEOBJECT;
+
+	/**
+	 * The number of operations of the '<em>Report Design</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int REPORT_DESIGN_OPERATION_COUNT = REPORT_LAZY_RESOLVER_OPERATION_COUNT + 0;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.osbp.xtext.reportdsl.impl.ReportDesignFileImpl <em>Report Design File</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.osbp.xtext.reportdsl.impl.ReportDesignFileImpl
+	 * @see org.eclipse.osbp.xtext.reportdsl.impl.ReportDSLPackageImpl#getReportDesignFile()
+	 * @generated
+	 */
+	int REPORT_DESIGN_FILE = 30;
+
+	/**
+	 * The feature id for the '<em><b>Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int REPORT_DESIGN_FILE__NAME = REPORT_DESIGN_FEATURE_COUNT + 0;
+
+	/**
+	 * The number of structural features of the '<em>Report Design File</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int REPORT_DESIGN_FILE_FEATURE_COUNT = REPORT_DESIGN_FEATURE_COUNT + 1;
+
+	/**
+	 * The operation id for the '<em>EResolve Proxy</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int REPORT_DESIGN_FILE___ERESOLVE_PROXY__INTERNALEOBJECT = REPORT_DESIGN___ERESOLVE_PROXY__INTERNALEOBJECT;
+
+	/**
+	 * The number of operations of the '<em>Report Design File</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int REPORT_DESIGN_FILE_OPERATION_COUNT = REPORT_DESIGN_OPERATION_COUNT + 0;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.osbp.xtext.reportdsl.impl.ReportDesignTemplateImpl <em>Report Design Template</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.osbp.xtext.reportdsl.impl.ReportDesignTemplateImpl
+	 * @see org.eclipse.osbp.xtext.reportdsl.impl.ReportDSLPackageImpl#getReportDesignTemplate()
+	 * @generated
+	 */
+	int REPORT_DESIGN_TEMPLATE = 31;
+
+	/**
+	 * The feature id for the '<em><b>Description</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int REPORT_DESIGN_TEMPLATE__DESCRIPTION = REPORT_DESIGN_FEATURE_COUNT + 0;
+
+	/**
+	 * The feature id for the '<em><b>Header</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int REPORT_DESIGN_TEMPLATE__HEADER = REPORT_DESIGN_FEATURE_COUNT + 1;
+
+	/**
+	 * The feature id for the '<em><b>Detail</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int REPORT_DESIGN_TEMPLATE__DETAIL = REPORT_DESIGN_FEATURE_COUNT + 2;
+
+	/**
+	 * The feature id for the '<em><b>Footer</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int REPORT_DESIGN_TEMPLATE__FOOTER = REPORT_DESIGN_FEATURE_COUNT + 3;
+
+	/**
+	 * The number of structural features of the '<em>Report Design Template</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int REPORT_DESIGN_TEMPLATE_FEATURE_COUNT = REPORT_DESIGN_FEATURE_COUNT + 4;
+
+	/**
+	 * The operation id for the '<em>EResolve Proxy</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int REPORT_DESIGN_TEMPLATE___ERESOLVE_PROXY__INTERNALEOBJECT = REPORT_DESIGN___ERESOLVE_PROXY__INTERNALEOBJECT;
+
+	/**
+	 * The number of operations of the '<em>Report Design Template</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int REPORT_DESIGN_TEMPLATE_OPERATION_COUNT = REPORT_DESIGN_OPERATION_COUNT + 0;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.osbp.xtext.reportdsl.impl.ContainerImpl <em>Container</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.osbp.xtext.reportdsl.impl.ContainerImpl
+	 * @see org.eclipse.osbp.xtext.reportdsl.impl.ReportDSLPackageImpl#getContainer()
+	 * @generated
+	 */
+	int CONTAINER = 32;
+
+	/**
+	 * The feature id for the '<em><b>Elements</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CONTAINER__ELEMENTS = REPORT_LAZY_RESOLVER_FEATURE_COUNT + 0;
+
+	/**
+	 * The number of structural features of the '<em>Container</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CONTAINER_FEATURE_COUNT = REPORT_LAZY_RESOLVER_FEATURE_COUNT + 1;
+
+	/**
+	 * The operation id for the '<em>EResolve Proxy</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CONTAINER___ERESOLVE_PROXY__INTERNALEOBJECT = REPORT_LAZY_RESOLVER___ERESOLVE_PROXY__INTERNALEOBJECT;
+
+	/**
+	 * The number of operations of the '<em>Container</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CONTAINER_OPERATION_COUNT = REPORT_LAZY_RESOLVER_OPERATION_COUNT + 0;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.osbp.xtext.reportdsl.impl.PageHeaderImpl <em>Page Header</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.osbp.xtext.reportdsl.impl.PageHeaderImpl
+	 * @see org.eclipse.osbp.xtext.reportdsl.impl.ReportDSLPackageImpl#getPageHeader()
+	 * @generated
+	 */
+	int PAGE_HEADER = 33;
+
+	/**
+	 * The feature id for the '<em><b>Elements</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PAGE_HEADER__ELEMENTS = CONTAINER__ELEMENTS;
+
+	/**
+	 * The feature id for the '<em><b>Show On First</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PAGE_HEADER__SHOW_ON_FIRST = CONTAINER_FEATURE_COUNT + 0;
+
+	/**
+	 * The feature id for the '<em><b>Height Value</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PAGE_HEADER__HEIGHT_VALUE = CONTAINER_FEATURE_COUNT + 1;
+
+	/**
+	 * The feature id for the '<em><b>Height Unit</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PAGE_HEADER__HEIGHT_UNIT = CONTAINER_FEATURE_COUNT + 2;
+
+	/**
+	 * The number of structural features of the '<em>Page Header</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PAGE_HEADER_FEATURE_COUNT = CONTAINER_FEATURE_COUNT + 3;
+
+	/**
+	 * The operation id for the '<em>EResolve Proxy</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PAGE_HEADER___ERESOLVE_PROXY__INTERNALEOBJECT = CONTAINER___ERESOLVE_PROXY__INTERNALEOBJECT;
+
+	/**
+	 * The number of operations of the '<em>Page Header</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PAGE_HEADER_OPERATION_COUNT = CONTAINER_OPERATION_COUNT + 0;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.osbp.xtext.reportdsl.impl.PageDetailImpl <em>Page Detail</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.osbp.xtext.reportdsl.impl.PageDetailImpl
+	 * @see org.eclipse.osbp.xtext.reportdsl.impl.ReportDSLPackageImpl#getPageDetail()
+	 * @generated
+	 */
+	int PAGE_DETAIL = 34;
+
+	/**
+	 * The feature id for the '<em><b>Elements</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PAGE_DETAIL__ELEMENTS = CONTAINER__ELEMENTS;
+
+	/**
+	 * The number of structural features of the '<em>Page Detail</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PAGE_DETAIL_FEATURE_COUNT = CONTAINER_FEATURE_COUNT + 0;
+
+	/**
+	 * The operation id for the '<em>EResolve Proxy</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PAGE_DETAIL___ERESOLVE_PROXY__INTERNALEOBJECT = CONTAINER___ERESOLVE_PROXY__INTERNALEOBJECT;
+
+	/**
+	 * The number of operations of the '<em>Page Detail</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PAGE_DETAIL_OPERATION_COUNT = CONTAINER_OPERATION_COUNT + 0;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.osbp.xtext.reportdsl.impl.PageFooterImpl <em>Page Footer</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.osbp.xtext.reportdsl.impl.PageFooterImpl
+	 * @see org.eclipse.osbp.xtext.reportdsl.impl.ReportDSLPackageImpl#getPageFooter()
+	 * @generated
+	 */
+	int PAGE_FOOTER = 35;
+
+	/**
+	 * The feature id for the '<em><b>Elements</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PAGE_FOOTER__ELEMENTS = CONTAINER__ELEMENTS;
+
+	/**
+	 * The feature id for the '<em><b>Show On Last</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PAGE_FOOTER__SHOW_ON_LAST = CONTAINER_FEATURE_COUNT + 0;
+
+	/**
+	 * The feature id for the '<em><b>Height Value</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PAGE_FOOTER__HEIGHT_VALUE = CONTAINER_FEATURE_COUNT + 1;
+
+	/**
+	 * The feature id for the '<em><b>Height Unit</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PAGE_FOOTER__HEIGHT_UNIT = CONTAINER_FEATURE_COUNT + 2;
+
+	/**
+	 * The number of structural features of the '<em>Page Footer</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PAGE_FOOTER_FEATURE_COUNT = CONTAINER_FEATURE_COUNT + 3;
+
+	/**
+	 * The operation id for the '<em>EResolve Proxy</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PAGE_FOOTER___ERESOLVE_PROXY__INTERNALEOBJECT = CONTAINER___ERESOLVE_PROXY__INTERNALEOBJECT;
+
+	/**
+	 * The number of operations of the '<em>Page Footer</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PAGE_FOOTER_OPERATION_COUNT = CONTAINER_OPERATION_COUNT + 0;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.osbp.xtext.reportdsl.Element <em>Element</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.osbp.xtext.reportdsl.Element
+	 * @see org.eclipse.osbp.xtext.reportdsl.impl.ReportDSLPackageImpl#getElement()
+	 * @generated
+	 */
+	int ELEMENT = 36;
+
+	/**
+	 * The number of structural features of the '<em>Element</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ELEMENT_FEATURE_COUNT = REPORT_LAZY_RESOLVER_FEATURE_COUNT + 0;
+
+	/**
+	 * The operation id for the '<em>EResolve Proxy</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ELEMENT___ERESOLVE_PROXY__INTERNALEOBJECT = REPORT_LAZY_RESOLVER___ERESOLVE_PROXY__INTERNALEOBJECT;
+
+	/**
+	 * The number of operations of the '<em>Element</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ELEMENT_OPERATION_COUNT = REPORT_LAZY_RESOLVER_OPERATION_COUNT + 0;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.osbp.xtext.reportdsl.impl.WithStyleImpl <em>With Style</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.osbp.xtext.reportdsl.impl.WithStyleImpl
+	 * @see org.eclipse.osbp.xtext.reportdsl.impl.ReportDSLPackageImpl#getWithStyle()
+	 * @generated
+	 */
+	int WITH_STYLE = 37;
+
+	/**
+	 * The feature id for the '<em><b>Style</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int WITH_STYLE__STYLE = REPORT_LAZY_RESOLVER_FEATURE_COUNT + 0;
+
+	/**
+	 * The number of structural features of the '<em>With Style</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int WITH_STYLE_FEATURE_COUNT = REPORT_LAZY_RESOLVER_FEATURE_COUNT + 1;
+
+	/**
+	 * The operation id for the '<em>EResolve Proxy</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int WITH_STYLE___ERESOLVE_PROXY__INTERNALEOBJECT = REPORT_LAZY_RESOLVER___ERESOLVE_PROXY__INTERNALEOBJECT;
+
+	/**
+	 * The number of operations of the '<em>With Style</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int WITH_STYLE_OPERATION_COUNT = REPORT_LAZY_RESOLVER_OPERATION_COUNT + 0;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.osbp.xtext.reportdsl.impl.TextElementImpl <em>Text Element</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.osbp.xtext.reportdsl.impl.TextElementImpl
+	 * @see org.eclipse.osbp.xtext.reportdsl.impl.ReportDSLPackageImpl#getTextElement()
+	 * @generated
+	 */
+	int TEXT_ELEMENT = 38;
+
+	/**
+	 * The feature id for the '<em><b>Style</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TEXT_ELEMENT__STYLE = ELEMENT_FEATURE_COUNT + 0;
+
+	/**
+	 * The feature id for the '<em><b>Text</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TEXT_ELEMENT__TEXT = ELEMENT_FEATURE_COUNT + 1;
+
+	/**
+	 * The number of structural features of the '<em>Text Element</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TEXT_ELEMENT_FEATURE_COUNT = ELEMENT_FEATURE_COUNT + 2;
+
+	/**
+	 * The operation id for the '<em>EResolve Proxy</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TEXT_ELEMENT___ERESOLVE_PROXY__INTERNALEOBJECT = ELEMENT___ERESOLVE_PROXY__INTERNALEOBJECT;
+
+	/**
+	 * The number of operations of the '<em>Text Element</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TEXT_ELEMENT_OPERATION_COUNT = ELEMENT_OPERATION_COUNT + 0;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.osbp.xtext.reportdsl.impl.TitleImpl <em>Title</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.osbp.xtext.reportdsl.impl.TitleImpl
+	 * @see org.eclipse.osbp.xtext.reportdsl.impl.ReportDSLPackageImpl#getTitle()
+	 * @generated
+	 */
+	int TITLE = 39;
+
+	/**
+	 * The feature id for the '<em><b>Style</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TITLE__STYLE = TEXT_ELEMENT__STYLE;
+
+	/**
+	 * The feature id for the '<em><b>Text</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TITLE__TEXT = TEXT_ELEMENT__TEXT;
+
+	/**
+	 * The number of structural features of the '<em>Title</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TITLE_FEATURE_COUNT = TEXT_ELEMENT_FEATURE_COUNT + 0;
+
+	/**
+	 * The operation id for the '<em>EResolve Proxy</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TITLE___ERESOLVE_PROXY__INTERNALEOBJECT = TEXT_ELEMENT___ERESOLVE_PROXY__INTERNALEOBJECT;
+
+	/**
+	 * The number of operations of the '<em>Title</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TITLE_OPERATION_COUNT = TEXT_ELEMENT_OPERATION_COUNT + 0;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.osbp.xtext.reportdsl.impl.SubTitleImpl <em>Sub Title</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.osbp.xtext.reportdsl.impl.SubTitleImpl
+	 * @see org.eclipse.osbp.xtext.reportdsl.impl.ReportDSLPackageImpl#getSubTitle()
+	 * @generated
+	 */
+	int SUB_TITLE = 40;
+
+	/**
+	 * The feature id for the '<em><b>Style</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int SUB_TITLE__STYLE = TEXT_ELEMENT__STYLE;
+
+	/**
+	 * The feature id for the '<em><b>Text</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int SUB_TITLE__TEXT = TEXT_ELEMENT__TEXT;
+
+	/**
+	 * The number of structural features of the '<em>Sub Title</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int SUB_TITLE_FEATURE_COUNT = TEXT_ELEMENT_FEATURE_COUNT + 0;
+
+	/**
+	 * The operation id for the '<em>EResolve Proxy</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int SUB_TITLE___ERESOLVE_PROXY__INTERNALEOBJECT = TEXT_ELEMENT___ERESOLVE_PROXY__INTERNALEOBJECT;
+
+	/**
+	 * The number of operations of the '<em>Sub Title</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int SUB_TITLE_OPERATION_COUNT = TEXT_ELEMENT_OPERATION_COUNT + 0;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.osbp.xtext.reportdsl.impl.SubSubTitleImpl <em>Sub Sub Title</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.osbp.xtext.reportdsl.impl.SubSubTitleImpl
+	 * @see org.eclipse.osbp.xtext.reportdsl.impl.ReportDSLPackageImpl#getSubSubTitle()
+	 * @generated
+	 */
+	int SUB_SUB_TITLE = 41;
+
+	/**
+	 * The feature id for the '<em><b>Style</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int SUB_SUB_TITLE__STYLE = TEXT_ELEMENT__STYLE;
+
+	/**
+	 * The feature id for the '<em><b>Text</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int SUB_SUB_TITLE__TEXT = TEXT_ELEMENT__TEXT;
+
+	/**
+	 * The number of structural features of the '<em>Sub Sub Title</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int SUB_SUB_TITLE_FEATURE_COUNT = TEXT_ELEMENT_FEATURE_COUNT + 0;
+
+	/**
+	 * The operation id for the '<em>EResolve Proxy</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int SUB_SUB_TITLE___ERESOLVE_PROXY__INTERNALEOBJECT = TEXT_ELEMENT___ERESOLVE_PROXY__INTERNALEOBJECT;
+
+	/**
+	 * The number of operations of the '<em>Sub Sub Title</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int SUB_SUB_TITLE_OPERATION_COUNT = TEXT_ELEMENT_OPERATION_COUNT + 0;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.osbp.xtext.reportdsl.impl.LabelImpl <em>Label</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.osbp.xtext.reportdsl.impl.LabelImpl
+	 * @see org.eclipse.osbp.xtext.reportdsl.impl.ReportDSLPackageImpl#getLabel()
+	 * @generated
+	 */
+	int LABEL = 42;
+
+	/**
+	 * The feature id for the '<em><b>Style</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int LABEL__STYLE = TEXT_ELEMENT__STYLE;
+
+	/**
+	 * The feature id for the '<em><b>Text</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int LABEL__TEXT = TEXT_ELEMENT__TEXT;
+
+	/**
+	 * The number of structural features of the '<em>Label</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int LABEL_FEATURE_COUNT = TEXT_ELEMENT_FEATURE_COUNT + 0;
+
+	/**
+	 * The operation id for the '<em>EResolve Proxy</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int LABEL___ERESOLVE_PROXY__INTERNALEOBJECT = TEXT_ELEMENT___ERESOLVE_PROXY__INTERNALEOBJECT;
+
+	/**
+	 * The number of operations of the '<em>Label</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int LABEL_OPERATION_COUNT = TEXT_ELEMENT_OPERATION_COUNT + 0;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.osbp.xtext.reportdsl.impl.TextImpl <em>Text</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.osbp.xtext.reportdsl.impl.TextImpl
+	 * @see org.eclipse.osbp.xtext.reportdsl.impl.ReportDSLPackageImpl#getText()
+	 * @generated
+	 */
+	int TEXT = 43;
+
+	/**
+	 * The feature id for the '<em><b>Style</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TEXT__STYLE = TEXT_ELEMENT__STYLE;
+
+	/**
+	 * The feature id for the '<em><b>Text</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TEXT__TEXT = TEXT_ELEMENT__TEXT;
+
+	/**
+	 * The number of structural features of the '<em>Text</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TEXT_FEATURE_COUNT = TEXT_ELEMENT_FEATURE_COUNT + 0;
+
+	/**
+	 * The operation id for the '<em>EResolve Proxy</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TEXT___ERESOLVE_PROXY__INTERNALEOBJECT = TEXT_ELEMENT___ERESOLVE_PROXY__INTERNALEOBJECT;
+
+	/**
+	 * The number of operations of the '<em>Text</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TEXT_OPERATION_COUNT = TEXT_ELEMENT_OPERATION_COUNT + 0;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.osbp.xtext.reportdsl.impl.AutoTextImpl <em>Auto Text</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.osbp.xtext.reportdsl.impl.AutoTextImpl
+	 * @see org.eclipse.osbp.xtext.reportdsl.impl.ReportDSLPackageImpl#getAutoText()
+	 * @generated
+	 */
+	int AUTO_TEXT = 44;
+
+	/**
+	 * The feature id for the '<em><b>Style</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int AUTO_TEXT__STYLE = ELEMENT_FEATURE_COUNT + 0;
+
+	/**
+	 * The feature id for the '<em><b>Type</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int AUTO_TEXT__TYPE = ELEMENT_FEATURE_COUNT + 1;
+
+	/**
+	 * The number of structural features of the '<em>Auto Text</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int AUTO_TEXT_FEATURE_COUNT = ELEMENT_FEATURE_COUNT + 2;
+
+	/**
+	 * The operation id for the '<em>EResolve Proxy</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int AUTO_TEXT___ERESOLVE_PROXY__INTERNALEOBJECT = ELEMENT___ERESOLVE_PROXY__INTERNALEOBJECT;
+
+	/**
+	 * The number of operations of the '<em>Auto Text</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int AUTO_TEXT_OPERATION_COUNT = ELEMENT_OPERATION_COUNT + 0;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.osbp.xtext.reportdsl.impl.ImageImpl <em>Image</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.osbp.xtext.reportdsl.impl.ImageImpl
+	 * @see org.eclipse.osbp.xtext.reportdsl.impl.ReportDSLPackageImpl#getImage()
+	 * @generated
+	 */
+	int IMAGE = 45;
+
+	/**
+	 * The feature id for the '<em><b>Style</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int IMAGE__STYLE = ELEMENT_FEATURE_COUNT + 0;
+
+	/**
+	 * The feature id for the '<em><b>Size</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int IMAGE__SIZE = ELEMENT_FEATURE_COUNT + 1;
+
+	/**
+	 * The feature id for the '<em><b>Scale</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int IMAGE__SCALE = ELEMENT_FEATURE_COUNT + 2;
+
+	/**
+	 * The feature id for the '<em><b>Source Type</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int IMAGE__SOURCE_TYPE = ELEMENT_FEATURE_COUNT + 3;
+
+	/**
+	 * The feature id for the '<em><b>Filename</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int IMAGE__FILENAME = ELEMENT_FEATURE_COUNT + 4;
+
+	/**
+	 * The number of structural features of the '<em>Image</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int IMAGE_FEATURE_COUNT = ELEMENT_FEATURE_COUNT + 5;
+
+	/**
+	 * The operation id for the '<em>EResolve Proxy</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int IMAGE___ERESOLVE_PROXY__INTERNALEOBJECT = ELEMENT___ERESOLVE_PROXY__INTERNALEOBJECT;
+
+	/**
+	 * The number of operations of the '<em>Image</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int IMAGE_OPERATION_COUNT = ELEMENT_OPERATION_COUNT + 0;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.osbp.xtext.reportdsl.impl.WithHeaderFooterImpl <em>With Header Footer</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.osbp.xtext.reportdsl.impl.WithHeaderFooterImpl
+	 * @see org.eclipse.osbp.xtext.reportdsl.impl.ReportDSLPackageImpl#getWithHeaderFooter()
+	 * @generated
+	 */
+	int WITH_HEADER_FOOTER = 46;
+
+	/**
+	 * The feature id for the '<em><b>Detailheader</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int WITH_HEADER_FOOTER__DETAILHEADER = REPORT_LAZY_RESOLVER_FEATURE_COUNT + 0;
+
+	/**
+	 * The feature id for the '<em><b>Headerstyle</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int WITH_HEADER_FOOTER__HEADERSTYLE = REPORT_LAZY_RESOLVER_FEATURE_COUNT + 1;
+
+	/**
+	 * The feature id for the '<em><b>Detailfooter</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int WITH_HEADER_FOOTER__DETAILFOOTER = REPORT_LAZY_RESOLVER_FEATURE_COUNT + 2;
+
+	/**
+	 * The feature id for the '<em><b>Footerstyle</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int WITH_HEADER_FOOTER__FOOTERSTYLE = REPORT_LAZY_RESOLVER_FEATURE_COUNT + 3;
+
+	/**
+	 * The number of structural features of the '<em>With Header Footer</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int WITH_HEADER_FOOTER_FEATURE_COUNT = REPORT_LAZY_RESOLVER_FEATURE_COUNT + 4;
+
+	/**
+	 * The operation id for the '<em>EResolve Proxy</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int WITH_HEADER_FOOTER___ERESOLVE_PROXY__INTERNALEOBJECT = REPORT_LAZY_RESOLVER___ERESOLVE_PROXY__INTERNALEOBJECT;
+
+	/**
+	 * The number of operations of the '<em>With Header Footer</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int WITH_HEADER_FOOTER_OPERATION_COUNT = REPORT_LAZY_RESOLVER_OPERATION_COUNT + 0;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.osbp.xtext.reportdsl.impl.DatamartTableImpl <em>Datamart Table</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.osbp.xtext.reportdsl.impl.DatamartTableImpl
+	 * @see org.eclipse.osbp.xtext.reportdsl.impl.ReportDSLPackageImpl#getDatamartTable()
+	 * @generated
+	 */
+	int DATAMART_TABLE = 47;
+
+	/**
+	 * The feature id for the '<em><b>Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATAMART_TABLE__NAME = REPORT_BASE__NAME;
+
+	/**
+	 * The feature id for the '<em><b>Style</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATAMART_TABLE__STYLE = REPORT_BASE_FEATURE_COUNT + 0;
+
+	/**
+	 * The feature id for the '<em><b>Detailheader</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATAMART_TABLE__DETAILHEADER = REPORT_BASE_FEATURE_COUNT + 1;
+
+	/**
+	 * The feature id for the '<em><b>Headerstyle</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATAMART_TABLE__HEADERSTYLE = REPORT_BASE_FEATURE_COUNT + 2;
+
+	/**
+	 * The feature id for the '<em><b>Detailfooter</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATAMART_TABLE__DETAILFOOTER = REPORT_BASE_FEATURE_COUNT + 3;
+
+	/**
+	 * The feature id for the '<em><b>Footerstyle</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATAMART_TABLE__FOOTERSTYLE = REPORT_BASE_FEATURE_COUNT + 4;
+
+	/**
+	 * The feature id for the '<em><b>Groups</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATAMART_TABLE__GROUPS = REPORT_BASE_FEATURE_COUNT + 5;
+
+	/**
+	 * The feature id for the '<em><b>Detail</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATAMART_TABLE__DETAIL = REPORT_BASE_FEATURE_COUNT + 6;
+
+	/**
+	 * The number of structural features of the '<em>Datamart Table</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATAMART_TABLE_FEATURE_COUNT = REPORT_BASE_FEATURE_COUNT + 7;
+
+	/**
+	 * The operation id for the '<em>EResolve Proxy</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATAMART_TABLE___ERESOLVE_PROXY__INTERNALEOBJECT = REPORT_BASE___ERESOLVE_PROXY__INTERNALEOBJECT;
+
+	/**
+	 * The number of operations of the '<em>Datamart Table</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATAMART_TABLE_OPERATION_COUNT = REPORT_BASE_OPERATION_COUNT + 0;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.osbp.xtext.reportdsl.impl.DatamartTableGroupImpl <em>Datamart Table Group</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.osbp.xtext.reportdsl.impl.DatamartTableGroupImpl
+	 * @see org.eclipse.osbp.xtext.reportdsl.impl.ReportDSLPackageImpl#getDatamartTableGroup()
+	 * @generated
+	 */
+	int DATAMART_TABLE_GROUP = 48;
+
+	/**
+	 * The feature id for the '<em><b>Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATAMART_TABLE_GROUP__NAME = REPORT_BASE__NAME;
+
+	/**
+	 * The feature id for the '<em><b>Detailheader</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATAMART_TABLE_GROUP__DETAILHEADER = REPORT_BASE_FEATURE_COUNT + 0;
+
+	/**
+	 * The feature id for the '<em><b>Headerstyle</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATAMART_TABLE_GROUP__HEADERSTYLE = REPORT_BASE_FEATURE_COUNT + 1;
+
+	/**
+	 * The feature id for the '<em><b>Detailfooter</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATAMART_TABLE_GROUP__DETAILFOOTER = REPORT_BASE_FEATURE_COUNT + 2;
+
+	/**
+	 * The feature id for the '<em><b>Footerstyle</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATAMART_TABLE_GROUP__FOOTERSTYLE = REPORT_BASE_FEATURE_COUNT + 3;
+
+	/**
+	 * The feature id for the '<em><b>Grouping Ref</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATAMART_TABLE_GROUP__GROUPING_REF = REPORT_BASE_FEATURE_COUNT + 4;
+
+	/**
+	 * The feature id for the '<em><b>Header</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATAMART_TABLE_GROUP__HEADER = REPORT_BASE_FEATURE_COUNT + 5;
+
+	/**
+	 * The feature id for the '<em><b>Footer</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATAMART_TABLE_GROUP__FOOTER = REPORT_BASE_FEATURE_COUNT + 6;
+
+	/**
+	 * The number of structural features of the '<em>Datamart Table Group</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATAMART_TABLE_GROUP_FEATURE_COUNT = REPORT_BASE_FEATURE_COUNT + 7;
+
+	/**
+	 * The operation id for the '<em>EResolve Proxy</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATAMART_TABLE_GROUP___ERESOLVE_PROXY__INTERNALEOBJECT = REPORT_BASE___ERESOLVE_PROXY__INTERNALEOBJECT;
+
+	/**
+	 * The number of operations of the '<em>Datamart Table Group</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATAMART_TABLE_GROUP_OPERATION_COUNT = REPORT_BASE_OPERATION_COUNT + 0;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.osbp.xtext.reportdsl.impl.SomeGridImpl <em>Some Grid</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.osbp.xtext.reportdsl.impl.SomeGridImpl
+	 * @see org.eclipse.osbp.xtext.reportdsl.impl.ReportDSLPackageImpl#getSomeGrid()
+	 * @generated
+	 */
+	int SOME_GRID = 49;
+
+	/**
+	 * The feature id for the '<em><b>Rows</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int SOME_GRID__ROWS = REPORT_LAZY_RESOLVER_FEATURE_COUNT + 0;
+
+	/**
+	 * The number of structural features of the '<em>Some Grid</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int SOME_GRID_FEATURE_COUNT = REPORT_LAZY_RESOLVER_FEATURE_COUNT + 1;
+
+	/**
+	 * The operation id for the '<em>EResolve Proxy</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int SOME_GRID___ERESOLVE_PROXY__INTERNALEOBJECT = REPORT_LAZY_RESOLVER___ERESOLVE_PROXY__INTERNALEOBJECT;
+
+	/**
+	 * The number of operations of the '<em>Some Grid</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int SOME_GRID_OPERATION_COUNT = REPORT_LAZY_RESOLVER_OPERATION_COUNT + 0;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.osbp.xtext.reportdsl.impl.DatamartTableGroupHeaderImpl <em>Datamart Table Group Header</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.osbp.xtext.reportdsl.impl.DatamartTableGroupHeaderImpl
+	 * @see org.eclipse.osbp.xtext.reportdsl.impl.ReportDSLPackageImpl#getDatamartTableGroupHeader()
+	 * @generated
+	 */
+	int DATAMART_TABLE_GROUP_HEADER = 50;
+
+	/**
+	 * The feature id for the '<em><b>Rows</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATAMART_TABLE_GROUP_HEADER__ROWS = ELEMENT_FEATURE_COUNT + 0;
+
+	/**
+	 * The feature id for the '<em><b>Style</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATAMART_TABLE_GROUP_HEADER__STYLE = ELEMENT_FEATURE_COUNT + 1;
+
+	/**
+	 * The number of structural features of the '<em>Datamart Table Group Header</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATAMART_TABLE_GROUP_HEADER_FEATURE_COUNT = ELEMENT_FEATURE_COUNT + 2;
+
+	/**
+	 * The operation id for the '<em>EResolve Proxy</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATAMART_TABLE_GROUP_HEADER___ERESOLVE_PROXY__INTERNALEOBJECT = ELEMENT___ERESOLVE_PROXY__INTERNALEOBJECT;
+
+	/**
+	 * The number of operations of the '<em>Datamart Table Group Header</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATAMART_TABLE_GROUP_HEADER_OPERATION_COUNT = ELEMENT_OPERATION_COUNT + 0;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.osbp.xtext.reportdsl.impl.DatamartTableGroupFooterImpl <em>Datamart Table Group Footer</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.osbp.xtext.reportdsl.impl.DatamartTableGroupFooterImpl
+	 * @see org.eclipse.osbp.xtext.reportdsl.impl.ReportDSLPackageImpl#getDatamartTableGroupFooter()
+	 * @generated
+	 */
+	int DATAMART_TABLE_GROUP_FOOTER = 51;
+
+	/**
+	 * The feature id for the '<em><b>Rows</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATAMART_TABLE_GROUP_FOOTER__ROWS = ELEMENT_FEATURE_COUNT + 0;
+
+	/**
+	 * The feature id for the '<em><b>Style</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATAMART_TABLE_GROUP_FOOTER__STYLE = ELEMENT_FEATURE_COUNT + 1;
+
+	/**
+	 * The number of structural features of the '<em>Datamart Table Group Footer</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATAMART_TABLE_GROUP_FOOTER_FEATURE_COUNT = ELEMENT_FEATURE_COUNT + 2;
+
+	/**
+	 * The operation id for the '<em>EResolve Proxy</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATAMART_TABLE_GROUP_FOOTER___ERESOLVE_PROXY__INTERNALEOBJECT = ELEMENT___ERESOLVE_PROXY__INTERNALEOBJECT;
+
+	/**
+	 * The number of operations of the '<em>Datamart Table Group Footer</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATAMART_TABLE_GROUP_FOOTER_OPERATION_COUNT = ELEMENT_OPERATION_COUNT + 0;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.osbp.xtext.reportdsl.impl.DatamartTableDetailImpl <em>Datamart Table Detail</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.osbp.xtext.reportdsl.impl.DatamartTableDetailImpl
+	 * @see org.eclipse.osbp.xtext.reportdsl.impl.ReportDSLPackageImpl#getDatamartTableDetail()
+	 * @generated
+	 */
+	int DATAMART_TABLE_DETAIL = 52;
+
+	/**
+	 * The feature id for the '<em><b>Style</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATAMART_TABLE_DETAIL__STYLE = WITH_STYLE__STYLE;
+
+	/**
+	 * The feature id for the '<em><b>Column Formatters</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATAMART_TABLE_DETAIL__COLUMN_FORMATTERS = WITH_STYLE_FEATURE_COUNT + 0;
+
+	/**
+	 * The number of structural features of the '<em>Datamart Table Detail</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATAMART_TABLE_DETAIL_FEATURE_COUNT = WITH_STYLE_FEATURE_COUNT + 1;
+
+	/**
+	 * The operation id for the '<em>EResolve Proxy</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATAMART_TABLE_DETAIL___ERESOLVE_PROXY__INTERNALEOBJECT = WITH_STYLE___ERESOLVE_PROXY__INTERNALEOBJECT;
+
+	/**
+	 * The number of operations of the '<em>Datamart Table Detail</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATAMART_TABLE_DETAIL_OPERATION_COUNT = WITH_STYLE_OPERATION_COUNT + 0;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.osbp.xtext.reportdsl.impl.DatamartTablePropertyImpl <em>Datamart Table Property</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.osbp.xtext.reportdsl.impl.DatamartTablePropertyImpl
+	 * @see org.eclipse.osbp.xtext.reportdsl.impl.ReportDSLPackageImpl#getDatamartTableProperty()
+	 * @generated
+	 */
+	int DATAMART_TABLE_PROPERTY = 53;
+
+	/**
+	 * The feature id for the '<em><b>Style</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATAMART_TABLE_PROPERTY__STYLE = ELEMENT_FEATURE_COUNT + 0;
+
+	/**
+	 * The feature id for the '<em><b>Column</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATAMART_TABLE_PROPERTY__COLUMN = ELEMENT_FEATURE_COUNT + 1;
+
+	/**
+	 * The feature id for the '<em><b>Intervals</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATAMART_TABLE_PROPERTY__INTERVALS = ELEMENT_FEATURE_COUNT + 2;
+
+	/**
+	 * The feature id for the '<em><b>Hide Label Interval</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATAMART_TABLE_PROPERTY__HIDE_LABEL_INTERVAL = ELEMENT_FEATURE_COUNT + 3;
+
+	/**
+	 * The feature id for the '<em><b>Lookups</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATAMART_TABLE_PROPERTY__LOOKUPS = ELEMENT_FEATURE_COUNT + 4;
+
+	/**
+	 * The feature id for the '<em><b>Hide Label Lookup</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATAMART_TABLE_PROPERTY__HIDE_LABEL_LOOKUP = ELEMENT_FEATURE_COUNT + 5;
+
+	/**
+	 * The feature id for the '<em><b>Has Image</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATAMART_TABLE_PROPERTY__HAS_IMAGE = ELEMENT_FEATURE_COUNT + 6;
+
+	/**
+	 * The feature id for the '<em><b>Image</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATAMART_TABLE_PROPERTY__IMAGE = ELEMENT_FEATURE_COUNT + 7;
+
+	/**
+	 * The number of structural features of the '<em>Datamart Table Property</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATAMART_TABLE_PROPERTY_FEATURE_COUNT = ELEMENT_FEATURE_COUNT + 8;
+
+	/**
+	 * The operation id for the '<em>EResolve Proxy</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATAMART_TABLE_PROPERTY___ERESOLVE_PROXY__INTERNALEOBJECT = ELEMENT___ERESOLVE_PROXY__INTERNALEOBJECT;
+
+	/**
+	 * The number of operations of the '<em>Datamart Table Property</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATAMART_TABLE_PROPERTY_OPERATION_COUNT = ELEMENT_OPERATION_COUNT + 0;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.osbp.xtext.reportdsl.impl.TableFormatterImpl <em>Table Formatter</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.osbp.xtext.reportdsl.impl.TableFormatterImpl
+	 * @see org.eclipse.osbp.xtext.reportdsl.impl.ReportDSLPackageImpl#getTableFormatter()
+	 * @generated
+	 */
+	int TABLE_FORMATTER = 54;
+
+	/**
+	 * The feature id for the '<em><b>Format</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TABLE_FORMATTER__FORMAT = 0;
+
+	/**
+	 * The number of structural features of the '<em>Table Formatter</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TABLE_FORMATTER_FEATURE_COUNT = 1;
+
+	/**
+	 * The number of operations of the '<em>Table Formatter</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TABLE_FORMATTER_OPERATION_COUNT = 0;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.osbp.xtext.reportdsl.impl.TableImageImpl <em>Table Image</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.osbp.xtext.reportdsl.impl.TableImageImpl
+	 * @see org.eclipse.osbp.xtext.reportdsl.impl.ReportDSLPackageImpl#getTableImage()
+	 * @generated
+	 */
+	int TABLE_IMAGE = 55;
+
+	/**
+	 * The feature id for the '<em><b>Image Path Pattern</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TABLE_IMAGE__IMAGE_PATH_PATTERN = REPORT_LAZY_RESOLVER_FEATURE_COUNT + 0;
+
+	/**
+	 * The feature id for the '<em><b>Hide Image Label</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TABLE_IMAGE__HIDE_IMAGE_LABEL = REPORT_LAZY_RESOLVER_FEATURE_COUNT + 1;
+
+	/**
+	 * The feature id for the '<em><b>Has Parameter</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TABLE_IMAGE__HAS_PARAMETER = REPORT_LAZY_RESOLVER_FEATURE_COUNT + 2;
+
+	/**
+	 * The feature id for the '<em><b>Resize</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TABLE_IMAGE__RESIZE = REPORT_LAZY_RESOLVER_FEATURE_COUNT + 3;
+
+	/**
+	 * The feature id for the '<em><b>Resize String</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TABLE_IMAGE__RESIZE_STRING = REPORT_LAZY_RESOLVER_FEATURE_COUNT + 4;
+
+	/**
+	 * The feature id for the '<em><b>Image Path Parameter</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TABLE_IMAGE__IMAGE_PATH_PARAMETER = REPORT_LAZY_RESOLVER_FEATURE_COUNT + 5;
+
+	/**
+	 * The number of structural features of the '<em>Table Image</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TABLE_IMAGE_FEATURE_COUNT = REPORT_LAZY_RESOLVER_FEATURE_COUNT + 6;
+
+	/**
+	 * The operation id for the '<em>EResolve Proxy</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TABLE_IMAGE___ERESOLVE_PROXY__INTERNALEOBJECT = REPORT_LAZY_RESOLVER___ERESOLVE_PROXY__INTERNALEOBJECT;
+
+	/**
+	 * The number of operations of the '<em>Table Image</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TABLE_IMAGE_OPERATION_COUNT = REPORT_LAZY_RESOLVER_OPERATION_COUNT + 0;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.osbp.xtext.reportdsl.TableValueElement <em>Table Value Element</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.osbp.xtext.reportdsl.TableValueElement
+	 * @see org.eclipse.osbp.xtext.reportdsl.impl.ReportDSLPackageImpl#getTableValueElement()
+	 * @generated
+	 */
+	int TABLE_VALUE_ELEMENT = 56;
+
+	/**
+	 * The number of structural features of the '<em>Table Value Element</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TABLE_VALUE_ELEMENT_FEATURE_COUNT = REPORT_LAZY_RESOLVER_FEATURE_COUNT + 0;
+
+	/**
+	 * The operation id for the '<em>EResolve Proxy</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TABLE_VALUE_ELEMENT___ERESOLVE_PROXY__INTERNALEOBJECT = REPORT_LAZY_RESOLVER___ERESOLVE_PROXY__INTERNALEOBJECT;
+
+	/**
+	 * The number of operations of the '<em>Table Value Element</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TABLE_VALUE_ELEMENT_OPERATION_COUNT = REPORT_LAZY_RESOLVER_OPERATION_COUNT + 0;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.osbp.xtext.reportdsl.impl.TablePropertyImpl <em>Table Property</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.osbp.xtext.reportdsl.impl.TablePropertyImpl
+	 * @see org.eclipse.osbp.xtext.reportdsl.impl.ReportDSLPackageImpl#getTableProperty()
+	 * @generated
+	 */
+	int TABLE_PROPERTY = 57;
+
+	/**
+	 * The feature id for the '<em><b>Value Ref</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TABLE_PROPERTY__VALUE_REF = TABLE_VALUE_ELEMENT_FEATURE_COUNT + 0;
+
+	/**
+	 * The number of structural features of the '<em>Table Property</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TABLE_PROPERTY_FEATURE_COUNT = TABLE_VALUE_ELEMENT_FEATURE_COUNT + 1;
+
+	/**
+	 * The operation id for the '<em>EResolve Proxy</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TABLE_PROPERTY___ERESOLVE_PROXY__INTERNALEOBJECT = TABLE_VALUE_ELEMENT___ERESOLVE_PROXY__INTERNALEOBJECT;
+
+	/**
+	 * The number of operations of the '<em>Table Property</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TABLE_PROPERTY_OPERATION_COUNT = TABLE_VALUE_ELEMENT_OPERATION_COUNT + 0;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.osbp.xtext.reportdsl.impl.TableAggregationImpl <em>Table Aggregation</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.osbp.xtext.reportdsl.impl.TableAggregationImpl
+	 * @see org.eclipse.osbp.xtext.reportdsl.impl.ReportDSLPackageImpl#getTableAggregation()
+	 * @generated
+	 */
+	int TABLE_AGGREGATION = 58;
+
+	/**
+	 * The feature id for the '<em><b>Text</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TABLE_AGGREGATION__TEXT = TABLE_VALUE_ELEMENT_FEATURE_COUNT + 0;
+
+	/**
+	 * The feature id for the '<em><b>Aggregation</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TABLE_AGGREGATION__AGGREGATION = TABLE_VALUE_ELEMENT_FEATURE_COUNT + 1;
+
+	/**
+	 * The feature id for the '<em><b>On Group</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TABLE_AGGREGATION__ON_GROUP = TABLE_VALUE_ELEMENT_FEATURE_COUNT + 2;
+
+	/**
+	 * The number of structural features of the '<em>Table Aggregation</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TABLE_AGGREGATION_FEATURE_COUNT = TABLE_VALUE_ELEMENT_FEATURE_COUNT + 3;
+
+	/**
+	 * The operation id for the '<em>EResolve Proxy</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TABLE_AGGREGATION___ERESOLVE_PROXY__INTERNALEOBJECT = TABLE_VALUE_ELEMENT___ERESOLVE_PROXY__INTERNALEOBJECT;
+
+	/**
+	 * The number of operations of the '<em>Table Aggregation</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TABLE_AGGREGATION_OPERATION_COUNT = TABLE_VALUE_ELEMENT_OPERATION_COUNT + 0;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.osbp.xtext.reportdsl.impl.TableBaseAggregationImpl <em>Table Base Aggregation</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.osbp.xtext.reportdsl.impl.TableBaseAggregationImpl
+	 * @see org.eclipse.osbp.xtext.reportdsl.impl.ReportDSLPackageImpl#getTableBaseAggregation()
+	 * @generated
+	 */
+	int TABLE_BASE_AGGREGATION = 59;
+
+	/**
+	 * The feature id for the '<em><b>Value Refs</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TABLE_BASE_AGGREGATION__VALUE_REFS = REPORT_LAZY_RESOLVER_FEATURE_COUNT + 0;
+
+	/**
+	 * The number of structural features of the '<em>Table Base Aggregation</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TABLE_BASE_AGGREGATION_FEATURE_COUNT = REPORT_LAZY_RESOLVER_FEATURE_COUNT + 1;
+
+	/**
+	 * The operation id for the '<em>EResolve Proxy</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TABLE_BASE_AGGREGATION___ERESOLVE_PROXY__INTERNALEOBJECT = REPORT_LAZY_RESOLVER___ERESOLVE_PROXY__INTERNALEOBJECT;
+
+	/**
+	 * The number of operations of the '<em>Table Base Aggregation</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TABLE_BASE_AGGREGATION_OPERATION_COUNT = REPORT_LAZY_RESOLVER_OPERATION_COUNT + 0;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.osbp.xtext.reportdsl.impl.TablePureAggregationImpl <em>Table Pure Aggregation</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.osbp.xtext.reportdsl.impl.TablePureAggregationImpl
+	 * @see org.eclipse.osbp.xtext.reportdsl.impl.ReportDSLPackageImpl#getTablePureAggregation()
+	 * @generated
+	 */
+	int TABLE_PURE_AGGREGATION = 60;
+
+	/**
+	 * The feature id for the '<em><b>Value Refs</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TABLE_PURE_AGGREGATION__VALUE_REFS = TABLE_BASE_AGGREGATION__VALUE_REFS;
+
+	/**
+	 * The feature id for the '<em><b>Aggregation</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TABLE_PURE_AGGREGATION__AGGREGATION = TABLE_BASE_AGGREGATION_FEATURE_COUNT + 0;
+
+	/**
+	 * The number of structural features of the '<em>Table Pure Aggregation</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TABLE_PURE_AGGREGATION_FEATURE_COUNT = TABLE_BASE_AGGREGATION_FEATURE_COUNT + 1;
+
+	/**
+	 * The operation id for the '<em>EResolve Proxy</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TABLE_PURE_AGGREGATION___ERESOLVE_PROXY__INTERNALEOBJECT = TABLE_BASE_AGGREGATION___ERESOLVE_PROXY__INTERNALEOBJECT;
+
+	/**
+	 * The number of operations of the '<em>Table Pure Aggregation</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TABLE_PURE_AGGREGATION_OPERATION_COUNT = TABLE_BASE_AGGREGATION_OPERATION_COUNT + 0;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.osbp.xtext.reportdsl.impl.TableUnaryAggregationImpl <em>Table Unary Aggregation</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.osbp.xtext.reportdsl.impl.TableUnaryAggregationImpl
+	 * @see org.eclipse.osbp.xtext.reportdsl.impl.ReportDSLPackageImpl#getTableUnaryAggregation()
+	 * @generated
+	 */
+	int TABLE_UNARY_AGGREGATION = 61;
+
+	/**
+	 * The feature id for the '<em><b>Value Refs</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TABLE_UNARY_AGGREGATION__VALUE_REFS = TABLE_BASE_AGGREGATION__VALUE_REFS;
+
+	/**
+	 * The feature id for the '<em><b>Aggregation</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TABLE_UNARY_AGGREGATION__AGGREGATION = TABLE_BASE_AGGREGATION_FEATURE_COUNT + 0;
+
+	/**
+	 * The number of structural features of the '<em>Table Unary Aggregation</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TABLE_UNARY_AGGREGATION_FEATURE_COUNT = TABLE_BASE_AGGREGATION_FEATURE_COUNT + 1;
+
+	/**
+	 * The operation id for the '<em>EResolve Proxy</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TABLE_UNARY_AGGREGATION___ERESOLVE_PROXY__INTERNALEOBJECT = TABLE_BASE_AGGREGATION___ERESOLVE_PROXY__INTERNALEOBJECT;
+
+	/**
+	 * The number of operations of the '<em>Table Unary Aggregation</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TABLE_UNARY_AGGREGATION_OPERATION_COUNT = TABLE_BASE_AGGREGATION_OPERATION_COUNT + 0;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.osbp.xtext.reportdsl.impl.TableMultipleAggregationImpl <em>Table Multiple Aggregation</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.osbp.xtext.reportdsl.impl.TableMultipleAggregationImpl
+	 * @see org.eclipse.osbp.xtext.reportdsl.impl.ReportDSLPackageImpl#getTableMultipleAggregation()
+	 * @generated
+	 */
+	int TABLE_MULTIPLE_AGGREGATION = 62;
+
+	/**
+	 * The feature id for the '<em><b>Value Refs</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TABLE_MULTIPLE_AGGREGATION__VALUE_REFS = TABLE_BASE_AGGREGATION__VALUE_REFS;
+
+	/**
+	 * The feature id for the '<em><b>Aggregation</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TABLE_MULTIPLE_AGGREGATION__AGGREGATION = TABLE_BASE_AGGREGATION_FEATURE_COUNT + 0;
+
+	/**
+	 * The number of structural features of the '<em>Table Multiple Aggregation</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TABLE_MULTIPLE_AGGREGATION_FEATURE_COUNT = TABLE_BASE_AGGREGATION_FEATURE_COUNT + 1;
+
+	/**
+	 * The operation id for the '<em>EResolve Proxy</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TABLE_MULTIPLE_AGGREGATION___ERESOLVE_PROXY__INTERNALEOBJECT = TABLE_BASE_AGGREGATION___ERESOLVE_PROXY__INTERNALEOBJECT;
+
+	/**
+	 * The number of operations of the '<em>Table Multiple Aggregation</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TABLE_MULTIPLE_AGGREGATION_OPERATION_COUNT = TABLE_BASE_AGGREGATION_OPERATION_COUNT + 0;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.osbp.xtext.reportdsl.impl.TableBinaryAggregationImpl <em>Table Binary Aggregation</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.osbp.xtext.reportdsl.impl.TableBinaryAggregationImpl
+	 * @see org.eclipse.osbp.xtext.reportdsl.impl.ReportDSLPackageImpl#getTableBinaryAggregation()
+	 * @generated
+	 */
+	int TABLE_BINARY_AGGREGATION = 63;
+
+	/**
+	 * The feature id for the '<em><b>Value Refs</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TABLE_BINARY_AGGREGATION__VALUE_REFS = TABLE_BASE_AGGREGATION__VALUE_REFS;
+
+	/**
+	 * The feature id for the '<em><b>Aggregation</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TABLE_BINARY_AGGREGATION__AGGREGATION = TABLE_BASE_AGGREGATION_FEATURE_COUNT + 0;
+
+	/**
+	 * The number of structural features of the '<em>Table Binary Aggregation</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TABLE_BINARY_AGGREGATION_FEATURE_COUNT = TABLE_BASE_AGGREGATION_FEATURE_COUNT + 1;
+
+	/**
+	 * The operation id for the '<em>EResolve Proxy</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TABLE_BINARY_AGGREGATION___ERESOLVE_PROXY__INTERNALEOBJECT = TABLE_BASE_AGGREGATION___ERESOLVE_PROXY__INTERNALEOBJECT;
+
+	/**
+	 * The number of operations of the '<em>Table Binary Aggregation</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TABLE_BINARY_AGGREGATION_OPERATION_COUNT = TABLE_BASE_AGGREGATION_OPERATION_COUNT + 0;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.osbp.xtext.reportdsl.TableInterval <em>Table Interval</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.osbp.xtext.reportdsl.TableInterval
+	 * @see org.eclipse.osbp.xtext.reportdsl.impl.ReportDSLPackageImpl#getTableInterval()
+	 * @generated
+	 */
+	int TABLE_INTERVAL = 64;
+
+	/**
+	 * The number of structural features of the '<em>Table Interval</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TABLE_INTERVAL_FEATURE_COUNT = REPORT_LAZY_RESOLVER_FEATURE_COUNT + 0;
+
+	/**
+	 * The operation id for the '<em>EResolve Proxy</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TABLE_INTERVAL___ERESOLVE_PROXY__INTERNALEOBJECT = REPORT_LAZY_RESOLVER___ERESOLVE_PROXY__INTERNALEOBJECT;
+
+	/**
+	 * The number of operations of the '<em>Table Interval</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TABLE_INTERVAL_OPERATION_COUNT = REPORT_LAZY_RESOLVER_OPERATION_COUNT + 0;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.osbp.xtext.reportdsl.impl.TableNumberIntervalImpl <em>Table Number Interval</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.osbp.xtext.reportdsl.impl.TableNumberIntervalImpl
+	 * @see org.eclipse.osbp.xtext.reportdsl.impl.ReportDSLPackageImpl#getTableNumberInterval()
+	 * @generated
+	 */
+	int TABLE_NUMBER_INTERVAL = 65;
+
+	/**
+	 * The feature id for the '<em><b>Number Interval Value</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TABLE_NUMBER_INTERVAL__NUMBER_INTERVAL_VALUE = TABLE_INTERVAL_FEATURE_COUNT + 0;
+
+	/**
+	 * The feature id for the '<em><b>Number Range</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TABLE_NUMBER_INTERVAL__NUMBER_RANGE = TABLE_INTERVAL_FEATURE_COUNT + 1;
+
+	/**
+	 * The number of structural features of the '<em>Table Number Interval</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TABLE_NUMBER_INTERVAL_FEATURE_COUNT = TABLE_INTERVAL_FEATURE_COUNT + 2;
+
+	/**
+	 * The operation id for the '<em>EResolve Proxy</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TABLE_NUMBER_INTERVAL___ERESOLVE_PROXY__INTERNALEOBJECT = TABLE_INTERVAL___ERESOLVE_PROXY__INTERNALEOBJECT;
+
+	/**
+	 * The number of operations of the '<em>Table Number Interval</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TABLE_NUMBER_INTERVAL_OPERATION_COUNT = TABLE_INTERVAL_OPERATION_COUNT + 0;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.osbp.xtext.reportdsl.impl.TableDateDayIntervalImpl <em>Table Date Day Interval</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.osbp.xtext.reportdsl.impl.TableDateDayIntervalImpl
+	 * @see org.eclipse.osbp.xtext.reportdsl.impl.ReportDSLPackageImpl#getTableDateDayInterval()
+	 * @generated
+	 */
+	int TABLE_DATE_DAY_INTERVAL = 66;
+
+	/**
+	 * The feature id for the '<em><b>Date Interval Value</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TABLE_DATE_DAY_INTERVAL__DATE_INTERVAL_VALUE = TABLE_INTERVAL_FEATURE_COUNT + 0;
+
+	/**
+	 * The feature id for the '<em><b>Date Range</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TABLE_DATE_DAY_INTERVAL__DATE_RANGE = TABLE_INTERVAL_FEATURE_COUNT + 1;
+
+	/**
+	 * The number of structural features of the '<em>Table Date Day Interval</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TABLE_DATE_DAY_INTERVAL_FEATURE_COUNT = TABLE_INTERVAL_FEATURE_COUNT + 2;
+
+	/**
+	 * The operation id for the '<em>EResolve Proxy</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TABLE_DATE_DAY_INTERVAL___ERESOLVE_PROXY__INTERNALEOBJECT = TABLE_INTERVAL___ERESOLVE_PROXY__INTERNALEOBJECT;
+
+	/**
+	 * The number of operations of the '<em>Table Date Day Interval</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TABLE_DATE_DAY_INTERVAL_OPERATION_COUNT = TABLE_INTERVAL_OPERATION_COUNT + 0;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.osbp.xtext.reportdsl.TableLookup <em>Table Lookup</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.osbp.xtext.reportdsl.TableLookup
+	 * @see org.eclipse.osbp.xtext.reportdsl.impl.ReportDSLPackageImpl#getTableLookup()
+	 * @generated
+	 */
+	int TABLE_LOOKUP = 67;
+
+	/**
+	 * The number of structural features of the '<em>Table Lookup</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TABLE_LOOKUP_FEATURE_COUNT = REPORT_LAZY_RESOLVER_FEATURE_COUNT + 0;
+
+	/**
+	 * The operation id for the '<em>EResolve Proxy</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TABLE_LOOKUP___ERESOLVE_PROXY__INTERNALEOBJECT = REPORT_LAZY_RESOLVER___ERESOLVE_PROXY__INTERNALEOBJECT;
+
+	/**
+	 * The number of operations of the '<em>Table Lookup</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TABLE_LOOKUP_OPERATION_COUNT = REPORT_LAZY_RESOLVER_OPERATION_COUNT + 0;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.osbp.xtext.reportdsl.impl.TableNumberLookupImpl <em>Table Number Lookup</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.osbp.xtext.reportdsl.impl.TableNumberLookupImpl
+	 * @see org.eclipse.osbp.xtext.reportdsl.impl.ReportDSLPackageImpl#getTableNumberLookup()
+	 * @generated
+	 */
+	int TABLE_NUMBER_LOOKUP = 68;
+
+	/**
+	 * The feature id for the '<em><b>Lookup Value</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TABLE_NUMBER_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_NUMBER_LOOKUP__DISCRETE = TABLE_LOOKUP_FEATURE_COUNT + 1;
+
+	/**
+	 * The number of structural features of the '<em>Table Number Lookup</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TABLE_NUMBER_LOOKUP_FEATURE_COUNT = TABLE_LOOKUP_FEATURE_COUNT + 2;
+
+	/**
+	 * The operation id for the '<em>EResolve Proxy</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TABLE_NUMBER_LOOKUP___ERESOLVE_PROXY__INTERNALEOBJECT = TABLE_LOOKUP___ERESOLVE_PROXY__INTERNALEOBJECT;
+
+	/**
+	 * The number of operations of the '<em>Table Number Lookup</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TABLE_NUMBER_LOOKUP_OPERATION_COUNT = TABLE_LOOKUP_OPERATION_COUNT + 0;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.osbp.xtext.reportdsl.impl.TableStringLookupImpl <em>Table String Lookup</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.osbp.xtext.reportdsl.impl.TableStringLookupImpl
+	 * @see org.eclipse.osbp.xtext.reportdsl.impl.ReportDSLPackageImpl#getTableStringLookup()
+	 * @generated
+	 */
+	int TABLE_STRING_LOOKUP = 69;
+
+	/**
+	 * The feature id for the '<em><b>Lookup Value</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TABLE_STRING_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_STRING_LOOKUP__DISCRETE = TABLE_LOOKUP_FEATURE_COUNT + 1;
+
+	/**
+	 * The number of structural features of the '<em>Table String Lookup</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TABLE_STRING_LOOKUP_FEATURE_COUNT = TABLE_LOOKUP_FEATURE_COUNT + 2;
+
+	/**
+	 * The operation id for the '<em>EResolve Proxy</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TABLE_STRING_LOOKUP___ERESOLVE_PROXY__INTERNALEOBJECT = TABLE_LOOKUP___ERESOLVE_PROXY__INTERNALEOBJECT;
+
+	/**
+	 * The number of operations of the '<em>Table String Lookup</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TABLE_STRING_LOOKUP_OPERATION_COUNT = TABLE_LOOKUP_OPERATION_COUNT + 0;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.osbp.xtext.reportdsl.impl.TableDateDayLookupImpl <em>Table Date Day Lookup</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.osbp.xtext.reportdsl.impl.TableDateDayLookupImpl
+	 * @see org.eclipse.osbp.xtext.reportdsl.impl.ReportDSLPackageImpl#getTableDateDayLookup()
+	 * @generated
+	 */
+	int TABLE_DATE_DAY_LOOKUP = 70;
+
+	/**
+	 * The feature id for the '<em><b>Lookup Value</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TABLE_DATE_DAY_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_DATE_DAY_LOOKUP__DISCRETE = TABLE_LOOKUP_FEATURE_COUNT + 1;
+
+	/**
+	 * The number of structural features of the '<em>Table Date Day Lookup</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TABLE_DATE_DAY_LOOKUP_FEATURE_COUNT = TABLE_LOOKUP_FEATURE_COUNT + 2;
+
+	/**
+	 * The operation id for the '<em>EResolve Proxy</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TABLE_DATE_DAY_LOOKUP___ERESOLVE_PROXY__INTERNALEOBJECT = TABLE_LOOKUP___ERESOLVE_PROXY__INTERNALEOBJECT;
+
+	/**
+	 * The number of operations of the '<em>Table Date Day Lookup</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TABLE_DATE_DAY_LOOKUP_OPERATION_COUNT = TABLE_LOOKUP_OPERATION_COUNT + 0;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.osbp.xtext.reportdsl.TableRangeElement <em>Table Range Element</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.osbp.xtext.reportdsl.TableRangeElement
+	 * @see org.eclipse.osbp.xtext.reportdsl.impl.ReportDSLPackageImpl#getTableRangeElement()
+	 * @generated
+	 */
+	int TABLE_RANGE_ELEMENT = 71;
+
+	/**
+	 * The number of structural features of the '<em>Table Range Element</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TABLE_RANGE_ELEMENT_FEATURE_COUNT = REPORT_LAZY_RESOLVER_FEATURE_COUNT + 0;
+
+	/**
+	 * The operation id for the '<em>EResolve Proxy</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TABLE_RANGE_ELEMENT___ERESOLVE_PROXY__INTERNALEOBJECT = REPORT_LAZY_RESOLVER___ERESOLVE_PROXY__INTERNALEOBJECT;
+
+	/**
+	 * The number of operations of the '<em>Table Range Element</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TABLE_RANGE_ELEMENT_OPERATION_COUNT = REPORT_LAZY_RESOLVER_OPERATION_COUNT + 0;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.osbp.xtext.reportdsl.impl.TableTextColorImpl <em>Table Text Color</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.osbp.xtext.reportdsl.impl.TableTextColorImpl
+	 * @see org.eclipse.osbp.xtext.reportdsl.impl.ReportDSLPackageImpl#getTableTextColor()
+	 * @generated
+	 */
+	int TABLE_TEXT_COLOR = 72;
+
+	/**
+	 * The feature id for the '<em><b>Color</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TABLE_TEXT_COLOR__COLOR = TABLE_RANGE_ELEMENT_FEATURE_COUNT + 0;
+
+	/**
+	 * The number of structural features of the '<em>Table Text Color</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TABLE_TEXT_COLOR_FEATURE_COUNT = TABLE_RANGE_ELEMENT_FEATURE_COUNT + 1;
+
+	/**
+	 * The operation id for the '<em>EResolve Proxy</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TABLE_TEXT_COLOR___ERESOLVE_PROXY__INTERNALEOBJECT = TABLE_RANGE_ELEMENT___ERESOLVE_PROXY__INTERNALEOBJECT;
+
+	/**
+	 * The number of operations of the '<em>Table Text Color</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TABLE_TEXT_COLOR_OPERATION_COUNT = TABLE_RANGE_ELEMENT_OPERATION_COUNT + 0;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.osbp.xtext.reportdsl.impl.TableCellColorImpl <em>Table Cell Color</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.osbp.xtext.reportdsl.impl.TableCellColorImpl
+	 * @see org.eclipse.osbp.xtext.reportdsl.impl.ReportDSLPackageImpl#getTableCellColor()
+	 * @generated
+	 */
+	int TABLE_CELL_COLOR = 73;
+
+	/**
+	 * The feature id for the '<em><b>Color</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TABLE_CELL_COLOR__COLOR = TABLE_RANGE_ELEMENT_FEATURE_COUNT + 0;
+
+	/**
+	 * The number of structural features of the '<em>Table Cell Color</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TABLE_CELL_COLOR_FEATURE_COUNT = TABLE_RANGE_ELEMENT_FEATURE_COUNT + 1;
+
+	/**
+	 * The operation id for the '<em>EResolve Proxy</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TABLE_CELL_COLOR___ERESOLVE_PROXY__INTERNALEOBJECT = TABLE_RANGE_ELEMENT___ERESOLVE_PROXY__INTERNALEOBJECT;
+
+	/**
+	 * The number of operations of the '<em>Table Cell Color</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TABLE_CELL_COLOR_OPERATION_COUNT = TABLE_RANGE_ELEMENT_OPERATION_COUNT + 0;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.osbp.xtext.reportdsl.impl.TableIconImpl <em>Table Icon</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.osbp.xtext.reportdsl.impl.TableIconImpl
+	 * @see org.eclipse.osbp.xtext.reportdsl.impl.ReportDSLPackageImpl#getTableIcon()
+	 * @generated
+	 */
+	int TABLE_ICON = 74;
+
+	/**
+	 * The feature id for the '<em><b>Icon</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TABLE_ICON__ICON = TABLE_RANGE_ELEMENT_FEATURE_COUNT + 0;
+
+	/**
+	 * The number of structural features of the '<em>Table Icon</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TABLE_ICON_FEATURE_COUNT = TABLE_RANGE_ELEMENT_FEATURE_COUNT + 1;
+
+	/**
+	 * The operation id for the '<em>EResolve Proxy</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TABLE_ICON___ERESOLVE_PROXY__INTERNALEOBJECT = TABLE_RANGE_ELEMENT___ERESOLVE_PROXY__INTERNALEOBJECT;
+
+	/**
+	 * The number of operations of the '<em>Table Icon</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TABLE_ICON_OPERATION_COUNT = TABLE_RANGE_ELEMENT_OPERATION_COUNT + 0;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.osbp.xtext.reportdsl.impl.TableTrendImpl <em>Table Trend</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.osbp.xtext.reportdsl.impl.TableTrendImpl
+	 * @see org.eclipse.osbp.xtext.reportdsl.impl.ReportDSLPackageImpl#getTableTrend()
+	 * @generated
+	 */
+	int TABLE_TREND = 75;
+
+	/**
+	 * The feature id for the '<em><b>Icon</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TABLE_TREND__ICON = TABLE_RANGE_ELEMENT_FEATURE_COUNT + 0;
+
+	/**
+	 * The number of structural features of the '<em>Table Trend</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TABLE_TREND_FEATURE_COUNT = TABLE_RANGE_ELEMENT_FEATURE_COUNT + 1;
+
+	/**
+	 * The operation id for the '<em>EResolve Proxy</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TABLE_TREND___ERESOLVE_PROXY__INTERNALEOBJECT = TABLE_RANGE_ELEMENT___ERESOLVE_PROXY__INTERNALEOBJECT;
+
+	/**
+	 * The number of operations of the '<em>Table Trend</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TABLE_TREND_OPERATION_COUNT = TABLE_RANGE_ELEMENT_OPERATION_COUNT + 0;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.osbp.xtext.reportdsl.impl.TableTooltipImpl <em>Table Tooltip</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.osbp.xtext.reportdsl.impl.TableTooltipImpl
+	 * @see org.eclipse.osbp.xtext.reportdsl.impl.ReportDSLPackageImpl#getTableTooltip()
+	 * @generated
+	 */
+	int TABLE_TOOLTIP = 76;
+
+	/**
+	 * The feature id for the '<em><b>Tooltip</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TABLE_TOOLTIP__TOOLTIP = TABLE_RANGE_ELEMENT_FEATURE_COUNT + 0;
+
+	/**
+	 * The number of structural features of the '<em>Table Tooltip</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TABLE_TOOLTIP_FEATURE_COUNT = TABLE_RANGE_ELEMENT_FEATURE_COUNT + 1;
+
+	/**
+	 * The operation id for the '<em>EResolve Proxy</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TABLE_TOOLTIP___ERESOLVE_PROXY__INTERNALEOBJECT = TABLE_RANGE_ELEMENT___ERESOLVE_PROXY__INTERNALEOBJECT;
+
+	/**
+	 * The number of operations of the '<em>Table Tooltip</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TABLE_TOOLTIP_OPERATION_COUNT = TABLE_RANGE_ELEMENT_OPERATION_COUNT + 0;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.osbp.xtext.reportdsl.impl.GridImpl <em>Grid</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.osbp.xtext.reportdsl.impl.GridImpl
+	 * @see org.eclipse.osbp.xtext.reportdsl.impl.ReportDSLPackageImpl#getGrid()
+	 * @generated
+	 */
+	int GRID = 77;
+
+	/**
+	 * The feature id for the '<em><b>Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int GRID__NAME = REPORT_BASE__NAME;
+
+	/**
+	 * The feature id for the '<em><b>Rows</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int GRID__ROWS = REPORT_BASE_FEATURE_COUNT + 0;
+
+	/**
+	 * The number of structural features of the '<em>Grid</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int GRID_FEATURE_COUNT = REPORT_BASE_FEATURE_COUNT + 1;
+
+	/**
+	 * The operation id for the '<em>EResolve Proxy</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int GRID___ERESOLVE_PROXY__INTERNALEOBJECT = REPORT_BASE___ERESOLVE_PROXY__INTERNALEOBJECT;
+
+	/**
+	 * The number of operations of the '<em>Grid</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int GRID_OPERATION_COUNT = REPORT_BASE_OPERATION_COUNT + 0;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.osbp.xtext.reportdsl.impl.GridRowImpl <em>Grid Row</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.osbp.xtext.reportdsl.impl.GridRowImpl
+	 * @see org.eclipse.osbp.xtext.reportdsl.impl.ReportDSLPackageImpl#getGridRow()
+	 * @generated
+	 */
+	int GRID_ROW = 78;
+
+	/**
+	 * The feature id for the '<em><b>Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int GRID_ROW__NAME = REPORT_BASE__NAME;
+
+	/**
+	 * The feature id for the '<em><b>Style</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int GRID_ROW__STYLE = REPORT_BASE_FEATURE_COUNT + 0;
+
+	/**
+	 * The feature id for the '<em><b>Cells</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int GRID_ROW__CELLS = REPORT_BASE_FEATURE_COUNT + 1;
+
+	/**
+	 * The number of structural features of the '<em>Grid Row</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int GRID_ROW_FEATURE_COUNT = REPORT_BASE_FEATURE_COUNT + 2;
+
+	/**
+	 * The operation id for the '<em>EResolve Proxy</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int GRID_ROW___ERESOLVE_PROXY__INTERNALEOBJECT = REPORT_BASE___ERESOLVE_PROXY__INTERNALEOBJECT;
+
+	/**
+	 * The number of operations of the '<em>Grid Row</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int GRID_ROW_OPERATION_COUNT = REPORT_BASE_OPERATION_COUNT + 0;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.osbp.xtext.reportdsl.impl.GridCellImpl <em>Grid Cell</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.osbp.xtext.reportdsl.impl.GridCellImpl
+	 * @see org.eclipse.osbp.xtext.reportdsl.impl.ReportDSLPackageImpl#getGridCell()
+	 * @generated
+	 */
+	int GRID_CELL = 79;
+
+	/**
+	 * The feature id for the '<em><b>Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int GRID_CELL__NAME = REPORT_BASE__NAME;
+
+	/**
+	 * The feature id for the '<em><b>Elements</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int GRID_CELL__ELEMENTS = REPORT_BASE_FEATURE_COUNT + 0;
+
+	/**
+	 * The feature id for the '<em><b>Columnspan</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int GRID_CELL__COLUMNSPAN = REPORT_BASE_FEATURE_COUNT + 1;
+
+	/**
+	 * The number of structural features of the '<em>Grid Cell</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int GRID_CELL_FEATURE_COUNT = REPORT_BASE_FEATURE_COUNT + 2;
+
+	/**
+	 * The operation id for the '<em>EResolve Proxy</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int GRID_CELL___ERESOLVE_PROXY__INTERNALEOBJECT = REPORT_BASE___ERESOLVE_PROXY__INTERNALEOBJECT;
+
+	/**
+	 * The number of operations of the '<em>Grid Cell</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int GRID_CELL_OPERATION_COUNT = REPORT_BASE_OPERATION_COUNT + 0;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.osbp.xtext.reportdsl.UnitEnum <em>Unit Enum</em>}' enum.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.osbp.xtext.reportdsl.UnitEnum
+	 * @see org.eclipse.osbp.xtext.reportdsl.impl.ReportDSLPackageImpl#getUnitEnum()
+	 * @generated
+	 */
+	int UNIT_ENUM = 80;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.osbp.xtext.reportdsl.PageSizeEnum <em>Page Size Enum</em>}' enum.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.osbp.xtext.reportdsl.PageSizeEnum
+	 * @see org.eclipse.osbp.xtext.reportdsl.impl.ReportDSLPackageImpl#getPageSizeEnum()
+	 * @generated
+	 */
+	int PAGE_SIZE_ENUM = 81;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.osbp.xtext.reportdsl.OrientationEnum <em>Orientation Enum</em>}' enum.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.osbp.xtext.reportdsl.OrientationEnum
+	 * @see org.eclipse.osbp.xtext.reportdsl.impl.ReportDSLPackageImpl#getOrientationEnum()
+	 * @generated
+	 */
+	int ORIENTATION_ENUM = 82;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.osbp.xtext.reportdsl.FontStyleEnum <em>Font Style Enum</em>}' enum.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.osbp.xtext.reportdsl.FontStyleEnum
+	 * @see org.eclipse.osbp.xtext.reportdsl.impl.ReportDSLPackageImpl#getFontStyleEnum()
+	 * @generated
+	 */
+	int FONT_STYLE_ENUM = 83;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.osbp.xtext.reportdsl.BuildInFontFamilyEnum <em>Build In Font Family Enum</em>}' enum.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.osbp.xtext.reportdsl.BuildInFontFamilyEnum
+	 * @see org.eclipse.osbp.xtext.reportdsl.impl.ReportDSLPackageImpl#getBuildInFontFamilyEnum()
+	 * @generated
+	 */
+	int BUILD_IN_FONT_FAMILY_ENUM = 84;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.osbp.xtext.reportdsl.BorderTypeEnum <em>Border Type Enum</em>}' enum.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.osbp.xtext.reportdsl.BorderTypeEnum
+	 * @see org.eclipse.osbp.xtext.reportdsl.impl.ReportDSLPackageImpl#getBorderTypeEnum()
+	 * @generated
+	 */
+	int BORDER_TYPE_ENUM = 85;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.osbp.xtext.reportdsl.TextAlignEnum <em>Text Align Enum</em>}' enum.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.osbp.xtext.reportdsl.TextAlignEnum
+	 * @see org.eclipse.osbp.xtext.reportdsl.impl.ReportDSLPackageImpl#getTextAlignEnum()
+	 * @generated
+	 */
+	int TEXT_ALIGN_ENUM = 86;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.osbp.xtext.reportdsl.NumberFormatCategoryEnum <em>Number Format Category Enum</em>}' enum.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.osbp.xtext.reportdsl.NumberFormatCategoryEnum
+	 * @see org.eclipse.osbp.xtext.reportdsl.impl.ReportDSLPackageImpl#getNumberFormatCategoryEnum()
+	 * @generated
+	 */
+	int NUMBER_FORMAT_CATEGORY_ENUM = 87;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.osbp.xtext.reportdsl.CurrencyFormatCategoryEnum <em>Currency Format Category Enum</em>}' enum.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.osbp.xtext.reportdsl.CurrencyFormatCategoryEnum
+	 * @see org.eclipse.osbp.xtext.reportdsl.impl.ReportDSLPackageImpl#getCurrencyFormatCategoryEnum()
+	 * @generated
+	 */
+	int CURRENCY_FORMAT_CATEGORY_ENUM = 88;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.osbp.xtext.reportdsl.DateFormatCategoryEnum <em>Date Format Category Enum</em>}' enum.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.osbp.xtext.reportdsl.DateFormatCategoryEnum
+	 * @see org.eclipse.osbp.xtext.reportdsl.impl.ReportDSLPackageImpl#getDateFormatCategoryEnum()
+	 * @generated
+	 */
+	int DATE_FORMAT_CATEGORY_ENUM = 89;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.osbp.xtext.reportdsl.DateTimeFormatCategoryEnum <em>Date Time Format Category Enum</em>}' enum.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.osbp.xtext.reportdsl.DateTimeFormatCategoryEnum
+	 * @see org.eclipse.osbp.xtext.reportdsl.impl.ReportDSLPackageImpl#getDateTimeFormatCategoryEnum()
+	 * @generated
+	 */
+	int DATE_TIME_FORMAT_CATEGORY_ENUM = 90;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.osbp.xtext.reportdsl.TimeFormatCategoryEnum <em>Time Format Category Enum</em>}' enum.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.osbp.xtext.reportdsl.TimeFormatCategoryEnum
+	 * @see org.eclipse.osbp.xtext.reportdsl.impl.ReportDSLPackageImpl#getTimeFormatCategoryEnum()
+	 * @generated
+	 */
+	int TIME_FORMAT_CATEGORY_ENUM = 91;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.osbp.xtext.reportdsl.AutoTextEnum <em>Auto Text Enum</em>}' enum.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.osbp.xtext.reportdsl.AutoTextEnum
+	 * @see org.eclipse.osbp.xtext.reportdsl.impl.ReportDSLPackageImpl#getAutoTextEnum()
+	 * @generated
+	 */
+	int AUTO_TEXT_ENUM = 92;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.osbp.xtext.reportdsl.ImageSizeEnum <em>Image Size Enum</em>}' enum.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.osbp.xtext.reportdsl.ImageSizeEnum
+	 * @see org.eclipse.osbp.xtext.reportdsl.impl.ReportDSLPackageImpl#getImageSizeEnum()
+	 * @generated
+	 */
+	int IMAGE_SIZE_ENUM = 93;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.osbp.xtext.reportdsl.ImageSourceEnum <em>Image Source Enum</em>}' enum.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.osbp.xtext.reportdsl.ImageSourceEnum
+	 * @see org.eclipse.osbp.xtext.reportdsl.impl.ReportDSLPackageImpl#getImageSourceEnum()
+	 * @generated
+	 */
+	int IMAGE_SOURCE_ENUM = 94;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.osbp.xtext.reportdsl.PureAggregationTypeEnum <em>Pure Aggregation Type Enum</em>}' enum.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.osbp.xtext.reportdsl.PureAggregationTypeEnum
+	 * @see org.eclipse.osbp.xtext.reportdsl.impl.ReportDSLPackageImpl#getPureAggregationTypeEnum()
+	 * @generated
+	 */
+	int PURE_AGGREGATION_TYPE_ENUM = 95;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.osbp.xtext.reportdsl.UnaryAggregationTypeEnum <em>Unary Aggregation Type Enum</em>}' enum.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.osbp.xtext.reportdsl.UnaryAggregationTypeEnum
+	 * @see org.eclipse.osbp.xtext.reportdsl.impl.ReportDSLPackageImpl#getUnaryAggregationTypeEnum()
+	 * @generated
+	 */
+	int UNARY_AGGREGATION_TYPE_ENUM = 96;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.osbp.xtext.reportdsl.BinaryAggregationTypeEnum <em>Binary Aggregation Type Enum</em>}' enum.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.osbp.xtext.reportdsl.BinaryAggregationTypeEnum
+	 * @see org.eclipse.osbp.xtext.reportdsl.impl.ReportDSLPackageImpl#getBinaryAggregationTypeEnum()
+	 * @generated
+	 */
+	int BINARY_AGGREGATION_TYPE_ENUM = 97;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.osbp.xtext.reportdsl.MultipleAggregationTypeEnum <em>Multiple Aggregation Type Enum</em>}' enum.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.osbp.xtext.reportdsl.MultipleAggregationTypeEnum
+	 * @see org.eclipse.osbp.xtext.reportdsl.impl.ReportDSLPackageImpl#getMultipleAggregationTypeEnum()
+	 * @generated
+	 */
+	int MULTIPLE_AGGREGATION_TYPE_ENUM = 98;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.osbp.xtext.reportdsl.TrendIconEnum <em>Trend Icon Enum</em>}' enum.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.osbp.xtext.reportdsl.TrendIconEnum
+	 * @see org.eclipse.osbp.xtext.reportdsl.impl.ReportDSLPackageImpl#getTrendIconEnum()
+	 * @generated
+	 */
+	int TREND_ICON_ENUM = 99;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.osbp.xtext.reportdsl.RenderingEnum <em>Rendering Enum</em>}' enum.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.osbp.xtext.reportdsl.RenderingEnum
+	 * @see org.eclipse.osbp.xtext.reportdsl.impl.ReportDSLPackageImpl#getRenderingEnum()
+	 * @generated
+	 */
+	int RENDERING_ENUM = 100;
+
+	/**
+	 * The meta object id for the '<em>Internal EObject</em>' data type.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.emf.ecore.InternalEObject
+	 * @see org.eclipse.osbp.xtext.reportdsl.impl.ReportDSLPackageImpl#getInternalEObject()
+	 * @generated
+	 */
+	int INTERNAL_EOBJECT = 101;
+
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.osbp.xtext.reportdsl.ReportModel <em>Report Model</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Report Model</em>'.
+	 * @see org.eclipse.osbp.xtext.reportdsl.ReportModel
+	 * @generated
+	 */
+	EClass getReportModel();
+
+	/**
+	 * Returns the meta object for the containment reference list '{@link org.eclipse.osbp.xtext.reportdsl.ReportModel#getPckg <em>Pckg</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the containment reference list '<em>Pckg</em>'.
+	 * @see org.eclipse.osbp.xtext.reportdsl.ReportModel#getPckg()
+	 * @see #getReportModel()
+	 * @generated
+	 */
+	EReference getReportModel_Pckg();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.osbp.xtext.reportdsl.ReportLazyResolver <em>Report Lazy Resolver</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Report Lazy Resolver</em>'.
+	 * @see org.eclipse.osbp.xtext.reportdsl.ReportLazyResolver
+	 * @generated
+	 */
+	EClass getReportLazyResolver();
+
+	/**
+	 * Returns the meta object for the '{@link org.eclipse.osbp.xtext.reportdsl.ReportLazyResolver#eResolveProxy(org.eclipse.emf.ecore.InternalEObject) <em>EResolve Proxy</em>}' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the '<em>EResolve Proxy</em>' operation.
+	 * @see org.eclipse.osbp.xtext.reportdsl.ReportLazyResolver#eResolveProxy(org.eclipse.emf.ecore.InternalEObject)
+	 * @generated
+	 */
+	EOperation getReportLazyResolver__EResolveProxy__InternalEObject();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.osbp.xtext.reportdsl.ReportBase <em>Report Base</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Report Base</em>'.
+	 * @see org.eclipse.osbp.xtext.reportdsl.ReportBase
+	 * @generated
+	 */
+	EClass getReportBase();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.xtext.reportdsl.ReportBase#getName <em>Name</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Name</em>'.
+	 * @see org.eclipse.osbp.xtext.reportdsl.ReportBase#getName()
+	 * @see #getReportBase()
+	 * @generated
+	 */
+	EAttribute getReportBase_Name();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.osbp.xtext.reportdsl.ReportPackage <em>Report Package</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Report Package</em>'.
+	 * @see org.eclipse.osbp.xtext.reportdsl.ReportPackage
+	 * @generated
+	 */
+	EClass getReportPackage();
+
+	/**
+	 * Returns the meta object for the containment reference '{@link org.eclipse.osbp.xtext.reportdsl.ReportPackage#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.reportdsl.ReportPackage#getImportSection()
+	 * @see #getReportPackage()
+	 * @generated
+	 */
+	EReference getReportPackage_ImportSection();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.xtext.reportdsl.ReportPackage#getExternalCssURI <em>External Css URI</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>External Css URI</em>'.
+	 * @see org.eclipse.osbp.xtext.reportdsl.ReportPackage#getExternalCssURI()
+	 * @see #getReportPackage()
+	 * @generated
+	 */
+	EAttribute getReportPackage_ExternalCssURI();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.xtext.reportdsl.ReportPackage#getExternalCssURIBundle <em>External Css URI Bundle</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>External Css URI Bundle</em>'.
+	 * @see org.eclipse.osbp.xtext.reportdsl.ReportPackage#getExternalCssURIBundle()
+	 * @see #getReportPackage()
+	 * @generated
+	 */
+	EAttribute getReportPackage_ExternalCssURIBundle();
+
+	/**
+	 * Returns the meta object for the containment reference '{@link org.eclipse.osbp.xtext.reportdsl.ReportPackage#getPagetemplates <em>Pagetemplates</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the containment reference '<em>Pagetemplates</em>'.
+	 * @see org.eclipse.osbp.xtext.reportdsl.ReportPackage#getPagetemplates()
+	 * @see #getReportPackage()
+	 * @generated
+	 */
+	EReference getReportPackage_Pagetemplates();
+
+	/**
+	 * Returns the meta object for the containment reference '{@link org.eclipse.osbp.xtext.reportdsl.ReportPackage#getFormatters <em>Formatters</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the containment reference '<em>Formatters</em>'.
+	 * @see org.eclipse.osbp.xtext.reportdsl.ReportPackage#getFormatters()
+	 * @see #getReportPackage()
+	 * @generated
+	 */
+	EReference getReportPackage_Formatters();
+
+	/**
+	 * Returns the meta object for the containment reference '{@link org.eclipse.osbp.xtext.reportdsl.ReportPackage#getColors <em>Colors</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the containment reference '<em>Colors</em>'.
+	 * @see org.eclipse.osbp.xtext.reportdsl.ReportPackage#getColors()
+	 * @see #getReportPackage()
+	 * @generated
+	 */
+	EReference getReportPackage_Colors();
+
+	/**
+	 * Returns the meta object for the containment reference '{@link org.eclipse.osbp.xtext.reportdsl.ReportPackage#getFonts <em>Fonts</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the containment reference '<em>Fonts</em>'.
+	 * @see org.eclipse.osbp.xtext.reportdsl.ReportPackage#getFonts()
+	 * @see #getReportPackage()
+	 * @generated
+	 */
+	EReference getReportPackage_Fonts();
+
+	/**
+	 * Returns the meta object for the containment reference '{@link org.eclipse.osbp.xtext.reportdsl.ReportPackage#getMedias <em>Medias</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the containment reference '<em>Medias</em>'.
+	 * @see org.eclipse.osbp.xtext.reportdsl.ReportPackage#getMedias()
+	 * @see #getReportPackage()
+	 * @generated
+	 */
+	EReference getReportPackage_Medias();
+
+	/**
+	 * Returns the meta object for the containment reference '{@link org.eclipse.osbp.xtext.reportdsl.ReportPackage#getStyles <em>Styles</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the containment reference '<em>Styles</em>'.
+	 * @see org.eclipse.osbp.xtext.reportdsl.ReportPackage#getStyles()
+	 * @see #getReportPackage()
+	 * @generated
+	 */
+	EReference getReportPackage_Styles();
+
+	/**
+	 * Returns the meta object for the containment reference list '{@link org.eclipse.osbp.xtext.reportdsl.ReportPackage#getReports <em>Reports</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the containment reference list '<em>Reports</em>'.
+	 * @see org.eclipse.osbp.xtext.reportdsl.ReportPackage#getReports()
+	 * @see #getReportPackage()
+	 * @generated
+	 */
+	EReference getReportPackage_Reports();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.osbp.xtext.reportdsl.PageTemplates <em>Page Templates</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Page Templates</em>'.
+	 * @see org.eclipse.osbp.xtext.reportdsl.PageTemplates
+	 * @generated
+	 */
+	EClass getPageTemplates();
+
+	/**
+	 * Returns the meta object for the containment reference list '{@link org.eclipse.osbp.xtext.reportdsl.PageTemplates#getPagetemplates <em>Pagetemplates</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the containment reference list '<em>Pagetemplates</em>'.
+	 * @see org.eclipse.osbp.xtext.reportdsl.PageTemplates#getPagetemplates()
+	 * @see #getPageTemplates()
+	 * @generated
+	 */
+	EReference getPageTemplates_Pagetemplates();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.osbp.xtext.reportdsl.SomeFormats <em>Some Formats</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Some Formats</em>'.
+	 * @see org.eclipse.osbp.xtext.reportdsl.SomeFormats
+	 * @generated
+	 */
+	EClass getSomeFormats();
+
+	/**
+	 * Returns the meta object for the containment reference list '{@link org.eclipse.osbp.xtext.reportdsl.SomeFormats#getFormatters <em>Formatters</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the containment reference list '<em>Formatters</em>'.
+	 * @see org.eclipse.osbp.xtext.reportdsl.SomeFormats#getFormatters()
+	 * @see #getSomeFormats()
+	 * @generated
+	 */
+	EReference getSomeFormats_Formatters();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.osbp.xtext.reportdsl.Colors <em>Colors</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Colors</em>'.
+	 * @see org.eclipse.osbp.xtext.reportdsl.Colors
+	 * @generated
+	 */
+	EClass getColors();
+
+	/**
+	 * Returns the meta object for the containment reference list '{@link org.eclipse.osbp.xtext.reportdsl.Colors#getColors <em>Colors</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the containment reference list '<em>Colors</em>'.
+	 * @see org.eclipse.osbp.xtext.reportdsl.Colors#getColors()
+	 * @see #getColors()
+	 * @generated
+	 */
+	EReference getColors_Colors();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.osbp.xtext.reportdsl.Fonts <em>Fonts</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Fonts</em>'.
+	 * @see org.eclipse.osbp.xtext.reportdsl.Fonts
+	 * @generated
+	 */
+	EClass getFonts();
+
+	/**
+	 * Returns the meta object for the containment reference list '{@link org.eclipse.osbp.xtext.reportdsl.Fonts#getFonts <em>Fonts</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the containment reference list '<em>Fonts</em>'.
+	 * @see org.eclipse.osbp.xtext.reportdsl.Fonts#getFonts()
+	 * @see #getFonts()
+	 * @generated
+	 */
+	EReference getFonts_Fonts();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.osbp.xtext.reportdsl.Medias <em>Medias</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Medias</em>'.
+	 * @see org.eclipse.osbp.xtext.reportdsl.Medias
+	 * @generated
+	 */
+	EClass getMedias();
+
+	/**
+	 * Returns the meta object for the containment reference list '{@link org.eclipse.osbp.xtext.reportdsl.Medias#getMedias <em>Medias</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the containment reference list '<em>Medias</em>'.
+	 * @see org.eclipse.osbp.xtext.reportdsl.Medias#getMedias()
+	 * @see #getMedias()
+	 * @generated
+	 */
+	EReference getMedias_Medias();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.osbp.xtext.reportdsl.Styles <em>Styles</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Styles</em>'.
+	 * @see org.eclipse.osbp.xtext.reportdsl.Styles
+	 * @generated
+	 */
+	EClass getStyles();
+
+	/**
+	 * Returns the meta object for the containment reference list '{@link org.eclipse.osbp.xtext.reportdsl.Styles#getStyles <em>Styles</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the containment reference list '<em>Styles</em>'.
+	 * @see org.eclipse.osbp.xtext.reportdsl.Styles#getStyles()
+	 * @see #getStyles()
+	 * @generated
+	 */
+	EReference getStyles_Styles();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.osbp.xtext.reportdsl.PageTemplate <em>Page Template</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Page Template</em>'.
+	 * @see org.eclipse.osbp.xtext.reportdsl.PageTemplate
+	 * @generated
+	 */
+	EClass getPageTemplate();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.xtext.reportdsl.PageTemplate#getSize <em>Size</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Size</em>'.
+	 * @see org.eclipse.osbp.xtext.reportdsl.PageTemplate#getSize()
+	 * @see #getPageTemplate()
+	 * @generated
+	 */
+	EAttribute getPageTemplate_Size();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.xtext.reportdsl.PageTemplate#getOrientation <em>Orientation</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Orientation</em>'.
+	 * @see org.eclipse.osbp.xtext.reportdsl.PageTemplate#getOrientation()
+	 * @see #getPageTemplate()
+	 * @generated
+	 */
+	EAttribute getPageTemplate_Orientation();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.xtext.reportdsl.PageTemplate#getTopMarginValue <em>Top Margin Value</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Top Margin Value</em>'.
+	 * @see org.eclipse.osbp.xtext.reportdsl.PageTemplate#getTopMarginValue()
+	 * @see #getPageTemplate()
+	 * @generated
+	 */
+	EAttribute getPageTemplate_TopMarginValue();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.xtext.reportdsl.PageTemplate#getTopMarginUnit <em>Top Margin Unit</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Top Margin Unit</em>'.
+	 * @see org.eclipse.osbp.xtext.reportdsl.PageTemplate#getTopMarginUnit()
+	 * @see #getPageTemplate()
+	 * @generated
+	 */
+	EAttribute getPageTemplate_TopMarginUnit();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.xtext.reportdsl.PageTemplate#getLeftMarginValue <em>Left Margin Value</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Left Margin Value</em>'.
+	 * @see org.eclipse.osbp.xtext.reportdsl.PageTemplate#getLeftMarginValue()
+	 * @see #getPageTemplate()
+	 * @generated
+	 */
+	EAttribute getPageTemplate_LeftMarginValue();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.xtext.reportdsl.PageTemplate#getLeftMarginUnit <em>Left Margin Unit</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Left Margin Unit</em>'.
+	 * @see org.eclipse.osbp.xtext.reportdsl.PageTemplate#getLeftMarginUnit()
+	 * @see #getPageTemplate()
+	 * @generated
+	 */
+	EAttribute getPageTemplate_LeftMarginUnit();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.xtext.reportdsl.PageTemplate#getBottomMarginValue <em>Bottom Margin Value</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Bottom Margin Value</em>'.
+	 * @see org.eclipse.osbp.xtext.reportdsl.PageTemplate#getBottomMarginValue()
+	 * @see #getPageTemplate()
+	 * @generated
+	 */
+	EAttribute getPageTemplate_BottomMarginValue();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.xtext.reportdsl.PageTemplate#getBottomMarginUnit <em>Bottom Margin Unit</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Bottom Margin Unit</em>'.
+	 * @see org.eclipse.osbp.xtext.reportdsl.PageTemplate#getBottomMarginUnit()
+	 * @see #getPageTemplate()
+	 * @generated
+	 */
+	EAttribute getPageTemplate_BottomMarginUnit();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.xtext.reportdsl.PageTemplate#getRightMarginValue <em>Right Margin Value</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Right Margin Value</em>'.
+	 * @see org.eclipse.osbp.xtext.reportdsl.PageTemplate#getRightMarginValue()
+	 * @see #getPageTemplate()
+	 * @generated
+	 */
+	EAttribute getPageTemplate_RightMarginValue();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.xtext.reportdsl.PageTemplate#getRightMarginUnit <em>Right Margin Unit</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Right Margin Unit</em>'.
+	 * @see org.eclipse.osbp.xtext.reportdsl.PageTemplate#getRightMarginUnit()
+	 * @see #getPageTemplate()
+	 * @generated
+	 */
+	EAttribute getPageTemplate_RightMarginUnit();
+
+	/**
+	 * Returns the meta object for the containment reference '{@link org.eclipse.osbp.xtext.reportdsl.PageTemplate#getHeader <em>Header</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the containment reference '<em>Header</em>'.
+	 * @see org.eclipse.osbp.xtext.reportdsl.PageTemplate#getHeader()
+	 * @see #getPageTemplate()
+	 * @generated
+	 */
+	EReference getPageTemplate_Header();
+
+	/**
+	 * Returns the meta object for the containment reference '{@link org.eclipse.osbp.xtext.reportdsl.PageTemplate#getFooter <em>Footer</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the containment reference '<em>Footer</em>'.
+	 * @see org.eclipse.osbp.xtext.reportdsl.PageTemplate#getFooter()
+	 * @see #getPageTemplate()
+	 * @generated
+	 */
+	EReference getPageTemplate_Footer();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.osbp.xtext.reportdsl.Color <em>Color</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Color</em>'.
+	 * @see org.eclipse.osbp.xtext.reportdsl.Color
+	 * @generated
+	 */
+	EClass getColor();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.xtext.reportdsl.Color#getColor <em>Color</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Color</em>'.
+	 * @see org.eclipse.osbp.xtext.reportdsl.Color#getColor()
+	 * @see #getColor()
+	 * @generated
+	 */
+	EAttribute getColor_Color();
+
+	/**
+	 * Returns the meta object for the reference '{@link org.eclipse.osbp.xtext.reportdsl.Color#getBasecolor <em>Basecolor</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference '<em>Basecolor</em>'.
+	 * @see org.eclipse.osbp.xtext.reportdsl.Color#getBasecolor()
+	 * @see #getColor()
+	 * @generated
+	 */
+	EReference getColor_Basecolor();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.xtext.reportdsl.Color#getDarkensby <em>Darkensby</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Darkensby</em>'.
+	 * @see org.eclipse.osbp.xtext.reportdsl.Color#getDarkensby()
+	 * @see #getColor()
+	 * @generated
+	 */
+	EAttribute getColor_Darkensby();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.xtext.reportdsl.Color#getLightensby <em>Lightensby</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Lightensby</em>'.
+	 * @see org.eclipse.osbp.xtext.reportdsl.Color#getLightensby()
+	 * @see #getColor()
+	 * @generated
+	 */
+	EAttribute getColor_Lightensby();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.xtext.reportdsl.Color#getTransformsby <em>Transformsby</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Transformsby</em>'.
+	 * @see org.eclipse.osbp.xtext.reportdsl.Color#getTransformsby()
+	 * @see #getColor()
+	 * @generated
+	 */
+	EAttribute getColor_Transformsby();
+
+	/**
+	 * Returns the meta object for the reference '{@link org.eclipse.osbp.xtext.reportdsl.Color#getTargetcolor <em>Targetcolor</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference '<em>Targetcolor</em>'.
+	 * @see org.eclipse.osbp.xtext.reportdsl.Color#getTargetcolor()
+	 * @see #getColor()
+	 * @generated
+	 */
+	EReference getColor_Targetcolor();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.osbp.xtext.reportdsl.Font <em>Font</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Font</em>'.
+	 * @see org.eclipse.osbp.xtext.reportdsl.Font
+	 * @generated
+	 */
+	EClass getFont();
+
+	/**
+	 * Returns the meta object for the reference '{@link org.eclipse.osbp.xtext.reportdsl.Font#getExtends <em>Extends</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference '<em>Extends</em>'.
+	 * @see org.eclipse.osbp.xtext.reportdsl.Font#getExtends()
+	 * @see #getFont()
+	 * @generated
+	 */
+	EReference getFont_Extends();
+
+	/**
+	 * Returns the meta object for the containment reference '{@link org.eclipse.osbp.xtext.reportdsl.Font#getFamily <em>Family</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the containment reference '<em>Family</em>'.
+	 * @see org.eclipse.osbp.xtext.reportdsl.Font#getFamily()
+	 * @see #getFont()
+	 * @generated
+	 */
+	EReference getFont_Family();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.xtext.reportdsl.Font#getStyle <em>Style</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Style</em>'.
+	 * @see org.eclipse.osbp.xtext.reportdsl.Font#getStyle()
+	 * @see #getFont()
+	 * @generated
+	 */
+	EAttribute getFont_Style();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.xtext.reportdsl.Font#isBold <em>Bold</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Bold</em>'.
+	 * @see org.eclipse.osbp.xtext.reportdsl.Font#isBold()
+	 * @see #getFont()
+	 * @generated
+	 */
+	EAttribute getFont_Bold();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.xtext.reportdsl.Font#getSizevalue <em>Sizevalue</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Sizevalue</em>'.
+	 * @see org.eclipse.osbp.xtext.reportdsl.Font#getSizevalue()
+	 * @see #getFont()
+	 * @generated
+	 */
+	EAttribute getFont_Sizevalue();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.xtext.reportdsl.Font#getSizeunit <em>Sizeunit</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Sizeunit</em>'.
+	 * @see org.eclipse.osbp.xtext.reportdsl.Font#getSizeunit()
+	 * @see #getFont()
+	 * @generated
+	 */
+	EAttribute getFont_Sizeunit();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.osbp.xtext.reportdsl.FontFamily <em>Font Family</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Font Family</em>'.
+	 * @see org.eclipse.osbp.xtext.reportdsl.FontFamily
+	 * @generated
+	 */
+	EClass getFontFamily();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.osbp.xtext.reportdsl.BuildInFontFamily <em>Build In Font Family</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Build In Font Family</em>'.
+	 * @see org.eclipse.osbp.xtext.reportdsl.BuildInFontFamily
+	 * @generated
+	 */
+	EClass getBuildInFontFamily();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.xtext.reportdsl.BuildInFontFamily#getCustom <em>Custom</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Custom</em>'.
+	 * @see org.eclipse.osbp.xtext.reportdsl.BuildInFontFamily#getCustom()
+	 * @see #getBuildInFontFamily()
+	 * @generated
+	 */
+	EAttribute getBuildInFontFamily_Custom();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.osbp.xtext.reportdsl.CustomFontFamily <em>Custom Font Family</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Custom Font Family</em>'.
+	 * @see org.eclipse.osbp.xtext.reportdsl.CustomFontFamily
+	 * @generated
+	 */
+	EClass getCustomFontFamily();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.xtext.reportdsl.CustomFontFamily#getCustom <em>Custom</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Custom</em>'.
+	 * @see org.eclipse.osbp.xtext.reportdsl.CustomFontFamily#getCustom()
+	 * @see #getCustomFontFamily()
+	 * @generated
+	 */
+	EAttribute getCustomFontFamily_Custom();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.osbp.xtext.reportdsl.Media <em>Media</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Media</em>'.
+	 * @see org.eclipse.osbp.xtext.reportdsl.Media
+	 * @generated
+	 */
+	EClass getMedia();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.osbp.xtext.reportdsl.BorderStyle <em>Border Style</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Border Style</em>'.
+	 * @see org.eclipse.osbp.xtext.reportdsl.BorderStyle
+	 * @generated
+	 */
+	EClass getBorderStyle();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.xtext.reportdsl.BorderStyle#getType <em>Type</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Type</em>'.
+	 * @see org.eclipse.osbp.xtext.reportdsl.BorderStyle#getType()
+	 * @see #getBorderStyle()
+	 * @generated
+	 */
+	EAttribute getBorderStyle_Type();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.xtext.reportdsl.BorderStyle#getWidthvalue <em>Widthvalue</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Widthvalue</em>'.
+	 * @see org.eclipse.osbp.xtext.reportdsl.BorderStyle#getWidthvalue()
+	 * @see #getBorderStyle()
+	 * @generated
+	 */
+	EAttribute getBorderStyle_Widthvalue();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.xtext.reportdsl.BorderStyle#getWidthunit <em>Widthunit</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Widthunit</em>'.
+	 * @see org.eclipse.osbp.xtext.reportdsl.BorderStyle#getWidthunit()
+	 * @see #getBorderStyle()
+	 * @generated
+	 */
+	EAttribute getBorderStyle_Widthunit();
+
+	/**
+	 * Returns the meta object for the reference '{@link org.eclipse.osbp.xtext.reportdsl.BorderStyle#getColor <em>Color</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference '<em>Color</em>'.
+	 * @see org.eclipse.osbp.xtext.reportdsl.BorderStyle#getColor()
+	 * @see #getBorderStyle()
+	 * @generated
+	 */
+	EReference getBorderStyle_Color();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.osbp.xtext.reportdsl.BaseStyle <em>Base Style</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Base Style</em>'.
+	 * @see org.eclipse.osbp.xtext.reportdsl.BaseStyle
+	 * @generated
+	 */
+	EClass getBaseStyle();
+
+	/**
+	 * Returns the meta object for the reference '{@link org.eclipse.osbp.xtext.reportdsl.BaseStyle#getFormat <em>Format</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference '<em>Format</em>'.
+	 * @see org.eclipse.osbp.xtext.reportdsl.BaseStyle#getFormat()
+	 * @see #getBaseStyle()
+	 * @generated
+	 */
+	EReference getBaseStyle_Format();
+
+	/**
+	 * Returns the meta object for the reference '{@link org.eclipse.osbp.xtext.reportdsl.BaseStyle#getFont <em>Font</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference '<em>Font</em>'.
+	 * @see org.eclipse.osbp.xtext.reportdsl.BaseStyle#getFont()
+	 * @see #getBaseStyle()
+	 * @generated
+	 */
+	EReference getBaseStyle_Font();
+
+	/**
+	 * Returns the meta object for the reference '{@link org.eclipse.osbp.xtext.reportdsl.BaseStyle#getBackgroundcolor <em>Backgroundcolor</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference '<em>Backgroundcolor</em>'.
+	 * @see org.eclipse.osbp.xtext.reportdsl.BaseStyle#getBackgroundcolor()
+	 * @see #getBaseStyle()
+	 * @generated
+	 */
+	EReference getBaseStyle_Backgroundcolor();
+
+	/**
+	 * Returns the meta object for the reference '{@link org.eclipse.osbp.xtext.reportdsl.BaseStyle#getBackgroundcolor_alternate <em>Backgroundcolor alternate</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference '<em>Backgroundcolor alternate</em>'.
+	 * @see org.eclipse.osbp.xtext.reportdsl.BaseStyle#getBackgroundcolor_alternate()
+	 * @see #getBaseStyle()
+	 * @generated
+	 */
+	EReference getBaseStyle_Backgroundcolor_alternate();
+
+	/**
+	 * Returns the meta object for the reference '{@link org.eclipse.osbp.xtext.reportdsl.BaseStyle#getTextcolor <em>Textcolor</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference '<em>Textcolor</em>'.
+	 * @see org.eclipse.osbp.xtext.reportdsl.BaseStyle#getTextcolor()
+	 * @see #getBaseStyle()
+	 * @generated
+	 */
+	EReference getBaseStyle_Textcolor();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.xtext.reportdsl.BaseStyle#getTextalign <em>Textalign</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Textalign</em>'.
+	 * @see org.eclipse.osbp.xtext.reportdsl.BaseStyle#getTextalign()
+	 * @see #getBaseStyle()
+	 * @generated
+	 */
+	EAttribute getBaseStyle_Textalign();
+
+	/**
+	 * Returns the meta object for the containment reference '{@link org.eclipse.osbp.xtext.reportdsl.BaseStyle#getBorderTop <em>Border Top</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the containment reference '<em>Border Top</em>'.
+	 * @see org.eclipse.osbp.xtext.reportdsl.BaseStyle#getBorderTop()
+	 * @see #getBaseStyle()
+	 * @generated
+	 */
+	EReference getBaseStyle_BorderTop();
+
+	/**
+	 * Returns the meta object for the containment reference '{@link org.eclipse.osbp.xtext.reportdsl.BaseStyle#getBorderBottom <em>Border Bottom</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the containment reference '<em>Border Bottom</em>'.
+	 * @see org.eclipse.osbp.xtext.reportdsl.BaseStyle#getBorderBottom()
+	 * @see #getBaseStyle()
+	 * @generated
+	 */
+	EReference getBaseStyle_BorderBottom();
+
+	/**
+	 * Returns the meta object for the containment reference '{@link org.eclipse.osbp.xtext.reportdsl.BaseStyle#getBorderLeft <em>Border Left</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the containment reference '<em>Border Left</em>'.
+	 * @see org.eclipse.osbp.xtext.reportdsl.BaseStyle#getBorderLeft()
+	 * @see #getBaseStyle()
+	 * @generated
+	 */
+	EReference getBaseStyle_BorderLeft();
+
+	/**
+	 * Returns the meta object for the containment reference '{@link org.eclipse.osbp.xtext.reportdsl.BaseStyle#getBorderRight <em>Border Right</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the containment reference '<em>Border Right</em>'.
+	 * @see org.eclipse.osbp.xtext.reportdsl.BaseStyle#getBorderRight()
+	 * @see #getBaseStyle()
+	 * @generated
+	 */
+	EReference getBaseStyle_BorderRight();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.xtext.reportdsl.BaseStyle#getPaddingTopValue <em>Padding Top Value</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Padding Top Value</em>'.
+	 * @see org.eclipse.osbp.xtext.reportdsl.BaseStyle#getPaddingTopValue()
+	 * @see #getBaseStyle()
+	 * @generated
+	 */
+	EAttribute getBaseStyle_PaddingTopValue();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.xtext.reportdsl.BaseStyle#getPaddingTopUnit <em>Padding Top Unit</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Padding Top Unit</em>'.
+	 * @see org.eclipse.osbp.xtext.reportdsl.BaseStyle#getPaddingTopUnit()
+	 * @see #getBaseStyle()
+	 * @generated
+	 */
+	EAttribute getBaseStyle_PaddingTopUnit();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.xtext.reportdsl.BaseStyle#getPaddingBottomValue <em>Padding Bottom Value</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Padding Bottom Value</em>'.
+	 * @see org.eclipse.osbp.xtext.reportdsl.BaseStyle#getPaddingBottomValue()
+	 * @see #getBaseStyle()
+	 * @generated
+	 */
+	EAttribute getBaseStyle_PaddingBottomValue();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.xtext.reportdsl.BaseStyle#getPaddingBottomUnit <em>Padding Bottom Unit</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Padding Bottom Unit</em>'.
+	 * @see org.eclipse.osbp.xtext.reportdsl.BaseStyle#getPaddingBottomUnit()
+	 * @see #getBaseStyle()
+	 * @generated
+	 */
+	EAttribute getBaseStyle_PaddingBottomUnit();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.xtext.reportdsl.BaseStyle#getPaddingLeftValue <em>Padding Left Value</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Padding Left Value</em>'.
+	 * @see org.eclipse.osbp.xtext.reportdsl.BaseStyle#getPaddingLeftValue()
+	 * @see #getBaseStyle()
+	 * @generated
+	 */
+	EAttribute getBaseStyle_PaddingLeftValue();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.xtext.reportdsl.BaseStyle#getPaddingLeftUnit <em>Padding Left Unit</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Padding Left Unit</em>'.
+	 * @see org.eclipse.osbp.xtext.reportdsl.BaseStyle#getPaddingLeftUnit()
+	 * @see #getBaseStyle()
+	 * @generated
+	 */
+	EAttribute getBaseStyle_PaddingLeftUnit();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.xtext.reportdsl.BaseStyle#getPaddingRightValue <em>Padding Right Value</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Padding Right Value</em>'.
+	 * @see org.eclipse.osbp.xtext.reportdsl.BaseStyle#getPaddingRightValue()
+	 * @see #getBaseStyle()
+	 * @generated
+	 */
+	EAttribute getBaseStyle_PaddingRightValue();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.xtext.reportdsl.BaseStyle#getPaddingRightUnit <em>Padding Right Unit</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Padding Right Unit</em>'.
+	 * @see org.eclipse.osbp.xtext.reportdsl.BaseStyle#getPaddingRightUnit()
+	 * @see #getBaseStyle()
+	 * @generated
+	 */
+	EAttribute getBaseStyle_PaddingRightUnit();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.xtext.reportdsl.BaseStyle#getMarginTopValue <em>Margin Top Value</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Margin Top Value</em>'.
+	 * @see org.eclipse.osbp.xtext.reportdsl.BaseStyle#getMarginTopValue()
+	 * @see #getBaseStyle()
+	 * @generated
+	 */
+	EAttribute getBaseStyle_MarginTopValue();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.xtext.reportdsl.BaseStyle#getMarginTopUnit <em>Margin Top Unit</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Margin Top Unit</em>'.
+	 * @see org.eclipse.osbp.xtext.reportdsl.BaseStyle#getMarginTopUnit()
+	 * @see #getBaseStyle()
+	 * @generated
+	 */
+	EAttribute getBaseStyle_MarginTopUnit();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.xtext.reportdsl.BaseStyle#getMarginLeftValue <em>Margin Left Value</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Margin Left Value</em>'.
+	 * @see org.eclipse.osbp.xtext.reportdsl.BaseStyle#getMarginLeftValue()
+	 * @see #getBaseStyle()
+	 * @generated
+	 */
+	EAttribute getBaseStyle_MarginLeftValue();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.xtext.reportdsl.BaseStyle#getMarginLeftUnit <em>Margin Left Unit</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Margin Left Unit</em>'.
+	 * @see org.eclipse.osbp.xtext.reportdsl.BaseStyle#getMarginLeftUnit()
+	 * @see #getBaseStyle()
+	 * @generated
+	 */
+	EAttribute getBaseStyle_MarginLeftUnit();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.xtext.reportdsl.BaseStyle#getMarginBottomValue <em>Margin Bottom Value</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Margin Bottom Value</em>'.
+	 * @see org.eclipse.osbp.xtext.reportdsl.BaseStyle#getMarginBottomValue()
+	 * @see #getBaseStyle()
+	 * @generated
+	 */
+	EAttribute getBaseStyle_MarginBottomValue();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.xtext.reportdsl.BaseStyle#getMarginBottomUnit <em>Margin Bottom Unit</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Margin Bottom Unit</em>'.
+	 * @see org.eclipse.osbp.xtext.reportdsl.BaseStyle#getMarginBottomUnit()
+	 * @see #getBaseStyle()
+	 * @generated
+	 */
+	EAttribute getBaseStyle_MarginBottomUnit();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.xtext.reportdsl.BaseStyle#getMarginRightValue <em>Margin Right Value</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Margin Right Value</em>'.
+	 * @see org.eclipse.osbp.xtext.reportdsl.BaseStyle#getMarginRightValue()
+	 * @see #getBaseStyle()
+	 * @generated
+	 */
+	EAttribute getBaseStyle_MarginRightValue();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.xtext.reportdsl.BaseStyle#getMarginRightUnit <em>Margin Right Unit</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Margin Right Unit</em>'.
+	 * @see org.eclipse.osbp.xtext.reportdsl.BaseStyle#getMarginRightUnit()
+	 * @see #getBaseStyle()
+	 * @generated
+	 */
+	EAttribute getBaseStyle_MarginRightUnit();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.osbp.xtext.reportdsl.MediaStyle <em>Media Style</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Media Style</em>'.
+	 * @see org.eclipse.osbp.xtext.reportdsl.MediaStyle
+	 * @generated
+	 */
+	EClass getMediaStyle();
+
+	/**
+	 * Returns the meta object for the reference '{@link org.eclipse.osbp.xtext.reportdsl.MediaStyle#getMedia <em>Media</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference '<em>Media</em>'.
+	 * @see org.eclipse.osbp.xtext.reportdsl.MediaStyle#getMedia()
+	 * @see #getMediaStyle()
+	 * @generated
+	 */
+	EReference getMediaStyle_Media();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.osbp.xtext.reportdsl.Style <em>Style</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Style</em>'.
+	 * @see org.eclipse.osbp.xtext.reportdsl.Style
+	 * @generated
+	 */
+	EClass getStyle();
+
+	/**
+	 * Returns the meta object for the reference '{@link org.eclipse.osbp.xtext.reportdsl.Style#getExtends <em>Extends</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference '<em>Extends</em>'.
+	 * @see org.eclipse.osbp.xtext.reportdsl.Style#getExtends()
+	 * @see #getStyle()
+	 * @generated
+	 */
+	EReference getStyle_Extends();
+
+	/**
+	 * Returns the meta object for the containment reference list '{@link org.eclipse.osbp.xtext.reportdsl.Style#getMediastyles <em>Mediastyles</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the containment reference list '<em>Mediastyles</em>'.
+	 * @see org.eclipse.osbp.xtext.reportdsl.Style#getMediastyles()
+	 * @see #getStyle()
+	 * @generated
+	 */
+	EReference getStyle_Mediastyles();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.osbp.xtext.reportdsl.SomeFormat <em>Some Format</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Some Format</em>'.
+	 * @see org.eclipse.osbp.xtext.reportdsl.SomeFormat
+	 * @generated
+	 */
+	EClass getSomeFormat();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.xtext.reportdsl.SomeFormat#getUi_pattern <em>Ui pattern</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Ui pattern</em>'.
+	 * @see org.eclipse.osbp.xtext.reportdsl.SomeFormat#getUi_pattern()
+	 * @see #getSomeFormat()
+	 * @generated
+	 */
+	EAttribute getSomeFormat_Ui_pattern();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.xtext.reportdsl.SomeFormat#getReport_pattern <em>Report pattern</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Report pattern</em>'.
+	 * @see org.eclipse.osbp.xtext.reportdsl.SomeFormat#getReport_pattern()
+	 * @see #getSomeFormat()
+	 * @generated
+	 */
+	EAttribute getSomeFormat_Report_pattern();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.xtext.reportdsl.SomeFormat#getTextalign <em>Textalign</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Textalign</em>'.
+	 * @see org.eclipse.osbp.xtext.reportdsl.SomeFormat#getTextalign()
+	 * @see #getSomeFormat()
+	 * @generated
+	 */
+	EAttribute getSomeFormat_Textalign();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.osbp.xtext.reportdsl.UomoFormat <em>Uomo Format</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Uomo Format</em>'.
+	 * @see org.eclipse.osbp.xtext.reportdsl.UomoFormat
+	 * @generated
+	 */
+	EClass getUomoFormat();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.osbp.xtext.reportdsl.NumberFormat <em>Number Format</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Number Format</em>'.
+	 * @see org.eclipse.osbp.xtext.reportdsl.NumberFormat
+	 * @generated
+	 */
+	EClass getNumberFormat();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.xtext.reportdsl.NumberFormat#getReport_category <em>Report category</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Report category</em>'.
+	 * @see org.eclipse.osbp.xtext.reportdsl.NumberFormat#getReport_category()
+	 * @see #getNumberFormat()
+	 * @generated
+	 */
+	EAttribute getNumberFormat_Report_category();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.osbp.xtext.reportdsl.CurrencyFormat <em>Currency Format</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Currency Format</em>'.
+	 * @see org.eclipse.osbp.xtext.reportdsl.CurrencyFormat
+	 * @generated
+	 */
+	EClass getCurrencyFormat();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.xtext.reportdsl.CurrencyFormat#getReport_category <em>Report category</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Report category</em>'.
+	 * @see org.eclipse.osbp.xtext.reportdsl.CurrencyFormat#getReport_category()
+	 * @see #getCurrencyFormat()
+	 * @generated
+	 */
+	EAttribute getCurrencyFormat_Report_category();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.osbp.xtext.reportdsl.DateFormat <em>Date Format</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Date Format</em>'.
+	 * @see org.eclipse.osbp.xtext.reportdsl.DateFormat
+	 * @generated
+	 */
+	EClass getDateFormat();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.xtext.reportdsl.DateFormat#getReport_category <em>Report category</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Report category</em>'.
+	 * @see org.eclipse.osbp.xtext.reportdsl.DateFormat#getReport_category()
+	 * @see #getDateFormat()
+	 * @generated
+	 */
+	EAttribute getDateFormat_Report_category();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.osbp.xtext.reportdsl.DateTimeFormat <em>Date Time Format</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Date Time Format</em>'.
+	 * @see org.eclipse.osbp.xtext.reportdsl.DateTimeFormat
+	 * @generated
+	 */
+	EClass getDateTimeFormat();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.xtext.reportdsl.DateTimeFormat#getReport_category <em>Report category</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Report category</em>'.
+	 * @see org.eclipse.osbp.xtext.reportdsl.DateTimeFormat#getReport_category()
+	 * @see #getDateTimeFormat()
+	 * @generated
+	 */
+	EAttribute getDateTimeFormat_Report_category();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.osbp.xtext.reportdsl.TimeFormat <em>Time Format</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Time Format</em>'.
+	 * @see org.eclipse.osbp.xtext.reportdsl.TimeFormat
+	 * @generated
+	 */
+	EClass getTimeFormat();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.xtext.reportdsl.TimeFormat#getReport_category <em>Report category</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Report category</em>'.
+	 * @see org.eclipse.osbp.xtext.reportdsl.TimeFormat#getReport_category()
+	 * @see #getTimeFormat()
+	 * @generated
+	 */
+	EAttribute getTimeFormat_Report_category();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.osbp.xtext.reportdsl.Report <em>Report</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Report</em>'.
+	 * @see org.eclipse.osbp.xtext.reportdsl.Report
+	 * @generated
+	 */
+	EClass getReport();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.xtext.reportdsl.Report#isDescription <em>Description</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Description</em>'.
+	 * @see org.eclipse.osbp.xtext.reportdsl.Report#isDescription()
+	 * @see #getReport()
+	 * @generated
+	 */
+	EAttribute getReport_Description();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.xtext.reportdsl.Report#getDescriptionValue <em>Description Value</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Description Value</em>'.
+	 * @see org.eclipse.osbp.xtext.reportdsl.Report#getDescriptionValue()
+	 * @see #getReport()
+	 * @generated
+	 */
+	EAttribute getReport_DescriptionValue();
+
+	/**
+	 * Returns the meta object for the reference '{@link org.eclipse.osbp.xtext.reportdsl.Report#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.reportdsl.Report#getDatamartRef()
+	 * @see #getReport()
+	 * @generated
+	 */
+	EReference getReport_DatamartRef();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.xtext.reportdsl.Report#getRendering <em>Rendering</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Rendering</em>'.
+	 * @see org.eclipse.osbp.xtext.reportdsl.Report#getRendering()
+	 * @see #getReport()
+	 * @generated
+	 */
+	EAttribute getReport_Rendering();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.xtext.reportdsl.Report#getExternalCssURI <em>External Css URI</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>External Css URI</em>'.
+	 * @see org.eclipse.osbp.xtext.reportdsl.Report#getExternalCssURI()
+	 * @see #getReport()
+	 * @generated
+	 */
+	EAttribute getReport_ExternalCssURI();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.xtext.reportdsl.Report#getExternalCssURIBundle <em>External Css URI Bundle</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>External Css URI Bundle</em>'.
+	 * @see org.eclipse.osbp.xtext.reportdsl.Report#getExternalCssURIBundle()
+	 * @see #getReport()
+	 * @generated
+	 */
+	EAttribute getReport_ExternalCssURIBundle();
+
+	/**
+	 * Returns the meta object for the reference '{@link org.eclipse.osbp.xtext.reportdsl.Report#getPageTemplate <em>Page Template</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference '<em>Page Template</em>'.
+	 * @see org.eclipse.osbp.xtext.reportdsl.Report#getPageTemplate()
+	 * @see #getReport()
+	 * @generated
+	 */
+	EReference getReport_PageTemplate();
+
+	/**
+	 * Returns the meta object for the reference '{@link org.eclipse.osbp.xtext.reportdsl.Report#getMedia <em>Media</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference '<em>Media</em>'.
+	 * @see org.eclipse.osbp.xtext.reportdsl.Report#getMedia()
+	 * @see #getReport()
+	 * @generated
+	 */
+	EReference getReport_Media();
+
+	/**
+	 * Returns the meta object for the reference '{@link org.eclipse.osbp.xtext.reportdsl.Report#getToolbar <em>Toolbar</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference '<em>Toolbar</em>'.
+	 * @see org.eclipse.osbp.xtext.reportdsl.Report#getToolbar()
+	 * @see #getReport()
+	 * @generated
+	 */
+	EReference getReport_Toolbar();
+
+	/**
+	 * Returns the meta object for the containment reference '{@link org.eclipse.osbp.xtext.reportdsl.Report#getDesign <em>Design</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the containment reference '<em>Design</em>'.
+	 * @see org.eclipse.osbp.xtext.reportdsl.Report#getDesign()
+	 * @see #getReport()
+	 * @generated
+	 */
+	EReference getReport_Design();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.osbp.xtext.reportdsl.ReportDesign <em>Report Design</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Report Design</em>'.
+	 * @see org.eclipse.osbp.xtext.reportdsl.ReportDesign
+	 * @generated
+	 */
+	EClass getReportDesign();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.osbp.xtext.reportdsl.ReportDesignFile <em>Report Design File</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Report Design File</em>'.
+	 * @see org.eclipse.osbp.xtext.reportdsl.ReportDesignFile
+	 * @generated
+	 */
+	EClass getReportDesignFile();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.xtext.reportdsl.ReportDesignFile#getName <em>Name</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Name</em>'.
+	 * @see org.eclipse.osbp.xtext.reportdsl.ReportDesignFile#getName()
+	 * @see #getReportDesignFile()
+	 * @generated
+	 */
+	EAttribute getReportDesignFile_Name();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.osbp.xtext.reportdsl.ReportDesignTemplate <em>Report Design Template</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Report Design Template</em>'.
+	 * @see org.eclipse.osbp.xtext.reportdsl.ReportDesignTemplate
+	 * @generated
+	 */
+	EClass getReportDesignTemplate();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.xtext.reportdsl.ReportDesignTemplate#getDescription <em>Description</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Description</em>'.
+	 * @see org.eclipse.osbp.xtext.reportdsl.ReportDesignTemplate#getDescription()
+	 * @see #getReportDesignTemplate()
+	 * @generated
+	 */
+	EAttribute getReportDesignTemplate_Description();
+
+	/**
+	 * Returns the meta object for the containment reference '{@link org.eclipse.osbp.xtext.reportdsl.ReportDesignTemplate#getHeader <em>Header</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the containment reference '<em>Header</em>'.
+	 * @see org.eclipse.osbp.xtext.reportdsl.ReportDesignTemplate#getHeader()
+	 * @see #getReportDesignTemplate()
+	 * @generated
+	 */
+	EReference getReportDesignTemplate_Header();
+
+	/**
+	 * Returns the meta object for the containment reference '{@link org.eclipse.osbp.xtext.reportdsl.ReportDesignTemplate#getDetail <em>Detail</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the containment reference '<em>Detail</em>'.
+	 * @see org.eclipse.osbp.xtext.reportdsl.ReportDesignTemplate#getDetail()
+	 * @see #getReportDesignTemplate()
+	 * @generated
+	 */
+	EReference getReportDesignTemplate_Detail();
+
+	/**
+	 * Returns the meta object for the containment reference '{@link org.eclipse.osbp.xtext.reportdsl.ReportDesignTemplate#getFooter <em>Footer</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the containment reference '<em>Footer</em>'.
+	 * @see org.eclipse.osbp.xtext.reportdsl.ReportDesignTemplate#getFooter()
+	 * @see #getReportDesignTemplate()
+	 * @generated
+	 */
+	EReference getReportDesignTemplate_Footer();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.osbp.xtext.reportdsl.Container <em>Container</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Container</em>'.
+	 * @see org.eclipse.osbp.xtext.reportdsl.Container
+	 * @generated
+	 */
+	EClass getContainer();
+
+	/**
+	 * Returns the meta object for the containment reference list '{@link org.eclipse.osbp.xtext.reportdsl.Container#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.reportdsl.Container#getElements()
+	 * @see #getContainer()
+	 * @generated
+	 */
+	EReference getContainer_Elements();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.osbp.xtext.reportdsl.PageHeader <em>Page Header</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Page Header</em>'.
+	 * @see org.eclipse.osbp.xtext.reportdsl.PageHeader
+	 * @generated
+	 */
+	EClass getPageHeader();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.xtext.reportdsl.PageHeader#isShowOnFirst <em>Show On First</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Show On First</em>'.
+	 * @see org.eclipse.osbp.xtext.reportdsl.PageHeader#isShowOnFirst()
+	 * @see #getPageHeader()
+	 * @generated
+	 */
+	EAttribute getPageHeader_ShowOnFirst();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.xtext.reportdsl.PageHeader#getHeightValue <em>Height Value</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Height Value</em>'.
+	 * @see org.eclipse.osbp.xtext.reportdsl.PageHeader#getHeightValue()
+	 * @see #getPageHeader()
+	 * @generated
+	 */
+	EAttribute getPageHeader_HeightValue();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.xtext.reportdsl.PageHeader#getHeightUnit <em>Height Unit</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Height Unit</em>'.
+	 * @see org.eclipse.osbp.xtext.reportdsl.PageHeader#getHeightUnit()
+	 * @see #getPageHeader()
+	 * @generated
+	 */
+	EAttribute getPageHeader_HeightUnit();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.osbp.xtext.reportdsl.PageDetail <em>Page Detail</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Page Detail</em>'.
+	 * @see org.eclipse.osbp.xtext.reportdsl.PageDetail
+	 * @generated
+	 */
+	EClass getPageDetail();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.osbp.xtext.reportdsl.PageFooter <em>Page Footer</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Page Footer</em>'.
+	 * @see org.eclipse.osbp.xtext.reportdsl.PageFooter
+	 * @generated
+	 */
+	EClass getPageFooter();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.xtext.reportdsl.PageFooter#isShowOnLast <em>Show On Last</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Show On Last</em>'.
+	 * @see org.eclipse.osbp.xtext.reportdsl.PageFooter#isShowOnLast()
+	 * @see #getPageFooter()
+	 * @generated
+	 */
+	EAttribute getPageFooter_ShowOnLast();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.xtext.reportdsl.PageFooter#getHeightValue <em>Height Value</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Height Value</em>'.
+	 * @see org.eclipse.osbp.xtext.reportdsl.PageFooter#getHeightValue()
+	 * @see #getPageFooter()
+	 * @generated
+	 */
+	EAttribute getPageFooter_HeightValue();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.xtext.reportdsl.PageFooter#getHeightUnit <em>Height Unit</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Height Unit</em>'.
+	 * @see org.eclipse.osbp.xtext.reportdsl.PageFooter#getHeightUnit()
+	 * @see #getPageFooter()
+	 * @generated
+	 */
+	EAttribute getPageFooter_HeightUnit();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.osbp.xtext.reportdsl.Element <em>Element</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Element</em>'.
+	 * @see org.eclipse.osbp.xtext.reportdsl.Element
+	 * @generated
+	 */
+	EClass getElement();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.osbp.xtext.reportdsl.WithStyle <em>With Style</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>With Style</em>'.
+	 * @see org.eclipse.osbp.xtext.reportdsl.WithStyle
+	 * @generated
+	 */
+	EClass getWithStyle();
+
+	/**
+	 * Returns the meta object for the reference '{@link org.eclipse.osbp.xtext.reportdsl.WithStyle#getStyle <em>Style</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference '<em>Style</em>'.
+	 * @see org.eclipse.osbp.xtext.reportdsl.WithStyle#getStyle()
+	 * @see #getWithStyle()
+	 * @generated
+	 */
+	EReference getWithStyle_Style();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.osbp.xtext.reportdsl.TextElement <em>Text Element</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Text Element</em>'.
+	 * @see org.eclipse.osbp.xtext.reportdsl.TextElement
+	 * @generated
+	 */
+	EClass getTextElement();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.xtext.reportdsl.TextElement#getText <em>Text</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Text</em>'.
+	 * @see org.eclipse.osbp.xtext.reportdsl.TextElement#getText()
+	 * @see #getTextElement()
+	 * @generated
+	 */
+	EAttribute getTextElement_Text();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.osbp.xtext.reportdsl.Title <em>Title</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Title</em>'.
+	 * @see org.eclipse.osbp.xtext.reportdsl.Title
+	 * @generated
+	 */
+	EClass getTitle();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.osbp.xtext.reportdsl.SubTitle <em>Sub Title</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Sub Title</em>'.
+	 * @see org.eclipse.osbp.xtext.reportdsl.SubTitle
+	 * @generated
+	 */
+	EClass getSubTitle();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.osbp.xtext.reportdsl.SubSubTitle <em>Sub Sub Title</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Sub Sub Title</em>'.
+	 * @see org.eclipse.osbp.xtext.reportdsl.SubSubTitle
+	 * @generated
+	 */
+	EClass getSubSubTitle();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.osbp.xtext.reportdsl.Label <em>Label</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Label</em>'.
+	 * @see org.eclipse.osbp.xtext.reportdsl.Label
+	 * @generated
+	 */
+	EClass getLabel();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.osbp.xtext.reportdsl.Text <em>Text</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Text</em>'.
+	 * @see org.eclipse.osbp.xtext.reportdsl.Text
+	 * @generated
+	 */
+	EClass getText();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.osbp.xtext.reportdsl.AutoText <em>Auto Text</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Auto Text</em>'.
+	 * @see org.eclipse.osbp.xtext.reportdsl.AutoText
+	 * @generated
+	 */
+	EClass getAutoText();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.xtext.reportdsl.AutoText#getType <em>Type</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Type</em>'.
+	 * @see org.eclipse.osbp.xtext.reportdsl.AutoText#getType()
+	 * @see #getAutoText()
+	 * @generated
+	 */
+	EAttribute getAutoText_Type();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.osbp.xtext.reportdsl.Image <em>Image</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Image</em>'.
+	 * @see org.eclipse.osbp.xtext.reportdsl.Image
+	 * @generated
+	 */
+	EClass getImage();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.xtext.reportdsl.Image#getSize <em>Size</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Size</em>'.
+	 * @see org.eclipse.osbp.xtext.reportdsl.Image#getSize()
+	 * @see #getImage()
+	 * @generated
+	 */
+	EAttribute getImage_Size();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.xtext.reportdsl.Image#getScale <em>Scale</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Scale</em>'.
+	 * @see org.eclipse.osbp.xtext.reportdsl.Image#getScale()
+	 * @see #getImage()
+	 * @generated
+	 */
+	EAttribute getImage_Scale();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.xtext.reportdsl.Image#getSourceType <em>Source Type</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Source Type</em>'.
+	 * @see org.eclipse.osbp.xtext.reportdsl.Image#getSourceType()
+	 * @see #getImage()
+	 * @generated
+	 */
+	EAttribute getImage_SourceType();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.xtext.reportdsl.Image#getFilename <em>Filename</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Filename</em>'.
+	 * @see org.eclipse.osbp.xtext.reportdsl.Image#getFilename()
+	 * @see #getImage()
+	 * @generated
+	 */
+	EAttribute getImage_Filename();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.osbp.xtext.reportdsl.WithHeaderFooter <em>With Header Footer</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>With Header Footer</em>'.
+	 * @see org.eclipse.osbp.xtext.reportdsl.WithHeaderFooter
+	 * @generated
+	 */
+	EClass getWithHeaderFooter();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.xtext.reportdsl.WithHeaderFooter#isDetailheader <em>Detailheader</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Detailheader</em>'.
+	 * @see org.eclipse.osbp.xtext.reportdsl.WithHeaderFooter#isDetailheader()
+	 * @see #getWithHeaderFooter()
+	 * @generated
+	 */
+	EAttribute getWithHeaderFooter_Detailheader();
+
+	/**
+	 * Returns the meta object for the reference '{@link org.eclipse.osbp.xtext.reportdsl.WithHeaderFooter#getHeaderstyle <em>Headerstyle</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference '<em>Headerstyle</em>'.
+	 * @see org.eclipse.osbp.xtext.reportdsl.WithHeaderFooter#getHeaderstyle()
+	 * @see #getWithHeaderFooter()
+	 * @generated
+	 */
+	EReference getWithHeaderFooter_Headerstyle();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.xtext.reportdsl.WithHeaderFooter#isDetailfooter <em>Detailfooter</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Detailfooter</em>'.
+	 * @see org.eclipse.osbp.xtext.reportdsl.WithHeaderFooter#isDetailfooter()
+	 * @see #getWithHeaderFooter()
+	 * @generated
+	 */
+	EAttribute getWithHeaderFooter_Detailfooter();
+
+	/**
+	 * Returns the meta object for the reference '{@link org.eclipse.osbp.xtext.reportdsl.WithHeaderFooter#getFooterstyle <em>Footerstyle</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference '<em>Footerstyle</em>'.
+	 * @see org.eclipse.osbp.xtext.reportdsl.WithHeaderFooter#getFooterstyle()
+	 * @see #getWithHeaderFooter()
+	 * @generated
+	 */
+	EReference getWithHeaderFooter_Footerstyle();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.osbp.xtext.reportdsl.DatamartTable <em>Datamart Table</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Datamart Table</em>'.
+	 * @see org.eclipse.osbp.xtext.reportdsl.DatamartTable
+	 * @generated
+	 */
+	EClass getDatamartTable();
+
+	/**
+	 * Returns the meta object for the containment reference list '{@link org.eclipse.osbp.xtext.reportdsl.DatamartTable#getGroups <em>Groups</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the containment reference list '<em>Groups</em>'.
+	 * @see org.eclipse.osbp.xtext.reportdsl.DatamartTable#getGroups()
+	 * @see #getDatamartTable()
+	 * @generated
+	 */
+	EReference getDatamartTable_Groups();
+
+	/**
+	 * Returns the meta object for the containment reference '{@link org.eclipse.osbp.xtext.reportdsl.DatamartTable#getDetail <em>Detail</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the containment reference '<em>Detail</em>'.
+	 * @see org.eclipse.osbp.xtext.reportdsl.DatamartTable#getDetail()
+	 * @see #getDatamartTable()
+	 * @generated
+	 */
+	EReference getDatamartTable_Detail();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.osbp.xtext.reportdsl.DatamartTableGroup <em>Datamart Table Group</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Datamart Table Group</em>'.
+	 * @see org.eclipse.osbp.xtext.reportdsl.DatamartTableGroup
+	 * @generated
+	 */
+	EClass getDatamartTableGroup();
+
+	/**
+	 * Returns the meta object for the reference '{@link org.eclipse.osbp.xtext.reportdsl.DatamartTableGroup#getGroupingRef <em>Grouping Ref</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference '<em>Grouping Ref</em>'.
+	 * @see org.eclipse.osbp.xtext.reportdsl.DatamartTableGroup#getGroupingRef()
+	 * @see #getDatamartTableGroup()
+	 * @generated
+	 */
+	EReference getDatamartTableGroup_GroupingRef();
+
+	/**
+	 * Returns the meta object for the containment reference '{@link org.eclipse.osbp.xtext.reportdsl.DatamartTableGroup#getHeader <em>Header</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the containment reference '<em>Header</em>'.
+	 * @see org.eclipse.osbp.xtext.reportdsl.DatamartTableGroup#getHeader()
+	 * @see #getDatamartTableGroup()
+	 * @generated
+	 */
+	EReference getDatamartTableGroup_Header();
+
+	/**
+	 * Returns the meta object for the containment reference '{@link org.eclipse.osbp.xtext.reportdsl.DatamartTableGroup#getFooter <em>Footer</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the containment reference '<em>Footer</em>'.
+	 * @see org.eclipse.osbp.xtext.reportdsl.DatamartTableGroup#getFooter()
+	 * @see #getDatamartTableGroup()
+	 * @generated
+	 */
+	EReference getDatamartTableGroup_Footer();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.osbp.xtext.reportdsl.SomeGrid <em>Some Grid</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Some Grid</em>'.
+	 * @see org.eclipse.osbp.xtext.reportdsl.SomeGrid
+	 * @generated
+	 */
+	EClass getSomeGrid();
+
+	/**
+	 * Returns the meta object for the containment reference list '{@link org.eclipse.osbp.xtext.reportdsl.SomeGrid#getRows <em>Rows</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the containment reference list '<em>Rows</em>'.
+	 * @see org.eclipse.osbp.xtext.reportdsl.SomeGrid#getRows()
+	 * @see #getSomeGrid()
+	 * @generated
+	 */
+	EReference getSomeGrid_Rows();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.osbp.xtext.reportdsl.DatamartTableGroupHeader <em>Datamart Table Group Header</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Datamart Table Group Header</em>'.
+	 * @see org.eclipse.osbp.xtext.reportdsl.DatamartTableGroupHeader
+	 * @generated
+	 */
+	EClass getDatamartTableGroupHeader();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.osbp.xtext.reportdsl.DatamartTableGroupFooter <em>Datamart Table Group Footer</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Datamart Table Group Footer</em>'.
+	 * @see org.eclipse.osbp.xtext.reportdsl.DatamartTableGroupFooter
+	 * @generated
+	 */
+	EClass getDatamartTableGroupFooter();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.osbp.xtext.reportdsl.DatamartTableDetail <em>Datamart Table Detail</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Datamart Table Detail</em>'.
+	 * @see org.eclipse.osbp.xtext.reportdsl.DatamartTableDetail
+	 * @generated
+	 */
+	EClass getDatamartTableDetail();
+
+	/**
+	 * Returns the meta object for the containment reference list '{@link org.eclipse.osbp.xtext.reportdsl.DatamartTableDetail#getColumnFormatters <em>Column Formatters</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the containment reference list '<em>Column Formatters</em>'.
+	 * @see org.eclipse.osbp.xtext.reportdsl.DatamartTableDetail#getColumnFormatters()
+	 * @see #getDatamartTableDetail()
+	 * @generated
+	 */
+	EReference getDatamartTableDetail_ColumnFormatters();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.osbp.xtext.reportdsl.DatamartTableProperty <em>Datamart Table Property</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Datamart Table Property</em>'.
+	 * @see org.eclipse.osbp.xtext.reportdsl.DatamartTableProperty
+	 * @generated
+	 */
+	EClass getDatamartTableProperty();
+
+	/**
+	 * Returns the meta object for the containment reference '{@link org.eclipse.osbp.xtext.reportdsl.DatamartTableProperty#getColumn <em>Column</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the containment reference '<em>Column</em>'.
+	 * @see org.eclipse.osbp.xtext.reportdsl.DatamartTableProperty#getColumn()
+	 * @see #getDatamartTableProperty()
+	 * @generated
+	 */
+	EReference getDatamartTableProperty_Column();
+
+	/**
+	 * Returns the meta object for the containment reference list '{@link org.eclipse.osbp.xtext.reportdsl.DatamartTableProperty#getIntervals <em>Intervals</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the containment reference list '<em>Intervals</em>'.
+	 * @see org.eclipse.osbp.xtext.reportdsl.DatamartTableProperty#getIntervals()
+	 * @see #getDatamartTableProperty()
+	 * @generated
+	 */
+	EReference getDatamartTableProperty_Intervals();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.xtext.reportdsl.DatamartTableProperty#isHideLabelInterval <em>Hide Label Interval</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Hide Label Interval</em>'.
+	 * @see org.eclipse.osbp.xtext.reportdsl.DatamartTableProperty#isHideLabelInterval()
+	 * @see #getDatamartTableProperty()
+	 * @generated
+	 */
+	EAttribute getDatamartTableProperty_HideLabelInterval();
+
+	/**
+	 * Returns the meta object for the containment reference list '{@link org.eclipse.osbp.xtext.reportdsl.DatamartTableProperty#getLookups <em>Lookups</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the containment reference list '<em>Lookups</em>'.
+	 * @see org.eclipse.osbp.xtext.reportdsl.DatamartTableProperty#getLookups()
+	 * @see #getDatamartTableProperty()
+	 * @generated
+	 */
+	EReference getDatamartTableProperty_Lookups();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.xtext.reportdsl.DatamartTableProperty#isHideLabelLookup <em>Hide Label Lookup</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Hide Label Lookup</em>'.
+	 * @see org.eclipse.osbp.xtext.reportdsl.DatamartTableProperty#isHideLabelLookup()
+	 * @see #getDatamartTableProperty()
+	 * @generated
+	 */
+	EAttribute getDatamartTableProperty_HideLabelLookup();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.xtext.reportdsl.DatamartTableProperty#isHasImage <em>Has Image</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Has Image</em>'.
+	 * @see org.eclipse.osbp.xtext.reportdsl.DatamartTableProperty#isHasImage()
+	 * @see #getDatamartTableProperty()
+	 * @generated
+	 */
+	EAttribute getDatamartTableProperty_HasImage();
+
+	/**
+	 * Returns the meta object for the containment reference '{@link org.eclipse.osbp.xtext.reportdsl.DatamartTableProperty#getImage <em>Image</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the containment reference '<em>Image</em>'.
+	 * @see org.eclipse.osbp.xtext.reportdsl.DatamartTableProperty#getImage()
+	 * @see #getDatamartTableProperty()
+	 * @generated
+	 */
+	EReference getDatamartTableProperty_Image();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.osbp.xtext.reportdsl.TableFormatter <em>Table Formatter</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Table Formatter</em>'.
+	 * @see org.eclipse.osbp.xtext.reportdsl.TableFormatter
+	 * @generated
+	 */
+	EClass getTableFormatter();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.xtext.reportdsl.TableFormatter#getFormat <em>Format</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Format</em>'.
+	 * @see org.eclipse.osbp.xtext.reportdsl.TableFormatter#getFormat()
+	 * @see #getTableFormatter()
+	 * @generated
+	 */
+	EAttribute getTableFormatter_Format();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.osbp.xtext.reportdsl.TableImage <em>Table Image</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Table Image</em>'.
+	 * @see org.eclipse.osbp.xtext.reportdsl.TableImage
+	 * @generated
+	 */
+	EClass getTableImage();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.xtext.reportdsl.TableImage#getImagePathPattern <em>Image Path Pattern</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Image Path Pattern</em>'.
+	 * @see org.eclipse.osbp.xtext.reportdsl.TableImage#getImagePathPattern()
+	 * @see #getTableImage()
+	 * @generated
+	 */
+	EAttribute getTableImage_ImagePathPattern();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.xtext.reportdsl.TableImage#isHideImageLabel <em>Hide Image Label</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Hide Image Label</em>'.
+	 * @see org.eclipse.osbp.xtext.reportdsl.TableImage#isHideImageLabel()
+	 * @see #getTableImage()
+	 * @generated
+	 */
+	EAttribute getTableImage_HideImageLabel();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.xtext.reportdsl.TableImage#isHasParameter <em>Has Parameter</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Has Parameter</em>'.
+	 * @see org.eclipse.osbp.xtext.reportdsl.TableImage#isHasParameter()
+	 * @see #getTableImage()
+	 * @generated
+	 */
+	EAttribute getTableImage_HasParameter();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.xtext.reportdsl.TableImage#isResize <em>Resize</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Resize</em>'.
+	 * @see org.eclipse.osbp.xtext.reportdsl.TableImage#isResize()
+	 * @see #getTableImage()
+	 * @generated
+	 */
+	EAttribute getTableImage_Resize();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.xtext.reportdsl.TableImage#getResizeString <em>Resize String</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Resize String</em>'.
+	 * @see org.eclipse.osbp.xtext.reportdsl.TableImage#getResizeString()
+	 * @see #getTableImage()
+	 * @generated
+	 */
+	EAttribute getTableImage_ResizeString();
+
+	/**
+	 * Returns the meta object for the containment reference '{@link org.eclipse.osbp.xtext.reportdsl.TableImage#getImagePathParameter <em>Image Path Parameter</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the containment reference '<em>Image Path Parameter</em>'.
+	 * @see org.eclipse.osbp.xtext.reportdsl.TableImage#getImagePathParameter()
+	 * @see #getTableImage()
+	 * @generated
+	 */
+	EReference getTableImage_ImagePathParameter();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.osbp.xtext.reportdsl.TableValueElement <em>Table Value Element</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Table Value Element</em>'.
+	 * @see org.eclipse.osbp.xtext.reportdsl.TableValueElement
+	 * @generated
+	 */
+	EClass getTableValueElement();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.osbp.xtext.reportdsl.TableProperty <em>Table Property</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Table Property</em>'.
+	 * @see org.eclipse.osbp.xtext.reportdsl.TableProperty
+	 * @generated
+	 */
+	EClass getTableProperty();
+
+	/**
+	 * Returns the meta object for the reference '{@link org.eclipse.osbp.xtext.reportdsl.TableProperty#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.reportdsl.TableProperty#getValueRef()
+	 * @see #getTableProperty()
+	 * @generated
+	 */
+	EReference getTableProperty_ValueRef();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.osbp.xtext.reportdsl.TableAggregation <em>Table Aggregation</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Table Aggregation</em>'.
+	 * @see org.eclipse.osbp.xtext.reportdsl.TableAggregation
+	 * @generated
+	 */
+	EClass getTableAggregation();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.xtext.reportdsl.TableAggregation#getText <em>Text</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Text</em>'.
+	 * @see org.eclipse.osbp.xtext.reportdsl.TableAggregation#getText()
+	 * @see #getTableAggregation()
+	 * @generated
+	 */
+	EAttribute getTableAggregation_Text();
+
+	/**
+	 * Returns the meta object for the containment reference '{@link org.eclipse.osbp.xtext.reportdsl.TableAggregation#getAggregation <em>Aggregation</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the containment reference '<em>Aggregation</em>'.
+	 * @see org.eclipse.osbp.xtext.reportdsl.TableAggregation#getAggregation()
+	 * @see #getTableAggregation()
+	 * @generated
+	 */
+	EReference getTableAggregation_Aggregation();
+
+	/**
+	 * Returns the meta object for the reference '{@link org.eclipse.osbp.xtext.reportdsl.TableAggregation#getOnGroup <em>On Group</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference '<em>On Group</em>'.
+	 * @see org.eclipse.osbp.xtext.reportdsl.TableAggregation#getOnGroup()
+	 * @see #getTableAggregation()
+	 * @generated
+	 */
+	EReference getTableAggregation_OnGroup();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.osbp.xtext.reportdsl.TableBaseAggregation <em>Table Base Aggregation</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Table Base Aggregation</em>'.
+	 * @see org.eclipse.osbp.xtext.reportdsl.TableBaseAggregation
+	 * @generated
+	 */
+	EClass getTableBaseAggregation();
+
+	/**
+	 * Returns the meta object for the reference list '{@link org.eclipse.osbp.xtext.reportdsl.TableBaseAggregation#getValueRefs <em>Value Refs</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference list '<em>Value Refs</em>'.
+	 * @see org.eclipse.osbp.xtext.reportdsl.TableBaseAggregation#getValueRefs()
+	 * @see #getTableBaseAggregation()
+	 * @generated
+	 */
+	EReference getTableBaseAggregation_ValueRefs();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.osbp.xtext.reportdsl.TablePureAggregation <em>Table Pure Aggregation</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Table Pure Aggregation</em>'.
+	 * @see org.eclipse.osbp.xtext.reportdsl.TablePureAggregation
+	 * @generated
+	 */
+	EClass getTablePureAggregation();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.xtext.reportdsl.TablePureAggregation#getAggregation <em>Aggregation</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Aggregation</em>'.
+	 * @see org.eclipse.osbp.xtext.reportdsl.TablePureAggregation#getAggregation()
+	 * @see #getTablePureAggregation()
+	 * @generated
+	 */
+	EAttribute getTablePureAggregation_Aggregation();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.osbp.xtext.reportdsl.TableUnaryAggregation <em>Table Unary Aggregation</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Table Unary Aggregation</em>'.
+	 * @see org.eclipse.osbp.xtext.reportdsl.TableUnaryAggregation
+	 * @generated
+	 */
+	EClass getTableUnaryAggregation();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.xtext.reportdsl.TableUnaryAggregation#getAggregation <em>Aggregation</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Aggregation</em>'.
+	 * @see org.eclipse.osbp.xtext.reportdsl.TableUnaryAggregation#getAggregation()
+	 * @see #getTableUnaryAggregation()
+	 * @generated
+	 */
+	EAttribute getTableUnaryAggregation_Aggregation();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.osbp.xtext.reportdsl.TableMultipleAggregation <em>Table Multiple Aggregation</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Table Multiple Aggregation</em>'.
+	 * @see org.eclipse.osbp.xtext.reportdsl.TableMultipleAggregation
+	 * @generated
+	 */
+	EClass getTableMultipleAggregation();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.xtext.reportdsl.TableMultipleAggregation#getAggregation <em>Aggregation</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Aggregation</em>'.
+	 * @see org.eclipse.osbp.xtext.reportdsl.TableMultipleAggregation#getAggregation()
+	 * @see #getTableMultipleAggregation()
+	 * @generated
+	 */
+	EAttribute getTableMultipleAggregation_Aggregation();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.osbp.xtext.reportdsl.TableBinaryAggregation <em>Table Binary Aggregation</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Table Binary Aggregation</em>'.
+	 * @see org.eclipse.osbp.xtext.reportdsl.TableBinaryAggregation
+	 * @generated
+	 */
+	EClass getTableBinaryAggregation();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.xtext.reportdsl.TableBinaryAggregation#getAggregation <em>Aggregation</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Aggregation</em>'.
+	 * @see org.eclipse.osbp.xtext.reportdsl.TableBinaryAggregation#getAggregation()
+	 * @see #getTableBinaryAggregation()
+	 * @generated
+	 */
+	EAttribute getTableBinaryAggregation_Aggregation();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.osbp.xtext.reportdsl.TableInterval <em>Table Interval</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Table Interval</em>'.
+	 * @see org.eclipse.osbp.xtext.reportdsl.TableInterval
+	 * @generated
+	 */
+	EClass getTableInterval();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.osbp.xtext.reportdsl.TableNumberInterval <em>Table Number Interval</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Table Number Interval</em>'.
+	 * @see org.eclipse.osbp.xtext.reportdsl.TableNumberInterval
+	 * @generated
+	 */
+	EClass getTableNumberInterval();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.xtext.reportdsl.TableNumberInterval#getNumberIntervalValue <em>Number Interval Value</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Number Interval Value</em>'.
+	 * @see org.eclipse.osbp.xtext.reportdsl.TableNumberInterval#getNumberIntervalValue()
+	 * @see #getTableNumberInterval()
+	 * @generated
+	 */
+	EAttribute getTableNumberInterval_NumberIntervalValue();
+
+	/**
+	 * Returns the meta object for the containment reference '{@link org.eclipse.osbp.xtext.reportdsl.TableNumberInterval#getNumberRange <em>Number Range</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the containment reference '<em>Number Range</em>'.
+	 * @see org.eclipse.osbp.xtext.reportdsl.TableNumberInterval#getNumberRange()
+	 * @see #getTableNumberInterval()
+	 * @generated
+	 */
+	EReference getTableNumberInterval_NumberRange();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.osbp.xtext.reportdsl.TableDateDayInterval <em>Table Date Day Interval</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Table Date Day Interval</em>'.
+	 * @see org.eclipse.osbp.xtext.reportdsl.TableDateDayInterval
+	 * @generated
+	 */
+	EClass getTableDateDayInterval();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.xtext.reportdsl.TableDateDayInterval#getDateIntervalValue <em>Date Interval Value</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Date Interval Value</em>'.
+	 * @see org.eclipse.osbp.xtext.reportdsl.TableDateDayInterval#getDateIntervalValue()
+	 * @see #getTableDateDayInterval()
+	 * @generated
+	 */
+	EAttribute getTableDateDayInterval_DateIntervalValue();
+
+	/**
+	 * Returns the meta object for the containment reference '{@link org.eclipse.osbp.xtext.reportdsl.TableDateDayInterval#getDateRange <em>Date Range</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the containment reference '<em>Date Range</em>'.
+	 * @see org.eclipse.osbp.xtext.reportdsl.TableDateDayInterval#getDateRange()
+	 * @see #getTableDateDayInterval()
+	 * @generated
+	 */
+	EReference getTableDateDayInterval_DateRange();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.osbp.xtext.reportdsl.TableLookup <em>Table Lookup</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Table Lookup</em>'.
+	 * @see org.eclipse.osbp.xtext.reportdsl.TableLookup
+	 * @generated
+	 */
+	EClass getTableLookup();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.osbp.xtext.reportdsl.TableNumberLookup <em>Table Number Lookup</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Table Number Lookup</em>'.
+	 * @see org.eclipse.osbp.xtext.reportdsl.TableNumberLookup
+	 * @generated
+	 */
+	EClass getTableNumberLookup();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.xtext.reportdsl.TableNumberLookup#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.reportdsl.TableNumberLookup#getLookupValue()
+	 * @see #getTableNumberLookup()
+	 * @generated
+	 */
+	EAttribute getTableNumberLookup_LookupValue();
+
+	/**
+	 * Returns the meta object for the containment reference '{@link org.eclipse.osbp.xtext.reportdsl.TableNumberLookup#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.reportdsl.TableNumberLookup#getDiscrete()
+	 * @see #getTableNumberLookup()
+	 * @generated
+	 */
+	EReference getTableNumberLookup_Discrete();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.osbp.xtext.reportdsl.TableStringLookup <em>Table String Lookup</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Table String Lookup</em>'.
+	 * @see org.eclipse.osbp.xtext.reportdsl.TableStringLookup
+	 * @generated
+	 */
+	EClass getTableStringLookup();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.xtext.reportdsl.TableStringLookup#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.reportdsl.TableStringLookup#getLookupValue()
+	 * @see #getTableStringLookup()
+	 * @generated
+	 */
+	EAttribute getTableStringLookup_LookupValue();
+
+	/**
+	 * Returns the meta object for the containment reference '{@link org.eclipse.osbp.xtext.reportdsl.TableStringLookup#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.reportdsl.TableStringLookup#getDiscrete()
+	 * @see #getTableStringLookup()
+	 * @generated
+	 */
+	EReference getTableStringLookup_Discrete();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.osbp.xtext.reportdsl.TableDateDayLookup <em>Table Date Day Lookup</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Table Date Day Lookup</em>'.
+	 * @see org.eclipse.osbp.xtext.reportdsl.TableDateDayLookup
+	 * @generated
+	 */
+	EClass getTableDateDayLookup();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.xtext.reportdsl.TableDateDayLookup#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.reportdsl.TableDateDayLookup#getLookupValue()
+	 * @see #getTableDateDayLookup()
+	 * @generated
+	 */
+	EAttribute getTableDateDayLookup_LookupValue();
+
+	/**
+	 * Returns the meta object for the containment reference '{@link org.eclipse.osbp.xtext.reportdsl.TableDateDayLookup#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.reportdsl.TableDateDayLookup#getDiscrete()
+	 * @see #getTableDateDayLookup()
+	 * @generated
+	 */
+	EReference getTableDateDayLookup_Discrete();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.osbp.xtext.reportdsl.TableRangeElement <em>Table Range Element</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Table Range Element</em>'.
+	 * @see org.eclipse.osbp.xtext.reportdsl.TableRangeElement
+	 * @generated
+	 */
+	EClass getTableRangeElement();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.osbp.xtext.reportdsl.TableTextColor <em>Table Text Color</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Table Text Color</em>'.
+	 * @see org.eclipse.osbp.xtext.reportdsl.TableTextColor
+	 * @generated
+	 */
+	EClass getTableTextColor();
+
+	/**
+	 * Returns the meta object for the reference '{@link org.eclipse.osbp.xtext.reportdsl.TableTextColor#getColor <em>Color</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference '<em>Color</em>'.
+	 * @see org.eclipse.osbp.xtext.reportdsl.TableTextColor#getColor()
+	 * @see #getTableTextColor()
+	 * @generated
+	 */
+	EReference getTableTextColor_Color();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.osbp.xtext.reportdsl.TableCellColor <em>Table Cell Color</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Table Cell Color</em>'.
+	 * @see org.eclipse.osbp.xtext.reportdsl.TableCellColor
+	 * @generated
+	 */
+	EClass getTableCellColor();
+
+	/**
+	 * Returns the meta object for the reference '{@link org.eclipse.osbp.xtext.reportdsl.TableCellColor#getColor <em>Color</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference '<em>Color</em>'.
+	 * @see org.eclipse.osbp.xtext.reportdsl.TableCellColor#getColor()
+	 * @see #getTableCellColor()
+	 * @generated
+	 */
+	EReference getTableCellColor_Color();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.osbp.xtext.reportdsl.TableIcon <em>Table Icon</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Table Icon</em>'.
+	 * @see org.eclipse.osbp.xtext.reportdsl.TableIcon
+	 * @generated
+	 */
+	EClass getTableIcon();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.xtext.reportdsl.TableIcon#getIcon <em>Icon</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Icon</em>'.
+	 * @see org.eclipse.osbp.xtext.reportdsl.TableIcon#getIcon()
+	 * @see #getTableIcon()
+	 * @generated
+	 */
+	EAttribute getTableIcon_Icon();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.osbp.xtext.reportdsl.TableTrend <em>Table Trend</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Table Trend</em>'.
+	 * @see org.eclipse.osbp.xtext.reportdsl.TableTrend
+	 * @generated
+	 */
+	EClass getTableTrend();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.xtext.reportdsl.TableTrend#getIcon <em>Icon</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Icon</em>'.
+	 * @see org.eclipse.osbp.xtext.reportdsl.TableTrend#getIcon()
+	 * @see #getTableTrend()
+	 * @generated
+	 */
+	EAttribute getTableTrend_Icon();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.osbp.xtext.reportdsl.TableTooltip <em>Table Tooltip</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Table Tooltip</em>'.
+	 * @see org.eclipse.osbp.xtext.reportdsl.TableTooltip
+	 * @generated
+	 */
+	EClass getTableTooltip();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.xtext.reportdsl.TableTooltip#getTooltip <em>Tooltip</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Tooltip</em>'.
+	 * @see org.eclipse.osbp.xtext.reportdsl.TableTooltip#getTooltip()
+	 * @see #getTableTooltip()
+	 * @generated
+	 */
+	EAttribute getTableTooltip_Tooltip();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.osbp.xtext.reportdsl.Grid <em>Grid</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Grid</em>'.
+	 * @see org.eclipse.osbp.xtext.reportdsl.Grid
+	 * @generated
+	 */
+	EClass getGrid();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.osbp.xtext.reportdsl.GridRow <em>Grid Row</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Grid Row</em>'.
+	 * @see org.eclipse.osbp.xtext.reportdsl.GridRow
+	 * @generated
+	 */
+	EClass getGridRow();
+
+	/**
+	 * Returns the meta object for the containment reference list '{@link org.eclipse.osbp.xtext.reportdsl.GridRow#getCells <em>Cells</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the containment reference list '<em>Cells</em>'.
+	 * @see org.eclipse.osbp.xtext.reportdsl.GridRow#getCells()
+	 * @see #getGridRow()
+	 * @generated
+	 */
+	EReference getGridRow_Cells();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.osbp.xtext.reportdsl.GridCell <em>Grid Cell</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Grid Cell</em>'.
+	 * @see org.eclipse.osbp.xtext.reportdsl.GridCell
+	 * @generated
+	 */
+	EClass getGridCell();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.xtext.reportdsl.GridCell#getColumnspan <em>Columnspan</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Columnspan</em>'.
+	 * @see org.eclipse.osbp.xtext.reportdsl.GridCell#getColumnspan()
+	 * @see #getGridCell()
+	 * @generated
+	 */
+	EAttribute getGridCell_Columnspan();
+
+	/**
+	 * Returns the meta object for enum '{@link org.eclipse.osbp.xtext.reportdsl.UnitEnum <em>Unit Enum</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for enum '<em>Unit Enum</em>'.
+	 * @see org.eclipse.osbp.xtext.reportdsl.UnitEnum
+	 * @generated
+	 */
+	EEnum getUnitEnum();
+
+	/**
+	 * Returns the meta object for enum '{@link org.eclipse.osbp.xtext.reportdsl.PageSizeEnum <em>Page Size Enum</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for enum '<em>Page Size Enum</em>'.
+	 * @see org.eclipse.osbp.xtext.reportdsl.PageSizeEnum
+	 * @generated
+	 */
+	EEnum getPageSizeEnum();
+
+	/**
+	 * Returns the meta object for enum '{@link org.eclipse.osbp.xtext.reportdsl.OrientationEnum <em>Orientation Enum</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for enum '<em>Orientation Enum</em>'.
+	 * @see org.eclipse.osbp.xtext.reportdsl.OrientationEnum
+	 * @generated
+	 */
+	EEnum getOrientationEnum();
+
+	/**
+	 * Returns the meta object for enum '{@link org.eclipse.osbp.xtext.reportdsl.FontStyleEnum <em>Font Style Enum</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for enum '<em>Font Style Enum</em>'.
+	 * @see org.eclipse.osbp.xtext.reportdsl.FontStyleEnum
+	 * @generated
+	 */
+	EEnum getFontStyleEnum();
+
+	/**
+	 * Returns the meta object for enum '{@link org.eclipse.osbp.xtext.reportdsl.BuildInFontFamilyEnum <em>Build In Font Family Enum</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for enum '<em>Build In Font Family Enum</em>'.
+	 * @see org.eclipse.osbp.xtext.reportdsl.BuildInFontFamilyEnum
+	 * @generated
+	 */
+	EEnum getBuildInFontFamilyEnum();
+
+	/**
+	 * Returns the meta object for enum '{@link org.eclipse.osbp.xtext.reportdsl.BorderTypeEnum <em>Border Type Enum</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for enum '<em>Border Type Enum</em>'.
+	 * @see org.eclipse.osbp.xtext.reportdsl.BorderTypeEnum
+	 * @generated
+	 */
+	EEnum getBorderTypeEnum();
+
+	/**
+	 * Returns the meta object for enum '{@link org.eclipse.osbp.xtext.reportdsl.TextAlignEnum <em>Text Align Enum</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for enum '<em>Text Align Enum</em>'.
+	 * @see org.eclipse.osbp.xtext.reportdsl.TextAlignEnum
+	 * @generated
+	 */
+	EEnum getTextAlignEnum();
+
+	/**
+	 * Returns the meta object for enum '{@link org.eclipse.osbp.xtext.reportdsl.NumberFormatCategoryEnum <em>Number Format Category Enum</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for enum '<em>Number Format Category Enum</em>'.
+	 * @see org.eclipse.osbp.xtext.reportdsl.NumberFormatCategoryEnum
+	 * @generated
+	 */
+	EEnum getNumberFormatCategoryEnum();
+
+	/**
+	 * Returns the meta object for enum '{@link org.eclipse.osbp.xtext.reportdsl.CurrencyFormatCategoryEnum <em>Currency Format Category Enum</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for enum '<em>Currency Format Category Enum</em>'.
+	 * @see org.eclipse.osbp.xtext.reportdsl.CurrencyFormatCategoryEnum
+	 * @generated
+	 */
+	EEnum getCurrencyFormatCategoryEnum();
+
+	/**
+	 * Returns the meta object for enum '{@link org.eclipse.osbp.xtext.reportdsl.DateFormatCategoryEnum <em>Date Format Category Enum</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for enum '<em>Date Format Category Enum</em>'.
+	 * @see org.eclipse.osbp.xtext.reportdsl.DateFormatCategoryEnum
+	 * @generated
+	 */
+	EEnum getDateFormatCategoryEnum();
+
+	/**
+	 * Returns the meta object for enum '{@link org.eclipse.osbp.xtext.reportdsl.DateTimeFormatCategoryEnum <em>Date Time Format Category Enum</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for enum '<em>Date Time Format Category Enum</em>'.
+	 * @see org.eclipse.osbp.xtext.reportdsl.DateTimeFormatCategoryEnum
+	 * @generated
+	 */
+	EEnum getDateTimeFormatCategoryEnum();
+
+	/**
+	 * Returns the meta object for enum '{@link org.eclipse.osbp.xtext.reportdsl.TimeFormatCategoryEnum <em>Time Format Category Enum</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for enum '<em>Time Format Category Enum</em>'.
+	 * @see org.eclipse.osbp.xtext.reportdsl.TimeFormatCategoryEnum
+	 * @generated
+	 */
+	EEnum getTimeFormatCategoryEnum();
+
+	/**
+	 * Returns the meta object for enum '{@link org.eclipse.osbp.xtext.reportdsl.AutoTextEnum <em>Auto Text Enum</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for enum '<em>Auto Text Enum</em>'.
+	 * @see org.eclipse.osbp.xtext.reportdsl.AutoTextEnum
+	 * @generated
+	 */
+	EEnum getAutoTextEnum();
+
+	/**
+	 * Returns the meta object for enum '{@link org.eclipse.osbp.xtext.reportdsl.ImageSizeEnum <em>Image Size Enum</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for enum '<em>Image Size Enum</em>'.
+	 * @see org.eclipse.osbp.xtext.reportdsl.ImageSizeEnum
+	 * @generated
+	 */
+	EEnum getImageSizeEnum();
+
+	/**
+	 * Returns the meta object for enum '{@link org.eclipse.osbp.xtext.reportdsl.ImageSourceEnum <em>Image Source Enum</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for enum '<em>Image Source Enum</em>'.
+	 * @see org.eclipse.osbp.xtext.reportdsl.ImageSourceEnum
+	 * @generated
+	 */
+	EEnum getImageSourceEnum();
+
+	/**
+	 * Returns the meta object for enum '{@link org.eclipse.osbp.xtext.reportdsl.PureAggregationTypeEnum <em>Pure Aggregation Type Enum</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for enum '<em>Pure Aggregation Type Enum</em>'.
+	 * @see org.eclipse.osbp.xtext.reportdsl.PureAggregationTypeEnum
+	 * @generated
+	 */
+	EEnum getPureAggregationTypeEnum();
+
+	/**
+	 * Returns the meta object for enum '{@link org.eclipse.osbp.xtext.reportdsl.UnaryAggregationTypeEnum <em>Unary Aggregation Type Enum</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for enum '<em>Unary Aggregation Type Enum</em>'.
+	 * @see org.eclipse.osbp.xtext.reportdsl.UnaryAggregationTypeEnum
+	 * @generated
+	 */
+	EEnum getUnaryAggregationTypeEnum();
+
+	/**
+	 * Returns the meta object for enum '{@link org.eclipse.osbp.xtext.reportdsl.BinaryAggregationTypeEnum <em>Binary Aggregation Type Enum</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for enum '<em>Binary Aggregation Type Enum</em>'.
+	 * @see org.eclipse.osbp.xtext.reportdsl.BinaryAggregationTypeEnum
+	 * @generated
+	 */
+	EEnum getBinaryAggregationTypeEnum();
+
+	/**
+	 * Returns the meta object for enum '{@link org.eclipse.osbp.xtext.reportdsl.MultipleAggregationTypeEnum <em>Multiple Aggregation Type Enum</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for enum '<em>Multiple Aggregation Type Enum</em>'.
+	 * @see org.eclipse.osbp.xtext.reportdsl.MultipleAggregationTypeEnum
+	 * @generated
+	 */
+	EEnum getMultipleAggregationTypeEnum();
+
+	/**
+	 * Returns the meta object for enum '{@link org.eclipse.osbp.xtext.reportdsl.TrendIconEnum <em>Trend Icon Enum</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for enum '<em>Trend Icon Enum</em>'.
+	 * @see org.eclipse.osbp.xtext.reportdsl.TrendIconEnum
+	 * @generated
+	 */
+	EEnum getTrendIconEnum();
+
+	/**
+	 * Returns the meta object for enum '{@link org.eclipse.osbp.xtext.reportdsl.RenderingEnum <em>Rendering Enum</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for enum '<em>Rendering Enum</em>'.
+	 * @see org.eclipse.osbp.xtext.reportdsl.RenderingEnum
+	 * @generated
+	 */
+	EEnum getRenderingEnum();
+
+	/**
+	 * Returns the meta object for data type '{@link org.eclipse.emf.ecore.InternalEObject <em>Internal EObject</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for data type '<em>Internal EObject</em>'.
+	 * @see org.eclipse.emf.ecore.InternalEObject
+	 * @model instanceClass="org.eclipse.emf.ecore.InternalEObject"
+	 * @generated
+	 */
+	EDataType getInternalEObject();
+
+	/**
+	 * Returns the factory that creates the instances of the model.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the factory that creates the instances of the model.
+	 * @generated
+	 */
+	ReportDSLFactory getReportDSLFactory();
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * Defines literals for the meta objects that represent
+	 * <ul>
+	 *   <li>each class,</li>
+	 *   <li>each feature of each class,</li>
+	 *   <li>each operation of each class,</li>
+	 *   <li>each enum,</li>
+	 *   <li>and each data type</li>
+	 * </ul>
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	interface Literals {
+		/**
+		 * The meta object literal for the '{@link org.eclipse.osbp.xtext.reportdsl.impl.ReportModelImpl <em>Report Model</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.osbp.xtext.reportdsl.impl.ReportModelImpl
+		 * @see org.eclipse.osbp.xtext.reportdsl.impl.ReportDSLPackageImpl#getReportModel()
+		 * @generated
+		 */
+		EClass REPORT_MODEL = eINSTANCE.getReportModel();
+
+		/**
+		 * The meta object literal for the '<em><b>Pckg</b></em>' containment reference list feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference REPORT_MODEL__PCKG = eINSTANCE.getReportModel_Pckg();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.osbp.xtext.reportdsl.impl.ReportLazyResolverImpl <em>Report Lazy Resolver</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.osbp.xtext.reportdsl.impl.ReportLazyResolverImpl
+		 * @see org.eclipse.osbp.xtext.reportdsl.impl.ReportDSLPackageImpl#getReportLazyResolver()
+		 * @generated
+		 */
+		EClass REPORT_LAZY_RESOLVER = eINSTANCE.getReportLazyResolver();
+
+		/**
+		 * The meta object literal for the '<em><b>EResolve Proxy</b></em>' operation.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EOperation REPORT_LAZY_RESOLVER___ERESOLVE_PROXY__INTERNALEOBJECT = eINSTANCE.getReportLazyResolver__EResolveProxy__InternalEObject();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.osbp.xtext.reportdsl.impl.ReportBaseImpl <em>Report Base</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.osbp.xtext.reportdsl.impl.ReportBaseImpl
+		 * @see org.eclipse.osbp.xtext.reportdsl.impl.ReportDSLPackageImpl#getReportBase()
+		 * @generated
+		 */
+		EClass REPORT_BASE = eINSTANCE.getReportBase();
+
+		/**
+		 * The meta object literal for the '<em><b>Name</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute REPORT_BASE__NAME = eINSTANCE.getReportBase_Name();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.osbp.xtext.reportdsl.impl.ReportPackageImpl <em>Report Package</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.osbp.xtext.reportdsl.impl.ReportPackageImpl
+		 * @see org.eclipse.osbp.xtext.reportdsl.impl.ReportDSLPackageImpl#getReportPackage()
+		 * @generated
+		 */
+		EClass REPORT_PACKAGE = eINSTANCE.getReportPackage();
+
+		/**
+		 * The meta object literal for the '<em><b>Import Section</b></em>' containment reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference REPORT_PACKAGE__IMPORT_SECTION = eINSTANCE.getReportPackage_ImportSection();
+
+		/**
+		 * The meta object literal for the '<em><b>External Css URI</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute REPORT_PACKAGE__EXTERNAL_CSS_URI = eINSTANCE.getReportPackage_ExternalCssURI();
+
+		/**
+		 * The meta object literal for the '<em><b>External Css URI Bundle</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute REPORT_PACKAGE__EXTERNAL_CSS_URI_BUNDLE = eINSTANCE.getReportPackage_ExternalCssURIBundle();
+
+		/**
+		 * The meta object literal for the '<em><b>Pagetemplates</b></em>' containment reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference REPORT_PACKAGE__PAGETEMPLATES = eINSTANCE.getReportPackage_Pagetemplates();
+
+		/**
+		 * The meta object literal for the '<em><b>Formatters</b></em>' containment reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference REPORT_PACKAGE__FORMATTERS = eINSTANCE.getReportPackage_Formatters();
+
+		/**
+		 * The meta object literal for the '<em><b>Colors</b></em>' containment reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference REPORT_PACKAGE__COLORS = eINSTANCE.getReportPackage_Colors();
+
+		/**
+		 * The meta object literal for the '<em><b>Fonts</b></em>' containment reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference REPORT_PACKAGE__FONTS = eINSTANCE.getReportPackage_Fonts();
+
+		/**
+		 * The meta object literal for the '<em><b>Medias</b></em>' containment reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference REPORT_PACKAGE__MEDIAS = eINSTANCE.getReportPackage_Medias();
+
+		/**
+		 * The meta object literal for the '<em><b>Styles</b></em>' containment reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference REPORT_PACKAGE__STYLES = eINSTANCE.getReportPackage_Styles();
+
+		/**
+		 * The meta object literal for the '<em><b>Reports</b></em>' containment reference list feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference REPORT_PACKAGE__REPORTS = eINSTANCE.getReportPackage_Reports();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.osbp.xtext.reportdsl.impl.PageTemplatesImpl <em>Page Templates</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.osbp.xtext.reportdsl.impl.PageTemplatesImpl
+		 * @see org.eclipse.osbp.xtext.reportdsl.impl.ReportDSLPackageImpl#getPageTemplates()
+		 * @generated
+		 */
+		EClass PAGE_TEMPLATES = eINSTANCE.getPageTemplates();
+
+		/**
+		 * The meta object literal for the '<em><b>Pagetemplates</b></em>' containment reference list feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference PAGE_TEMPLATES__PAGETEMPLATES = eINSTANCE.getPageTemplates_Pagetemplates();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.osbp.xtext.reportdsl.impl.SomeFormatsImpl <em>Some Formats</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.osbp.xtext.reportdsl.impl.SomeFormatsImpl
+		 * @see org.eclipse.osbp.xtext.reportdsl.impl.ReportDSLPackageImpl#getSomeFormats()
+		 * @generated
+		 */
+		EClass SOME_FORMATS = eINSTANCE.getSomeFormats();
+
+		/**
+		 * The meta object literal for the '<em><b>Formatters</b></em>' containment reference list feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference SOME_FORMATS__FORMATTERS = eINSTANCE.getSomeFormats_Formatters();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.osbp.xtext.reportdsl.impl.ColorsImpl <em>Colors</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.osbp.xtext.reportdsl.impl.ColorsImpl
+		 * @see org.eclipse.osbp.xtext.reportdsl.impl.ReportDSLPackageImpl#getColors()
+		 * @generated
+		 */
+		EClass COLORS = eINSTANCE.getColors();
+
+		/**
+		 * The meta object literal for the '<em><b>Colors</b></em>' containment reference list feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference COLORS__COLORS = eINSTANCE.getColors_Colors();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.osbp.xtext.reportdsl.impl.FontsImpl <em>Fonts</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.osbp.xtext.reportdsl.impl.FontsImpl
+		 * @see org.eclipse.osbp.xtext.reportdsl.impl.ReportDSLPackageImpl#getFonts()
+		 * @generated
+		 */
+		EClass FONTS = eINSTANCE.getFonts();
+
+		/**
+		 * The meta object literal for the '<em><b>Fonts</b></em>' containment reference list feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference FONTS__FONTS = eINSTANCE.getFonts_Fonts();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.osbp.xtext.reportdsl.impl.MediasImpl <em>Medias</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.osbp.xtext.reportdsl.impl.MediasImpl
+		 * @see org.eclipse.osbp.xtext.reportdsl.impl.ReportDSLPackageImpl#getMedias()
+		 * @generated
+		 */
+		EClass MEDIAS = eINSTANCE.getMedias();
+
+		/**
+		 * The meta object literal for the '<em><b>Medias</b></em>' containment reference list feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference MEDIAS__MEDIAS = eINSTANCE.getMedias_Medias();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.osbp.xtext.reportdsl.impl.StylesImpl <em>Styles</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.osbp.xtext.reportdsl.impl.StylesImpl
+		 * @see org.eclipse.osbp.xtext.reportdsl.impl.ReportDSLPackageImpl#getStyles()
+		 * @generated
+		 */
+		EClass STYLES = eINSTANCE.getStyles();
+
+		/**
+		 * The meta object literal for the '<em><b>Styles</b></em>' containment reference list feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference STYLES__STYLES = eINSTANCE.getStyles_Styles();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.osbp.xtext.reportdsl.impl.PageTemplateImpl <em>Page Template</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.osbp.xtext.reportdsl.impl.PageTemplateImpl
+		 * @see org.eclipse.osbp.xtext.reportdsl.impl.ReportDSLPackageImpl#getPageTemplate()
+		 * @generated
+		 */
+		EClass PAGE_TEMPLATE = eINSTANCE.getPageTemplate();
+
+		/**
+		 * The meta object literal for the '<em><b>Size</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute PAGE_TEMPLATE__SIZE = eINSTANCE.getPageTemplate_Size();
+
+		/**
+		 * The meta object literal for the '<em><b>Orientation</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute PAGE_TEMPLATE__ORIENTATION = eINSTANCE.getPageTemplate_Orientation();
+
+		/**
+		 * The meta object literal for the '<em><b>Top Margin Value</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute PAGE_TEMPLATE__TOP_MARGIN_VALUE = eINSTANCE.getPageTemplate_TopMarginValue();
+
+		/**
+		 * The meta object literal for the '<em><b>Top Margin Unit</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute PAGE_TEMPLATE__TOP_MARGIN_UNIT = eINSTANCE.getPageTemplate_TopMarginUnit();
+
+		/**
+		 * The meta object literal for the '<em><b>Left Margin Value</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute PAGE_TEMPLATE__LEFT_MARGIN_VALUE = eINSTANCE.getPageTemplate_LeftMarginValue();
+
+		/**
+		 * The meta object literal for the '<em><b>Left Margin Unit</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute PAGE_TEMPLATE__LEFT_MARGIN_UNIT = eINSTANCE.getPageTemplate_LeftMarginUnit();
+
+		/**
+		 * The meta object literal for the '<em><b>Bottom Margin Value</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute PAGE_TEMPLATE__BOTTOM_MARGIN_VALUE = eINSTANCE.getPageTemplate_BottomMarginValue();
+
+		/**
+		 * The meta object literal for the '<em><b>Bottom Margin Unit</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute PAGE_TEMPLATE__BOTTOM_MARGIN_UNIT = eINSTANCE.getPageTemplate_BottomMarginUnit();
+
+		/**
+		 * The meta object literal for the '<em><b>Right Margin Value</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute PAGE_TEMPLATE__RIGHT_MARGIN_VALUE = eINSTANCE.getPageTemplate_RightMarginValue();
+
+		/**
+		 * The meta object literal for the '<em><b>Right Margin Unit</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute PAGE_TEMPLATE__RIGHT_MARGIN_UNIT = eINSTANCE.getPageTemplate_RightMarginUnit();
+
+		/**
+		 * The meta object literal for the '<em><b>Header</b></em>' containment reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference PAGE_TEMPLATE__HEADER = eINSTANCE.getPageTemplate_Header();
+
+		/**
+		 * The meta object literal for the '<em><b>Footer</b></em>' containment reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference PAGE_TEMPLATE__FOOTER = eINSTANCE.getPageTemplate_Footer();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.osbp.xtext.reportdsl.impl.ColorImpl <em>Color</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.osbp.xtext.reportdsl.impl.ColorImpl
+		 * @see org.eclipse.osbp.xtext.reportdsl.impl.ReportDSLPackageImpl#getColor()
+		 * @generated
+		 */
+		EClass COLOR = eINSTANCE.getColor();
+
+		/**
+		 * The meta object literal for the '<em><b>Color</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute COLOR__COLOR = eINSTANCE.getColor_Color();
+
+		/**
+		 * The meta object literal for the '<em><b>Basecolor</b></em>' reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference COLOR__BASECOLOR = eINSTANCE.getColor_Basecolor();
+
+		/**
+		 * The meta object literal for the '<em><b>Darkensby</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute COLOR__DARKENSBY = eINSTANCE.getColor_Darkensby();
+
+		/**
+		 * The meta object literal for the '<em><b>Lightensby</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute COLOR__LIGHTENSBY = eINSTANCE.getColor_Lightensby();
+
+		/**
+		 * The meta object literal for the '<em><b>Transformsby</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute COLOR__TRANSFORMSBY = eINSTANCE.getColor_Transformsby();
+
+		/**
+		 * The meta object literal for the '<em><b>Targetcolor</b></em>' reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference COLOR__TARGETCOLOR = eINSTANCE.getColor_Targetcolor();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.osbp.xtext.reportdsl.impl.FontImpl <em>Font</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.osbp.xtext.reportdsl.impl.FontImpl
+		 * @see org.eclipse.osbp.xtext.reportdsl.impl.ReportDSLPackageImpl#getFont()
+		 * @generated
+		 */
+		EClass FONT = eINSTANCE.getFont();
+
+		/**
+		 * The meta object literal for the '<em><b>Extends</b></em>' reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference FONT__EXTENDS = eINSTANCE.getFont_Extends();
+
+		/**
+		 * The meta object literal for the '<em><b>Family</b></em>' containment reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference FONT__FAMILY = eINSTANCE.getFont_Family();
+
+		/**
+		 * The meta object literal for the '<em><b>Style</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute FONT__STYLE = eINSTANCE.getFont_Style();
+
+		/**
+		 * The meta object literal for the '<em><b>Bold</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute FONT__BOLD = eINSTANCE.getFont_Bold();
+
+		/**
+		 * The meta object literal for the '<em><b>Sizevalue</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute FONT__SIZEVALUE = eINSTANCE.getFont_Sizevalue();
+
+		/**
+		 * The meta object literal for the '<em><b>Sizeunit</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute FONT__SIZEUNIT = eINSTANCE.getFont_Sizeunit();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.osbp.xtext.reportdsl.FontFamily <em>Font Family</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.osbp.xtext.reportdsl.FontFamily
+		 * @see org.eclipse.osbp.xtext.reportdsl.impl.ReportDSLPackageImpl#getFontFamily()
+		 * @generated
+		 */
+		EClass FONT_FAMILY = eINSTANCE.getFontFamily();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.osbp.xtext.reportdsl.impl.BuildInFontFamilyImpl <em>Build In Font Family</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.osbp.xtext.reportdsl.impl.BuildInFontFamilyImpl
+		 * @see org.eclipse.osbp.xtext.reportdsl.impl.ReportDSLPackageImpl#getBuildInFontFamily()
+		 * @generated
+		 */
+		EClass BUILD_IN_FONT_FAMILY = eINSTANCE.getBuildInFontFamily();
+
+		/**
+		 * The meta object literal for the '<em><b>Custom</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute BUILD_IN_FONT_FAMILY__CUSTOM = eINSTANCE.getBuildInFontFamily_Custom();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.osbp.xtext.reportdsl.impl.CustomFontFamilyImpl <em>Custom Font Family</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.osbp.xtext.reportdsl.impl.CustomFontFamilyImpl
+		 * @see org.eclipse.osbp.xtext.reportdsl.impl.ReportDSLPackageImpl#getCustomFontFamily()
+		 * @generated
+		 */
+		EClass CUSTOM_FONT_FAMILY = eINSTANCE.getCustomFontFamily();
+
+		/**
+		 * The meta object literal for the '<em><b>Custom</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute CUSTOM_FONT_FAMILY__CUSTOM = eINSTANCE.getCustomFontFamily_Custom();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.osbp.xtext.reportdsl.impl.MediaImpl <em>Media</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.osbp.xtext.reportdsl.impl.MediaImpl
+		 * @see org.eclipse.osbp.xtext.reportdsl.impl.ReportDSLPackageImpl#getMedia()
+		 * @generated
+		 */
+		EClass MEDIA = eINSTANCE.getMedia();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.osbp.xtext.reportdsl.impl.BorderStyleImpl <em>Border Style</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.osbp.xtext.reportdsl.impl.BorderStyleImpl
+		 * @see org.eclipse.osbp.xtext.reportdsl.impl.ReportDSLPackageImpl#getBorderStyle()
+		 * @generated
+		 */
+		EClass BORDER_STYLE = eINSTANCE.getBorderStyle();
+
+		/**
+		 * The meta object literal for the '<em><b>Type</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute BORDER_STYLE__TYPE = eINSTANCE.getBorderStyle_Type();
+
+		/**
+		 * The meta object literal for the '<em><b>Widthvalue</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute BORDER_STYLE__WIDTHVALUE = eINSTANCE.getBorderStyle_Widthvalue();
+
+		/**
+		 * The meta object literal for the '<em><b>Widthunit</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute BORDER_STYLE__WIDTHUNIT = eINSTANCE.getBorderStyle_Widthunit();
+
+		/**
+		 * The meta object literal for the '<em><b>Color</b></em>' reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference BORDER_STYLE__COLOR = eINSTANCE.getBorderStyle_Color();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.osbp.xtext.reportdsl.impl.BaseStyleImpl <em>Base Style</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.osbp.xtext.reportdsl.impl.BaseStyleImpl
+		 * @see org.eclipse.osbp.xtext.reportdsl.impl.ReportDSLPackageImpl#getBaseStyle()
+		 * @generated
+		 */
+		EClass BASE_STYLE = eINSTANCE.getBaseStyle();
+
+		/**
+		 * The meta object literal for the '<em><b>Format</b></em>' reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference BASE_STYLE__FORMAT = eINSTANCE.getBaseStyle_Format();
+
+		/**
+		 * The meta object literal for the '<em><b>Font</b></em>' reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference BASE_STYLE__FONT = eINSTANCE.getBaseStyle_Font();
+
+		/**
+		 * The meta object literal for the '<em><b>Backgroundcolor</b></em>' reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference BASE_STYLE__BACKGROUNDCOLOR = eINSTANCE.getBaseStyle_Backgroundcolor();
+
+		/**
+		 * The meta object literal for the '<em><b>Backgroundcolor alternate</b></em>' reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference BASE_STYLE__BACKGROUNDCOLOR_ALTERNATE = eINSTANCE.getBaseStyle_Backgroundcolor_alternate();
+
+		/**
+		 * The meta object literal for the '<em><b>Textcolor</b></em>' reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference BASE_STYLE__TEXTCOLOR = eINSTANCE.getBaseStyle_Textcolor();
+
+		/**
+		 * The meta object literal for the '<em><b>Textalign</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute BASE_STYLE__TEXTALIGN = eINSTANCE.getBaseStyle_Textalign();
+
+		/**
+		 * The meta object literal for the '<em><b>Border Top</b></em>' containment reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference BASE_STYLE__BORDER_TOP = eINSTANCE.getBaseStyle_BorderTop();
+
+		/**
+		 * The meta object literal for the '<em><b>Border Bottom</b></em>' containment reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference BASE_STYLE__BORDER_BOTTOM = eINSTANCE.getBaseStyle_BorderBottom();
+
+		/**
+		 * The meta object literal for the '<em><b>Border Left</b></em>' containment reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference BASE_STYLE__BORDER_LEFT = eINSTANCE.getBaseStyle_BorderLeft();
+
+		/**
+		 * The meta object literal for the '<em><b>Border Right</b></em>' containment reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference BASE_STYLE__BORDER_RIGHT = eINSTANCE.getBaseStyle_BorderRight();
+
+		/**
+		 * The meta object literal for the '<em><b>Padding Top Value</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute BASE_STYLE__PADDING_TOP_VALUE = eINSTANCE.getBaseStyle_PaddingTopValue();
+
+		/**
+		 * The meta object literal for the '<em><b>Padding Top Unit</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute BASE_STYLE__PADDING_TOP_UNIT = eINSTANCE.getBaseStyle_PaddingTopUnit();
+
+		/**
+		 * The meta object literal for the '<em><b>Padding Bottom Value</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute BASE_STYLE__PADDING_BOTTOM_VALUE = eINSTANCE.getBaseStyle_PaddingBottomValue();
+
+		/**
+		 * The meta object literal for the '<em><b>Padding Bottom Unit</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute BASE_STYLE__PADDING_BOTTOM_UNIT = eINSTANCE.getBaseStyle_PaddingBottomUnit();
+
+		/**
+		 * The meta object literal for the '<em><b>Padding Left Value</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute BASE_STYLE__PADDING_LEFT_VALUE = eINSTANCE.getBaseStyle_PaddingLeftValue();
+
+		/**
+		 * The meta object literal for the '<em><b>Padding Left Unit</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute BASE_STYLE__PADDING_LEFT_UNIT = eINSTANCE.getBaseStyle_PaddingLeftUnit();
+
+		/**
+		 * The meta object literal for the '<em><b>Padding Right Value</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute BASE_STYLE__PADDING_RIGHT_VALUE = eINSTANCE.getBaseStyle_PaddingRightValue();
+
+		/**
+		 * The meta object literal for the '<em><b>Padding Right Unit</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute BASE_STYLE__PADDING_RIGHT_UNIT = eINSTANCE.getBaseStyle_PaddingRightUnit();
+
+		/**
+		 * The meta object literal for the '<em><b>Margin Top Value</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute BASE_STYLE__MARGIN_TOP_VALUE = eINSTANCE.getBaseStyle_MarginTopValue();
+
+		/**
+		 * The meta object literal for the '<em><b>Margin Top Unit</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute BASE_STYLE__MARGIN_TOP_UNIT = eINSTANCE.getBaseStyle_MarginTopUnit();
+
+		/**
+		 * The meta object literal for the '<em><b>Margin Left Value</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute BASE_STYLE__MARGIN_LEFT_VALUE = eINSTANCE.getBaseStyle_MarginLeftValue();
+
+		/**
+		 * The meta object literal for the '<em><b>Margin Left Unit</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute BASE_STYLE__MARGIN_LEFT_UNIT = eINSTANCE.getBaseStyle_MarginLeftUnit();
+
+		/**
+		 * The meta object literal for the '<em><b>Margin Bottom Value</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute BASE_STYLE__MARGIN_BOTTOM_VALUE = eINSTANCE.getBaseStyle_MarginBottomValue();
+
+		/**
+		 * The meta object literal for the '<em><b>Margin Bottom Unit</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute BASE_STYLE__MARGIN_BOTTOM_UNIT = eINSTANCE.getBaseStyle_MarginBottomUnit();
+
+		/**
+		 * The meta object literal for the '<em><b>Margin Right Value</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute BASE_STYLE__MARGIN_RIGHT_VALUE = eINSTANCE.getBaseStyle_MarginRightValue();
+
+		/**
+		 * The meta object literal for the '<em><b>Margin Right Unit</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute BASE_STYLE__MARGIN_RIGHT_UNIT = eINSTANCE.getBaseStyle_MarginRightUnit();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.osbp.xtext.reportdsl.impl.MediaStyleImpl <em>Media Style</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.osbp.xtext.reportdsl.impl.MediaStyleImpl
+		 * @see org.eclipse.osbp.xtext.reportdsl.impl.ReportDSLPackageImpl#getMediaStyle()
+		 * @generated
+		 */
+		EClass MEDIA_STYLE = eINSTANCE.getMediaStyle();
+
+		/**
+		 * The meta object literal for the '<em><b>Media</b></em>' reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference MEDIA_STYLE__MEDIA = eINSTANCE.getMediaStyle_Media();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.osbp.xtext.reportdsl.impl.StyleImpl <em>Style</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.osbp.xtext.reportdsl.impl.StyleImpl
+		 * @see org.eclipse.osbp.xtext.reportdsl.impl.ReportDSLPackageImpl#getStyle()
+		 * @generated
+		 */
+		EClass STYLE = eINSTANCE.getStyle();
+
+		/**
+		 * The meta object literal for the '<em><b>Extends</b></em>' reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference STYLE__EXTENDS = eINSTANCE.getStyle_Extends();
+
+		/**
+		 * The meta object literal for the '<em><b>Mediastyles</b></em>' containment reference list feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference STYLE__MEDIASTYLES = eINSTANCE.getStyle_Mediastyles();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.osbp.xtext.reportdsl.impl.SomeFormatImpl <em>Some Format</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.osbp.xtext.reportdsl.impl.SomeFormatImpl
+		 * @see org.eclipse.osbp.xtext.reportdsl.impl.ReportDSLPackageImpl#getSomeFormat()
+		 * @generated
+		 */
+		EClass SOME_FORMAT = eINSTANCE.getSomeFormat();
+
+		/**
+		 * The meta object literal for the '<em><b>Ui pattern</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute SOME_FORMAT__UI_PATTERN = eINSTANCE.getSomeFormat_Ui_pattern();
+
+		/**
+		 * The meta object literal for the '<em><b>Report pattern</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute SOME_FORMAT__REPORT_PATTERN = eINSTANCE.getSomeFormat_Report_pattern();
+
+		/**
+		 * The meta object literal for the '<em><b>Textalign</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute SOME_FORMAT__TEXTALIGN = eINSTANCE.getSomeFormat_Textalign();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.osbp.xtext.reportdsl.impl.UomoFormatImpl <em>Uomo Format</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.osbp.xtext.reportdsl.impl.UomoFormatImpl
+		 * @see org.eclipse.osbp.xtext.reportdsl.impl.ReportDSLPackageImpl#getUomoFormat()
+		 * @generated
+		 */
+		EClass UOMO_FORMAT = eINSTANCE.getUomoFormat();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.osbp.xtext.reportdsl.impl.NumberFormatImpl <em>Number Format</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.osbp.xtext.reportdsl.impl.NumberFormatImpl
+		 * @see org.eclipse.osbp.xtext.reportdsl.impl.ReportDSLPackageImpl#getNumberFormat()
+		 * @generated
+		 */
+		EClass NUMBER_FORMAT = eINSTANCE.getNumberFormat();
+
+		/**
+		 * The meta object literal for the '<em><b>Report category</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute NUMBER_FORMAT__REPORT_CATEGORY = eINSTANCE.getNumberFormat_Report_category();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.osbp.xtext.reportdsl.impl.CurrencyFormatImpl <em>Currency Format</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.osbp.xtext.reportdsl.impl.CurrencyFormatImpl
+		 * @see org.eclipse.osbp.xtext.reportdsl.impl.ReportDSLPackageImpl#getCurrencyFormat()
+		 * @generated
+		 */
+		EClass CURRENCY_FORMAT = eINSTANCE.getCurrencyFormat();
+
+		/**
+		 * The meta object literal for the '<em><b>Report category</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute CURRENCY_FORMAT__REPORT_CATEGORY = eINSTANCE.getCurrencyFormat_Report_category();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.osbp.xtext.reportdsl.impl.DateFormatImpl <em>Date Format</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.osbp.xtext.reportdsl.impl.DateFormatImpl
+		 * @see org.eclipse.osbp.xtext.reportdsl.impl.ReportDSLPackageImpl#getDateFormat()
+		 * @generated
+		 */
+		EClass DATE_FORMAT = eINSTANCE.getDateFormat();
+
+		/**
+		 * The meta object literal for the '<em><b>Report category</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute DATE_FORMAT__REPORT_CATEGORY = eINSTANCE.getDateFormat_Report_category();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.osbp.xtext.reportdsl.impl.DateTimeFormatImpl <em>Date Time Format</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.osbp.xtext.reportdsl.impl.DateTimeFormatImpl
+		 * @see org.eclipse.osbp.xtext.reportdsl.impl.ReportDSLPackageImpl#getDateTimeFormat()
+		 * @generated
+		 */
+		EClass DATE_TIME_FORMAT = eINSTANCE.getDateTimeFormat();
+
+		/**
+		 * The meta object literal for the '<em><b>Report category</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute DATE_TIME_FORMAT__REPORT_CATEGORY = eINSTANCE.getDateTimeFormat_Report_category();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.osbp.xtext.reportdsl.impl.TimeFormatImpl <em>Time Format</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.osbp.xtext.reportdsl.impl.TimeFormatImpl
+		 * @see org.eclipse.osbp.xtext.reportdsl.impl.ReportDSLPackageImpl#getTimeFormat()
+		 * @generated
+		 */
+		EClass TIME_FORMAT = eINSTANCE.getTimeFormat();
+
+		/**
+		 * The meta object literal for the '<em><b>Report category</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute TIME_FORMAT__REPORT_CATEGORY = eINSTANCE.getTimeFormat_Report_category();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.osbp.xtext.reportdsl.impl.ReportImpl <em>Report</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.osbp.xtext.reportdsl.impl.ReportImpl
+		 * @see org.eclipse.osbp.xtext.reportdsl.impl.ReportDSLPackageImpl#getReport()
+		 * @generated
+		 */
+		EClass REPORT = eINSTANCE.getReport();
+
+		/**
+		 * The meta object literal for the '<em><b>Description</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute REPORT__DESCRIPTION = eINSTANCE.getReport_Description();
+
+		/**
+		 * The meta object literal for the '<em><b>Description Value</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute REPORT__DESCRIPTION_VALUE = eINSTANCE.getReport_DescriptionValue();
+
+		/**
+		 * The meta object literal for the '<em><b>Datamart Ref</b></em>' reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference REPORT__DATAMART_REF = eINSTANCE.getReport_DatamartRef();
+
+		/**
+		 * The meta object literal for the '<em><b>Rendering</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute REPORT__RENDERING = eINSTANCE.getReport_Rendering();
+
+		/**
+		 * The meta object literal for the '<em><b>External Css URI</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute REPORT__EXTERNAL_CSS_URI = eINSTANCE.getReport_ExternalCssURI();
+
+		/**
+		 * The meta object literal for the '<em><b>External Css URI Bundle</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute REPORT__EXTERNAL_CSS_URI_BUNDLE = eINSTANCE.getReport_ExternalCssURIBundle();
+
+		/**
+		 * The meta object literal for the '<em><b>Page Template</b></em>' reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference REPORT__PAGE_TEMPLATE = eINSTANCE.getReport_PageTemplate();
+
+		/**
+		 * The meta object literal for the '<em><b>Media</b></em>' reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference REPORT__MEDIA = eINSTANCE.getReport_Media();
+
+		/**
+		 * The meta object literal for the '<em><b>Toolbar</b></em>' reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference REPORT__TOOLBAR = eINSTANCE.getReport_Toolbar();
+
+		/**
+		 * The meta object literal for the '<em><b>Design</b></em>' containment reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference REPORT__DESIGN = eINSTANCE.getReport_Design();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.osbp.xtext.reportdsl.ReportDesign <em>Report Design</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.osbp.xtext.reportdsl.ReportDesign
+		 * @see org.eclipse.osbp.xtext.reportdsl.impl.ReportDSLPackageImpl#getReportDesign()
+		 * @generated
+		 */
+		EClass REPORT_DESIGN = eINSTANCE.getReportDesign();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.osbp.xtext.reportdsl.impl.ReportDesignFileImpl <em>Report Design File</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.osbp.xtext.reportdsl.impl.ReportDesignFileImpl
+		 * @see org.eclipse.osbp.xtext.reportdsl.impl.ReportDSLPackageImpl#getReportDesignFile()
+		 * @generated
+		 */
+		EClass REPORT_DESIGN_FILE = eINSTANCE.getReportDesignFile();
+
+		/**
+		 * The meta object literal for the '<em><b>Name</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute REPORT_DESIGN_FILE__NAME = eINSTANCE.getReportDesignFile_Name();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.osbp.xtext.reportdsl.impl.ReportDesignTemplateImpl <em>Report Design Template</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.osbp.xtext.reportdsl.impl.ReportDesignTemplateImpl
+		 * @see org.eclipse.osbp.xtext.reportdsl.impl.ReportDSLPackageImpl#getReportDesignTemplate()
+		 * @generated
+		 */
+		EClass REPORT_DESIGN_TEMPLATE = eINSTANCE.getReportDesignTemplate();
+
+		/**
+		 * The meta object literal for the '<em><b>Description</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute REPORT_DESIGN_TEMPLATE__DESCRIPTION = eINSTANCE.getReportDesignTemplate_Description();
+
+		/**
+		 * The meta object literal for the '<em><b>Header</b></em>' containment reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference REPORT_DESIGN_TEMPLATE__HEADER = eINSTANCE.getReportDesignTemplate_Header();
+
+		/**
+		 * The meta object literal for the '<em><b>Detail</b></em>' containment reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference REPORT_DESIGN_TEMPLATE__DETAIL = eINSTANCE.getReportDesignTemplate_Detail();
+
+		/**
+		 * The meta object literal for the '<em><b>Footer</b></em>' containment reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference REPORT_DESIGN_TEMPLATE__FOOTER = eINSTANCE.getReportDesignTemplate_Footer();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.osbp.xtext.reportdsl.impl.ContainerImpl <em>Container</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.osbp.xtext.reportdsl.impl.ContainerImpl
+		 * @see org.eclipse.osbp.xtext.reportdsl.impl.ReportDSLPackageImpl#getContainer()
+		 * @generated
+		 */
+		EClass CONTAINER = eINSTANCE.getContainer();
+
+		/**
+		 * The meta object literal for the '<em><b>Elements</b></em>' containment reference list feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference CONTAINER__ELEMENTS = eINSTANCE.getContainer_Elements();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.osbp.xtext.reportdsl.impl.PageHeaderImpl <em>Page Header</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.osbp.xtext.reportdsl.impl.PageHeaderImpl
+		 * @see org.eclipse.osbp.xtext.reportdsl.impl.ReportDSLPackageImpl#getPageHeader()
+		 * @generated
+		 */
+		EClass PAGE_HEADER = eINSTANCE.getPageHeader();
+
+		/**
+		 * The meta object literal for the '<em><b>Show On First</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute PAGE_HEADER__SHOW_ON_FIRST = eINSTANCE.getPageHeader_ShowOnFirst();
+
+		/**
+		 * The meta object literal for the '<em><b>Height Value</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute PAGE_HEADER__HEIGHT_VALUE = eINSTANCE.getPageHeader_HeightValue();
+
+		/**
+		 * The meta object literal for the '<em><b>Height Unit</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute PAGE_HEADER__HEIGHT_UNIT = eINSTANCE.getPageHeader_HeightUnit();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.osbp.xtext.reportdsl.impl.PageDetailImpl <em>Page Detail</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.osbp.xtext.reportdsl.impl.PageDetailImpl
+		 * @see org.eclipse.osbp.xtext.reportdsl.impl.ReportDSLPackageImpl#getPageDetail()
+		 * @generated
+		 */
+		EClass PAGE_DETAIL = eINSTANCE.getPageDetail();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.osbp.xtext.reportdsl.impl.PageFooterImpl <em>Page Footer</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.osbp.xtext.reportdsl.impl.PageFooterImpl
+		 * @see org.eclipse.osbp.xtext.reportdsl.impl.ReportDSLPackageImpl#getPageFooter()
+		 * @generated
+		 */
+		EClass PAGE_FOOTER = eINSTANCE.getPageFooter();
+
+		/**
+		 * The meta object literal for the '<em><b>Show On Last</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute PAGE_FOOTER__SHOW_ON_LAST = eINSTANCE.getPageFooter_ShowOnLast();
+
+		/**
+		 * The meta object literal for the '<em><b>Height Value</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute PAGE_FOOTER__HEIGHT_VALUE = eINSTANCE.getPageFooter_HeightValue();
+
+		/**
+		 * The meta object literal for the '<em><b>Height Unit</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute PAGE_FOOTER__HEIGHT_UNIT = eINSTANCE.getPageFooter_HeightUnit();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.osbp.xtext.reportdsl.Element <em>Element</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.osbp.xtext.reportdsl.Element
+		 * @see org.eclipse.osbp.xtext.reportdsl.impl.ReportDSLPackageImpl#getElement()
+		 * @generated
+		 */
+		EClass ELEMENT = eINSTANCE.getElement();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.osbp.xtext.reportdsl.impl.WithStyleImpl <em>With Style</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.osbp.xtext.reportdsl.impl.WithStyleImpl
+		 * @see org.eclipse.osbp.xtext.reportdsl.impl.ReportDSLPackageImpl#getWithStyle()
+		 * @generated
+		 */
+		EClass WITH_STYLE = eINSTANCE.getWithStyle();
+
+		/**
+		 * The meta object literal for the '<em><b>Style</b></em>' reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference WITH_STYLE__STYLE = eINSTANCE.getWithStyle_Style();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.osbp.xtext.reportdsl.impl.TextElementImpl <em>Text Element</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.osbp.xtext.reportdsl.impl.TextElementImpl
+		 * @see org.eclipse.osbp.xtext.reportdsl.impl.ReportDSLPackageImpl#getTextElement()
+		 * @generated
+		 */
+		EClass TEXT_ELEMENT = eINSTANCE.getTextElement();
+
+		/**
+		 * The meta object literal for the '<em><b>Text</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute TEXT_ELEMENT__TEXT = eINSTANCE.getTextElement_Text();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.osbp.xtext.reportdsl.impl.TitleImpl <em>Title</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.osbp.xtext.reportdsl.impl.TitleImpl
+		 * @see org.eclipse.osbp.xtext.reportdsl.impl.ReportDSLPackageImpl#getTitle()
+		 * @generated
+		 */
+		EClass TITLE = eINSTANCE.getTitle();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.osbp.xtext.reportdsl.impl.SubTitleImpl <em>Sub Title</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.osbp.xtext.reportdsl.impl.SubTitleImpl
+		 * @see org.eclipse.osbp.xtext.reportdsl.impl.ReportDSLPackageImpl#getSubTitle()
+		 * @generated
+		 */
+		EClass SUB_TITLE = eINSTANCE.getSubTitle();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.osbp.xtext.reportdsl.impl.SubSubTitleImpl <em>Sub Sub Title</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.osbp.xtext.reportdsl.impl.SubSubTitleImpl
+		 * @see org.eclipse.osbp.xtext.reportdsl.impl.ReportDSLPackageImpl#getSubSubTitle()
+		 * @generated
+		 */
+		EClass SUB_SUB_TITLE = eINSTANCE.getSubSubTitle();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.osbp.xtext.reportdsl.impl.LabelImpl <em>Label</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.osbp.xtext.reportdsl.impl.LabelImpl
+		 * @see org.eclipse.osbp.xtext.reportdsl.impl.ReportDSLPackageImpl#getLabel()
+		 * @generated
+		 */
+		EClass LABEL = eINSTANCE.getLabel();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.osbp.xtext.reportdsl.impl.TextImpl <em>Text</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.osbp.xtext.reportdsl.impl.TextImpl
+		 * @see org.eclipse.osbp.xtext.reportdsl.impl.ReportDSLPackageImpl#getText()
+		 * @generated
+		 */
+		EClass TEXT = eINSTANCE.getText();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.osbp.xtext.reportdsl.impl.AutoTextImpl <em>Auto Text</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.osbp.xtext.reportdsl.impl.AutoTextImpl
+		 * @see org.eclipse.osbp.xtext.reportdsl.impl.ReportDSLPackageImpl#getAutoText()
+		 * @generated
+		 */
+		EClass AUTO_TEXT = eINSTANCE.getAutoText();
+
+		/**
+		 * The meta object literal for the '<em><b>Type</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute AUTO_TEXT__TYPE = eINSTANCE.getAutoText_Type();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.osbp.xtext.reportdsl.impl.ImageImpl <em>Image</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.osbp.xtext.reportdsl.impl.ImageImpl
+		 * @see org.eclipse.osbp.xtext.reportdsl.impl.ReportDSLPackageImpl#getImage()
+		 * @generated
+		 */
+		EClass IMAGE = eINSTANCE.getImage();
+
+		/**
+		 * The meta object literal for the '<em><b>Size</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute IMAGE__SIZE = eINSTANCE.getImage_Size();
+
+		/**
+		 * The meta object literal for the '<em><b>Scale</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute IMAGE__SCALE = eINSTANCE.getImage_Scale();
+
+		/**
+		 * The meta object literal for the '<em><b>Source Type</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute IMAGE__SOURCE_TYPE = eINSTANCE.getImage_SourceType();
+
+		/**
+		 * The meta object literal for the '<em><b>Filename</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute IMAGE__FILENAME = eINSTANCE.getImage_Filename();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.osbp.xtext.reportdsl.impl.WithHeaderFooterImpl <em>With Header Footer</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.osbp.xtext.reportdsl.impl.WithHeaderFooterImpl
+		 * @see org.eclipse.osbp.xtext.reportdsl.impl.ReportDSLPackageImpl#getWithHeaderFooter()
+		 * @generated
+		 */
+		EClass WITH_HEADER_FOOTER = eINSTANCE.getWithHeaderFooter();
+
+		/**
+		 * The meta object literal for the '<em><b>Detailheader</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute WITH_HEADER_FOOTER__DETAILHEADER = eINSTANCE.getWithHeaderFooter_Detailheader();
+
+		/**
+		 * The meta object literal for the '<em><b>Headerstyle</b></em>' reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference WITH_HEADER_FOOTER__HEADERSTYLE = eINSTANCE.getWithHeaderFooter_Headerstyle();
+
+		/**
+		 * The meta object literal for the '<em><b>Detailfooter</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute WITH_HEADER_FOOTER__DETAILFOOTER = eINSTANCE.getWithHeaderFooter_Detailfooter();
+
+		/**
+		 * The meta object literal for the '<em><b>Footerstyle</b></em>' reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference WITH_HEADER_FOOTER__FOOTERSTYLE = eINSTANCE.getWithHeaderFooter_Footerstyle();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.osbp.xtext.reportdsl.impl.DatamartTableImpl <em>Datamart Table</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.osbp.xtext.reportdsl.impl.DatamartTableImpl
+		 * @see org.eclipse.osbp.xtext.reportdsl.impl.ReportDSLPackageImpl#getDatamartTable()
+		 * @generated
+		 */
+		EClass DATAMART_TABLE = eINSTANCE.getDatamartTable();
+
+		/**
+		 * The meta object literal for the '<em><b>Groups</b></em>' containment reference list feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference DATAMART_TABLE__GROUPS = eINSTANCE.getDatamartTable_Groups();
+
+		/**
+		 * The meta object literal for the '<em><b>Detail</b></em>' containment reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference DATAMART_TABLE__DETAIL = eINSTANCE.getDatamartTable_Detail();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.osbp.xtext.reportdsl.impl.DatamartTableGroupImpl <em>Datamart Table Group</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.osbp.xtext.reportdsl.impl.DatamartTableGroupImpl
+		 * @see org.eclipse.osbp.xtext.reportdsl.impl.ReportDSLPackageImpl#getDatamartTableGroup()
+		 * @generated
+		 */
+		EClass DATAMART_TABLE_GROUP = eINSTANCE.getDatamartTableGroup();
+
+		/**
+		 * The meta object literal for the '<em><b>Grouping Ref</b></em>' reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference DATAMART_TABLE_GROUP__GROUPING_REF = eINSTANCE.getDatamartTableGroup_GroupingRef();
+
+		/**
+		 * The meta object literal for the '<em><b>Header</b></em>' containment reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference DATAMART_TABLE_GROUP__HEADER = eINSTANCE.getDatamartTableGroup_Header();
+
+		/**
+		 * The meta object literal for the '<em><b>Footer</b></em>' containment reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference DATAMART_TABLE_GROUP__FOOTER = eINSTANCE.getDatamartTableGroup_Footer();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.osbp.xtext.reportdsl.impl.SomeGridImpl <em>Some Grid</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.osbp.xtext.reportdsl.impl.SomeGridImpl
+		 * @see org.eclipse.osbp.xtext.reportdsl.impl.ReportDSLPackageImpl#getSomeGrid()
+		 * @generated
+		 */
+		EClass SOME_GRID = eINSTANCE.getSomeGrid();
+
+		/**
+		 * The meta object literal for the '<em><b>Rows</b></em>' containment reference list feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference SOME_GRID__ROWS = eINSTANCE.getSomeGrid_Rows();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.osbp.xtext.reportdsl.impl.DatamartTableGroupHeaderImpl <em>Datamart Table Group Header</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.osbp.xtext.reportdsl.impl.DatamartTableGroupHeaderImpl
+		 * @see org.eclipse.osbp.xtext.reportdsl.impl.ReportDSLPackageImpl#getDatamartTableGroupHeader()
+		 * @generated
+		 */
+		EClass DATAMART_TABLE_GROUP_HEADER = eINSTANCE.getDatamartTableGroupHeader();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.osbp.xtext.reportdsl.impl.DatamartTableGroupFooterImpl <em>Datamart Table Group Footer</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.osbp.xtext.reportdsl.impl.DatamartTableGroupFooterImpl
+		 * @see org.eclipse.osbp.xtext.reportdsl.impl.ReportDSLPackageImpl#getDatamartTableGroupFooter()
+		 * @generated
+		 */
+		EClass DATAMART_TABLE_GROUP_FOOTER = eINSTANCE.getDatamartTableGroupFooter();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.osbp.xtext.reportdsl.impl.DatamartTableDetailImpl <em>Datamart Table Detail</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.osbp.xtext.reportdsl.impl.DatamartTableDetailImpl
+		 * @see org.eclipse.osbp.xtext.reportdsl.impl.ReportDSLPackageImpl#getDatamartTableDetail()
+		 * @generated
+		 */
+		EClass DATAMART_TABLE_DETAIL = eINSTANCE.getDatamartTableDetail();
+
+		/**
+		 * The meta object literal for the '<em><b>Column Formatters</b></em>' containment reference list feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference DATAMART_TABLE_DETAIL__COLUMN_FORMATTERS = eINSTANCE.getDatamartTableDetail_ColumnFormatters();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.osbp.xtext.reportdsl.impl.DatamartTablePropertyImpl <em>Datamart Table Property</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.osbp.xtext.reportdsl.impl.DatamartTablePropertyImpl
+		 * @see org.eclipse.osbp.xtext.reportdsl.impl.ReportDSLPackageImpl#getDatamartTableProperty()
+		 * @generated
+		 */
+		EClass DATAMART_TABLE_PROPERTY = eINSTANCE.getDatamartTableProperty();
+
+		/**
+		 * The meta object literal for the '<em><b>Column</b></em>' containment reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference DATAMART_TABLE_PROPERTY__COLUMN = eINSTANCE.getDatamartTableProperty_Column();
+
+		/**
+		 * The meta object literal for the '<em><b>Intervals</b></em>' containment reference list feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference DATAMART_TABLE_PROPERTY__INTERVALS = eINSTANCE.getDatamartTableProperty_Intervals();
+
+		/**
+		 * The meta object literal for the '<em><b>Hide Label Interval</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute DATAMART_TABLE_PROPERTY__HIDE_LABEL_INTERVAL = eINSTANCE.getDatamartTableProperty_HideLabelInterval();
+
+		/**
+		 * The meta object literal for the '<em><b>Lookups</b></em>' containment reference list feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference DATAMART_TABLE_PROPERTY__LOOKUPS = eINSTANCE.getDatamartTableProperty_Lookups();
+
+		/**
+		 * The meta object literal for the '<em><b>Hide Label Lookup</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute DATAMART_TABLE_PROPERTY__HIDE_LABEL_LOOKUP = eINSTANCE.getDatamartTableProperty_HideLabelLookup();
+
+		/**
+		 * The meta object literal for the '<em><b>Has Image</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute DATAMART_TABLE_PROPERTY__HAS_IMAGE = eINSTANCE.getDatamartTableProperty_HasImage();
+
+		/**
+		 * The meta object literal for the '<em><b>Image</b></em>' containment reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference DATAMART_TABLE_PROPERTY__IMAGE = eINSTANCE.getDatamartTableProperty_Image();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.osbp.xtext.reportdsl.impl.TableFormatterImpl <em>Table Formatter</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.osbp.xtext.reportdsl.impl.TableFormatterImpl
+		 * @see org.eclipse.osbp.xtext.reportdsl.impl.ReportDSLPackageImpl#getTableFormatter()
+		 * @generated
+		 */
+		EClass TABLE_FORMATTER = eINSTANCE.getTableFormatter();
+
+		/**
+		 * The meta object literal for the '<em><b>Format</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute TABLE_FORMATTER__FORMAT = eINSTANCE.getTableFormatter_Format();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.osbp.xtext.reportdsl.impl.TableImageImpl <em>Table Image</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.osbp.xtext.reportdsl.impl.TableImageImpl
+		 * @see org.eclipse.osbp.xtext.reportdsl.impl.ReportDSLPackageImpl#getTableImage()
+		 * @generated
+		 */
+		EClass TABLE_IMAGE = eINSTANCE.getTableImage();
+
+		/**
+		 * The meta object literal for the '<em><b>Image Path Pattern</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute TABLE_IMAGE__IMAGE_PATH_PATTERN = eINSTANCE.getTableImage_ImagePathPattern();
+
+		/**
+		 * The meta object literal for the '<em><b>Hide Image Label</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute TABLE_IMAGE__HIDE_IMAGE_LABEL = eINSTANCE.getTableImage_HideImageLabel();
+
+		/**
+		 * The meta object literal for the '<em><b>Has Parameter</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute TABLE_IMAGE__HAS_PARAMETER = eINSTANCE.getTableImage_HasParameter();
+
+		/**
+		 * The meta object literal for the '<em><b>Resize</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute TABLE_IMAGE__RESIZE = eINSTANCE.getTableImage_Resize();
+
+		/**
+		 * The meta object literal for the '<em><b>Resize String</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute TABLE_IMAGE__RESIZE_STRING = eINSTANCE.getTableImage_ResizeString();
+
+		/**
+		 * The meta object literal for the '<em><b>Image Path Parameter</b></em>' containment reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference TABLE_IMAGE__IMAGE_PATH_PARAMETER = eINSTANCE.getTableImage_ImagePathParameter();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.osbp.xtext.reportdsl.TableValueElement <em>Table Value Element</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.osbp.xtext.reportdsl.TableValueElement
+		 * @see org.eclipse.osbp.xtext.reportdsl.impl.ReportDSLPackageImpl#getTableValueElement()
+		 * @generated
+		 */
+		EClass TABLE_VALUE_ELEMENT = eINSTANCE.getTableValueElement();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.osbp.xtext.reportdsl.impl.TablePropertyImpl <em>Table Property</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.osbp.xtext.reportdsl.impl.TablePropertyImpl
+		 * @see org.eclipse.osbp.xtext.reportdsl.impl.ReportDSLPackageImpl#getTableProperty()
+		 * @generated
+		 */
+		EClass TABLE_PROPERTY = eINSTANCE.getTableProperty();
+
+		/**
+		 * The meta object literal for the '<em><b>Value Ref</b></em>' reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference TABLE_PROPERTY__VALUE_REF = eINSTANCE.getTableProperty_ValueRef();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.osbp.xtext.reportdsl.impl.TableAggregationImpl <em>Table Aggregation</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.osbp.xtext.reportdsl.impl.TableAggregationImpl
+		 * @see org.eclipse.osbp.xtext.reportdsl.impl.ReportDSLPackageImpl#getTableAggregation()
+		 * @generated
+		 */
+		EClass TABLE_AGGREGATION = eINSTANCE.getTableAggregation();
+
+		/**
+		 * The meta object literal for the '<em><b>Text</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute TABLE_AGGREGATION__TEXT = eINSTANCE.getTableAggregation_Text();
+
+		/**
+		 * The meta object literal for the '<em><b>Aggregation</b></em>' containment reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference TABLE_AGGREGATION__AGGREGATION = eINSTANCE.getTableAggregation_Aggregation();
+
+		/**
+		 * The meta object literal for the '<em><b>On Group</b></em>' reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference TABLE_AGGREGATION__ON_GROUP = eINSTANCE.getTableAggregation_OnGroup();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.osbp.xtext.reportdsl.impl.TableBaseAggregationImpl <em>Table Base Aggregation</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.osbp.xtext.reportdsl.impl.TableBaseAggregationImpl
+		 * @see org.eclipse.osbp.xtext.reportdsl.impl.ReportDSLPackageImpl#getTableBaseAggregation()
+		 * @generated
+		 */
+		EClass TABLE_BASE_AGGREGATION = eINSTANCE.getTableBaseAggregation();
+
+		/**
+		 * The meta object literal for the '<em><b>Value Refs</b></em>' reference list feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference TABLE_BASE_AGGREGATION__VALUE_REFS = eINSTANCE.getTableBaseAggregation_ValueRefs();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.osbp.xtext.reportdsl.impl.TablePureAggregationImpl <em>Table Pure Aggregation</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.osbp.xtext.reportdsl.impl.TablePureAggregationImpl
+		 * @see org.eclipse.osbp.xtext.reportdsl.impl.ReportDSLPackageImpl#getTablePureAggregation()
+		 * @generated
+		 */
+		EClass TABLE_PURE_AGGREGATION = eINSTANCE.getTablePureAggregation();
+
+		/**
+		 * The meta object literal for the '<em><b>Aggregation</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute TABLE_PURE_AGGREGATION__AGGREGATION = eINSTANCE.getTablePureAggregation_Aggregation();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.osbp.xtext.reportdsl.impl.TableUnaryAggregationImpl <em>Table Unary Aggregation</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.osbp.xtext.reportdsl.impl.TableUnaryAggregationImpl
+		 * @see org.eclipse.osbp.xtext.reportdsl.impl.ReportDSLPackageImpl#getTableUnaryAggregation()
+		 * @generated
+		 */
+		EClass TABLE_UNARY_AGGREGATION = eINSTANCE.getTableUnaryAggregation();
+
+		/**
+		 * The meta object literal for the '<em><b>Aggregation</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute TABLE_UNARY_AGGREGATION__AGGREGATION = eINSTANCE.getTableUnaryAggregation_Aggregation();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.osbp.xtext.reportdsl.impl.TableMultipleAggregationImpl <em>Table Multiple Aggregation</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.osbp.xtext.reportdsl.impl.TableMultipleAggregationImpl
+		 * @see org.eclipse.osbp.xtext.reportdsl.impl.ReportDSLPackageImpl#getTableMultipleAggregation()
+		 * @generated
+		 */
+		EClass TABLE_MULTIPLE_AGGREGATION = eINSTANCE.getTableMultipleAggregation();
+
+		/**
+		 * The meta object literal for the '<em><b>Aggregation</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute TABLE_MULTIPLE_AGGREGATION__AGGREGATION = eINSTANCE.getTableMultipleAggregation_Aggregation();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.osbp.xtext.reportdsl.impl.TableBinaryAggregationImpl <em>Table Binary Aggregation</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.osbp.xtext.reportdsl.impl.TableBinaryAggregationImpl
+		 * @see org.eclipse.osbp.xtext.reportdsl.impl.ReportDSLPackageImpl#getTableBinaryAggregation()
+		 * @generated
+		 */
+		EClass TABLE_BINARY_AGGREGATION = eINSTANCE.getTableBinaryAggregation();
+
+		/**
+		 * The meta object literal for the '<em><b>Aggregation</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute TABLE_BINARY_AGGREGATION__AGGREGATION = eINSTANCE.getTableBinaryAggregation_Aggregation();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.osbp.xtext.reportdsl.TableInterval <em>Table Interval</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.osbp.xtext.reportdsl.TableInterval
+		 * @see org.eclipse.osbp.xtext.reportdsl.impl.ReportDSLPackageImpl#getTableInterval()
+		 * @generated
+		 */
+		EClass TABLE_INTERVAL = eINSTANCE.getTableInterval();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.osbp.xtext.reportdsl.impl.TableNumberIntervalImpl <em>Table Number Interval</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.osbp.xtext.reportdsl.impl.TableNumberIntervalImpl
+		 * @see org.eclipse.osbp.xtext.reportdsl.impl.ReportDSLPackageImpl#getTableNumberInterval()
+		 * @generated
+		 */
+		EClass TABLE_NUMBER_INTERVAL = eINSTANCE.getTableNumberInterval();
+
+		/**
+		 * The meta object literal for the '<em><b>Number Interval Value</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute TABLE_NUMBER_INTERVAL__NUMBER_INTERVAL_VALUE = eINSTANCE.getTableNumberInterval_NumberIntervalValue();
+
+		/**
+		 * The meta object literal for the '<em><b>Number Range</b></em>' containment reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference TABLE_NUMBER_INTERVAL__NUMBER_RANGE = eINSTANCE.getTableNumberInterval_NumberRange();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.osbp.xtext.reportdsl.impl.TableDateDayIntervalImpl <em>Table Date Day Interval</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.osbp.xtext.reportdsl.impl.TableDateDayIntervalImpl
+		 * @see org.eclipse.osbp.xtext.reportdsl.impl.ReportDSLPackageImpl#getTableDateDayInterval()
+		 * @generated
+		 */
+		EClass TABLE_DATE_DAY_INTERVAL = eINSTANCE.getTableDateDayInterval();
+
+		/**
+		 * The meta object literal for the '<em><b>Date Interval Value</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute TABLE_DATE_DAY_INTERVAL__DATE_INTERVAL_VALUE = eINSTANCE.getTableDateDayInterval_DateIntervalValue();
+
+		/**
+		 * The meta object literal for the '<em><b>Date Range</b></em>' containment reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference TABLE_DATE_DAY_INTERVAL__DATE_RANGE = eINSTANCE.getTableDateDayInterval_DateRange();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.osbp.xtext.reportdsl.TableLookup <em>Table Lookup</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.osbp.xtext.reportdsl.TableLookup
+		 * @see org.eclipse.osbp.xtext.reportdsl.impl.ReportDSLPackageImpl#getTableLookup()
+		 * @generated
+		 */
+		EClass TABLE_LOOKUP = eINSTANCE.getTableLookup();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.osbp.xtext.reportdsl.impl.TableNumberLookupImpl <em>Table Number Lookup</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.osbp.xtext.reportdsl.impl.TableNumberLookupImpl
+		 * @see org.eclipse.osbp.xtext.reportdsl.impl.ReportDSLPackageImpl#getTableNumberLookup()
+		 * @generated
+		 */
+		EClass TABLE_NUMBER_LOOKUP = eINSTANCE.getTableNumberLookup();
+
+		/**
+		 * The meta object literal for the '<em><b>Lookup Value</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute TABLE_NUMBER_LOOKUP__LOOKUP_VALUE = eINSTANCE.getTableNumberLookup_LookupValue();
+
+		/**
+		 * The meta object literal for the '<em><b>Discrete</b></em>' containment reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference TABLE_NUMBER_LOOKUP__DISCRETE = eINSTANCE.getTableNumberLookup_Discrete();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.osbp.xtext.reportdsl.impl.TableStringLookupImpl <em>Table String Lookup</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.osbp.xtext.reportdsl.impl.TableStringLookupImpl
+		 * @see org.eclipse.osbp.xtext.reportdsl.impl.ReportDSLPackageImpl#getTableStringLookup()
+		 * @generated
+		 */
+		EClass TABLE_STRING_LOOKUP = eINSTANCE.getTableStringLookup();
+
+		/**
+		 * The meta object literal for the '<em><b>Lookup Value</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute TABLE_STRING_LOOKUP__LOOKUP_VALUE = eINSTANCE.getTableStringLookup_LookupValue();
+
+		/**
+		 * The meta object literal for the '<em><b>Discrete</b></em>' containment reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference TABLE_STRING_LOOKUP__DISCRETE = eINSTANCE.getTableStringLookup_Discrete();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.osbp.xtext.reportdsl.impl.TableDateDayLookupImpl <em>Table Date Day Lookup</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.osbp.xtext.reportdsl.impl.TableDateDayLookupImpl
+		 * @see org.eclipse.osbp.xtext.reportdsl.impl.ReportDSLPackageImpl#getTableDateDayLookup()
+		 * @generated
+		 */
+		EClass TABLE_DATE_DAY_LOOKUP = eINSTANCE.getTableDateDayLookup();
+
+		/**
+		 * The meta object literal for the '<em><b>Lookup Value</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute TABLE_DATE_DAY_LOOKUP__LOOKUP_VALUE = eINSTANCE.getTableDateDayLookup_LookupValue();
+
+		/**
+		 * The meta object literal for the '<em><b>Discrete</b></em>' containment reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference TABLE_DATE_DAY_LOOKUP__DISCRETE = eINSTANCE.getTableDateDayLookup_Discrete();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.osbp.xtext.reportdsl.TableRangeElement <em>Table Range Element</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.osbp.xtext.reportdsl.TableRangeElement
+		 * @see org.eclipse.osbp.xtext.reportdsl.impl.ReportDSLPackageImpl#getTableRangeElement()
+		 * @generated
+		 */
+		EClass TABLE_RANGE_ELEMENT = eINSTANCE.getTableRangeElement();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.osbp.xtext.reportdsl.impl.TableTextColorImpl <em>Table Text Color</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.osbp.xtext.reportdsl.impl.TableTextColorImpl
+		 * @see org.eclipse.osbp.xtext.reportdsl.impl.ReportDSLPackageImpl#getTableTextColor()
+		 * @generated
+		 */
+		EClass TABLE_TEXT_COLOR = eINSTANCE.getTableTextColor();
+
+		/**
+		 * The meta object literal for the '<em><b>Color</b></em>' reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference TABLE_TEXT_COLOR__COLOR = eINSTANCE.getTableTextColor_Color();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.osbp.xtext.reportdsl.impl.TableCellColorImpl <em>Table Cell Color</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.osbp.xtext.reportdsl.impl.TableCellColorImpl
+		 * @see org.eclipse.osbp.xtext.reportdsl.impl.ReportDSLPackageImpl#getTableCellColor()
+		 * @generated
+		 */
+		EClass TABLE_CELL_COLOR = eINSTANCE.getTableCellColor();
+
+		/**
+		 * The meta object literal for the '<em><b>Color</b></em>' reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference TABLE_CELL_COLOR__COLOR = eINSTANCE.getTableCellColor_Color();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.osbp.xtext.reportdsl.impl.TableIconImpl <em>Table Icon</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.osbp.xtext.reportdsl.impl.TableIconImpl
+		 * @see org.eclipse.osbp.xtext.reportdsl.impl.ReportDSLPackageImpl#getTableIcon()
+		 * @generated
+		 */
+		EClass TABLE_ICON = eINSTANCE.getTableIcon();
+
+		/**
+		 * The meta object literal for the '<em><b>Icon</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute TABLE_ICON__ICON = eINSTANCE.getTableIcon_Icon();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.osbp.xtext.reportdsl.impl.TableTrendImpl <em>Table Trend</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.osbp.xtext.reportdsl.impl.TableTrendImpl
+		 * @see org.eclipse.osbp.xtext.reportdsl.impl.ReportDSLPackageImpl#getTableTrend()
+		 * @generated
+		 */
+		EClass TABLE_TREND = eINSTANCE.getTableTrend();
+
+		/**
+		 * The meta object literal for the '<em><b>Icon</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute TABLE_TREND__ICON = eINSTANCE.getTableTrend_Icon();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.osbp.xtext.reportdsl.impl.TableTooltipImpl <em>Table Tooltip</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.osbp.xtext.reportdsl.impl.TableTooltipImpl
+		 * @see org.eclipse.osbp.xtext.reportdsl.impl.ReportDSLPackageImpl#getTableTooltip()
+		 * @generated
+		 */
+		EClass TABLE_TOOLTIP = eINSTANCE.getTableTooltip();
+
+		/**
+		 * The meta object literal for the '<em><b>Tooltip</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute TABLE_TOOLTIP__TOOLTIP = eINSTANCE.getTableTooltip_Tooltip();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.osbp.xtext.reportdsl.impl.GridImpl <em>Grid</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.osbp.xtext.reportdsl.impl.GridImpl
+		 * @see org.eclipse.osbp.xtext.reportdsl.impl.ReportDSLPackageImpl#getGrid()
+		 * @generated
+		 */
+		EClass GRID = eINSTANCE.getGrid();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.osbp.xtext.reportdsl.impl.GridRowImpl <em>Grid Row</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.osbp.xtext.reportdsl.impl.GridRowImpl
+		 * @see org.eclipse.osbp.xtext.reportdsl.impl.ReportDSLPackageImpl#getGridRow()
+		 * @generated
+		 */
+		EClass GRID_ROW = eINSTANCE.getGridRow();
+
+		/**
+		 * The meta object literal for the '<em><b>Cells</b></em>' containment reference list feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference GRID_ROW__CELLS = eINSTANCE.getGridRow_Cells();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.osbp.xtext.reportdsl.impl.GridCellImpl <em>Grid Cell</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.osbp.xtext.reportdsl.impl.GridCellImpl
+		 * @see org.eclipse.osbp.xtext.reportdsl.impl.ReportDSLPackageImpl#getGridCell()
+		 * @generated
+		 */
+		EClass GRID_CELL = eINSTANCE.getGridCell();
+
+		/**
+		 * The meta object literal for the '<em><b>Columnspan</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute GRID_CELL__COLUMNSPAN = eINSTANCE.getGridCell_Columnspan();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.osbp.xtext.reportdsl.UnitEnum <em>Unit Enum</em>}' enum.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.osbp.xtext.reportdsl.UnitEnum
+		 * @see org.eclipse.osbp.xtext.reportdsl.impl.ReportDSLPackageImpl#getUnitEnum()
+		 * @generated
+		 */
+		EEnum UNIT_ENUM = eINSTANCE.getUnitEnum();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.osbp.xtext.reportdsl.PageSizeEnum <em>Page Size Enum</em>}' enum.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.osbp.xtext.reportdsl.PageSizeEnum
+		 * @see org.eclipse.osbp.xtext.reportdsl.impl.ReportDSLPackageImpl#getPageSizeEnum()
+		 * @generated
+		 */
+		EEnum PAGE_SIZE_ENUM = eINSTANCE.getPageSizeEnum();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.osbp.xtext.reportdsl.OrientationEnum <em>Orientation Enum</em>}' enum.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.osbp.xtext.reportdsl.OrientationEnum
+		 * @see org.eclipse.osbp.xtext.reportdsl.impl.ReportDSLPackageImpl#getOrientationEnum()
+		 * @generated
+		 */
+		EEnum ORIENTATION_ENUM = eINSTANCE.getOrientationEnum();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.osbp.xtext.reportdsl.FontStyleEnum <em>Font Style Enum</em>}' enum.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.osbp.xtext.reportdsl.FontStyleEnum
+		 * @see org.eclipse.osbp.xtext.reportdsl.impl.ReportDSLPackageImpl#getFontStyleEnum()
+		 * @generated
+		 */
+		EEnum FONT_STYLE_ENUM = eINSTANCE.getFontStyleEnum();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.osbp.xtext.reportdsl.BuildInFontFamilyEnum <em>Build In Font Family Enum</em>}' enum.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.osbp.xtext.reportdsl.BuildInFontFamilyEnum
+		 * @see org.eclipse.osbp.xtext.reportdsl.impl.ReportDSLPackageImpl#getBuildInFontFamilyEnum()
+		 * @generated
+		 */
+		EEnum BUILD_IN_FONT_FAMILY_ENUM = eINSTANCE.getBuildInFontFamilyEnum();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.osbp.xtext.reportdsl.BorderTypeEnum <em>Border Type Enum</em>}' enum.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.osbp.xtext.reportdsl.BorderTypeEnum
+		 * @see org.eclipse.osbp.xtext.reportdsl.impl.ReportDSLPackageImpl#getBorderTypeEnum()
+		 * @generated
+		 */
+		EEnum BORDER_TYPE_ENUM = eINSTANCE.getBorderTypeEnum();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.osbp.xtext.reportdsl.TextAlignEnum <em>Text Align Enum</em>}' enum.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.osbp.xtext.reportdsl.TextAlignEnum
+		 * @see org.eclipse.osbp.xtext.reportdsl.impl.ReportDSLPackageImpl#getTextAlignEnum()
+		 * @generated
+		 */
+		EEnum TEXT_ALIGN_ENUM = eINSTANCE.getTextAlignEnum();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.osbp.xtext.reportdsl.NumberFormatCategoryEnum <em>Number Format Category Enum</em>}' enum.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.osbp.xtext.reportdsl.NumberFormatCategoryEnum
+		 * @see org.eclipse.osbp.xtext.reportdsl.impl.ReportDSLPackageImpl#getNumberFormatCategoryEnum()
+		 * @generated
+		 */
+		EEnum NUMBER_FORMAT_CATEGORY_ENUM = eINSTANCE.getNumberFormatCategoryEnum();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.osbp.xtext.reportdsl.CurrencyFormatCategoryEnum <em>Currency Format Category Enum</em>}' enum.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.osbp.xtext.reportdsl.CurrencyFormatCategoryEnum
+		 * @see org.eclipse.osbp.xtext.reportdsl.impl.ReportDSLPackageImpl#getCurrencyFormatCategoryEnum()
+		 * @generated
+		 */
+		EEnum CURRENCY_FORMAT_CATEGORY_ENUM = eINSTANCE.getCurrencyFormatCategoryEnum();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.osbp.xtext.reportdsl.DateFormatCategoryEnum <em>Date Format Category Enum</em>}' enum.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.osbp.xtext.reportdsl.DateFormatCategoryEnum
+		 * @see org.eclipse.osbp.xtext.reportdsl.impl.ReportDSLPackageImpl#getDateFormatCategoryEnum()
+		 * @generated
+		 */
+		EEnum DATE_FORMAT_CATEGORY_ENUM = eINSTANCE.getDateFormatCategoryEnum();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.osbp.xtext.reportdsl.DateTimeFormatCategoryEnum <em>Date Time Format Category Enum</em>}' enum.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.osbp.xtext.reportdsl.DateTimeFormatCategoryEnum
+		 * @see org.eclipse.osbp.xtext.reportdsl.impl.ReportDSLPackageImpl#getDateTimeFormatCategoryEnum()
+		 * @generated
+		 */
+		EEnum DATE_TIME_FORMAT_CATEGORY_ENUM = eINSTANCE.getDateTimeFormatCategoryEnum();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.osbp.xtext.reportdsl.TimeFormatCategoryEnum <em>Time Format Category Enum</em>}' enum.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.osbp.xtext.reportdsl.TimeFormatCategoryEnum
+		 * @see org.eclipse.osbp.xtext.reportdsl.impl.ReportDSLPackageImpl#getTimeFormatCategoryEnum()
+		 * @generated
+		 */
+		EEnum TIME_FORMAT_CATEGORY_ENUM = eINSTANCE.getTimeFormatCategoryEnum();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.osbp.xtext.reportdsl.AutoTextEnum <em>Auto Text Enum</em>}' enum.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.osbp.xtext.reportdsl.AutoTextEnum
+		 * @see org.eclipse.osbp.xtext.reportdsl.impl.ReportDSLPackageImpl#getAutoTextEnum()
+		 * @generated
+		 */
+		EEnum AUTO_TEXT_ENUM = eINSTANCE.getAutoTextEnum();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.osbp.xtext.reportdsl.ImageSizeEnum <em>Image Size Enum</em>}' enum.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.osbp.xtext.reportdsl.ImageSizeEnum
+		 * @see org.eclipse.osbp.xtext.reportdsl.impl.ReportDSLPackageImpl#getImageSizeEnum()
+		 * @generated
+		 */
+		EEnum IMAGE_SIZE_ENUM = eINSTANCE.getImageSizeEnum();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.osbp.xtext.reportdsl.ImageSourceEnum <em>Image Source Enum</em>}' enum.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.osbp.xtext.reportdsl.ImageSourceEnum
+		 * @see org.eclipse.osbp.xtext.reportdsl.impl.ReportDSLPackageImpl#getImageSourceEnum()
+		 * @generated
+		 */
+		EEnum IMAGE_SOURCE_ENUM = eINSTANCE.getImageSourceEnum();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.osbp.xtext.reportdsl.PureAggregationTypeEnum <em>Pure Aggregation Type Enum</em>}' enum.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.osbp.xtext.reportdsl.PureAggregationTypeEnum
+		 * @see org.eclipse.osbp.xtext.reportdsl.impl.ReportDSLPackageImpl#getPureAggregationTypeEnum()
+		 * @generated
+		 */
+		EEnum PURE_AGGREGATION_TYPE_ENUM = eINSTANCE.getPureAggregationTypeEnum();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.osbp.xtext.reportdsl.UnaryAggregationTypeEnum <em>Unary Aggregation Type Enum</em>}' enum.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.osbp.xtext.reportdsl.UnaryAggregationTypeEnum
+		 * @see org.eclipse.osbp.xtext.reportdsl.impl.ReportDSLPackageImpl#getUnaryAggregationTypeEnum()
+		 * @generated
+		 */
+		EEnum UNARY_AGGREGATION_TYPE_ENUM = eINSTANCE.getUnaryAggregationTypeEnum();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.osbp.xtext.reportdsl.BinaryAggregationTypeEnum <em>Binary Aggregation Type Enum</em>}' enum.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.osbp.xtext.reportdsl.BinaryAggregationTypeEnum
+		 * @see org.eclipse.osbp.xtext.reportdsl.impl.ReportDSLPackageImpl#getBinaryAggregationTypeEnum()
+		 * @generated
+		 */
+		EEnum BINARY_AGGREGATION_TYPE_ENUM = eINSTANCE.getBinaryAggregationTypeEnum();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.osbp.xtext.reportdsl.MultipleAggregationTypeEnum <em>Multiple Aggregation Type Enum</em>}' enum.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.osbp.xtext.reportdsl.MultipleAggregationTypeEnum
+		 * @see org.eclipse.osbp.xtext.reportdsl.impl.ReportDSLPackageImpl#getMultipleAggregationTypeEnum()
+		 * @generated
+		 */
+		EEnum MULTIPLE_AGGREGATION_TYPE_ENUM = eINSTANCE.getMultipleAggregationTypeEnum();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.osbp.xtext.reportdsl.TrendIconEnum <em>Trend Icon Enum</em>}' enum.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.osbp.xtext.reportdsl.TrendIconEnum
+		 * @see org.eclipse.osbp.xtext.reportdsl.impl.ReportDSLPackageImpl#getTrendIconEnum()
+		 * @generated
+		 */
+		EEnum TREND_ICON_ENUM = eINSTANCE.getTrendIconEnum();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.osbp.xtext.reportdsl.RenderingEnum <em>Rendering Enum</em>}' enum.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.osbp.xtext.reportdsl.RenderingEnum
+		 * @see org.eclipse.osbp.xtext.reportdsl.impl.ReportDSLPackageImpl#getRenderingEnum()
+		 * @generated
+		 */
+		EEnum RENDERING_ENUM = eINSTANCE.getRenderingEnum();
+
+		/**
+		 * The meta object literal for the '<em>Internal EObject</em>' data type.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.emf.ecore.InternalEObject
+		 * @see org.eclipse.osbp.xtext.reportdsl.impl.ReportDSLPackageImpl#getInternalEObject()
+		 * @generated
+		 */
+		EDataType INTERNAL_EOBJECT = eINSTANCE.getInternalEObject();
+
+	}
+
+} //ReportDSLPackage
diff --git a/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/ReportDesign.java b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/ReportDesign.java
new file mode 100644
index 0000000..2c8f8c5
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/ReportDesign.java
@@ -0,0 +1,28 @@
+/**
+ * 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:  
+ *  		Christophe Loetz  (Loetz GmbH&Co.KG) - Initial implementation 
+ *  
+ */
+package org.eclipse.osbp.xtext.reportdsl;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Report Design</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see org.eclipse.osbp.xtext.reportdsl.ReportDSLPackage#getReportDesign()
+ * @model interface="true" abstract="true"
+ * @generated
+ */
+public interface ReportDesign extends ReportLazyResolver {
+} // ReportDesign
diff --git a/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/ReportDesignFile.java b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/ReportDesignFile.java
new file mode 100644
index 0000000..ef055f2
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/ReportDesignFile.java
@@ -0,0 +1,60 @@
+/**
+ * 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:  
+ *  		Christophe Loetz  (Loetz GmbH&Co.KG) - Initial implementation 
+ *  
+ */
+package org.eclipse.osbp.xtext.reportdsl;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Report Design File</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.ReportDesignFile#getName <em>Name</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.osbp.xtext.reportdsl.ReportDSLPackage#getReportDesignFile()
+ * @model
+ * @generated
+ */
+public interface ReportDesignFile extends ReportDesign {
+	/**
+	 * Returns the value of the '<em><b>Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Name</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Name</em>' attribute.
+	 * @see #setName(String)
+	 * @see org.eclipse.osbp.xtext.reportdsl.ReportDSLPackage#getReportDesignFile_Name()
+	 * @model unique="false"
+	 * @generated
+	 */
+	String getName();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.xtext.reportdsl.ReportDesignFile#getName <em>Name</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Name</em>' attribute.
+	 * @see #getName()
+	 * @generated
+	 */
+	void setName(String value);
+
+} // ReportDesignFile
diff --git a/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/ReportDesignTemplate.java b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/ReportDesignTemplate.java
new file mode 100644
index 0000000..2749bc0
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/ReportDesignTemplate.java
@@ -0,0 +1,141 @@
+/**
+ * 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:  
+ *  		Christophe Loetz  (Loetz GmbH&Co.KG) - Initial implementation 
+ *  
+ */
+package org.eclipse.osbp.xtext.reportdsl;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Report Design Template</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.ReportDesignTemplate#getDescription <em>Description</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.ReportDesignTemplate#getHeader <em>Header</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.ReportDesignTemplate#getDetail <em>Detail</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.ReportDesignTemplate#getFooter <em>Footer</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.osbp.xtext.reportdsl.ReportDSLPackage#getReportDesignTemplate()
+ * @model
+ * @generated
+ */
+public interface ReportDesignTemplate extends ReportDesign {
+	/**
+	 * Returns the value of the '<em><b>Description</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Description</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Description</em>' attribute.
+	 * @see #setDescription(String)
+	 * @see org.eclipse.osbp.xtext.reportdsl.ReportDSLPackage#getReportDesignTemplate_Description()
+	 * @model unique="false"
+	 * @generated
+	 */
+	String getDescription();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.xtext.reportdsl.ReportDesignTemplate#getDescription <em>Description</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Description</em>' attribute.
+	 * @see #getDescription()
+	 * @generated
+	 */
+	void setDescription(String value);
+
+	/**
+	 * Returns the value of the '<em><b>Header</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Header</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>Header</em>' containment reference.
+	 * @see #setHeader(PageHeader)
+	 * @see org.eclipse.osbp.xtext.reportdsl.ReportDSLPackage#getReportDesignTemplate_Header()
+	 * @model containment="true"
+	 * @generated
+	 */
+	PageHeader getHeader();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.xtext.reportdsl.ReportDesignTemplate#getHeader <em>Header</em>}' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Header</em>' containment reference.
+	 * @see #getHeader()
+	 * @generated
+	 */
+	void setHeader(PageHeader value);
+
+	/**
+	 * Returns the value of the '<em><b>Detail</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Detail</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>Detail</em>' containment reference.
+	 * @see #setDetail(PageDetail)
+	 * @see org.eclipse.osbp.xtext.reportdsl.ReportDSLPackage#getReportDesignTemplate_Detail()
+	 * @model containment="true"
+	 * @generated
+	 */
+	PageDetail getDetail();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.xtext.reportdsl.ReportDesignTemplate#getDetail <em>Detail</em>}' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Detail</em>' containment reference.
+	 * @see #getDetail()
+	 * @generated
+	 */
+	void setDetail(PageDetail value);
+
+	/**
+	 * Returns the value of the '<em><b>Footer</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Footer</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>Footer</em>' containment reference.
+	 * @see #setFooter(PageFooter)
+	 * @see org.eclipse.osbp.xtext.reportdsl.ReportDSLPackage#getReportDesignTemplate_Footer()
+	 * @model containment="true"
+	 * @generated
+	 */
+	PageFooter getFooter();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.xtext.reportdsl.ReportDesignTemplate#getFooter <em>Footer</em>}' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Footer</em>' containment reference.
+	 * @see #getFooter()
+	 * @generated
+	 */
+	void setFooter(PageFooter value);
+
+} // ReportDesignTemplate
diff --git a/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/ReportLazyResolver.java b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/ReportLazyResolver.java
new file mode 100644
index 0000000..19306e3
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/ReportLazyResolver.java
@@ -0,0 +1,39 @@
+/**
+ * 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:  
+ *  		Christophe Loetz  (Loetz GmbH&Co.KG) - Initial implementation 
+ *  
+ */
+package org.eclipse.osbp.xtext.reportdsl;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.InternalEObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Report Lazy Resolver</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see org.eclipse.osbp.xtext.reportdsl.ReportDSLPackage#getReportLazyResolver()
+ * @model
+ * @generated
+ */
+public interface ReportLazyResolver extends EObject {
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @model unique="false" proxyDataType="org.eclipse.osbp.xtext.reportdsl.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);'"
+	 * @generated
+	 */
+	EObject eResolveProxy(InternalEObject proxy);
+
+} // ReportLazyResolver
diff --git a/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/ReportModel.java b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/ReportModel.java
new file mode 100644
index 0000000..3b2b88c
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/ReportModel.java
@@ -0,0 +1,53 @@
+/**
+ * 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:  
+ *  		Christophe Loetz  (Loetz GmbH&Co.KG) - Initial implementation 
+ *  
+ */
+package org.eclipse.osbp.xtext.reportdsl;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Report Model</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.ReportModel#getPckg <em>Pckg</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.osbp.xtext.reportdsl.ReportDSLPackage#getReportModel()
+ * @model
+ * @generated
+ */
+public interface ReportModel extends EObject {
+	/**
+	 * Returns the value of the '<em><b>Pckg</b></em>' containment reference list.
+	 * The list contents are of type {@link org.eclipse.osbp.xtext.reportdsl.ReportPackage}.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Pckg</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>Pckg</em>' containment reference list.
+	 * @see org.eclipse.osbp.xtext.reportdsl.ReportDSLPackage#getReportModel_Pckg()
+	 * @model containment="true"
+	 * @generated
+	 */
+	EList<ReportPackage> getPckg();
+
+} // ReportModel
diff --git a/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/ReportPackage.java b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/ReportPackage.java
new file mode 100644
index 0000000..6a64e93
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/ReportPackage.java
@@ -0,0 +1,298 @@
+/**
+ * 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:  
+ *  		Christophe Loetz  (Loetz GmbH&Co.KG) - Initial implementation 
+ *  
+ */
+package org.eclipse.osbp.xtext.reportdsl;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.osbp.dsl.semantic.common.types.LPackage;
+
+import org.eclipse.xtext.xtype.XImportSection;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Report Package</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.ReportPackage#getImportSection <em>Import Section</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.ReportPackage#getExternalCssURI <em>External Css URI</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.ReportPackage#getExternalCssURIBundle <em>External Css URI Bundle</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.ReportPackage#getPagetemplates <em>Pagetemplates</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.ReportPackage#getFormatters <em>Formatters</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.ReportPackage#getColors <em>Colors</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.ReportPackage#getFonts <em>Fonts</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.ReportPackage#getMedias <em>Medias</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.ReportPackage#getStyles <em>Styles</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.ReportPackage#getReports <em>Reports</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.osbp.xtext.reportdsl.ReportDSLPackage#getReportPackage()
+ * @model
+ * @generated
+ */
+public interface ReportPackage extends LPackage {
+	/**
+	 * 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.reportdsl.ReportDSLPackage#getReportPackage_ImportSection()
+	 * @model containment="true"
+	 * @generated
+	 */
+	XImportSection getImportSection();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.xtext.reportdsl.ReportPackage#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>External Css URI</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>External Css URI</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>External Css URI</em>' attribute.
+	 * @see #setExternalCssURI(String)
+	 * @see org.eclipse.osbp.xtext.reportdsl.ReportDSLPackage#getReportPackage_ExternalCssURI()
+	 * @model unique="false"
+	 * @generated
+	 */
+	String getExternalCssURI();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.xtext.reportdsl.ReportPackage#getExternalCssURI <em>External Css URI</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>External Css URI</em>' attribute.
+	 * @see #getExternalCssURI()
+	 * @generated
+	 */
+	void setExternalCssURI(String value);
+
+	/**
+	 * Returns the value of the '<em><b>External Css URI Bundle</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>External Css URI Bundle</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>External Css URI Bundle</em>' attribute.
+	 * @see #setExternalCssURIBundle(String)
+	 * @see org.eclipse.osbp.xtext.reportdsl.ReportDSLPackage#getReportPackage_ExternalCssURIBundle()
+	 * @model unique="false"
+	 * @generated
+	 */
+	String getExternalCssURIBundle();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.xtext.reportdsl.ReportPackage#getExternalCssURIBundle <em>External Css URI Bundle</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>External Css URI Bundle</em>' attribute.
+	 * @see #getExternalCssURIBundle()
+	 * @generated
+	 */
+	void setExternalCssURIBundle(String value);
+
+	/**
+	 * Returns the value of the '<em><b>Pagetemplates</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Pagetemplates</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>Pagetemplates</em>' containment reference.
+	 * @see #setPagetemplates(PageTemplates)
+	 * @see org.eclipse.osbp.xtext.reportdsl.ReportDSLPackage#getReportPackage_Pagetemplates()
+	 * @model containment="true"
+	 * @generated
+	 */
+	PageTemplates getPagetemplates();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.xtext.reportdsl.ReportPackage#getPagetemplates <em>Pagetemplates</em>}' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Pagetemplates</em>' containment reference.
+	 * @see #getPagetemplates()
+	 * @generated
+	 */
+	void setPagetemplates(PageTemplates value);
+
+	/**
+	 * Returns the value of the '<em><b>Formatters</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Formatters</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>Formatters</em>' containment reference.
+	 * @see #setFormatters(SomeFormats)
+	 * @see org.eclipse.osbp.xtext.reportdsl.ReportDSLPackage#getReportPackage_Formatters()
+	 * @model containment="true"
+	 * @generated
+	 */
+	SomeFormats getFormatters();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.xtext.reportdsl.ReportPackage#getFormatters <em>Formatters</em>}' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Formatters</em>' containment reference.
+	 * @see #getFormatters()
+	 * @generated
+	 */
+	void setFormatters(SomeFormats value);
+
+	/**
+	 * Returns the value of the '<em><b>Colors</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Colors</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>Colors</em>' containment reference.
+	 * @see #setColors(Colors)
+	 * @see org.eclipse.osbp.xtext.reportdsl.ReportDSLPackage#getReportPackage_Colors()
+	 * @model containment="true"
+	 * @generated
+	 */
+	Colors getColors();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.xtext.reportdsl.ReportPackage#getColors <em>Colors</em>}' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Colors</em>' containment reference.
+	 * @see #getColors()
+	 * @generated
+	 */
+	void setColors(Colors value);
+
+	/**
+	 * Returns the value of the '<em><b>Fonts</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Fonts</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>Fonts</em>' containment reference.
+	 * @see #setFonts(Fonts)
+	 * @see org.eclipse.osbp.xtext.reportdsl.ReportDSLPackage#getReportPackage_Fonts()
+	 * @model containment="true"
+	 * @generated
+	 */
+	Fonts getFonts();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.xtext.reportdsl.ReportPackage#getFonts <em>Fonts</em>}' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Fonts</em>' containment reference.
+	 * @see #getFonts()
+	 * @generated
+	 */
+	void setFonts(Fonts value);
+
+	/**
+	 * Returns the value of the '<em><b>Medias</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Medias</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>Medias</em>' containment reference.
+	 * @see #setMedias(Medias)
+	 * @see org.eclipse.osbp.xtext.reportdsl.ReportDSLPackage#getReportPackage_Medias()
+	 * @model containment="true"
+	 * @generated
+	 */
+	Medias getMedias();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.xtext.reportdsl.ReportPackage#getMedias <em>Medias</em>}' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Medias</em>' containment reference.
+	 * @see #getMedias()
+	 * @generated
+	 */
+	void setMedias(Medias value);
+
+	/**
+	 * Returns the value of the '<em><b>Styles</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Styles</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>Styles</em>' containment reference.
+	 * @see #setStyles(Styles)
+	 * @see org.eclipse.osbp.xtext.reportdsl.ReportDSLPackage#getReportPackage_Styles()
+	 * @model containment="true"
+	 * @generated
+	 */
+	Styles getStyles();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.xtext.reportdsl.ReportPackage#getStyles <em>Styles</em>}' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Styles</em>' containment reference.
+	 * @see #getStyles()
+	 * @generated
+	 */
+	void setStyles(Styles value);
+
+	/**
+	 * Returns the value of the '<em><b>Reports</b></em>' containment reference list.
+	 * The list contents are of type {@link org.eclipse.osbp.xtext.reportdsl.Report}.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Reports</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>Reports</em>' containment reference list.
+	 * @see org.eclipse.osbp.xtext.reportdsl.ReportDSLPackage#getReportPackage_Reports()
+	 * @model containment="true"
+	 * @generated
+	 */
+	EList<Report> getReports();
+
+} // ReportPackage
diff --git a/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/SomeFormat.java b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/SomeFormat.java
new file mode 100644
index 0000000..de5ea22
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/SomeFormat.java
@@ -0,0 +1,117 @@
+/**
+ * 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:  
+ *  		Christophe Loetz  (Loetz GmbH&Co.KG) - Initial implementation 
+ *  
+ */
+package org.eclipse.osbp.xtext.reportdsl;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Some Format</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.SomeFormat#getUi_pattern <em>Ui pattern</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.SomeFormat#getReport_pattern <em>Report pattern</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.SomeFormat#getTextalign <em>Textalign</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.osbp.xtext.reportdsl.ReportDSLPackage#getSomeFormat()
+ * @model
+ * @generated
+ */
+public interface SomeFormat extends ReportBase {
+	/**
+	 * Returns the value of the '<em><b>Ui pattern</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Ui pattern</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Ui pattern</em>' attribute.
+	 * @see #setUi_pattern(String)
+	 * @see org.eclipse.osbp.xtext.reportdsl.ReportDSLPackage#getSomeFormat_Ui_pattern()
+	 * @model unique="false"
+	 * @generated
+	 */
+	String getUi_pattern();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.xtext.reportdsl.SomeFormat#getUi_pattern <em>Ui pattern</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Ui pattern</em>' attribute.
+	 * @see #getUi_pattern()
+	 * @generated
+	 */
+	void setUi_pattern(String value);
+
+	/**
+	 * Returns the value of the '<em><b>Report pattern</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Report pattern</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Report pattern</em>' attribute.
+	 * @see #setReport_pattern(String)
+	 * @see org.eclipse.osbp.xtext.reportdsl.ReportDSLPackage#getSomeFormat_Report_pattern()
+	 * @model unique="false"
+	 * @generated
+	 */
+	String getReport_pattern();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.xtext.reportdsl.SomeFormat#getReport_pattern <em>Report pattern</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Report pattern</em>' attribute.
+	 * @see #getReport_pattern()
+	 * @generated
+	 */
+	void setReport_pattern(String value);
+
+	/**
+	 * Returns the value of the '<em><b>Textalign</b></em>' attribute.
+	 * The literals are from the enumeration {@link org.eclipse.osbp.xtext.reportdsl.TextAlignEnum}.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Textalign</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Textalign</em>' attribute.
+	 * @see org.eclipse.osbp.xtext.reportdsl.TextAlignEnum
+	 * @see #setTextalign(TextAlignEnum)
+	 * @see org.eclipse.osbp.xtext.reportdsl.ReportDSLPackage#getSomeFormat_Textalign()
+	 * @model unique="false"
+	 * @generated
+	 */
+	TextAlignEnum getTextalign();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.xtext.reportdsl.SomeFormat#getTextalign <em>Textalign</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Textalign</em>' attribute.
+	 * @see org.eclipse.osbp.xtext.reportdsl.TextAlignEnum
+	 * @see #getTextalign()
+	 * @generated
+	 */
+	void setTextalign(TextAlignEnum value);
+
+} // SomeFormat
diff --git a/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/SomeFormats.java b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/SomeFormats.java
new file mode 100644
index 0000000..7815ebe
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/SomeFormats.java
@@ -0,0 +1,51 @@
+/**
+ * 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:  
+ *  		Christophe Loetz  (Loetz GmbH&Co.KG) - Initial implementation 
+ *  
+ */
+package org.eclipse.osbp.xtext.reportdsl;
+
+import org.eclipse.emf.common.util.EList;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Some Formats</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.SomeFormats#getFormatters <em>Formatters</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.osbp.xtext.reportdsl.ReportDSLPackage#getSomeFormats()
+ * @model
+ * @generated
+ */
+public interface SomeFormats extends ReportLazyResolver {
+	/**
+	 * Returns the value of the '<em><b>Formatters</b></em>' containment reference list.
+	 * The list contents are of type {@link org.eclipse.osbp.xtext.reportdsl.SomeFormat}.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Formatters</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>Formatters</em>' containment reference list.
+	 * @see org.eclipse.osbp.xtext.reportdsl.ReportDSLPackage#getSomeFormats_Formatters()
+	 * @model containment="true"
+	 * @generated
+	 */
+	EList<SomeFormat> getFormatters();
+
+} // SomeFormats
diff --git a/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/SomeGrid.java b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/SomeGrid.java
new file mode 100644
index 0000000..bfdf2ad
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/SomeGrid.java
@@ -0,0 +1,51 @@
+/**
+ * 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:  
+ *  		Christophe Loetz  (Loetz GmbH&Co.KG) - Initial implementation 
+ *  
+ */
+package org.eclipse.osbp.xtext.reportdsl;
+
+import org.eclipse.emf.common.util.EList;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Some Grid</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.SomeGrid#getRows <em>Rows</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.osbp.xtext.reportdsl.ReportDSLPackage#getSomeGrid()
+ * @model
+ * @generated
+ */
+public interface SomeGrid extends ReportLazyResolver {
+	/**
+	 * Returns the value of the '<em><b>Rows</b></em>' containment reference list.
+	 * The list contents are of type {@link org.eclipse.osbp.xtext.reportdsl.GridRow}.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Rows</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>Rows</em>' containment reference list.
+	 * @see org.eclipse.osbp.xtext.reportdsl.ReportDSLPackage#getSomeGrid_Rows()
+	 * @model containment="true"
+	 * @generated
+	 */
+	EList<GridRow> getRows();
+
+} // SomeGrid
diff --git a/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/Style.java b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/Style.java
new file mode 100644
index 0000000..220c6e8
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/Style.java
@@ -0,0 +1,78 @@
+/**
+ * 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:  
+ *  		Christophe Loetz  (Loetz GmbH&Co.KG) - Initial implementation 
+ *  
+ */
+package org.eclipse.osbp.xtext.reportdsl;
+
+import org.eclipse.emf.common.util.EList;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Style</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.Style#getExtends <em>Extends</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.Style#getMediastyles <em>Mediastyles</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.osbp.xtext.reportdsl.ReportDSLPackage#getStyle()
+ * @model
+ * @generated
+ */
+public interface Style extends ReportBase, BaseStyle {
+	/**
+	 * Returns the value of the '<em><b>Extends</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Extends</em>' reference isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Extends</em>' reference.
+	 * @see #setExtends(Style)
+	 * @see org.eclipse.osbp.xtext.reportdsl.ReportDSLPackage#getStyle_Extends()
+	 * @model
+	 * @generated
+	 */
+	Style getExtends();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.xtext.reportdsl.Style#getExtends <em>Extends</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Extends</em>' reference.
+	 * @see #getExtends()
+	 * @generated
+	 */
+	void setExtends(Style value);
+
+	/**
+	 * Returns the value of the '<em><b>Mediastyles</b></em>' containment reference list.
+	 * The list contents are of type {@link org.eclipse.osbp.xtext.reportdsl.MediaStyle}.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Mediastyles</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>Mediastyles</em>' containment reference list.
+	 * @see org.eclipse.osbp.xtext.reportdsl.ReportDSLPackage#getStyle_Mediastyles()
+	 * @model containment="true"
+	 * @generated
+	 */
+	EList<MediaStyle> getMediastyles();
+
+} // Style
diff --git a/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/Styles.java b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/Styles.java
new file mode 100644
index 0000000..7bda8b9
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/Styles.java
@@ -0,0 +1,51 @@
+/**
+ * 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:  
+ *  		Christophe Loetz  (Loetz GmbH&Co.KG) - Initial implementation 
+ *  
+ */
+package org.eclipse.osbp.xtext.reportdsl;
+
+import org.eclipse.emf.common.util.EList;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Styles</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.Styles#getStyles <em>Styles</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.osbp.xtext.reportdsl.ReportDSLPackage#getStyles()
+ * @model
+ * @generated
+ */
+public interface Styles extends ReportLazyResolver {
+	/**
+	 * Returns the value of the '<em><b>Styles</b></em>' containment reference list.
+	 * The list contents are of type {@link org.eclipse.osbp.xtext.reportdsl.Style}.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Styles</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>Styles</em>' containment reference list.
+	 * @see org.eclipse.osbp.xtext.reportdsl.ReportDSLPackage#getStyles_Styles()
+	 * @model containment="true"
+	 * @generated
+	 */
+	EList<Style> getStyles();
+
+} // Styles
diff --git a/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/SubSubTitle.java b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/SubSubTitle.java
new file mode 100644
index 0000000..fb4be04
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/SubSubTitle.java
@@ -0,0 +1,28 @@
+/**
+ * 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:  
+ *  		Christophe Loetz  (Loetz GmbH&Co.KG) - Initial implementation 
+ *  
+ */
+package org.eclipse.osbp.xtext.reportdsl;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Sub Sub Title</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see org.eclipse.osbp.xtext.reportdsl.ReportDSLPackage#getSubSubTitle()
+ * @model
+ * @generated
+ */
+public interface SubSubTitle extends TextElement {
+} // SubSubTitle
diff --git a/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/SubTitle.java b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/SubTitle.java
new file mode 100644
index 0000000..648da76
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/SubTitle.java
@@ -0,0 +1,28 @@
+/**
+ * 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:  
+ *  		Christophe Loetz  (Loetz GmbH&Co.KG) - Initial implementation 
+ *  
+ */
+package org.eclipse.osbp.xtext.reportdsl;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Sub Title</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see org.eclipse.osbp.xtext.reportdsl.ReportDSLPackage#getSubTitle()
+ * @model
+ * @generated
+ */
+public interface SubTitle extends TextElement {
+} // SubTitle
diff --git a/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/TableAggregation.java b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/TableAggregation.java
new file mode 100644
index 0000000..1299e6f
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/TableAggregation.java
@@ -0,0 +1,114 @@
+/**
+ * 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:  
+ *  		Christophe Loetz  (Loetz GmbH&Co.KG) - Initial implementation 
+ *  
+ */
+package org.eclipse.osbp.xtext.reportdsl;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Table Aggregation</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.TableAggregation#getText <em>Text</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.TableAggregation#getAggregation <em>Aggregation</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.TableAggregation#getOnGroup <em>On Group</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.osbp.xtext.reportdsl.ReportDSLPackage#getTableAggregation()
+ * @model
+ * @generated
+ */
+public interface TableAggregation extends TableValueElement {
+	/**
+	 * Returns the value of the '<em><b>Text</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Text</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Text</em>' attribute.
+	 * @see #setText(String)
+	 * @see org.eclipse.osbp.xtext.reportdsl.ReportDSLPackage#getTableAggregation_Text()
+	 * @model unique="false"
+	 * @generated
+	 */
+	String getText();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.xtext.reportdsl.TableAggregation#getText <em>Text</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Text</em>' attribute.
+	 * @see #getText()
+	 * @generated
+	 */
+	void setText(String value);
+
+	/**
+	 * Returns the value of the '<em><b>Aggregation</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Aggregation</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>Aggregation</em>' containment reference.
+	 * @see #setAggregation(TableBaseAggregation)
+	 * @see org.eclipse.osbp.xtext.reportdsl.ReportDSLPackage#getTableAggregation_Aggregation()
+	 * @model containment="true"
+	 * @generated
+	 */
+	TableBaseAggregation getAggregation();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.xtext.reportdsl.TableAggregation#getAggregation <em>Aggregation</em>}' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Aggregation</em>' containment reference.
+	 * @see #getAggregation()
+	 * @generated
+	 */
+	void setAggregation(TableBaseAggregation value);
+
+	/**
+	 * Returns the value of the '<em><b>On Group</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>On Group</em>' reference isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>On Group</em>' reference.
+	 * @see #setOnGroup(DatamartTableGroup)
+	 * @see org.eclipse.osbp.xtext.reportdsl.ReportDSLPackage#getTableAggregation_OnGroup()
+	 * @model
+	 * @generated
+	 */
+	DatamartTableGroup getOnGroup();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.xtext.reportdsl.TableAggregation#getOnGroup <em>On Group</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>On Group</em>' reference.
+	 * @see #getOnGroup()
+	 * @generated
+	 */
+	void setOnGroup(DatamartTableGroup value);
+
+} // TableAggregation
diff --git a/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/TableBaseAggregation.java b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/TableBaseAggregation.java
new file mode 100644
index 0000000..51eb924
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/TableBaseAggregation.java
@@ -0,0 +1,53 @@
+/**
+ * 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:  
+ *  		Christophe Loetz  (Loetz GmbH&Co.KG) - Initial implementation 
+ *  
+ */
+package org.eclipse.osbp.xtext.reportdsl;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.osbp.xtext.datamartdsl.DatamartProperty;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Table Base Aggregation</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.TableBaseAggregation#getValueRefs <em>Value Refs</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.osbp.xtext.reportdsl.ReportDSLPackage#getTableBaseAggregation()
+ * @model
+ * @generated
+ */
+public interface TableBaseAggregation extends ReportLazyResolver {
+	/**
+	 * Returns the value of the '<em><b>Value Refs</b></em>' reference list.
+	 * The list contents are of type {@link org.eclipse.osbp.xtext.datamartdsl.DatamartProperty}.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Value Refs</em>' reference list isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Value Refs</em>' reference list.
+	 * @see org.eclipse.osbp.xtext.reportdsl.ReportDSLPackage#getTableBaseAggregation_ValueRefs()
+	 * @model
+	 * @generated
+	 */
+	EList<DatamartProperty> getValueRefs();
+
+} // TableBaseAggregation
diff --git a/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/TableBinaryAggregation.java b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/TableBinaryAggregation.java
new file mode 100644
index 0000000..68f22a0
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/TableBinaryAggregation.java
@@ -0,0 +1,63 @@
+/**
+ * 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:  
+ *  		Christophe Loetz  (Loetz GmbH&Co.KG) - Initial implementation 
+ *  
+ */
+package org.eclipse.osbp.xtext.reportdsl;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Table Binary Aggregation</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.TableBinaryAggregation#getAggregation <em>Aggregation</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.osbp.xtext.reportdsl.ReportDSLPackage#getTableBinaryAggregation()
+ * @model
+ * @generated
+ */
+public interface TableBinaryAggregation extends TableBaseAggregation {
+	/**
+	 * Returns the value of the '<em><b>Aggregation</b></em>' attribute.
+	 * The literals are from the enumeration {@link org.eclipse.osbp.xtext.reportdsl.BinaryAggregationTypeEnum}.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Aggregation</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Aggregation</em>' attribute.
+	 * @see org.eclipse.osbp.xtext.reportdsl.BinaryAggregationTypeEnum
+	 * @see #setAggregation(BinaryAggregationTypeEnum)
+	 * @see org.eclipse.osbp.xtext.reportdsl.ReportDSLPackage#getTableBinaryAggregation_Aggregation()
+	 * @model unique="false"
+	 * @generated
+	 */
+	BinaryAggregationTypeEnum getAggregation();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.xtext.reportdsl.TableBinaryAggregation#getAggregation <em>Aggregation</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Aggregation</em>' attribute.
+	 * @see org.eclipse.osbp.xtext.reportdsl.BinaryAggregationTypeEnum
+	 * @see #getAggregation()
+	 * @generated
+	 */
+	void setAggregation(BinaryAggregationTypeEnum value);
+
+} // TableBinaryAggregation
diff --git a/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/TableCellColor.java b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/TableCellColor.java
new file mode 100644
index 0000000..20ada93
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/TableCellColor.java
@@ -0,0 +1,60 @@
+/**
+ * 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:  
+ *  		Christophe Loetz  (Loetz GmbH&Co.KG) - Initial implementation 
+ *  
+ */
+package org.eclipse.osbp.xtext.reportdsl;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Table Cell Color</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.TableCellColor#getColor <em>Color</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.osbp.xtext.reportdsl.ReportDSLPackage#getTableCellColor()
+ * @model
+ * @generated
+ */
+public interface TableCellColor extends TableRangeElement {
+	/**
+	 * Returns the value of the '<em><b>Color</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Color</em>' reference isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Color</em>' reference.
+	 * @see #setColor(Color)
+	 * @see org.eclipse.osbp.xtext.reportdsl.ReportDSLPackage#getTableCellColor_Color()
+	 * @model
+	 * @generated
+	 */
+	Color getColor();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.xtext.reportdsl.TableCellColor#getColor <em>Color</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Color</em>' reference.
+	 * @see #getColor()
+	 * @generated
+	 */
+	void setColor(Color value);
+
+} // TableCellColor
diff --git a/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/TableDateDayInterval.java b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/TableDateDayInterval.java
new file mode 100644
index 0000000..52d4ecd
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/TableDateDayInterval.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:  
+ *  		Christophe Loetz  (Loetz GmbH&Co.KG) - Initial implementation 
+ *  
+ */
+package org.eclipse.osbp.xtext.reportdsl;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Table Date Day Interval</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.TableDateDayInterval#getDateIntervalValue <em>Date Interval Value</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.TableDateDayInterval#getDateRange <em>Date Range</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.osbp.xtext.reportdsl.ReportDSLPackage#getTableDateDayInterval()
+ * @model
+ * @generated
+ */
+public interface TableDateDayInterval extends TableInterval {
+	/**
+	 * Returns the value of the '<em><b>Date Interval Value</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Date 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>Date Interval Value</em>' attribute.
+	 * @see #setDateIntervalValue(double)
+	 * @see org.eclipse.osbp.xtext.reportdsl.ReportDSLPackage#getTableDateDayInterval_DateIntervalValue()
+	 * @model unique="false"
+	 * @generated
+	 */
+	double getDateIntervalValue();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.xtext.reportdsl.TableDateDayInterval#getDateIntervalValue <em>Date Interval Value</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Date Interval Value</em>' attribute.
+	 * @see #getDateIntervalValue()
+	 * @generated
+	 */
+	void setDateIntervalValue(double value);
+
+	/**
+	 * Returns the value of the '<em><b>Date Range</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Date 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>Date Range</em>' containment reference.
+	 * @see #setDateRange(TableRangeElement)
+	 * @see org.eclipse.osbp.xtext.reportdsl.ReportDSLPackage#getTableDateDayInterval_DateRange()
+	 * @model containment="true"
+	 * @generated
+	 */
+	TableRangeElement getDateRange();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.xtext.reportdsl.TableDateDayInterval#getDateRange <em>Date Range</em>}' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Date Range</em>' containment reference.
+	 * @see #getDateRange()
+	 * @generated
+	 */
+	void setDateRange(TableRangeElement value);
+
+} // TableDateDayInterval
diff --git a/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/TableDateDayLookup.java b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/TableDateDayLookup.java
new file mode 100644
index 0000000..1a4a0bf
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/TableDateDayLookup.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:  
+ *  		Christophe Loetz  (Loetz GmbH&Co.KG) - Initial implementation 
+ *  
+ */
+package org.eclipse.osbp.xtext.reportdsl;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Table Date Day Lookup</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.TableDateDayLookup#getLookupValue <em>Lookup Value</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.TableDateDayLookup#getDiscrete <em>Discrete</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.osbp.xtext.reportdsl.ReportDSLPackage#getTableDateDayLookup()
+ * @model
+ * @generated
+ */
+public interface TableDateDayLookup 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(double)
+	 * @see org.eclipse.osbp.xtext.reportdsl.ReportDSLPackage#getTableDateDayLookup_LookupValue()
+	 * @model unique="false"
+	 * @generated
+	 */
+	double getLookupValue();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.xtext.reportdsl.TableDateDayLookup#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(double 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.reportdsl.ReportDSLPackage#getTableDateDayLookup_Discrete()
+	 * @model containment="true"
+	 * @generated
+	 */
+	TableRangeElement getDiscrete();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.xtext.reportdsl.TableDateDayLookup#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);
+
+} // TableDateDayLookup
diff --git a/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/TableFormatter.java b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/TableFormatter.java
new file mode 100644
index 0000000..70cb000
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/TableFormatter.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:  
+ *  		Christophe Loetz  (Loetz GmbH&Co.KG) - Initial implementation 
+ *  
+ */
+package org.eclipse.osbp.xtext.reportdsl;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Table Formatter</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.TableFormatter#getFormat <em>Format</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.osbp.xtext.reportdsl.ReportDSLPackage#getTableFormatter()
+ * @model
+ * @generated
+ */
+public interface TableFormatter extends EObject {
+	/**
+	 * Returns the value of the '<em><b>Format</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Format</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Format</em>' attribute.
+	 * @see #setFormat(String)
+	 * @see org.eclipse.osbp.xtext.reportdsl.ReportDSLPackage#getTableFormatter_Format()
+	 * @model unique="false"
+	 * @generated
+	 */
+	String getFormat();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.xtext.reportdsl.TableFormatter#getFormat <em>Format</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Format</em>' attribute.
+	 * @see #getFormat()
+	 * @generated
+	 */
+	void setFormat(String value);
+
+} // TableFormatter
diff --git a/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/TableIcon.java b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/TableIcon.java
new file mode 100644
index 0000000..00102fc
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/TableIcon.java
@@ -0,0 +1,60 @@
+/**
+ * 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:  
+ *  		Christophe Loetz  (Loetz GmbH&Co.KG) - Initial implementation 
+ *  
+ */
+package org.eclipse.osbp.xtext.reportdsl;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Table Icon</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.TableIcon#getIcon <em>Icon</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.osbp.xtext.reportdsl.ReportDSLPackage#getTableIcon()
+ * @model
+ * @generated
+ */
+public interface TableIcon extends TableRangeElement {
+	/**
+	 * Returns the value of the '<em><b>Icon</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Icon</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Icon</em>' attribute.
+	 * @see #setIcon(String)
+	 * @see org.eclipse.osbp.xtext.reportdsl.ReportDSLPackage#getTableIcon_Icon()
+	 * @model unique="false"
+	 * @generated
+	 */
+	String getIcon();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.xtext.reportdsl.TableIcon#getIcon <em>Icon</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Icon</em>' attribute.
+	 * @see #getIcon()
+	 * @generated
+	 */
+	void setIcon(String value);
+
+} // TableIcon
diff --git a/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/TableImage.java b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/TableImage.java
new file mode 100644
index 0000000..5976ef1
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/TableImage.java
@@ -0,0 +1,195 @@
+/**
+ * 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:  
+ *  		Christophe Loetz  (Loetz GmbH&Co.KG) - Initial implementation 
+ *  
+ */
+package org.eclipse.osbp.xtext.reportdsl;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Table Image</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.TableImage#getImagePathPattern <em>Image Path Pattern</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.TableImage#isHideImageLabel <em>Hide Image Label</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.TableImage#isHasParameter <em>Has Parameter</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.TableImage#isResize <em>Resize</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.TableImage#getResizeString <em>Resize String</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.TableImage#getImagePathParameter <em>Image Path Parameter</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.osbp.xtext.reportdsl.ReportDSLPackage#getTableImage()
+ * @model
+ * @generated
+ */
+public interface TableImage extends ReportLazyResolver {
+	/**
+	 * Returns the value of the '<em><b>Image Path Pattern</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Image Path Pattern</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Image Path Pattern</em>' attribute.
+	 * @see #setImagePathPattern(String)
+	 * @see org.eclipse.osbp.xtext.reportdsl.ReportDSLPackage#getTableImage_ImagePathPattern()
+	 * @model unique="false"
+	 * @generated
+	 */
+	String getImagePathPattern();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.xtext.reportdsl.TableImage#getImagePathPattern <em>Image Path Pattern</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Image Path Pattern</em>' attribute.
+	 * @see #getImagePathPattern()
+	 * @generated
+	 */
+	void setImagePathPattern(String value);
+
+	/**
+	 * Returns the value of the '<em><b>Hide Image Label</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Hide Image Label</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Hide Image Label</em>' attribute.
+	 * @see #setHideImageLabel(boolean)
+	 * @see org.eclipse.osbp.xtext.reportdsl.ReportDSLPackage#getTableImage_HideImageLabel()
+	 * @model unique="false"
+	 * @generated
+	 */
+	boolean isHideImageLabel();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.xtext.reportdsl.TableImage#isHideImageLabel <em>Hide Image Label</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Hide Image Label</em>' attribute.
+	 * @see #isHideImageLabel()
+	 * @generated
+	 */
+	void setHideImageLabel(boolean value);
+
+	/**
+	 * Returns the value of the '<em><b>Has Parameter</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Has Parameter</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Has Parameter</em>' attribute.
+	 * @see #setHasParameter(boolean)
+	 * @see org.eclipse.osbp.xtext.reportdsl.ReportDSLPackage#getTableImage_HasParameter()
+	 * @model unique="false"
+	 * @generated
+	 */
+	boolean isHasParameter();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.xtext.reportdsl.TableImage#isHasParameter <em>Has Parameter</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Has Parameter</em>' attribute.
+	 * @see #isHasParameter()
+	 * @generated
+	 */
+	void setHasParameter(boolean value);
+
+	/**
+	 * Returns the value of the '<em><b>Resize</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Resize</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Resize</em>' attribute.
+	 * @see #setResize(boolean)
+	 * @see org.eclipse.osbp.xtext.reportdsl.ReportDSLPackage#getTableImage_Resize()
+	 * @model unique="false"
+	 * @generated
+	 */
+	boolean isResize();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.xtext.reportdsl.TableImage#isResize <em>Resize</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Resize</em>' attribute.
+	 * @see #isResize()
+	 * @generated
+	 */
+	void setResize(boolean value);
+
+	/**
+	 * Returns the value of the '<em><b>Resize String</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Resize String</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Resize String</em>' attribute.
+	 * @see #setResizeString(String)
+	 * @see org.eclipse.osbp.xtext.reportdsl.ReportDSLPackage#getTableImage_ResizeString()
+	 * @model unique="false"
+	 * @generated
+	 */
+	String getResizeString();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.xtext.reportdsl.TableImage#getResizeString <em>Resize String</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Resize String</em>' attribute.
+	 * @see #getResizeString()
+	 * @generated
+	 */
+	void setResizeString(String value);
+
+	/**
+	 * Returns the value of the '<em><b>Image Path Parameter</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Image Path Parameter</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>Image Path Parameter</em>' containment reference.
+	 * @see #setImagePathParameter(TableValueElement)
+	 * @see org.eclipse.osbp.xtext.reportdsl.ReportDSLPackage#getTableImage_ImagePathParameter()
+	 * @model containment="true"
+	 * @generated
+	 */
+	TableValueElement getImagePathParameter();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.xtext.reportdsl.TableImage#getImagePathParameter <em>Image Path Parameter</em>}' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Image Path Parameter</em>' containment reference.
+	 * @see #getImagePathParameter()
+	 * @generated
+	 */
+	void setImagePathParameter(TableValueElement value);
+
+} // TableImage
diff --git a/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/TableInterval.java b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/TableInterval.java
new file mode 100644
index 0000000..63bdae4
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/TableInterval.java
@@ -0,0 +1,28 @@
+/**
+ * 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:  
+ *  		Christophe Loetz  (Loetz GmbH&Co.KG) - Initial implementation 
+ *  
+ */
+package org.eclipse.osbp.xtext.reportdsl;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Table Interval</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see org.eclipse.osbp.xtext.reportdsl.ReportDSLPackage#getTableInterval()
+ * @model interface="true" abstract="true"
+ * @generated
+ */
+public interface TableInterval extends ReportLazyResolver {
+} // TableInterval
diff --git a/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/TableLookup.java b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/TableLookup.java
new file mode 100644
index 0000000..920be15
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/TableLookup.java
@@ -0,0 +1,28 @@
+/**
+ * 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:  
+ *  		Christophe Loetz  (Loetz GmbH&Co.KG) - Initial implementation 
+ *  
+ */
+package org.eclipse.osbp.xtext.reportdsl;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Table Lookup</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see org.eclipse.osbp.xtext.reportdsl.ReportDSLPackage#getTableLookup()
+ * @model interface="true" abstract="true"
+ * @generated
+ */
+public interface TableLookup extends ReportLazyResolver {
+} // TableLookup
diff --git a/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/TableMultipleAggregation.java b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/TableMultipleAggregation.java
new file mode 100644
index 0000000..e139aba
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/TableMultipleAggregation.java
@@ -0,0 +1,63 @@
+/**
+ * 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:  
+ *  		Christophe Loetz  (Loetz GmbH&Co.KG) - Initial implementation 
+ *  
+ */
+package org.eclipse.osbp.xtext.reportdsl;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Table Multiple Aggregation</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.TableMultipleAggregation#getAggregation <em>Aggregation</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.osbp.xtext.reportdsl.ReportDSLPackage#getTableMultipleAggregation()
+ * @model
+ * @generated
+ */
+public interface TableMultipleAggregation extends TableBaseAggregation {
+	/**
+	 * Returns the value of the '<em><b>Aggregation</b></em>' attribute.
+	 * The literals are from the enumeration {@link org.eclipse.osbp.xtext.reportdsl.MultipleAggregationTypeEnum}.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Aggregation</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Aggregation</em>' attribute.
+	 * @see org.eclipse.osbp.xtext.reportdsl.MultipleAggregationTypeEnum
+	 * @see #setAggregation(MultipleAggregationTypeEnum)
+	 * @see org.eclipse.osbp.xtext.reportdsl.ReportDSLPackage#getTableMultipleAggregation_Aggregation()
+	 * @model unique="false"
+	 * @generated
+	 */
+	MultipleAggregationTypeEnum getAggregation();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.xtext.reportdsl.TableMultipleAggregation#getAggregation <em>Aggregation</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Aggregation</em>' attribute.
+	 * @see org.eclipse.osbp.xtext.reportdsl.MultipleAggregationTypeEnum
+	 * @see #getAggregation()
+	 * @generated
+	 */
+	void setAggregation(MultipleAggregationTypeEnum value);
+
+} // TableMultipleAggregation
diff --git a/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/TableNumberInterval.java b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/TableNumberInterval.java
new file mode 100644
index 0000000..4b5e154
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/TableNumberInterval.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:  
+ *  		Christophe Loetz  (Loetz GmbH&Co.KG) - Initial implementation 
+ *  
+ */
+package org.eclipse.osbp.xtext.reportdsl;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Table Number Interval</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.TableNumberInterval#getNumberIntervalValue <em>Number Interval Value</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.TableNumberInterval#getNumberRange <em>Number Range</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.osbp.xtext.reportdsl.ReportDSLPackage#getTableNumberInterval()
+ * @model
+ * @generated
+ */
+public interface TableNumberInterval extends TableInterval {
+	/**
+	 * Returns the value of the '<em><b>Number Interval Value</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Number 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>Number Interval Value</em>' attribute.
+	 * @see #setNumberIntervalValue(double)
+	 * @see org.eclipse.osbp.xtext.reportdsl.ReportDSLPackage#getTableNumberInterval_NumberIntervalValue()
+	 * @model unique="false"
+	 * @generated
+	 */
+	double getNumberIntervalValue();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.xtext.reportdsl.TableNumberInterval#getNumberIntervalValue <em>Number Interval Value</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Number Interval Value</em>' attribute.
+	 * @see #getNumberIntervalValue()
+	 * @generated
+	 */
+	void setNumberIntervalValue(double value);
+
+	/**
+	 * Returns the value of the '<em><b>Number Range</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Number 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>Number Range</em>' containment reference.
+	 * @see #setNumberRange(TableRangeElement)
+	 * @see org.eclipse.osbp.xtext.reportdsl.ReportDSLPackage#getTableNumberInterval_NumberRange()
+	 * @model containment="true"
+	 * @generated
+	 */
+	TableRangeElement getNumberRange();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.xtext.reportdsl.TableNumberInterval#getNumberRange <em>Number Range</em>}' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Number Range</em>' containment reference.
+	 * @see #getNumberRange()
+	 * @generated
+	 */
+	void setNumberRange(TableRangeElement value);
+
+} // TableNumberInterval
diff --git a/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/TableNumberLookup.java b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/TableNumberLookup.java
new file mode 100644
index 0000000..fd32691
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/TableNumberLookup.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:  
+ *  		Christophe Loetz  (Loetz GmbH&Co.KG) - Initial implementation 
+ *  
+ */
+package org.eclipse.osbp.xtext.reportdsl;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Table Number Lookup</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.TableNumberLookup#getLookupValue <em>Lookup Value</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.TableNumberLookup#getDiscrete <em>Discrete</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.osbp.xtext.reportdsl.ReportDSLPackage#getTableNumberLookup()
+ * @model
+ * @generated
+ */
+public interface TableNumberLookup 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(double)
+	 * @see org.eclipse.osbp.xtext.reportdsl.ReportDSLPackage#getTableNumberLookup_LookupValue()
+	 * @model unique="false"
+	 * @generated
+	 */
+	double getLookupValue();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.xtext.reportdsl.TableNumberLookup#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(double 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.reportdsl.ReportDSLPackage#getTableNumberLookup_Discrete()
+	 * @model containment="true"
+	 * @generated
+	 */
+	TableRangeElement getDiscrete();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.xtext.reportdsl.TableNumberLookup#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);
+
+} // TableNumberLookup
diff --git a/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/TableProperty.java b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/TableProperty.java
new file mode 100644
index 0000000..9c67b83
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/TableProperty.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:  
+ *  		Christophe Loetz  (Loetz GmbH&Co.KG) - Initial implementation 
+ *  
+ */
+package org.eclipse.osbp.xtext.reportdsl;
+
+import org.eclipse.osbp.xtext.datamartdsl.DatamartProperty;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Table Property</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.TableProperty#getValueRef <em>Value Ref</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.osbp.xtext.reportdsl.ReportDSLPackage#getTableProperty()
+ * @model
+ * @generated
+ */
+public interface TableProperty extends 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(DatamartProperty)
+	 * @see org.eclipse.osbp.xtext.reportdsl.ReportDSLPackage#getTableProperty_ValueRef()
+	 * @model
+	 * @generated
+	 */
+	DatamartProperty getValueRef();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.xtext.reportdsl.TableProperty#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(DatamartProperty value);
+
+} // TableProperty
diff --git a/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/TablePureAggregation.java b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/TablePureAggregation.java
new file mode 100644
index 0000000..8dc128e
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/TablePureAggregation.java
@@ -0,0 +1,63 @@
+/**
+ * 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:  
+ *  		Christophe Loetz  (Loetz GmbH&Co.KG) - Initial implementation 
+ *  
+ */
+package org.eclipse.osbp.xtext.reportdsl;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Table Pure Aggregation</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.TablePureAggregation#getAggregation <em>Aggregation</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.osbp.xtext.reportdsl.ReportDSLPackage#getTablePureAggregation()
+ * @model
+ * @generated
+ */
+public interface TablePureAggregation extends TableBaseAggregation {
+	/**
+	 * Returns the value of the '<em><b>Aggregation</b></em>' attribute.
+	 * The literals are from the enumeration {@link org.eclipse.osbp.xtext.reportdsl.PureAggregationTypeEnum}.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Aggregation</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Aggregation</em>' attribute.
+	 * @see org.eclipse.osbp.xtext.reportdsl.PureAggregationTypeEnum
+	 * @see #setAggregation(PureAggregationTypeEnum)
+	 * @see org.eclipse.osbp.xtext.reportdsl.ReportDSLPackage#getTablePureAggregation_Aggregation()
+	 * @model unique="false"
+	 * @generated
+	 */
+	PureAggregationTypeEnum getAggregation();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.xtext.reportdsl.TablePureAggregation#getAggregation <em>Aggregation</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Aggregation</em>' attribute.
+	 * @see org.eclipse.osbp.xtext.reportdsl.PureAggregationTypeEnum
+	 * @see #getAggregation()
+	 * @generated
+	 */
+	void setAggregation(PureAggregationTypeEnum value);
+
+} // TablePureAggregation
diff --git a/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/TableRangeElement.java b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/TableRangeElement.java
new file mode 100644
index 0000000..d484e59
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/TableRangeElement.java
@@ -0,0 +1,28 @@
+/**
+ * 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:  
+ *  		Christophe Loetz  (Loetz GmbH&Co.KG) - Initial implementation 
+ *  
+ */
+package org.eclipse.osbp.xtext.reportdsl;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Table Range Element</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see org.eclipse.osbp.xtext.reportdsl.ReportDSLPackage#getTableRangeElement()
+ * @model interface="true" abstract="true"
+ * @generated
+ */
+public interface TableRangeElement extends ReportLazyResolver {
+} // TableRangeElement
diff --git a/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/TableStringLookup.java b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/TableStringLookup.java
new file mode 100644
index 0000000..28b54a9
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/TableStringLookup.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:  
+ *  		Christophe Loetz  (Loetz GmbH&Co.KG) - Initial implementation 
+ *  
+ */
+package org.eclipse.osbp.xtext.reportdsl;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Table String Lookup</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.TableStringLookup#getLookupValue <em>Lookup Value</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.TableStringLookup#getDiscrete <em>Discrete</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.osbp.xtext.reportdsl.ReportDSLPackage#getTableStringLookup()
+ * @model
+ * @generated
+ */
+public interface TableStringLookup 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(String)
+	 * @see org.eclipse.osbp.xtext.reportdsl.ReportDSLPackage#getTableStringLookup_LookupValue()
+	 * @model unique="false"
+	 * @generated
+	 */
+	String getLookupValue();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.xtext.reportdsl.TableStringLookup#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(String 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.reportdsl.ReportDSLPackage#getTableStringLookup_Discrete()
+	 * @model containment="true"
+	 * @generated
+	 */
+	TableRangeElement getDiscrete();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.xtext.reportdsl.TableStringLookup#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);
+
+} // TableStringLookup
diff --git a/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/TableTextColor.java b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/TableTextColor.java
new file mode 100644
index 0000000..58107e2
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/TableTextColor.java
@@ -0,0 +1,60 @@
+/**
+ * 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:  
+ *  		Christophe Loetz  (Loetz GmbH&Co.KG) - Initial implementation 
+ *  
+ */
+package org.eclipse.osbp.xtext.reportdsl;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Table Text Color</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.TableTextColor#getColor <em>Color</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.osbp.xtext.reportdsl.ReportDSLPackage#getTableTextColor()
+ * @model
+ * @generated
+ */
+public interface TableTextColor extends TableRangeElement {
+	/**
+	 * Returns the value of the '<em><b>Color</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Color</em>' reference isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Color</em>' reference.
+	 * @see #setColor(Color)
+	 * @see org.eclipse.osbp.xtext.reportdsl.ReportDSLPackage#getTableTextColor_Color()
+	 * @model
+	 * @generated
+	 */
+	Color getColor();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.xtext.reportdsl.TableTextColor#getColor <em>Color</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Color</em>' reference.
+	 * @see #getColor()
+	 * @generated
+	 */
+	void setColor(Color value);
+
+} // TableTextColor
diff --git a/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/TableTooltip.java b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/TableTooltip.java
new file mode 100644
index 0000000..908ca92
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/TableTooltip.java
@@ -0,0 +1,60 @@
+/**
+ * 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:  
+ *  		Christophe Loetz  (Loetz GmbH&Co.KG) - Initial implementation 
+ *  
+ */
+package org.eclipse.osbp.xtext.reportdsl;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Table Tooltip</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.TableTooltip#getTooltip <em>Tooltip</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.osbp.xtext.reportdsl.ReportDSLPackage#getTableTooltip()
+ * @model
+ * @generated
+ */
+public interface TableTooltip extends TableRangeElement {
+	/**
+	 * Returns the value of the '<em><b>Tooltip</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Tooltip</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Tooltip</em>' attribute.
+	 * @see #setTooltip(String)
+	 * @see org.eclipse.osbp.xtext.reportdsl.ReportDSLPackage#getTableTooltip_Tooltip()
+	 * @model unique="false"
+	 * @generated
+	 */
+	String getTooltip();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.xtext.reportdsl.TableTooltip#getTooltip <em>Tooltip</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Tooltip</em>' attribute.
+	 * @see #getTooltip()
+	 * @generated
+	 */
+	void setTooltip(String value);
+
+} // TableTooltip
diff --git a/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/TableTrend.java b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/TableTrend.java
new file mode 100644
index 0000000..06ba8b1
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/TableTrend.java
@@ -0,0 +1,63 @@
+/**
+ * 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:  
+ *  		Christophe Loetz  (Loetz GmbH&Co.KG) - Initial implementation 
+ *  
+ */
+package org.eclipse.osbp.xtext.reportdsl;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Table Trend</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.TableTrend#getIcon <em>Icon</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.osbp.xtext.reportdsl.ReportDSLPackage#getTableTrend()
+ * @model
+ * @generated
+ */
+public interface TableTrend extends TableRangeElement {
+	/**
+	 * Returns the value of the '<em><b>Icon</b></em>' attribute.
+	 * The literals are from the enumeration {@link org.eclipse.osbp.xtext.reportdsl.TrendIconEnum}.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Icon</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Icon</em>' attribute.
+	 * @see org.eclipse.osbp.xtext.reportdsl.TrendIconEnum
+	 * @see #setIcon(TrendIconEnum)
+	 * @see org.eclipse.osbp.xtext.reportdsl.ReportDSLPackage#getTableTrend_Icon()
+	 * @model unique="false"
+	 * @generated
+	 */
+	TrendIconEnum getIcon();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.xtext.reportdsl.TableTrend#getIcon <em>Icon</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Icon</em>' attribute.
+	 * @see org.eclipse.osbp.xtext.reportdsl.TrendIconEnum
+	 * @see #getIcon()
+	 * @generated
+	 */
+	void setIcon(TrendIconEnum value);
+
+} // TableTrend
diff --git a/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/TableUnaryAggregation.java b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/TableUnaryAggregation.java
new file mode 100644
index 0000000..b07becc
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/TableUnaryAggregation.java
@@ -0,0 +1,63 @@
+/**
+ * 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:  
+ *  		Christophe Loetz  (Loetz GmbH&Co.KG) - Initial implementation 
+ *  
+ */
+package org.eclipse.osbp.xtext.reportdsl;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Table Unary Aggregation</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.TableUnaryAggregation#getAggregation <em>Aggregation</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.osbp.xtext.reportdsl.ReportDSLPackage#getTableUnaryAggregation()
+ * @model
+ * @generated
+ */
+public interface TableUnaryAggregation extends TableBaseAggregation {
+	/**
+	 * Returns the value of the '<em><b>Aggregation</b></em>' attribute.
+	 * The literals are from the enumeration {@link org.eclipse.osbp.xtext.reportdsl.UnaryAggregationTypeEnum}.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Aggregation</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Aggregation</em>' attribute.
+	 * @see org.eclipse.osbp.xtext.reportdsl.UnaryAggregationTypeEnum
+	 * @see #setAggregation(UnaryAggregationTypeEnum)
+	 * @see org.eclipse.osbp.xtext.reportdsl.ReportDSLPackage#getTableUnaryAggregation_Aggregation()
+	 * @model unique="false"
+	 * @generated
+	 */
+	UnaryAggregationTypeEnum getAggregation();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.xtext.reportdsl.TableUnaryAggregation#getAggregation <em>Aggregation</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Aggregation</em>' attribute.
+	 * @see org.eclipse.osbp.xtext.reportdsl.UnaryAggregationTypeEnum
+	 * @see #getAggregation()
+	 * @generated
+	 */
+	void setAggregation(UnaryAggregationTypeEnum value);
+
+} // TableUnaryAggregation
diff --git a/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/TableValueElement.java b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/TableValueElement.java
new file mode 100644
index 0000000..d22bef5
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/TableValueElement.java
@@ -0,0 +1,28 @@
+/**
+ * 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:  
+ *  		Christophe Loetz  (Loetz GmbH&Co.KG) - Initial implementation 
+ *  
+ */
+package org.eclipse.osbp.xtext.reportdsl;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Table Value Element</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see org.eclipse.osbp.xtext.reportdsl.ReportDSLPackage#getTableValueElement()
+ * @model interface="true" abstract="true"
+ * @generated
+ */
+public interface TableValueElement extends ReportLazyResolver {
+} // TableValueElement
diff --git a/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/Text.java b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/Text.java
new file mode 100644
index 0000000..039cc2c
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/Text.java
@@ -0,0 +1,28 @@
+/**
+ * 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:  
+ *  		Christophe Loetz  (Loetz GmbH&Co.KG) - Initial implementation 
+ *  
+ */
+package org.eclipse.osbp.xtext.reportdsl;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Text</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see org.eclipse.osbp.xtext.reportdsl.ReportDSLPackage#getText()
+ * @model
+ * @generated
+ */
+public interface Text extends TextElement {
+} // Text
diff --git a/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/TextAlign.java b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/TextAlign.java
new file mode 100644
index 0000000..0c68757
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/TextAlign.java
@@ -0,0 +1,270 @@
+/**
+ * Copyright (c) 2013-2014, 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 
+ * 
+ *  Based on ideas from Xtext, Xtend, Xcore
+ *   
+ *  Contributors:  
+ *  		Christophe Loetz  (Loetz GmbH&Co.KG) - Initial implementation 
+ *  
+ */
+package org.eclipse.osbp.xtext.reportdsl;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.emf.common.util.Enumerator;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the literals of the enumeration '<em><b>Text Align</b></em>',
+ * and utility methods for working with them.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.osbp.xtext.reportdsl.ReportDSLPackage#getTextAlign()
+ * @model
+ * @generated
+ */
+public enum TextAlign implements Enumerator {
+	/**
+	 * The '<em><b>NULL</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #NULL_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	NULL(0, "NULL", ""),
+
+	/**
+	 * The '<em><b>LEFT</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #LEFT_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	LEFT(0, "LEFT", "left"),
+
+	/**
+	 * The '<em><b>CENTER</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #CENTER_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	CENTER(0, "CENTER", "center"),
+
+	/**
+	 * The '<em><b>RIGHT</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #RIGHT_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	RIGHT(0, "RIGHT", "right");
+
+	/**
+	 * The '<em><b>NULL</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>NULL</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @see #NULL
+	 * @model literal=""
+	 * @generated
+	 * @ordered
+	 */
+	public static final int NULL_VALUE = 0;
+
+	/**
+	 * The '<em><b>LEFT</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>LEFT</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @see #LEFT
+	 * @model literal="left"
+	 * @generated
+	 * @ordered
+	 */
+	public static final int LEFT_VALUE = 0;
+
+	/**
+	 * The '<em><b>CENTER</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>CENTER</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @see #CENTER
+	 * @model literal="center"
+	 * @generated
+	 * @ordered
+	 */
+	public static final int CENTER_VALUE = 0;
+
+	/**
+	 * The '<em><b>RIGHT</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>RIGHT</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @see #RIGHT
+	 * @model literal="right"
+	 * @generated
+	 * @ordered
+	 */
+	public static final int RIGHT_VALUE = 0;
+
+	/**
+	 * An array of all the '<em><b>Text Align</b></em>' enumerators.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private static final TextAlign[] VALUES_ARRAY =
+		new TextAlign[] {
+			NULL,
+			LEFT,
+			CENTER,
+			RIGHT,
+		};
+
+	/**
+	 * A public read-only list of all the '<em><b>Text Align</b></em>' enumerators.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static final List<TextAlign> VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
+
+	/**
+	 * Returns the '<em><b>Text Align</b></em>' literal with the specified literal value.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static TextAlign get(String literal) {
+		for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+			TextAlign result = VALUES_ARRAY[i];
+			if (result.toString().equals(literal)) {
+				return result;
+			}
+		}
+		return null;
+	}
+
+	/**
+	 * Returns the '<em><b>Text Align</b></em>' literal with the specified name.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static TextAlign getByName(String name) {
+		for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+			TextAlign result = VALUES_ARRAY[i];
+			if (result.getName().equals(name)) {
+				return result;
+			}
+		}
+		return null;
+	}
+
+	/**
+	 * Returns the '<em><b>Text Align</b></em>' literal with the specified integer value.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static TextAlign get(int value) {
+		switch (value) {
+			case NULL_VALUE: return NULL;
+		}
+		return null;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private final int value;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private final String name;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private final String literal;
+
+	/**
+	 * Only this class can construct instances.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private TextAlign(int value, String name, String literal) {
+		this.value = value;
+		this.name = name;
+		this.literal = literal;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public int getValue() {
+	  return value;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getName() {
+	  return name;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getLiteral() {
+	  return literal;
+	}
+
+	/**
+	 * Returns the literal value of the enumerator, which is its string representation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String toString() {
+		return literal;
+	}
+	
+} //TextAlign
diff --git a/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/TextAlignEnum.java b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/TextAlignEnum.java
new file mode 100644
index 0000000..81ecc1b
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/TextAlignEnum.java
@@ -0,0 +1,270 @@
+/**
+ * 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:  
+ *  		Christophe Loetz  (Loetz GmbH&Co.KG) - Initial implementation 
+ *  
+ */
+package org.eclipse.osbp.xtext.reportdsl;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.emf.common.util.Enumerator;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the literals of the enumeration '<em><b>Text Align Enum</b></em>',
+ * and utility methods for working with them.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.osbp.xtext.reportdsl.ReportDSLPackage#getTextAlignEnum()
+ * @model
+ * @generated
+ */
+public enum TextAlignEnum implements Enumerator {
+	/**
+	 * The '<em><b>NULL</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #NULL_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	NULL(0, "NULL", ""),
+
+	/**
+	 * The '<em><b>LEFT</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #LEFT_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	LEFT(0, "LEFT", "left"),
+
+	/**
+	 * The '<em><b>CENTER</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #CENTER_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	CENTER(0, "CENTER", "center"),
+
+	/**
+	 * The '<em><b>RIGHT</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #RIGHT_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	RIGHT(0, "RIGHT", "right");
+
+	/**
+	 * The '<em><b>NULL</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>NULL</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @see #NULL
+	 * @model literal=""
+	 * @generated
+	 * @ordered
+	 */
+	public static final int NULL_VALUE = 0;
+
+	/**
+	 * The '<em><b>LEFT</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>LEFT</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @see #LEFT
+	 * @model literal="left"
+	 * @generated
+	 * @ordered
+	 */
+	public static final int LEFT_VALUE = 0;
+
+	/**
+	 * The '<em><b>CENTER</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>CENTER</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @see #CENTER
+	 * @model literal="center"
+	 * @generated
+	 * @ordered
+	 */
+	public static final int CENTER_VALUE = 0;
+
+	/**
+	 * The '<em><b>RIGHT</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>RIGHT</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @see #RIGHT
+	 * @model literal="right"
+	 * @generated
+	 * @ordered
+	 */
+	public static final int RIGHT_VALUE = 0;
+
+	/**
+	 * An array of all the '<em><b>Text Align Enum</b></em>' enumerators.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private static final TextAlignEnum[] VALUES_ARRAY =
+		new TextAlignEnum[] {
+			NULL,
+			LEFT,
+			CENTER,
+			RIGHT,
+		};
+
+	/**
+	 * A public read-only list of all the '<em><b>Text Align Enum</b></em>' enumerators.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static final List<TextAlignEnum> VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
+
+	/**
+	 * Returns the '<em><b>Text Align Enum</b></em>' literal with the specified literal value.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static TextAlignEnum get(String literal) {
+		for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+			TextAlignEnum result = VALUES_ARRAY[i];
+			if (result.toString().equals(literal)) {
+				return result;
+			}
+		}
+		return null;
+	}
+
+	/**
+	 * Returns the '<em><b>Text Align Enum</b></em>' literal with the specified name.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static TextAlignEnum getByName(String name) {
+		for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+			TextAlignEnum result = VALUES_ARRAY[i];
+			if (result.getName().equals(name)) {
+				return result;
+			}
+		}
+		return null;
+	}
+
+	/**
+	 * Returns the '<em><b>Text Align Enum</b></em>' literal with the specified integer value.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static TextAlignEnum get(int value) {
+		switch (value) {
+			case NULL_VALUE: return NULL;
+		}
+		return null;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private final int value;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private final String name;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private final String literal;
+
+	/**
+	 * Only this class can construct instances.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private TextAlignEnum(int value, String name, String literal) {
+		this.value = value;
+		this.name = name;
+		this.literal = literal;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public int getValue() {
+	  return value;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getName() {
+	  return name;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getLiteral() {
+	  return literal;
+	}
+
+	/**
+	 * Returns the literal value of the enumerator, which is its string representation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String toString() {
+		return literal;
+	}
+	
+} //TextAlignEnum
diff --git a/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/TextElement.java b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/TextElement.java
new file mode 100644
index 0000000..4d449ff
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/TextElement.java
@@ -0,0 +1,60 @@
+/**
+ * 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:  
+ *  		Christophe Loetz  (Loetz GmbH&Co.KG) - Initial implementation 
+ *  
+ */
+package org.eclipse.osbp.xtext.reportdsl;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Text Element</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.TextElement#getText <em>Text</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.osbp.xtext.reportdsl.ReportDSLPackage#getTextElement()
+ * @model
+ * @generated
+ */
+public interface TextElement extends Element, WithStyle {
+	/**
+	 * Returns the value of the '<em><b>Text</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Text</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Text</em>' attribute.
+	 * @see #setText(String)
+	 * @see org.eclipse.osbp.xtext.reportdsl.ReportDSLPackage#getTextElement_Text()
+	 * @model unique="false"
+	 * @generated
+	 */
+	String getText();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.xtext.reportdsl.TextElement#getText <em>Text</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Text</em>' attribute.
+	 * @see #getText()
+	 * @generated
+	 */
+	void setText(String value);
+
+} // TextElement
diff --git a/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/TimeFormat.java b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/TimeFormat.java
new file mode 100644
index 0000000..82a45e8
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/TimeFormat.java
@@ -0,0 +1,63 @@
+/**
+ * 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:  
+ *  		Christophe Loetz  (Loetz GmbH&Co.KG) - Initial implementation 
+ *  
+ */
+package org.eclipse.osbp.xtext.reportdsl;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Time Format</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.TimeFormat#getReport_category <em>Report category</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.osbp.xtext.reportdsl.ReportDSLPackage#getTimeFormat()
+ * @model
+ * @generated
+ */
+public interface TimeFormat extends SomeFormat {
+	/**
+	 * Returns the value of the '<em><b>Report category</b></em>' attribute.
+	 * The literals are from the enumeration {@link org.eclipse.osbp.xtext.reportdsl.TimeFormatCategoryEnum}.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Report category</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Report category</em>' attribute.
+	 * @see org.eclipse.osbp.xtext.reportdsl.TimeFormatCategoryEnum
+	 * @see #setReport_category(TimeFormatCategoryEnum)
+	 * @see org.eclipse.osbp.xtext.reportdsl.ReportDSLPackage#getTimeFormat_Report_category()
+	 * @model unique="false"
+	 * @generated
+	 */
+	TimeFormatCategoryEnum getReport_category();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.xtext.reportdsl.TimeFormat#getReport_category <em>Report category</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Report category</em>' attribute.
+	 * @see org.eclipse.osbp.xtext.reportdsl.TimeFormatCategoryEnum
+	 * @see #getReport_category()
+	 * @generated
+	 */
+	void setReport_category(TimeFormatCategoryEnum value);
+
+} // TimeFormat
diff --git a/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/TimeFormatCategory.java b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/TimeFormatCategory.java
new file mode 100644
index 0000000..cabbeb0
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/TimeFormatCategory.java
@@ -0,0 +1,192 @@
+/**
+ * Copyright (c) 2013-2014, 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 
+ * 
+ *  Based on ideas from Xtext, Xtend, Xcore
+ *   
+ *  Contributors:  
+ *  		Christophe Loetz  (Loetz GmbH&Co.KG) - Initial implementation 
+ *  
+ */
+package org.eclipse.osbp.xtext.reportdsl;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.emf.common.util.Enumerator;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the literals of the enumeration '<em><b>Time Format Category</b></em>',
+ * and utility methods for working with them.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.osbp.xtext.reportdsl.ReportDSLPackage#getTimeFormatCategory()
+ * @model
+ * @generated
+ */
+public enum TimeFormatCategory implements Enumerator {
+	/**
+	 * The '<em><b>CUSTOM</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #CUSTOM_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	CUSTOM(0, "CUSTOM", "custom");
+
+	/**
+	 * The '<em><b>CUSTOM</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>CUSTOM</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @see #CUSTOM
+	 * @model literal="custom"
+	 * @generated
+	 * @ordered
+	 */
+	public static final int CUSTOM_VALUE = 0;
+
+	/**
+	 * An array of all the '<em><b>Time Format Category</b></em>' enumerators.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private static final TimeFormatCategory[] VALUES_ARRAY =
+		new TimeFormatCategory[] {
+			CUSTOM,
+		};
+
+	/**
+	 * A public read-only list of all the '<em><b>Time Format Category</b></em>' enumerators.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static final List<TimeFormatCategory> VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
+
+	/**
+	 * Returns the '<em><b>Time Format Category</b></em>' literal with the specified literal value.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static TimeFormatCategory get(String literal) {
+		for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+			TimeFormatCategory result = VALUES_ARRAY[i];
+			if (result.toString().equals(literal)) {
+				return result;
+			}
+		}
+		return null;
+	}
+
+	/**
+	 * Returns the '<em><b>Time Format Category</b></em>' literal with the specified name.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static TimeFormatCategory getByName(String name) {
+		for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+			TimeFormatCategory result = VALUES_ARRAY[i];
+			if (result.getName().equals(name)) {
+				return result;
+			}
+		}
+		return null;
+	}
+
+	/**
+	 * Returns the '<em><b>Time Format Category</b></em>' literal with the specified integer value.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static TimeFormatCategory get(int value) {
+		switch (value) {
+			case CUSTOM_VALUE: return CUSTOM;
+		}
+		return null;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private final int value;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private final String name;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private final String literal;
+
+	/**
+	 * Only this class can construct instances.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private TimeFormatCategory(int value, String name, String literal) {
+		this.value = value;
+		this.name = name;
+		this.literal = literal;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public int getValue() {
+	  return value;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getName() {
+	  return name;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getLiteral() {
+	  return literal;
+	}
+
+	/**
+	 * Returns the literal value of the enumerator, which is its string representation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String toString() {
+		return literal;
+	}
+	
+} //TimeFormatCategory
diff --git a/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/TimeFormatCategoryEnum.java b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/TimeFormatCategoryEnum.java
new file mode 100644
index 0000000..ca797f5
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/TimeFormatCategoryEnum.java
@@ -0,0 +1,192 @@
+/**
+ * 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:  
+ *  		Christophe Loetz  (Loetz GmbH&Co.KG) - Initial implementation 
+ *  
+ */
+package org.eclipse.osbp.xtext.reportdsl;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.emf.common.util.Enumerator;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the literals of the enumeration '<em><b>Time Format Category Enum</b></em>',
+ * and utility methods for working with them.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.osbp.xtext.reportdsl.ReportDSLPackage#getTimeFormatCategoryEnum()
+ * @model
+ * @generated
+ */
+public enum TimeFormatCategoryEnum implements Enumerator {
+	/**
+	 * The '<em><b>CUSTOM</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #CUSTOM_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	CUSTOM(0, "CUSTOM", "custom");
+
+	/**
+	 * The '<em><b>CUSTOM</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>CUSTOM</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @see #CUSTOM
+	 * @model literal="custom"
+	 * @generated
+	 * @ordered
+	 */
+	public static final int CUSTOM_VALUE = 0;
+
+	/**
+	 * An array of all the '<em><b>Time Format Category Enum</b></em>' enumerators.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private static final TimeFormatCategoryEnum[] VALUES_ARRAY =
+		new TimeFormatCategoryEnum[] {
+			CUSTOM,
+		};
+
+	/**
+	 * A public read-only list of all the '<em><b>Time Format Category Enum</b></em>' enumerators.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static final List<TimeFormatCategoryEnum> VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
+
+	/**
+	 * Returns the '<em><b>Time Format Category Enum</b></em>' literal with the specified literal value.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static TimeFormatCategoryEnum get(String literal) {
+		for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+			TimeFormatCategoryEnum result = VALUES_ARRAY[i];
+			if (result.toString().equals(literal)) {
+				return result;
+			}
+		}
+		return null;
+	}
+
+	/**
+	 * Returns the '<em><b>Time Format Category Enum</b></em>' literal with the specified name.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static TimeFormatCategoryEnum getByName(String name) {
+		for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+			TimeFormatCategoryEnum result = VALUES_ARRAY[i];
+			if (result.getName().equals(name)) {
+				return result;
+			}
+		}
+		return null;
+	}
+
+	/**
+	 * Returns the '<em><b>Time Format Category Enum</b></em>' literal with the specified integer value.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static TimeFormatCategoryEnum get(int value) {
+		switch (value) {
+			case CUSTOM_VALUE: return CUSTOM;
+		}
+		return null;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private final int value;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private final String name;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private final String literal;
+
+	/**
+	 * Only this class can construct instances.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private TimeFormatCategoryEnum(int value, String name, String literal) {
+		this.value = value;
+		this.name = name;
+		this.literal = literal;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public int getValue() {
+	  return value;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getName() {
+	  return name;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getLiteral() {
+	  return literal;
+	}
+
+	/**
+	 * Returns the literal value of the enumerator, which is its string representation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String toString() {
+		return literal;
+	}
+	
+} //TimeFormatCategoryEnum
diff --git a/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/Title.java b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/Title.java
new file mode 100644
index 0000000..ea66d80
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/Title.java
@@ -0,0 +1,28 @@
+/**
+ * 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:  
+ *  		Christophe Loetz  (Loetz GmbH&Co.KG) - Initial implementation 
+ *  
+ */
+package org.eclipse.osbp.xtext.reportdsl;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Title</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see org.eclipse.osbp.xtext.reportdsl.ReportDSLPackage#getTitle()
+ * @model
+ * @generated
+ */
+public interface Title extends TextElement {
+} // Title
diff --git a/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/TrendIconEnum.java b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/TrendIconEnum.java
new file mode 100644
index 0000000..2b1d234
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/TrendIconEnum.java
@@ -0,0 +1,296 @@
+/**
+ * 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:  
+ *  		Christophe Loetz  (Loetz GmbH&Co.KG) - Initial implementation 
+ *  
+ */
+package org.eclipse.osbp.xtext.reportdsl;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.emf.common.util.Enumerator;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the literals of the enumeration '<em><b>Trend Icon Enum</b></em>',
+ * and utility methods for working with them.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.osbp.xtext.reportdsl.ReportDSLPackage#getTrendIconEnum()
+ * @model
+ * @generated
+ */
+public enum TrendIconEnum implements Enumerator {
+	/**
+	 * The '<em><b>RISING</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #RISING_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	RISING(0, "RISING", "rising"),
+
+	/**
+	 * The '<em><b>BADRISING</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #BADRISING_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	BADRISING(0, "BADRISING", "bad-rising"),
+
+	/**
+	 * The '<em><b>SLOPING</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #SLOPING_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	SLOPING(0, "SLOPING", "sloping"),
+
+	/**
+	 * The '<em><b>GOODSLOPING</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #GOODSLOPING_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	GOODSLOPING(0, "GOODSLOPING", "good-sloping"),
+
+	/**
+	 * The '<em><b>STAGNATING</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #STAGNATING_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	STAGNATING(0, "STAGNATING", "stagnating");
+
+	/**
+	 * The '<em><b>RISING</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>RISING</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @see #RISING
+	 * @model literal="rising"
+	 * @generated
+	 * @ordered
+	 */
+	public static final int RISING_VALUE = 0;
+
+	/**
+	 * The '<em><b>BADRISING</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>BADRISING</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @see #BADRISING
+	 * @model literal="bad-rising"
+	 * @generated
+	 * @ordered
+	 */
+	public static final int BADRISING_VALUE = 0;
+
+	/**
+	 * The '<em><b>SLOPING</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>SLOPING</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @see #SLOPING
+	 * @model literal="sloping"
+	 * @generated
+	 * @ordered
+	 */
+	public static final int SLOPING_VALUE = 0;
+
+	/**
+	 * The '<em><b>GOODSLOPING</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>GOODSLOPING</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @see #GOODSLOPING
+	 * @model literal="good-sloping"
+	 * @generated
+	 * @ordered
+	 */
+	public static final int GOODSLOPING_VALUE = 0;
+
+	/**
+	 * The '<em><b>STAGNATING</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>STAGNATING</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @see #STAGNATING
+	 * @model literal="stagnating"
+	 * @generated
+	 * @ordered
+	 */
+	public static final int STAGNATING_VALUE = 0;
+
+	/**
+	 * An array of all the '<em><b>Trend Icon Enum</b></em>' enumerators.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private static final TrendIconEnum[] VALUES_ARRAY =
+		new TrendIconEnum[] {
+			RISING,
+			BADRISING,
+			SLOPING,
+			GOODSLOPING,
+			STAGNATING,
+		};
+
+	/**
+	 * A public read-only list of all the '<em><b>Trend Icon Enum</b></em>' enumerators.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static final List<TrendIconEnum> VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
+
+	/**
+	 * Returns the '<em><b>Trend Icon Enum</b></em>' literal with the specified literal value.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static TrendIconEnum get(String literal) {
+		for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+			TrendIconEnum result = VALUES_ARRAY[i];
+			if (result.toString().equals(literal)) {
+				return result;
+			}
+		}
+		return null;
+	}
+
+	/**
+	 * Returns the '<em><b>Trend Icon Enum</b></em>' literal with the specified name.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static TrendIconEnum getByName(String name) {
+		for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+			TrendIconEnum result = VALUES_ARRAY[i];
+			if (result.getName().equals(name)) {
+				return result;
+			}
+		}
+		return null;
+	}
+
+	/**
+	 * Returns the '<em><b>Trend Icon Enum</b></em>' literal with the specified integer value.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static TrendIconEnum get(int value) {
+		switch (value) {
+			case RISING_VALUE: return RISING;
+		}
+		return null;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private final int value;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private final String name;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private final String literal;
+
+	/**
+	 * Only this class can construct instances.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private TrendIconEnum(int value, String name, String literal) {
+		this.value = value;
+		this.name = name;
+		this.literal = literal;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public int getValue() {
+	  return value;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getName() {
+	  return name;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getLiteral() {
+	  return literal;
+	}
+
+	/**
+	 * Returns the literal value of the enumerator, which is its string representation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String toString() {
+		return literal;
+	}
+	
+} //TrendIconEnum
diff --git a/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/UnaryAggregationTypeEnum.java b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/UnaryAggregationTypeEnum.java
new file mode 100644
index 0000000..bb6a763
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/UnaryAggregationTypeEnum.java
@@ -0,0 +1,296 @@
+/**
+ * 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:  
+ *  		Christophe Loetz  (Loetz GmbH&Co.KG) - Initial implementation 
+ *  
+ */
+package org.eclipse.osbp.xtext.reportdsl;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.emf.common.util.Enumerator;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the literals of the enumeration '<em><b>Unary Aggregation Type Enum</b></em>',
+ * and utility methods for working with them.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.osbp.xtext.reportdsl.ReportDSLPackage#getUnaryAggregationTypeEnum()
+ * @model
+ * @generated
+ */
+public enum UnaryAggregationTypeEnum implements Enumerator {
+	/**
+	 * The '<em><b>SUM</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #SUM_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	SUM(0, "SUM", "sum"),
+
+	/**
+	 * The '<em><b>AVE</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #AVE_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	AVE(0, "AVE", "average"),
+
+	/**
+	 * The '<em><b>MIN</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #MIN_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	MIN(0, "MIN", "minimum"),
+
+	/**
+	 * The '<em><b>MAX</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #MAX_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	MAX(0, "MAX", "maximum"),
+
+	/**
+	 * The '<em><b>RUNNINGSUM</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #RUNNINGSUM_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	RUNNINGSUM(0, "RUNNINGSUM", "running-sum");
+
+	/**
+	 * The '<em><b>SUM</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>SUM</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @see #SUM
+	 * @model literal="sum"
+	 * @generated
+	 * @ordered
+	 */
+	public static final int SUM_VALUE = 0;
+
+	/**
+	 * The '<em><b>AVE</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>AVE</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @see #AVE
+	 * @model literal="average"
+	 * @generated
+	 * @ordered
+	 */
+	public static final int AVE_VALUE = 0;
+
+	/**
+	 * The '<em><b>MIN</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>MIN</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @see #MIN
+	 * @model literal="minimum"
+	 * @generated
+	 * @ordered
+	 */
+	public static final int MIN_VALUE = 0;
+
+	/**
+	 * The '<em><b>MAX</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>MAX</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @see #MAX
+	 * @model literal="maximum"
+	 * @generated
+	 * @ordered
+	 */
+	public static final int MAX_VALUE = 0;
+
+	/**
+	 * The '<em><b>RUNNINGSUM</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>RUNNINGSUM</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @see #RUNNINGSUM
+	 * @model literal="running-sum"
+	 * @generated
+	 * @ordered
+	 */
+	public static final int RUNNINGSUM_VALUE = 0;
+
+	/**
+	 * An array of all the '<em><b>Unary Aggregation Type Enum</b></em>' enumerators.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private static final UnaryAggregationTypeEnum[] VALUES_ARRAY =
+		new UnaryAggregationTypeEnum[] {
+			SUM,
+			AVE,
+			MIN,
+			MAX,
+			RUNNINGSUM,
+		};
+
+	/**
+	 * A public read-only list of all the '<em><b>Unary Aggregation Type Enum</b></em>' enumerators.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static final List<UnaryAggregationTypeEnum> VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
+
+	/**
+	 * Returns the '<em><b>Unary Aggregation Type Enum</b></em>' literal with the specified literal value.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static UnaryAggregationTypeEnum get(String literal) {
+		for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+			UnaryAggregationTypeEnum result = VALUES_ARRAY[i];
+			if (result.toString().equals(literal)) {
+				return result;
+			}
+		}
+		return null;
+	}
+
+	/**
+	 * Returns the '<em><b>Unary Aggregation Type Enum</b></em>' literal with the specified name.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static UnaryAggregationTypeEnum getByName(String name) {
+		for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+			UnaryAggregationTypeEnum result = VALUES_ARRAY[i];
+			if (result.getName().equals(name)) {
+				return result;
+			}
+		}
+		return null;
+	}
+
+	/**
+	 * Returns the '<em><b>Unary Aggregation Type Enum</b></em>' literal with the specified integer value.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static UnaryAggregationTypeEnum get(int value) {
+		switch (value) {
+			case SUM_VALUE: return SUM;
+		}
+		return null;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private final int value;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private final String name;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private final String literal;
+
+	/**
+	 * Only this class can construct instances.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private UnaryAggregationTypeEnum(int value, String name, String literal) {
+		this.value = value;
+		this.name = name;
+		this.literal = literal;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public int getValue() {
+	  return value;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getName() {
+	  return name;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getLiteral() {
+	  return literal;
+	}
+
+	/**
+	 * Returns the literal value of the enumerator, which is its string representation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String toString() {
+		return literal;
+	}
+	
+} //UnaryAggregationTypeEnum
diff --git a/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/UnitEnum.java b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/UnitEnum.java
new file mode 100644
index 0000000..9962267
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/UnitEnum.java
@@ -0,0 +1,426 @@
+/**
+ * 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:  
+ *  		Christophe Loetz  (Loetz GmbH&Co.KG) - Initial implementation 
+ *  
+ */
+package org.eclipse.osbp.xtext.reportdsl;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.emf.common.util.Enumerator;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the literals of the enumeration '<em><b>Unit Enum</b></em>',
+ * and utility methods for working with them.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.osbp.xtext.reportdsl.ReportDSLPackage#getUnitEnum()
+ * @model
+ * @generated
+ */
+public enum UnitEnum implements Enumerator {
+	/**
+	 * The '<em><b>NULL</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #NULL_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	NULL(0, "NULL", ""),
+
+	/**
+	 * The '<em><b>MM</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #MM_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	MM(0, "MM", "mm"),
+
+	/**
+	 * The '<em><b>CM</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #CM_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	CM(0, "CM", "cm"),
+
+	/**
+	 * The '<em><b>PT</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #PT_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	PT(0, "PT", "pt"),
+
+	/**
+	 * The '<em><b>IN</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #IN_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	IN(0, "IN", "inch"),
+
+	/**
+	 * The '<em><b>PC</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #PC_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	PC(0, "PC", "pc"),
+
+	/**
+	 * The '<em><b>EM</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #EM_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	EM(0, "EM", "em"),
+
+	/**
+	 * The '<em><b>EX</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #EX_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	EX(0, "EX", "ex"),
+
+	/**
+	 * The '<em><b>PX</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #PX_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	PX(0, "PX", "px"),
+
+	/**
+	 * The '<em><b>PERCENTAGE</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #PERCENTAGE_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	PERCENTAGE(0, "PERCENTAGE", "%");
+
+	/**
+	 * The '<em><b>NULL</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>NULL</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @see #NULL
+	 * @model literal=""
+	 * @generated
+	 * @ordered
+	 */
+	public static final int NULL_VALUE = 0;
+
+	/**
+	 * The '<em><b>MM</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>MM</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @see #MM
+	 * @model literal="mm"
+	 * @generated
+	 * @ordered
+	 */
+	public static final int MM_VALUE = 0;
+
+	/**
+	 * The '<em><b>CM</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>CM</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @see #CM
+	 * @model literal="cm"
+	 * @generated
+	 * @ordered
+	 */
+	public static final int CM_VALUE = 0;
+
+	/**
+	 * The '<em><b>PT</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>PT</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @see #PT
+	 * @model literal="pt"
+	 * @generated
+	 * @ordered
+	 */
+	public static final int PT_VALUE = 0;
+
+	/**
+	 * The '<em><b>IN</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>IN</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @see #IN
+	 * @model literal="inch"
+	 * @generated
+	 * @ordered
+	 */
+	public static final int IN_VALUE = 0;
+
+	/**
+	 * The '<em><b>PC</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>PC</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @see #PC
+	 * @model literal="pc"
+	 * @generated
+	 * @ordered
+	 */
+	public static final int PC_VALUE = 0;
+
+	/**
+	 * The '<em><b>EM</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>EM</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @see #EM
+	 * @model literal="em"
+	 * @generated
+	 * @ordered
+	 */
+	public static final int EM_VALUE = 0;
+
+	/**
+	 * The '<em><b>EX</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>EX</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @see #EX
+	 * @model literal="ex"
+	 * @generated
+	 * @ordered
+	 */
+	public static final int EX_VALUE = 0;
+
+	/**
+	 * The '<em><b>PX</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>PX</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @see #PX
+	 * @model literal="px"
+	 * @generated
+	 * @ordered
+	 */
+	public static final int PX_VALUE = 0;
+
+	/**
+	 * The '<em><b>PERCENTAGE</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>PERCENTAGE</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @see #PERCENTAGE
+	 * @model literal="%"
+	 * @generated
+	 * @ordered
+	 */
+	public static final int PERCENTAGE_VALUE = 0;
+
+	/**
+	 * An array of all the '<em><b>Unit Enum</b></em>' enumerators.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private static final UnitEnum[] VALUES_ARRAY =
+		new UnitEnum[] {
+			NULL,
+			MM,
+			CM,
+			PT,
+			IN,
+			PC,
+			EM,
+			EX,
+			PX,
+			PERCENTAGE,
+		};
+
+	/**
+	 * A public read-only list of all the '<em><b>Unit Enum</b></em>' enumerators.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static final List<UnitEnum> VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
+
+	/**
+	 * Returns the '<em><b>Unit Enum</b></em>' literal with the specified literal value.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static UnitEnum get(String literal) {
+		for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+			UnitEnum result = VALUES_ARRAY[i];
+			if (result.toString().equals(literal)) {
+				return result;
+			}
+		}
+		return null;
+	}
+
+	/**
+	 * Returns the '<em><b>Unit Enum</b></em>' literal with the specified name.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static UnitEnum getByName(String name) {
+		for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+			UnitEnum result = VALUES_ARRAY[i];
+			if (result.getName().equals(name)) {
+				return result;
+			}
+		}
+		return null;
+	}
+
+	/**
+	 * Returns the '<em><b>Unit Enum</b></em>' literal with the specified integer value.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static UnitEnum get(int value) {
+		switch (value) {
+			case NULL_VALUE: return NULL;
+		}
+		return null;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private final int value;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private final String name;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private final String literal;
+
+	/**
+	 * Only this class can construct instances.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private UnitEnum(int value, String name, String literal) {
+		this.value = value;
+		this.name = name;
+		this.literal = literal;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public int getValue() {
+	  return value;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getName() {
+	  return name;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getLiteral() {
+	  return literal;
+	}
+
+	/**
+	 * Returns the literal value of the enumerator, which is its string representation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String toString() {
+		return literal;
+	}
+	
+} //UnitEnum
diff --git a/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/UomoFormat.java b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/UomoFormat.java
new file mode 100644
index 0000000..1085dc3
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/UomoFormat.java
@@ -0,0 +1,28 @@
+/**
+ * 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:  
+ *  		Christophe Loetz  (Loetz GmbH&Co.KG) - Initial implementation 
+ *  
+ */
+package org.eclipse.osbp.xtext.reportdsl;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Uomo Format</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see org.eclipse.osbp.xtext.reportdsl.ReportDSLPackage#getUomoFormat()
+ * @model
+ * @generated
+ */
+public interface UomoFormat extends SomeFormat {
+} // UomoFormat
diff --git a/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/WithHeaderFooter.java b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/WithHeaderFooter.java
new file mode 100644
index 0000000..178e1f8
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/WithHeaderFooter.java
@@ -0,0 +1,141 @@
+/**
+ * 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:  
+ *  		Christophe Loetz  (Loetz GmbH&Co.KG) - Initial implementation 
+ *  
+ */
+package org.eclipse.osbp.xtext.reportdsl;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>With Header Footer</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.WithHeaderFooter#isDetailheader <em>Detailheader</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.WithHeaderFooter#getHeaderstyle <em>Headerstyle</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.WithHeaderFooter#isDetailfooter <em>Detailfooter</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.WithHeaderFooter#getFooterstyle <em>Footerstyle</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.osbp.xtext.reportdsl.ReportDSLPackage#getWithHeaderFooter()
+ * @model
+ * @generated
+ */
+public interface WithHeaderFooter extends ReportLazyResolver {
+	/**
+	 * Returns the value of the '<em><b>Detailheader</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Detailheader</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Detailheader</em>' attribute.
+	 * @see #setDetailheader(boolean)
+	 * @see org.eclipse.osbp.xtext.reportdsl.ReportDSLPackage#getWithHeaderFooter_Detailheader()
+	 * @model unique="false"
+	 * @generated
+	 */
+	boolean isDetailheader();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.xtext.reportdsl.WithHeaderFooter#isDetailheader <em>Detailheader</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Detailheader</em>' attribute.
+	 * @see #isDetailheader()
+	 * @generated
+	 */
+	void setDetailheader(boolean value);
+
+	/**
+	 * Returns the value of the '<em><b>Headerstyle</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Headerstyle</em>' reference isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Headerstyle</em>' reference.
+	 * @see #setHeaderstyle(Style)
+	 * @see org.eclipse.osbp.xtext.reportdsl.ReportDSLPackage#getWithHeaderFooter_Headerstyle()
+	 * @model
+	 * @generated
+	 */
+	Style getHeaderstyle();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.xtext.reportdsl.WithHeaderFooter#getHeaderstyle <em>Headerstyle</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Headerstyle</em>' reference.
+	 * @see #getHeaderstyle()
+	 * @generated
+	 */
+	void setHeaderstyle(Style value);
+
+	/**
+	 * Returns the value of the '<em><b>Detailfooter</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Detailfooter</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Detailfooter</em>' attribute.
+	 * @see #setDetailfooter(boolean)
+	 * @see org.eclipse.osbp.xtext.reportdsl.ReportDSLPackage#getWithHeaderFooter_Detailfooter()
+	 * @model unique="false"
+	 * @generated
+	 */
+	boolean isDetailfooter();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.xtext.reportdsl.WithHeaderFooter#isDetailfooter <em>Detailfooter</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Detailfooter</em>' attribute.
+	 * @see #isDetailfooter()
+	 * @generated
+	 */
+	void setDetailfooter(boolean value);
+
+	/**
+	 * Returns the value of the '<em><b>Footerstyle</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Footerstyle</em>' reference isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Footerstyle</em>' reference.
+	 * @see #setFooterstyle(Style)
+	 * @see org.eclipse.osbp.xtext.reportdsl.ReportDSLPackage#getWithHeaderFooter_Footerstyle()
+	 * @model
+	 * @generated
+	 */
+	Style getFooterstyle();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.xtext.reportdsl.WithHeaderFooter#getFooterstyle <em>Footerstyle</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Footerstyle</em>' reference.
+	 * @see #getFooterstyle()
+	 * @generated
+	 */
+	void setFooterstyle(Style value);
+
+} // WithHeaderFooter
diff --git a/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/WithStyle.java b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/WithStyle.java
new file mode 100644
index 0000000..dada4a9
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/WithStyle.java
@@ -0,0 +1,60 @@
+/**
+ * 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:  
+ *  		Christophe Loetz  (Loetz GmbH&Co.KG) - Initial implementation 
+ *  
+ */
+package org.eclipse.osbp.xtext.reportdsl;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>With Style</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.WithStyle#getStyle <em>Style</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.osbp.xtext.reportdsl.ReportDSLPackage#getWithStyle()
+ * @model
+ * @generated
+ */
+public interface WithStyle extends ReportLazyResolver {
+	/**
+	 * Returns the value of the '<em><b>Style</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Style</em>' reference isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Style</em>' reference.
+	 * @see #setStyle(Style)
+	 * @see org.eclipse.osbp.xtext.reportdsl.ReportDSLPackage#getWithStyle_Style()
+	 * @model
+	 * @generated
+	 */
+	Style getStyle();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.xtext.reportdsl.WithStyle#getStyle <em>Style</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Style</em>' reference.
+	 * @see #getStyle()
+	 * @generated
+	 */
+	void setStyle(Style value);
+
+} // WithStyle
diff --git a/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/impl/AutoTextImpl.java b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/impl/AutoTextImpl.java
new file mode 100644
index 0000000..8d6f100
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/impl/AutoTextImpl.java
@@ -0,0 +1,269 @@
+/**
+ * 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:  
+ *  		Christophe Loetz  (Loetz GmbH&Co.KG) - Initial implementation 
+ *  
+ */
+package org.eclipse.osbp.xtext.reportdsl.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.reportdsl.AutoText;
+import org.eclipse.osbp.xtext.reportdsl.AutoTextEnum;
+import org.eclipse.osbp.xtext.reportdsl.ReportDSLPackage;
+import org.eclipse.osbp.xtext.reportdsl.Style;
+import org.eclipse.osbp.xtext.reportdsl.WithStyle;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Auto Text</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.impl.AutoTextImpl#getStyle <em>Style</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.impl.AutoTextImpl#getType <em>Type</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class AutoTextImpl extends ReportLazyResolverImpl implements AutoText {
+	/**
+	 * The cached value of the '{@link #getStyle() <em>Style</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getStyle()
+	 * @generated
+	 * @ordered
+	 */
+	protected Style style;
+
+	/**
+	 * The default value of the '{@link #getType() <em>Type</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getType()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final AutoTextEnum TYPE_EDEFAULT = AutoTextEnum.PAGE_NUMBER;
+
+	/**
+	 * The cached value of the '{@link #getType() <em>Type</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getType()
+	 * @generated
+	 * @ordered
+	 */
+	protected AutoTextEnum type = TYPE_EDEFAULT;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected AutoTextImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return ReportDSLPackage.Literals.AUTO_TEXT;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Style getStyle() {
+		if (style != null && style.eIsProxy()) {
+			InternalEObject oldStyle = (InternalEObject)style;
+			style = (Style)eResolveProxy(oldStyle);
+			if (style != oldStyle) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, ReportDSLPackage.AUTO_TEXT__STYLE, oldStyle, style));
+			}
+		}
+		return style;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Style basicGetStyle() {
+		return style;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setStyle(Style newStyle) {
+		Style oldStyle = style;
+		style = newStyle;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ReportDSLPackage.AUTO_TEXT__STYLE, oldStyle, style));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public AutoTextEnum getType() {
+		return type;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setType(AutoTextEnum newType) {
+		AutoTextEnum oldType = type;
+		type = newType == null ? TYPE_EDEFAULT : newType;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ReportDSLPackage.AUTO_TEXT__TYPE, oldType, type));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case ReportDSLPackage.AUTO_TEXT__STYLE:
+				if (resolve) return getStyle();
+				return basicGetStyle();
+			case ReportDSLPackage.AUTO_TEXT__TYPE:
+				return getType();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case ReportDSLPackage.AUTO_TEXT__STYLE:
+				setStyle((Style)newValue);
+				return;
+			case ReportDSLPackage.AUTO_TEXT__TYPE:
+				setType((AutoTextEnum)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case ReportDSLPackage.AUTO_TEXT__STYLE:
+				setStyle((Style)null);
+				return;
+			case ReportDSLPackage.AUTO_TEXT__TYPE:
+				setType(TYPE_EDEFAULT);
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case ReportDSLPackage.AUTO_TEXT__STYLE:
+				return style != null;
+			case ReportDSLPackage.AUTO_TEXT__TYPE:
+				return type != TYPE_EDEFAULT;
+		}
+		return super.eIsSet(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public int eBaseStructuralFeatureID(int derivedFeatureID, Class<?> baseClass) {
+		if (baseClass == WithStyle.class) {
+			switch (derivedFeatureID) {
+				case ReportDSLPackage.AUTO_TEXT__STYLE: return ReportDSLPackage.WITH_STYLE__STYLE;
+				default: return -1;
+			}
+		}
+		return super.eBaseStructuralFeatureID(derivedFeatureID, baseClass);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public int eDerivedStructuralFeatureID(int baseFeatureID, Class<?> baseClass) {
+		if (baseClass == WithStyle.class) {
+			switch (baseFeatureID) {
+				case ReportDSLPackage.WITH_STYLE__STYLE: return ReportDSLPackage.AUTO_TEXT__STYLE;
+				default: return -1;
+			}
+		}
+		return super.eDerivedStructuralFeatureID(baseFeatureID, baseClass);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String toString() {
+		if (eIsProxy()) return super.toString();
+
+		StringBuffer result = new StringBuffer(super.toString());
+		result.append(" (type: ");
+		result.append(type);
+		result.append(')');
+		return result.toString();
+	}
+
+} //AutoTextImpl
diff --git a/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/impl/BaseStyleImpl.java b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/impl/BaseStyleImpl.java
new file mode 100644
index 0000000..4973c1a
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/impl/BaseStyleImpl.java
@@ -0,0 +1,1621 @@
+/**
+ * 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:  
+ *  		Christophe Loetz  (Loetz GmbH&Co.KG) - Initial implementation 
+ *  
+ */
+package org.eclipse.osbp.xtext.reportdsl.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.reportdsl.BaseStyle;
+import org.eclipse.osbp.xtext.reportdsl.BorderStyle;
+import org.eclipse.osbp.xtext.reportdsl.Color;
+import org.eclipse.osbp.xtext.reportdsl.Font;
+import org.eclipse.osbp.xtext.reportdsl.ReportDSLPackage;
+import org.eclipse.osbp.xtext.reportdsl.SomeFormat;
+import org.eclipse.osbp.xtext.reportdsl.TextAlignEnum;
+import org.eclipse.osbp.xtext.reportdsl.UnitEnum;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Base Style</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.impl.BaseStyleImpl#getFormat <em>Format</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.impl.BaseStyleImpl#getFont <em>Font</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.impl.BaseStyleImpl#getBackgroundcolor <em>Backgroundcolor</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.impl.BaseStyleImpl#getBackgroundcolor_alternate <em>Backgroundcolor alternate</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.impl.BaseStyleImpl#getTextcolor <em>Textcolor</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.impl.BaseStyleImpl#getTextalign <em>Textalign</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.impl.BaseStyleImpl#getBorderTop <em>Border Top</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.impl.BaseStyleImpl#getBorderBottom <em>Border Bottom</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.impl.BaseStyleImpl#getBorderLeft <em>Border Left</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.impl.BaseStyleImpl#getBorderRight <em>Border Right</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.impl.BaseStyleImpl#getPaddingTopValue <em>Padding Top Value</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.impl.BaseStyleImpl#getPaddingTopUnit <em>Padding Top Unit</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.impl.BaseStyleImpl#getPaddingBottomValue <em>Padding Bottom Value</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.impl.BaseStyleImpl#getPaddingBottomUnit <em>Padding Bottom Unit</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.impl.BaseStyleImpl#getPaddingLeftValue <em>Padding Left Value</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.impl.BaseStyleImpl#getPaddingLeftUnit <em>Padding Left Unit</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.impl.BaseStyleImpl#getPaddingRightValue <em>Padding Right Value</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.impl.BaseStyleImpl#getPaddingRightUnit <em>Padding Right Unit</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.impl.BaseStyleImpl#getMarginTopValue <em>Margin Top Value</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.impl.BaseStyleImpl#getMarginTopUnit <em>Margin Top Unit</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.impl.BaseStyleImpl#getMarginLeftValue <em>Margin Left Value</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.impl.BaseStyleImpl#getMarginLeftUnit <em>Margin Left Unit</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.impl.BaseStyleImpl#getMarginBottomValue <em>Margin Bottom Value</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.impl.BaseStyleImpl#getMarginBottomUnit <em>Margin Bottom Unit</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.impl.BaseStyleImpl#getMarginRightValue <em>Margin Right Value</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.impl.BaseStyleImpl#getMarginRightUnit <em>Margin Right Unit</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class BaseStyleImpl extends ReportLazyResolverImpl implements BaseStyle {
+	/**
+	 * The cached value of the '{@link #getFormat() <em>Format</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getFormat()
+	 * @generated
+	 * @ordered
+	 */
+	protected SomeFormat format;
+
+	/**
+	 * The cached value of the '{@link #getFont() <em>Font</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getFont()
+	 * @generated
+	 * @ordered
+	 */
+	protected Font font;
+
+	/**
+	 * The cached value of the '{@link #getBackgroundcolor() <em>Backgroundcolor</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getBackgroundcolor()
+	 * @generated
+	 * @ordered
+	 */
+	protected Color backgroundcolor;
+
+	/**
+	 * The cached value of the '{@link #getBackgroundcolor_alternate() <em>Backgroundcolor alternate</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getBackgroundcolor_alternate()
+	 * @generated
+	 * @ordered
+	 */
+	protected Color backgroundcolor_alternate;
+
+	/**
+	 * The cached value of the '{@link #getTextcolor() <em>Textcolor</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getTextcolor()
+	 * @generated
+	 * @ordered
+	 */
+	protected Color textcolor;
+
+	/**
+	 * The default value of the '{@link #getTextalign() <em>Textalign</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getTextalign()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final TextAlignEnum TEXTALIGN_EDEFAULT = TextAlignEnum.NULL;
+
+	/**
+	 * The cached value of the '{@link #getTextalign() <em>Textalign</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getTextalign()
+	 * @generated
+	 * @ordered
+	 */
+	protected TextAlignEnum textalign = TEXTALIGN_EDEFAULT;
+
+	/**
+	 * The cached value of the '{@link #getBorderTop() <em>Border Top</em>}' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getBorderTop()
+	 * @generated
+	 * @ordered
+	 */
+	protected BorderStyle borderTop;
+
+	/**
+	 * The cached value of the '{@link #getBorderBottom() <em>Border Bottom</em>}' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getBorderBottom()
+	 * @generated
+	 * @ordered
+	 */
+	protected BorderStyle borderBottom;
+
+	/**
+	 * The cached value of the '{@link #getBorderLeft() <em>Border Left</em>}' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getBorderLeft()
+	 * @generated
+	 * @ordered
+	 */
+	protected BorderStyle borderLeft;
+
+	/**
+	 * The cached value of the '{@link #getBorderRight() <em>Border Right</em>}' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getBorderRight()
+	 * @generated
+	 * @ordered
+	 */
+	protected BorderStyle borderRight;
+
+	/**
+	 * The default value of the '{@link #getPaddingTopValue() <em>Padding Top Value</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getPaddingTopValue()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final double PADDING_TOP_VALUE_EDEFAULT = 0.0;
+
+	/**
+	 * The cached value of the '{@link #getPaddingTopValue() <em>Padding Top Value</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getPaddingTopValue()
+	 * @generated
+	 * @ordered
+	 */
+	protected double paddingTopValue = PADDING_TOP_VALUE_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getPaddingTopUnit() <em>Padding Top Unit</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getPaddingTopUnit()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final UnitEnum PADDING_TOP_UNIT_EDEFAULT = UnitEnum.NULL;
+
+	/**
+	 * The cached value of the '{@link #getPaddingTopUnit() <em>Padding Top Unit</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getPaddingTopUnit()
+	 * @generated
+	 * @ordered
+	 */
+	protected UnitEnum paddingTopUnit = PADDING_TOP_UNIT_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getPaddingBottomValue() <em>Padding Bottom Value</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getPaddingBottomValue()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final double PADDING_BOTTOM_VALUE_EDEFAULT = 0.0;
+
+	/**
+	 * The cached value of the '{@link #getPaddingBottomValue() <em>Padding Bottom Value</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getPaddingBottomValue()
+	 * @generated
+	 * @ordered
+	 */
+	protected double paddingBottomValue = PADDING_BOTTOM_VALUE_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getPaddingBottomUnit() <em>Padding Bottom Unit</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getPaddingBottomUnit()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final UnitEnum PADDING_BOTTOM_UNIT_EDEFAULT = UnitEnum.NULL;
+
+	/**
+	 * The cached value of the '{@link #getPaddingBottomUnit() <em>Padding Bottom Unit</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getPaddingBottomUnit()
+	 * @generated
+	 * @ordered
+	 */
+	protected UnitEnum paddingBottomUnit = PADDING_BOTTOM_UNIT_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getPaddingLeftValue() <em>Padding Left Value</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getPaddingLeftValue()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final double PADDING_LEFT_VALUE_EDEFAULT = 0.0;
+
+	/**
+	 * The cached value of the '{@link #getPaddingLeftValue() <em>Padding Left Value</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getPaddingLeftValue()
+	 * @generated
+	 * @ordered
+	 */
+	protected double paddingLeftValue = PADDING_LEFT_VALUE_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getPaddingLeftUnit() <em>Padding Left Unit</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getPaddingLeftUnit()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final UnitEnum PADDING_LEFT_UNIT_EDEFAULT = UnitEnum.NULL;
+
+	/**
+	 * The cached value of the '{@link #getPaddingLeftUnit() <em>Padding Left Unit</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getPaddingLeftUnit()
+	 * @generated
+	 * @ordered
+	 */
+	protected UnitEnum paddingLeftUnit = PADDING_LEFT_UNIT_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getPaddingRightValue() <em>Padding Right Value</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getPaddingRightValue()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final double PADDING_RIGHT_VALUE_EDEFAULT = 0.0;
+
+	/**
+	 * The cached value of the '{@link #getPaddingRightValue() <em>Padding Right Value</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getPaddingRightValue()
+	 * @generated
+	 * @ordered
+	 */
+	protected double paddingRightValue = PADDING_RIGHT_VALUE_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getPaddingRightUnit() <em>Padding Right Unit</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getPaddingRightUnit()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final UnitEnum PADDING_RIGHT_UNIT_EDEFAULT = UnitEnum.NULL;
+
+	/**
+	 * The cached value of the '{@link #getPaddingRightUnit() <em>Padding Right Unit</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getPaddingRightUnit()
+	 * @generated
+	 * @ordered
+	 */
+	protected UnitEnum paddingRightUnit = PADDING_RIGHT_UNIT_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getMarginTopValue() <em>Margin Top Value</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getMarginTopValue()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final double MARGIN_TOP_VALUE_EDEFAULT = 0.0;
+
+	/**
+	 * The cached value of the '{@link #getMarginTopValue() <em>Margin Top Value</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getMarginTopValue()
+	 * @generated
+	 * @ordered
+	 */
+	protected double marginTopValue = MARGIN_TOP_VALUE_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getMarginTopUnit() <em>Margin Top Unit</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getMarginTopUnit()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final UnitEnum MARGIN_TOP_UNIT_EDEFAULT = UnitEnum.NULL;
+
+	/**
+	 * The cached value of the '{@link #getMarginTopUnit() <em>Margin Top Unit</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getMarginTopUnit()
+	 * @generated
+	 * @ordered
+	 */
+	protected UnitEnum marginTopUnit = MARGIN_TOP_UNIT_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getMarginLeftValue() <em>Margin Left Value</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getMarginLeftValue()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final double MARGIN_LEFT_VALUE_EDEFAULT = 0.0;
+
+	/**
+	 * The cached value of the '{@link #getMarginLeftValue() <em>Margin Left Value</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getMarginLeftValue()
+	 * @generated
+	 * @ordered
+	 */
+	protected double marginLeftValue = MARGIN_LEFT_VALUE_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getMarginLeftUnit() <em>Margin Left Unit</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getMarginLeftUnit()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final UnitEnum MARGIN_LEFT_UNIT_EDEFAULT = UnitEnum.NULL;
+
+	/**
+	 * The cached value of the '{@link #getMarginLeftUnit() <em>Margin Left Unit</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getMarginLeftUnit()
+	 * @generated
+	 * @ordered
+	 */
+	protected UnitEnum marginLeftUnit = MARGIN_LEFT_UNIT_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getMarginBottomValue() <em>Margin Bottom Value</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getMarginBottomValue()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final double MARGIN_BOTTOM_VALUE_EDEFAULT = 0.0;
+
+	/**
+	 * The cached value of the '{@link #getMarginBottomValue() <em>Margin Bottom Value</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getMarginBottomValue()
+	 * @generated
+	 * @ordered
+	 */
+	protected double marginBottomValue = MARGIN_BOTTOM_VALUE_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getMarginBottomUnit() <em>Margin Bottom Unit</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getMarginBottomUnit()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final UnitEnum MARGIN_BOTTOM_UNIT_EDEFAULT = UnitEnum.NULL;
+
+	/**
+	 * The cached value of the '{@link #getMarginBottomUnit() <em>Margin Bottom Unit</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getMarginBottomUnit()
+	 * @generated
+	 * @ordered
+	 */
+	protected UnitEnum marginBottomUnit = MARGIN_BOTTOM_UNIT_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getMarginRightValue() <em>Margin Right Value</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getMarginRightValue()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final double MARGIN_RIGHT_VALUE_EDEFAULT = 0.0;
+
+	/**
+	 * The cached value of the '{@link #getMarginRightValue() <em>Margin Right Value</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getMarginRightValue()
+	 * @generated
+	 * @ordered
+	 */
+	protected double marginRightValue = MARGIN_RIGHT_VALUE_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getMarginRightUnit() <em>Margin Right Unit</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getMarginRightUnit()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final UnitEnum MARGIN_RIGHT_UNIT_EDEFAULT = UnitEnum.NULL;
+
+	/**
+	 * The cached value of the '{@link #getMarginRightUnit() <em>Margin Right Unit</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getMarginRightUnit()
+	 * @generated
+	 * @ordered
+	 */
+	protected UnitEnum marginRightUnit = MARGIN_RIGHT_UNIT_EDEFAULT;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected BaseStyleImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return ReportDSLPackage.Literals.BASE_STYLE;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public SomeFormat getFormat() {
+		if (format != null && format.eIsProxy()) {
+			InternalEObject oldFormat = (InternalEObject)format;
+			format = (SomeFormat)eResolveProxy(oldFormat);
+			if (format != oldFormat) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, ReportDSLPackage.BASE_STYLE__FORMAT, oldFormat, format));
+			}
+		}
+		return format;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public SomeFormat basicGetFormat() {
+		return format;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setFormat(SomeFormat newFormat) {
+		SomeFormat oldFormat = format;
+		format = newFormat;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ReportDSLPackage.BASE_STYLE__FORMAT, oldFormat, format));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Font getFont() {
+		if (font != null && font.eIsProxy()) {
+			InternalEObject oldFont = (InternalEObject)font;
+			font = (Font)eResolveProxy(oldFont);
+			if (font != oldFont) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, ReportDSLPackage.BASE_STYLE__FONT, oldFont, font));
+			}
+		}
+		return font;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Font basicGetFont() {
+		return font;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setFont(Font newFont) {
+		Font oldFont = font;
+		font = newFont;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ReportDSLPackage.BASE_STYLE__FONT, oldFont, font));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Color getBackgroundcolor() {
+		if (backgroundcolor != null && backgroundcolor.eIsProxy()) {
+			InternalEObject oldBackgroundcolor = (InternalEObject)backgroundcolor;
+			backgroundcolor = (Color)eResolveProxy(oldBackgroundcolor);
+			if (backgroundcolor != oldBackgroundcolor) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, ReportDSLPackage.BASE_STYLE__BACKGROUNDCOLOR, oldBackgroundcolor, backgroundcolor));
+			}
+		}
+		return backgroundcolor;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Color basicGetBackgroundcolor() {
+		return backgroundcolor;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setBackgroundcolor(Color newBackgroundcolor) {
+		Color oldBackgroundcolor = backgroundcolor;
+		backgroundcolor = newBackgroundcolor;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ReportDSLPackage.BASE_STYLE__BACKGROUNDCOLOR, oldBackgroundcolor, backgroundcolor));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Color getBackgroundcolor_alternate() {
+		if (backgroundcolor_alternate != null && backgroundcolor_alternate.eIsProxy()) {
+			InternalEObject oldBackgroundcolor_alternate = (InternalEObject)backgroundcolor_alternate;
+			backgroundcolor_alternate = (Color)eResolveProxy(oldBackgroundcolor_alternate);
+			if (backgroundcolor_alternate != oldBackgroundcolor_alternate) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, ReportDSLPackage.BASE_STYLE__BACKGROUNDCOLOR_ALTERNATE, oldBackgroundcolor_alternate, backgroundcolor_alternate));
+			}
+		}
+		return backgroundcolor_alternate;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Color basicGetBackgroundcolor_alternate() {
+		return backgroundcolor_alternate;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setBackgroundcolor_alternate(Color newBackgroundcolor_alternate) {
+		Color oldBackgroundcolor_alternate = backgroundcolor_alternate;
+		backgroundcolor_alternate = newBackgroundcolor_alternate;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ReportDSLPackage.BASE_STYLE__BACKGROUNDCOLOR_ALTERNATE, oldBackgroundcolor_alternate, backgroundcolor_alternate));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Color getTextcolor() {
+		if (textcolor != null && textcolor.eIsProxy()) {
+			InternalEObject oldTextcolor = (InternalEObject)textcolor;
+			textcolor = (Color)eResolveProxy(oldTextcolor);
+			if (textcolor != oldTextcolor) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, ReportDSLPackage.BASE_STYLE__TEXTCOLOR, oldTextcolor, textcolor));
+			}
+		}
+		return textcolor;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Color basicGetTextcolor() {
+		return textcolor;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setTextcolor(Color newTextcolor) {
+		Color oldTextcolor = textcolor;
+		textcolor = newTextcolor;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ReportDSLPackage.BASE_STYLE__TEXTCOLOR, oldTextcolor, textcolor));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public TextAlignEnum getTextalign() {
+		return textalign;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setTextalign(TextAlignEnum newTextalign) {
+		TextAlignEnum oldTextalign = textalign;
+		textalign = newTextalign == null ? TEXTALIGN_EDEFAULT : newTextalign;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ReportDSLPackage.BASE_STYLE__TEXTALIGN, oldTextalign, textalign));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public BorderStyle getBorderTop() {
+		return borderTop;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public NotificationChain basicSetBorderTop(BorderStyle newBorderTop, NotificationChain msgs) {
+		BorderStyle oldBorderTop = borderTop;
+		borderTop = newBorderTop;
+		if (eNotificationRequired()) {
+			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, ReportDSLPackage.BASE_STYLE__BORDER_TOP, oldBorderTop, newBorderTop);
+			if (msgs == null) msgs = notification; else msgs.add(notification);
+		}
+		return msgs;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setBorderTop(BorderStyle newBorderTop) {
+		if (newBorderTop != borderTop) {
+			NotificationChain msgs = null;
+			if (borderTop != null)
+				msgs = ((InternalEObject)borderTop).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - ReportDSLPackage.BASE_STYLE__BORDER_TOP, null, msgs);
+			if (newBorderTop != null)
+				msgs = ((InternalEObject)newBorderTop).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - ReportDSLPackage.BASE_STYLE__BORDER_TOP, null, msgs);
+			msgs = basicSetBorderTop(newBorderTop, msgs);
+			if (msgs != null) msgs.dispatch();
+		}
+		else if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ReportDSLPackage.BASE_STYLE__BORDER_TOP, newBorderTop, newBorderTop));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public BorderStyle getBorderBottom() {
+		return borderBottom;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public NotificationChain basicSetBorderBottom(BorderStyle newBorderBottom, NotificationChain msgs) {
+		BorderStyle oldBorderBottom = borderBottom;
+		borderBottom = newBorderBottom;
+		if (eNotificationRequired()) {
+			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, ReportDSLPackage.BASE_STYLE__BORDER_BOTTOM, oldBorderBottom, newBorderBottom);
+			if (msgs == null) msgs = notification; else msgs.add(notification);
+		}
+		return msgs;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setBorderBottom(BorderStyle newBorderBottom) {
+		if (newBorderBottom != borderBottom) {
+			NotificationChain msgs = null;
+			if (borderBottom != null)
+				msgs = ((InternalEObject)borderBottom).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - ReportDSLPackage.BASE_STYLE__BORDER_BOTTOM, null, msgs);
+			if (newBorderBottom != null)
+				msgs = ((InternalEObject)newBorderBottom).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - ReportDSLPackage.BASE_STYLE__BORDER_BOTTOM, null, msgs);
+			msgs = basicSetBorderBottom(newBorderBottom, msgs);
+			if (msgs != null) msgs.dispatch();
+		}
+		else if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ReportDSLPackage.BASE_STYLE__BORDER_BOTTOM, newBorderBottom, newBorderBottom));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public BorderStyle getBorderLeft() {
+		return borderLeft;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public NotificationChain basicSetBorderLeft(BorderStyle newBorderLeft, NotificationChain msgs) {
+		BorderStyle oldBorderLeft = borderLeft;
+		borderLeft = newBorderLeft;
+		if (eNotificationRequired()) {
+			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, ReportDSLPackage.BASE_STYLE__BORDER_LEFT, oldBorderLeft, newBorderLeft);
+			if (msgs == null) msgs = notification; else msgs.add(notification);
+		}
+		return msgs;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setBorderLeft(BorderStyle newBorderLeft) {
+		if (newBorderLeft != borderLeft) {
+			NotificationChain msgs = null;
+			if (borderLeft != null)
+				msgs = ((InternalEObject)borderLeft).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - ReportDSLPackage.BASE_STYLE__BORDER_LEFT, null, msgs);
+			if (newBorderLeft != null)
+				msgs = ((InternalEObject)newBorderLeft).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - ReportDSLPackage.BASE_STYLE__BORDER_LEFT, null, msgs);
+			msgs = basicSetBorderLeft(newBorderLeft, msgs);
+			if (msgs != null) msgs.dispatch();
+		}
+		else if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ReportDSLPackage.BASE_STYLE__BORDER_LEFT, newBorderLeft, newBorderLeft));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public BorderStyle getBorderRight() {
+		return borderRight;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public NotificationChain basicSetBorderRight(BorderStyle newBorderRight, NotificationChain msgs) {
+		BorderStyle oldBorderRight = borderRight;
+		borderRight = newBorderRight;
+		if (eNotificationRequired()) {
+			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, ReportDSLPackage.BASE_STYLE__BORDER_RIGHT, oldBorderRight, newBorderRight);
+			if (msgs == null) msgs = notification; else msgs.add(notification);
+		}
+		return msgs;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setBorderRight(BorderStyle newBorderRight) {
+		if (newBorderRight != borderRight) {
+			NotificationChain msgs = null;
+			if (borderRight != null)
+				msgs = ((InternalEObject)borderRight).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - ReportDSLPackage.BASE_STYLE__BORDER_RIGHT, null, msgs);
+			if (newBorderRight != null)
+				msgs = ((InternalEObject)newBorderRight).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - ReportDSLPackage.BASE_STYLE__BORDER_RIGHT, null, msgs);
+			msgs = basicSetBorderRight(newBorderRight, msgs);
+			if (msgs != null) msgs.dispatch();
+		}
+		else if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ReportDSLPackage.BASE_STYLE__BORDER_RIGHT, newBorderRight, newBorderRight));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public double getPaddingTopValue() {
+		return paddingTopValue;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setPaddingTopValue(double newPaddingTopValue) {
+		double oldPaddingTopValue = paddingTopValue;
+		paddingTopValue = newPaddingTopValue;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ReportDSLPackage.BASE_STYLE__PADDING_TOP_VALUE, oldPaddingTopValue, paddingTopValue));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public UnitEnum getPaddingTopUnit() {
+		return paddingTopUnit;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setPaddingTopUnit(UnitEnum newPaddingTopUnit) {
+		UnitEnum oldPaddingTopUnit = paddingTopUnit;
+		paddingTopUnit = newPaddingTopUnit == null ? PADDING_TOP_UNIT_EDEFAULT : newPaddingTopUnit;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ReportDSLPackage.BASE_STYLE__PADDING_TOP_UNIT, oldPaddingTopUnit, paddingTopUnit));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public double getPaddingBottomValue() {
+		return paddingBottomValue;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setPaddingBottomValue(double newPaddingBottomValue) {
+		double oldPaddingBottomValue = paddingBottomValue;
+		paddingBottomValue = newPaddingBottomValue;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ReportDSLPackage.BASE_STYLE__PADDING_BOTTOM_VALUE, oldPaddingBottomValue, paddingBottomValue));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public UnitEnum getPaddingBottomUnit() {
+		return paddingBottomUnit;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setPaddingBottomUnit(UnitEnum newPaddingBottomUnit) {
+		UnitEnum oldPaddingBottomUnit = paddingBottomUnit;
+		paddingBottomUnit = newPaddingBottomUnit == null ? PADDING_BOTTOM_UNIT_EDEFAULT : newPaddingBottomUnit;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ReportDSLPackage.BASE_STYLE__PADDING_BOTTOM_UNIT, oldPaddingBottomUnit, paddingBottomUnit));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public double getPaddingLeftValue() {
+		return paddingLeftValue;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setPaddingLeftValue(double newPaddingLeftValue) {
+		double oldPaddingLeftValue = paddingLeftValue;
+		paddingLeftValue = newPaddingLeftValue;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ReportDSLPackage.BASE_STYLE__PADDING_LEFT_VALUE, oldPaddingLeftValue, paddingLeftValue));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public UnitEnum getPaddingLeftUnit() {
+		return paddingLeftUnit;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setPaddingLeftUnit(UnitEnum newPaddingLeftUnit) {
+		UnitEnum oldPaddingLeftUnit = paddingLeftUnit;
+		paddingLeftUnit = newPaddingLeftUnit == null ? PADDING_LEFT_UNIT_EDEFAULT : newPaddingLeftUnit;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ReportDSLPackage.BASE_STYLE__PADDING_LEFT_UNIT, oldPaddingLeftUnit, paddingLeftUnit));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public double getPaddingRightValue() {
+		return paddingRightValue;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setPaddingRightValue(double newPaddingRightValue) {
+		double oldPaddingRightValue = paddingRightValue;
+		paddingRightValue = newPaddingRightValue;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ReportDSLPackage.BASE_STYLE__PADDING_RIGHT_VALUE, oldPaddingRightValue, paddingRightValue));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public UnitEnum getPaddingRightUnit() {
+		return paddingRightUnit;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setPaddingRightUnit(UnitEnum newPaddingRightUnit) {
+		UnitEnum oldPaddingRightUnit = paddingRightUnit;
+		paddingRightUnit = newPaddingRightUnit == null ? PADDING_RIGHT_UNIT_EDEFAULT : newPaddingRightUnit;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ReportDSLPackage.BASE_STYLE__PADDING_RIGHT_UNIT, oldPaddingRightUnit, paddingRightUnit));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public double getMarginTopValue() {
+		return marginTopValue;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setMarginTopValue(double newMarginTopValue) {
+		double oldMarginTopValue = marginTopValue;
+		marginTopValue = newMarginTopValue;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ReportDSLPackage.BASE_STYLE__MARGIN_TOP_VALUE, oldMarginTopValue, marginTopValue));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public UnitEnum getMarginTopUnit() {
+		return marginTopUnit;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setMarginTopUnit(UnitEnum newMarginTopUnit) {
+		UnitEnum oldMarginTopUnit = marginTopUnit;
+		marginTopUnit = newMarginTopUnit == null ? MARGIN_TOP_UNIT_EDEFAULT : newMarginTopUnit;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ReportDSLPackage.BASE_STYLE__MARGIN_TOP_UNIT, oldMarginTopUnit, marginTopUnit));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public double getMarginLeftValue() {
+		return marginLeftValue;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setMarginLeftValue(double newMarginLeftValue) {
+		double oldMarginLeftValue = marginLeftValue;
+		marginLeftValue = newMarginLeftValue;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ReportDSLPackage.BASE_STYLE__MARGIN_LEFT_VALUE, oldMarginLeftValue, marginLeftValue));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public UnitEnum getMarginLeftUnit() {
+		return marginLeftUnit;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setMarginLeftUnit(UnitEnum newMarginLeftUnit) {
+		UnitEnum oldMarginLeftUnit = marginLeftUnit;
+		marginLeftUnit = newMarginLeftUnit == null ? MARGIN_LEFT_UNIT_EDEFAULT : newMarginLeftUnit;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ReportDSLPackage.BASE_STYLE__MARGIN_LEFT_UNIT, oldMarginLeftUnit, marginLeftUnit));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public double getMarginBottomValue() {
+		return marginBottomValue;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setMarginBottomValue(double newMarginBottomValue) {
+		double oldMarginBottomValue = marginBottomValue;
+		marginBottomValue = newMarginBottomValue;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ReportDSLPackage.BASE_STYLE__MARGIN_BOTTOM_VALUE, oldMarginBottomValue, marginBottomValue));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public UnitEnum getMarginBottomUnit() {
+		return marginBottomUnit;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setMarginBottomUnit(UnitEnum newMarginBottomUnit) {
+		UnitEnum oldMarginBottomUnit = marginBottomUnit;
+		marginBottomUnit = newMarginBottomUnit == null ? MARGIN_BOTTOM_UNIT_EDEFAULT : newMarginBottomUnit;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ReportDSLPackage.BASE_STYLE__MARGIN_BOTTOM_UNIT, oldMarginBottomUnit, marginBottomUnit));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public double getMarginRightValue() {
+		return marginRightValue;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setMarginRightValue(double newMarginRightValue) {
+		double oldMarginRightValue = marginRightValue;
+		marginRightValue = newMarginRightValue;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ReportDSLPackage.BASE_STYLE__MARGIN_RIGHT_VALUE, oldMarginRightValue, marginRightValue));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public UnitEnum getMarginRightUnit() {
+		return marginRightUnit;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setMarginRightUnit(UnitEnum newMarginRightUnit) {
+		UnitEnum oldMarginRightUnit = marginRightUnit;
+		marginRightUnit = newMarginRightUnit == null ? MARGIN_RIGHT_UNIT_EDEFAULT : newMarginRightUnit;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ReportDSLPackage.BASE_STYLE__MARGIN_RIGHT_UNIT, oldMarginRightUnit, marginRightUnit));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+		switch (featureID) {
+			case ReportDSLPackage.BASE_STYLE__BORDER_TOP:
+				return basicSetBorderTop(null, msgs);
+			case ReportDSLPackage.BASE_STYLE__BORDER_BOTTOM:
+				return basicSetBorderBottom(null, msgs);
+			case ReportDSLPackage.BASE_STYLE__BORDER_LEFT:
+				return basicSetBorderLeft(null, msgs);
+			case ReportDSLPackage.BASE_STYLE__BORDER_RIGHT:
+				return basicSetBorderRight(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 ReportDSLPackage.BASE_STYLE__FORMAT:
+				if (resolve) return getFormat();
+				return basicGetFormat();
+			case ReportDSLPackage.BASE_STYLE__FONT:
+				if (resolve) return getFont();
+				return basicGetFont();
+			case ReportDSLPackage.BASE_STYLE__BACKGROUNDCOLOR:
+				if (resolve) return getBackgroundcolor();
+				return basicGetBackgroundcolor();
+			case ReportDSLPackage.BASE_STYLE__BACKGROUNDCOLOR_ALTERNATE:
+				if (resolve) return getBackgroundcolor_alternate();
+				return basicGetBackgroundcolor_alternate();
+			case ReportDSLPackage.BASE_STYLE__TEXTCOLOR:
+				if (resolve) return getTextcolor();
+				return basicGetTextcolor();
+			case ReportDSLPackage.BASE_STYLE__TEXTALIGN:
+				return getTextalign();
+			case ReportDSLPackage.BASE_STYLE__BORDER_TOP:
+				return getBorderTop();
+			case ReportDSLPackage.BASE_STYLE__BORDER_BOTTOM:
+				return getBorderBottom();
+			case ReportDSLPackage.BASE_STYLE__BORDER_LEFT:
+				return getBorderLeft();
+			case ReportDSLPackage.BASE_STYLE__BORDER_RIGHT:
+				return getBorderRight();
+			case ReportDSLPackage.BASE_STYLE__PADDING_TOP_VALUE:
+				return getPaddingTopValue();
+			case ReportDSLPackage.BASE_STYLE__PADDING_TOP_UNIT:
+				return getPaddingTopUnit();
+			case ReportDSLPackage.BASE_STYLE__PADDING_BOTTOM_VALUE:
+				return getPaddingBottomValue();
+			case ReportDSLPackage.BASE_STYLE__PADDING_BOTTOM_UNIT:
+				return getPaddingBottomUnit();
+			case ReportDSLPackage.BASE_STYLE__PADDING_LEFT_VALUE:
+				return getPaddingLeftValue();
+			case ReportDSLPackage.BASE_STYLE__PADDING_LEFT_UNIT:
+				return getPaddingLeftUnit();
+			case ReportDSLPackage.BASE_STYLE__PADDING_RIGHT_VALUE:
+				return getPaddingRightValue();
+			case ReportDSLPackage.BASE_STYLE__PADDING_RIGHT_UNIT:
+				return getPaddingRightUnit();
+			case ReportDSLPackage.BASE_STYLE__MARGIN_TOP_VALUE:
+				return getMarginTopValue();
+			case ReportDSLPackage.BASE_STYLE__MARGIN_TOP_UNIT:
+				return getMarginTopUnit();
+			case ReportDSLPackage.BASE_STYLE__MARGIN_LEFT_VALUE:
+				return getMarginLeftValue();
+			case ReportDSLPackage.BASE_STYLE__MARGIN_LEFT_UNIT:
+				return getMarginLeftUnit();
+			case ReportDSLPackage.BASE_STYLE__MARGIN_BOTTOM_VALUE:
+				return getMarginBottomValue();
+			case ReportDSLPackage.BASE_STYLE__MARGIN_BOTTOM_UNIT:
+				return getMarginBottomUnit();
+			case ReportDSLPackage.BASE_STYLE__MARGIN_RIGHT_VALUE:
+				return getMarginRightValue();
+			case ReportDSLPackage.BASE_STYLE__MARGIN_RIGHT_UNIT:
+				return getMarginRightUnit();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case ReportDSLPackage.BASE_STYLE__FORMAT:
+				setFormat((SomeFormat)newValue);
+				return;
+			case ReportDSLPackage.BASE_STYLE__FONT:
+				setFont((Font)newValue);
+				return;
+			case ReportDSLPackage.BASE_STYLE__BACKGROUNDCOLOR:
+				setBackgroundcolor((Color)newValue);
+				return;
+			case ReportDSLPackage.BASE_STYLE__BACKGROUNDCOLOR_ALTERNATE:
+				setBackgroundcolor_alternate((Color)newValue);
+				return;
+			case ReportDSLPackage.BASE_STYLE__TEXTCOLOR:
+				setTextcolor((Color)newValue);
+				return;
+			case ReportDSLPackage.BASE_STYLE__TEXTALIGN:
+				setTextalign((TextAlignEnum)newValue);
+				return;
+			case ReportDSLPackage.BASE_STYLE__BORDER_TOP:
+				setBorderTop((BorderStyle)newValue);
+				return;
+			case ReportDSLPackage.BASE_STYLE__BORDER_BOTTOM:
+				setBorderBottom((BorderStyle)newValue);
+				return;
+			case ReportDSLPackage.BASE_STYLE__BORDER_LEFT:
+				setBorderLeft((BorderStyle)newValue);
+				return;
+			case ReportDSLPackage.BASE_STYLE__BORDER_RIGHT:
+				setBorderRight((BorderStyle)newValue);
+				return;
+			case ReportDSLPackage.BASE_STYLE__PADDING_TOP_VALUE:
+				setPaddingTopValue((Double)newValue);
+				return;
+			case ReportDSLPackage.BASE_STYLE__PADDING_TOP_UNIT:
+				setPaddingTopUnit((UnitEnum)newValue);
+				return;
+			case ReportDSLPackage.BASE_STYLE__PADDING_BOTTOM_VALUE:
+				setPaddingBottomValue((Double)newValue);
+				return;
+			case ReportDSLPackage.BASE_STYLE__PADDING_BOTTOM_UNIT:
+				setPaddingBottomUnit((UnitEnum)newValue);
+				return;
+			case ReportDSLPackage.BASE_STYLE__PADDING_LEFT_VALUE:
+				setPaddingLeftValue((Double)newValue);
+				return;
+			case ReportDSLPackage.BASE_STYLE__PADDING_LEFT_UNIT:
+				setPaddingLeftUnit((UnitEnum)newValue);
+				return;
+			case ReportDSLPackage.BASE_STYLE__PADDING_RIGHT_VALUE:
+				setPaddingRightValue((Double)newValue);
+				return;
+			case ReportDSLPackage.BASE_STYLE__PADDING_RIGHT_UNIT:
+				setPaddingRightUnit((UnitEnum)newValue);
+				return;
+			case ReportDSLPackage.BASE_STYLE__MARGIN_TOP_VALUE:
+				setMarginTopValue((Double)newValue);
+				return;
+			case ReportDSLPackage.BASE_STYLE__MARGIN_TOP_UNIT:
+				setMarginTopUnit((UnitEnum)newValue);
+				return;
+			case ReportDSLPackage.BASE_STYLE__MARGIN_LEFT_VALUE:
+				setMarginLeftValue((Double)newValue);
+				return;
+			case ReportDSLPackage.BASE_STYLE__MARGIN_LEFT_UNIT:
+				setMarginLeftUnit((UnitEnum)newValue);
+				return;
+			case ReportDSLPackage.BASE_STYLE__MARGIN_BOTTOM_VALUE:
+				setMarginBottomValue((Double)newValue);
+				return;
+			case ReportDSLPackage.BASE_STYLE__MARGIN_BOTTOM_UNIT:
+				setMarginBottomUnit((UnitEnum)newValue);
+				return;
+			case ReportDSLPackage.BASE_STYLE__MARGIN_RIGHT_VALUE:
+				setMarginRightValue((Double)newValue);
+				return;
+			case ReportDSLPackage.BASE_STYLE__MARGIN_RIGHT_UNIT:
+				setMarginRightUnit((UnitEnum)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case ReportDSLPackage.BASE_STYLE__FORMAT:
+				setFormat((SomeFormat)null);
+				return;
+			case ReportDSLPackage.BASE_STYLE__FONT:
+				setFont((Font)null);
+				return;
+			case ReportDSLPackage.BASE_STYLE__BACKGROUNDCOLOR:
+				setBackgroundcolor((Color)null);
+				return;
+			case ReportDSLPackage.BASE_STYLE__BACKGROUNDCOLOR_ALTERNATE:
+				setBackgroundcolor_alternate((Color)null);
+				return;
+			case ReportDSLPackage.BASE_STYLE__TEXTCOLOR:
+				setTextcolor((Color)null);
+				return;
+			case ReportDSLPackage.BASE_STYLE__TEXTALIGN:
+				setTextalign(TEXTALIGN_EDEFAULT);
+				return;
+			case ReportDSLPackage.BASE_STYLE__BORDER_TOP:
+				setBorderTop((BorderStyle)null);
+				return;
+			case ReportDSLPackage.BASE_STYLE__BORDER_BOTTOM:
+				setBorderBottom((BorderStyle)null);
+				return;
+			case ReportDSLPackage.BASE_STYLE__BORDER_LEFT:
+				setBorderLeft((BorderStyle)null);
+				return;
+			case ReportDSLPackage.BASE_STYLE__BORDER_RIGHT:
+				setBorderRight((BorderStyle)null);
+				return;
+			case ReportDSLPackage.BASE_STYLE__PADDING_TOP_VALUE:
+				setPaddingTopValue(PADDING_TOP_VALUE_EDEFAULT);
+				return;
+			case ReportDSLPackage.BASE_STYLE__PADDING_TOP_UNIT:
+				setPaddingTopUnit(PADDING_TOP_UNIT_EDEFAULT);
+				return;
+			case ReportDSLPackage.BASE_STYLE__PADDING_BOTTOM_VALUE:
+				setPaddingBottomValue(PADDING_BOTTOM_VALUE_EDEFAULT);
+				return;
+			case ReportDSLPackage.BASE_STYLE__PADDING_BOTTOM_UNIT:
+				setPaddingBottomUnit(PADDING_BOTTOM_UNIT_EDEFAULT);
+				return;
+			case ReportDSLPackage.BASE_STYLE__PADDING_LEFT_VALUE:
+				setPaddingLeftValue(PADDING_LEFT_VALUE_EDEFAULT);
+				return;
+			case ReportDSLPackage.BASE_STYLE__PADDING_LEFT_UNIT:
+				setPaddingLeftUnit(PADDING_LEFT_UNIT_EDEFAULT);
+				return;
+			case ReportDSLPackage.BASE_STYLE__PADDING_RIGHT_VALUE:
+				setPaddingRightValue(PADDING_RIGHT_VALUE_EDEFAULT);
+				return;
+			case ReportDSLPackage.BASE_STYLE__PADDING_RIGHT_UNIT:
+				setPaddingRightUnit(PADDING_RIGHT_UNIT_EDEFAULT);
+				return;
+			case ReportDSLPackage.BASE_STYLE__MARGIN_TOP_VALUE:
+				setMarginTopValue(MARGIN_TOP_VALUE_EDEFAULT);
+				return;
+			case ReportDSLPackage.BASE_STYLE__MARGIN_TOP_UNIT:
+				setMarginTopUnit(MARGIN_TOP_UNIT_EDEFAULT);
+				return;
+			case ReportDSLPackage.BASE_STYLE__MARGIN_LEFT_VALUE:
+				setMarginLeftValue(MARGIN_LEFT_VALUE_EDEFAULT);
+				return;
+			case ReportDSLPackage.BASE_STYLE__MARGIN_LEFT_UNIT:
+				setMarginLeftUnit(MARGIN_LEFT_UNIT_EDEFAULT);
+				return;
+			case ReportDSLPackage.BASE_STYLE__MARGIN_BOTTOM_VALUE:
+				setMarginBottomValue(MARGIN_BOTTOM_VALUE_EDEFAULT);
+				return;
+			case ReportDSLPackage.BASE_STYLE__MARGIN_BOTTOM_UNIT:
+				setMarginBottomUnit(MARGIN_BOTTOM_UNIT_EDEFAULT);
+				return;
+			case ReportDSLPackage.BASE_STYLE__MARGIN_RIGHT_VALUE:
+				setMarginRightValue(MARGIN_RIGHT_VALUE_EDEFAULT);
+				return;
+			case ReportDSLPackage.BASE_STYLE__MARGIN_RIGHT_UNIT:
+				setMarginRightUnit(MARGIN_RIGHT_UNIT_EDEFAULT);
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case ReportDSLPackage.BASE_STYLE__FORMAT:
+				return format != null;
+			case ReportDSLPackage.BASE_STYLE__FONT:
+				return font != null;
+			case ReportDSLPackage.BASE_STYLE__BACKGROUNDCOLOR:
+				return backgroundcolor != null;
+			case ReportDSLPackage.BASE_STYLE__BACKGROUNDCOLOR_ALTERNATE:
+				return backgroundcolor_alternate != null;
+			case ReportDSLPackage.BASE_STYLE__TEXTCOLOR:
+				return textcolor != null;
+			case ReportDSLPackage.BASE_STYLE__TEXTALIGN:
+				return textalign != TEXTALIGN_EDEFAULT;
+			case ReportDSLPackage.BASE_STYLE__BORDER_TOP:
+				return borderTop != null;
+			case ReportDSLPackage.BASE_STYLE__BORDER_BOTTOM:
+				return borderBottom != null;
+			case ReportDSLPackage.BASE_STYLE__BORDER_LEFT:
+				return borderLeft != null;
+			case ReportDSLPackage.BASE_STYLE__BORDER_RIGHT:
+				return borderRight != null;
+			case ReportDSLPackage.BASE_STYLE__PADDING_TOP_VALUE:
+				return paddingTopValue != PADDING_TOP_VALUE_EDEFAULT;
+			case ReportDSLPackage.BASE_STYLE__PADDING_TOP_UNIT:
+				return paddingTopUnit != PADDING_TOP_UNIT_EDEFAULT;
+			case ReportDSLPackage.BASE_STYLE__PADDING_BOTTOM_VALUE:
+				return paddingBottomValue != PADDING_BOTTOM_VALUE_EDEFAULT;
+			case ReportDSLPackage.BASE_STYLE__PADDING_BOTTOM_UNIT:
+				return paddingBottomUnit != PADDING_BOTTOM_UNIT_EDEFAULT;
+			case ReportDSLPackage.BASE_STYLE__PADDING_LEFT_VALUE:
+				return paddingLeftValue != PADDING_LEFT_VALUE_EDEFAULT;
+			case ReportDSLPackage.BASE_STYLE__PADDING_LEFT_UNIT:
+				return paddingLeftUnit != PADDING_LEFT_UNIT_EDEFAULT;
+			case ReportDSLPackage.BASE_STYLE__PADDING_RIGHT_VALUE:
+				return paddingRightValue != PADDING_RIGHT_VALUE_EDEFAULT;
+			case ReportDSLPackage.BASE_STYLE__PADDING_RIGHT_UNIT:
+				return paddingRightUnit != PADDING_RIGHT_UNIT_EDEFAULT;
+			case ReportDSLPackage.BASE_STYLE__MARGIN_TOP_VALUE:
+				return marginTopValue != MARGIN_TOP_VALUE_EDEFAULT;
+			case ReportDSLPackage.BASE_STYLE__MARGIN_TOP_UNIT:
+				return marginTopUnit != MARGIN_TOP_UNIT_EDEFAULT;
+			case ReportDSLPackage.BASE_STYLE__MARGIN_LEFT_VALUE:
+				return marginLeftValue != MARGIN_LEFT_VALUE_EDEFAULT;
+			case ReportDSLPackage.BASE_STYLE__MARGIN_LEFT_UNIT:
+				return marginLeftUnit != MARGIN_LEFT_UNIT_EDEFAULT;
+			case ReportDSLPackage.BASE_STYLE__MARGIN_BOTTOM_VALUE:
+				return marginBottomValue != MARGIN_BOTTOM_VALUE_EDEFAULT;
+			case ReportDSLPackage.BASE_STYLE__MARGIN_BOTTOM_UNIT:
+				return marginBottomUnit != MARGIN_BOTTOM_UNIT_EDEFAULT;
+			case ReportDSLPackage.BASE_STYLE__MARGIN_RIGHT_VALUE:
+				return marginRightValue != MARGIN_RIGHT_VALUE_EDEFAULT;
+			case ReportDSLPackage.BASE_STYLE__MARGIN_RIGHT_UNIT:
+				return marginRightUnit != MARGIN_RIGHT_UNIT_EDEFAULT;
+		}
+		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(" (textalign: ");
+		result.append(textalign);
+		result.append(", paddingTopValue: ");
+		result.append(paddingTopValue);
+		result.append(", paddingTopUnit: ");
+		result.append(paddingTopUnit);
+		result.append(", paddingBottomValue: ");
+		result.append(paddingBottomValue);
+		result.append(", paddingBottomUnit: ");
+		result.append(paddingBottomUnit);
+		result.append(", paddingLeftValue: ");
+		result.append(paddingLeftValue);
+		result.append(", paddingLeftUnit: ");
+		result.append(paddingLeftUnit);
+		result.append(", paddingRightValue: ");
+		result.append(paddingRightValue);
+		result.append(", paddingRightUnit: ");
+		result.append(paddingRightUnit);
+		result.append(", marginTopValue: ");
+		result.append(marginTopValue);
+		result.append(", marginTopUnit: ");
+		result.append(marginTopUnit);
+		result.append(", marginLeftValue: ");
+		result.append(marginLeftValue);
+		result.append(", marginLeftUnit: ");
+		result.append(marginLeftUnit);
+		result.append(", marginBottomValue: ");
+		result.append(marginBottomValue);
+		result.append(", marginBottomUnit: ");
+		result.append(marginBottomUnit);
+		result.append(", marginRightValue: ");
+		result.append(marginRightValue);
+		result.append(", marginRightUnit: ");
+		result.append(marginRightUnit);
+		result.append(')');
+		return result.toString();
+	}
+
+} //BaseStyleImpl
diff --git a/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/impl/BorderStyleImpl.java b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/impl/BorderStyleImpl.java
new file mode 100644
index 0000000..875b12f
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/impl/BorderStyleImpl.java
@@ -0,0 +1,345 @@
+/**
+ * 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:  
+ *  		Christophe Loetz  (Loetz GmbH&Co.KG) - Initial implementation 
+ *  
+ */
+package org.eclipse.osbp.xtext.reportdsl.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.reportdsl.BorderStyle;
+import org.eclipse.osbp.xtext.reportdsl.BorderTypeEnum;
+import org.eclipse.osbp.xtext.reportdsl.Color;
+import org.eclipse.osbp.xtext.reportdsl.ReportDSLPackage;
+import org.eclipse.osbp.xtext.reportdsl.UnitEnum;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Border Style</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.impl.BorderStyleImpl#getType <em>Type</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.impl.BorderStyleImpl#getWidthvalue <em>Widthvalue</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.impl.BorderStyleImpl#getWidthunit <em>Widthunit</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.impl.BorderStyleImpl#getColor <em>Color</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class BorderStyleImpl extends ReportLazyResolverImpl implements BorderStyle {
+	/**
+	 * The default value of the '{@link #getType() <em>Type</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getType()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final BorderTypeEnum TYPE_EDEFAULT = BorderTypeEnum.NONE;
+
+	/**
+	 * The cached value of the '{@link #getType() <em>Type</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getType()
+	 * @generated
+	 * @ordered
+	 */
+	protected BorderTypeEnum type = TYPE_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getWidthvalue() <em>Widthvalue</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getWidthvalue()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final double WIDTHVALUE_EDEFAULT = 0.0;
+
+	/**
+	 * The cached value of the '{@link #getWidthvalue() <em>Widthvalue</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getWidthvalue()
+	 * @generated
+	 * @ordered
+	 */
+	protected double widthvalue = WIDTHVALUE_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getWidthunit() <em>Widthunit</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getWidthunit()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final UnitEnum WIDTHUNIT_EDEFAULT = UnitEnum.NULL;
+
+	/**
+	 * The cached value of the '{@link #getWidthunit() <em>Widthunit</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getWidthunit()
+	 * @generated
+	 * @ordered
+	 */
+	protected UnitEnum widthunit = WIDTHUNIT_EDEFAULT;
+
+	/**
+	 * The cached value of the '{@link #getColor() <em>Color</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getColor()
+	 * @generated
+	 * @ordered
+	 */
+	protected Color color;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected BorderStyleImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return ReportDSLPackage.Literals.BORDER_STYLE;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public BorderTypeEnum getType() {
+		return type;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setType(BorderTypeEnum newType) {
+		BorderTypeEnum oldType = type;
+		type = newType == null ? TYPE_EDEFAULT : newType;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ReportDSLPackage.BORDER_STYLE__TYPE, oldType, type));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public double getWidthvalue() {
+		return widthvalue;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setWidthvalue(double newWidthvalue) {
+		double oldWidthvalue = widthvalue;
+		widthvalue = newWidthvalue;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ReportDSLPackage.BORDER_STYLE__WIDTHVALUE, oldWidthvalue, widthvalue));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public UnitEnum getWidthunit() {
+		return widthunit;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setWidthunit(UnitEnum newWidthunit) {
+		UnitEnum oldWidthunit = widthunit;
+		widthunit = newWidthunit == null ? WIDTHUNIT_EDEFAULT : newWidthunit;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ReportDSLPackage.BORDER_STYLE__WIDTHUNIT, oldWidthunit, widthunit));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Color getColor() {
+		if (color != null && color.eIsProxy()) {
+			InternalEObject oldColor = (InternalEObject)color;
+			color = (Color)eResolveProxy(oldColor);
+			if (color != oldColor) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, ReportDSLPackage.BORDER_STYLE__COLOR, oldColor, color));
+			}
+		}
+		return color;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Color basicGetColor() {
+		return color;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setColor(Color newColor) {
+		Color oldColor = color;
+		color = newColor;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ReportDSLPackage.BORDER_STYLE__COLOR, oldColor, color));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case ReportDSLPackage.BORDER_STYLE__TYPE:
+				return getType();
+			case ReportDSLPackage.BORDER_STYLE__WIDTHVALUE:
+				return getWidthvalue();
+			case ReportDSLPackage.BORDER_STYLE__WIDTHUNIT:
+				return getWidthunit();
+			case ReportDSLPackage.BORDER_STYLE__COLOR:
+				if (resolve) return getColor();
+				return basicGetColor();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case ReportDSLPackage.BORDER_STYLE__TYPE:
+				setType((BorderTypeEnum)newValue);
+				return;
+			case ReportDSLPackage.BORDER_STYLE__WIDTHVALUE:
+				setWidthvalue((Double)newValue);
+				return;
+			case ReportDSLPackage.BORDER_STYLE__WIDTHUNIT:
+				setWidthunit((UnitEnum)newValue);
+				return;
+			case ReportDSLPackage.BORDER_STYLE__COLOR:
+				setColor((Color)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case ReportDSLPackage.BORDER_STYLE__TYPE:
+				setType(TYPE_EDEFAULT);
+				return;
+			case ReportDSLPackage.BORDER_STYLE__WIDTHVALUE:
+				setWidthvalue(WIDTHVALUE_EDEFAULT);
+				return;
+			case ReportDSLPackage.BORDER_STYLE__WIDTHUNIT:
+				setWidthunit(WIDTHUNIT_EDEFAULT);
+				return;
+			case ReportDSLPackage.BORDER_STYLE__COLOR:
+				setColor((Color)null);
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case ReportDSLPackage.BORDER_STYLE__TYPE:
+				return type != TYPE_EDEFAULT;
+			case ReportDSLPackage.BORDER_STYLE__WIDTHVALUE:
+				return widthvalue != WIDTHVALUE_EDEFAULT;
+			case ReportDSLPackage.BORDER_STYLE__WIDTHUNIT:
+				return widthunit != WIDTHUNIT_EDEFAULT;
+			case ReportDSLPackage.BORDER_STYLE__COLOR:
+				return color != 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(" (type: ");
+		result.append(type);
+		result.append(", widthvalue: ");
+		result.append(widthvalue);
+		result.append(", widthunit: ");
+		result.append(widthunit);
+		result.append(')');
+		return result.toString();
+	}
+
+} //BorderStyleImpl
diff --git a/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/impl/BuildInFontFamilyImpl.java b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/impl/BuildInFontFamilyImpl.java
new file mode 100644
index 0000000..471bf40
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/impl/BuildInFontFamilyImpl.java
@@ -0,0 +1,174 @@
+/**
+ * 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:  
+ *  		Christophe Loetz  (Loetz GmbH&Co.KG) - Initial implementation 
+ *  
+ */
+package org.eclipse.osbp.xtext.reportdsl.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.osbp.xtext.reportdsl.BuildInFontFamily;
+import org.eclipse.osbp.xtext.reportdsl.BuildInFontFamilyEnum;
+import org.eclipse.osbp.xtext.reportdsl.ReportDSLPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Build In Font Family</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.impl.BuildInFontFamilyImpl#getCustom <em>Custom</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class BuildInFontFamilyImpl extends ReportLazyResolverImpl implements BuildInFontFamily {
+	/**
+	 * The default value of the '{@link #getCustom() <em>Custom</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getCustom()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final BuildInFontFamilyEnum CUSTOM_EDEFAULT = BuildInFontFamilyEnum.MONOSPACE;
+
+	/**
+	 * The cached value of the '{@link #getCustom() <em>Custom</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getCustom()
+	 * @generated
+	 * @ordered
+	 */
+	protected BuildInFontFamilyEnum custom = CUSTOM_EDEFAULT;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected BuildInFontFamilyImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return ReportDSLPackage.Literals.BUILD_IN_FONT_FAMILY;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public BuildInFontFamilyEnum getCustom() {
+		return custom;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setCustom(BuildInFontFamilyEnum newCustom) {
+		BuildInFontFamilyEnum oldCustom = custom;
+		custom = newCustom == null ? CUSTOM_EDEFAULT : newCustom;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ReportDSLPackage.BUILD_IN_FONT_FAMILY__CUSTOM, oldCustom, custom));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case ReportDSLPackage.BUILD_IN_FONT_FAMILY__CUSTOM:
+				return getCustom();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case ReportDSLPackage.BUILD_IN_FONT_FAMILY__CUSTOM:
+				setCustom((BuildInFontFamilyEnum)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case ReportDSLPackage.BUILD_IN_FONT_FAMILY__CUSTOM:
+				setCustom(CUSTOM_EDEFAULT);
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case ReportDSLPackage.BUILD_IN_FONT_FAMILY__CUSTOM:
+				return custom != CUSTOM_EDEFAULT;
+		}
+		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(" (custom: ");
+		result.append(custom);
+		result.append(')');
+		return result.toString();
+	}
+
+} //BuildInFontFamilyImpl
diff --git a/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/impl/ColorImpl.java b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/impl/ColorImpl.java
new file mode 100644
index 0000000..5a6f72a
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/impl/ColorImpl.java
@@ -0,0 +1,456 @@
+/**
+ * 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:  
+ *  		Christophe Loetz  (Loetz GmbH&Co.KG) - Initial implementation 
+ *  
+ */
+package org.eclipse.osbp.xtext.reportdsl.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.reportdsl.Color;
+import org.eclipse.osbp.xtext.reportdsl.ReportDSLPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Color</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.impl.ColorImpl#getColor <em>Color</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.impl.ColorImpl#getBasecolor <em>Basecolor</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.impl.ColorImpl#getDarkensby <em>Darkensby</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.impl.ColorImpl#getLightensby <em>Lightensby</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.impl.ColorImpl#getTransformsby <em>Transformsby</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.impl.ColorImpl#getTargetcolor <em>Targetcolor</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class ColorImpl extends ReportBaseImpl implements Color {
+	/**
+	 * The default value of the '{@link #getColor() <em>Color</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getColor()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String COLOR_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getColor() <em>Color</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getColor()
+	 * @generated
+	 * @ordered
+	 */
+	protected String color = COLOR_EDEFAULT;
+
+	/**
+	 * The cached value of the '{@link #getBasecolor() <em>Basecolor</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getBasecolor()
+	 * @generated
+	 * @ordered
+	 */
+	protected Color basecolor;
+
+	/**
+	 * The default value of the '{@link #getDarkensby() <em>Darkensby</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getDarkensby()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final Integer DARKENSBY_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getDarkensby() <em>Darkensby</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getDarkensby()
+	 * @generated
+	 * @ordered
+	 */
+	protected Integer darkensby = DARKENSBY_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getLightensby() <em>Lightensby</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getLightensby()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final Integer LIGHTENSBY_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getLightensby() <em>Lightensby</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getLightensby()
+	 * @generated
+	 * @ordered
+	 */
+	protected Integer lightensby = LIGHTENSBY_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getTransformsby() <em>Transformsby</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getTransformsby()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final Integer TRANSFORMSBY_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getTransformsby() <em>Transformsby</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getTransformsby()
+	 * @generated
+	 * @ordered
+	 */
+	protected Integer transformsby = TRANSFORMSBY_EDEFAULT;
+
+	/**
+	 * The cached value of the '{@link #getTargetcolor() <em>Targetcolor</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getTargetcolor()
+	 * @generated
+	 * @ordered
+	 */
+	protected Color targetcolor;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected ColorImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return ReportDSLPackage.Literals.COLOR;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getColor() {
+		return color;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setColor(String newColor) {
+		String oldColor = color;
+		color = newColor;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ReportDSLPackage.COLOR__COLOR, oldColor, color));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Color getBasecolor() {
+		if (basecolor != null && basecolor.eIsProxy()) {
+			InternalEObject oldBasecolor = (InternalEObject)basecolor;
+			basecolor = (Color)eResolveProxy(oldBasecolor);
+			if (basecolor != oldBasecolor) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, ReportDSLPackage.COLOR__BASECOLOR, oldBasecolor, basecolor));
+			}
+		}
+		return basecolor;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Color basicGetBasecolor() {
+		return basecolor;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setBasecolor(Color newBasecolor) {
+		Color oldBasecolor = basecolor;
+		basecolor = newBasecolor;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ReportDSLPackage.COLOR__BASECOLOR, oldBasecolor, basecolor));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Integer getDarkensby() {
+		return darkensby;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setDarkensby(Integer newDarkensby) {
+		Integer oldDarkensby = darkensby;
+		darkensby = newDarkensby;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ReportDSLPackage.COLOR__DARKENSBY, oldDarkensby, darkensby));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Integer getLightensby() {
+		return lightensby;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setLightensby(Integer newLightensby) {
+		Integer oldLightensby = lightensby;
+		lightensby = newLightensby;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ReportDSLPackage.COLOR__LIGHTENSBY, oldLightensby, lightensby));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Integer getTransformsby() {
+		return transformsby;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setTransformsby(Integer newTransformsby) {
+		Integer oldTransformsby = transformsby;
+		transformsby = newTransformsby;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ReportDSLPackage.COLOR__TRANSFORMSBY, oldTransformsby, transformsby));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Color getTargetcolor() {
+		if (targetcolor != null && targetcolor.eIsProxy()) {
+			InternalEObject oldTargetcolor = (InternalEObject)targetcolor;
+			targetcolor = (Color)eResolveProxy(oldTargetcolor);
+			if (targetcolor != oldTargetcolor) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, ReportDSLPackage.COLOR__TARGETCOLOR, oldTargetcolor, targetcolor));
+			}
+		}
+		return targetcolor;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Color basicGetTargetcolor() {
+		return targetcolor;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setTargetcolor(Color newTargetcolor) {
+		Color oldTargetcolor = targetcolor;
+		targetcolor = newTargetcolor;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ReportDSLPackage.COLOR__TARGETCOLOR, oldTargetcolor, targetcolor));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case ReportDSLPackage.COLOR__COLOR:
+				return getColor();
+			case ReportDSLPackage.COLOR__BASECOLOR:
+				if (resolve) return getBasecolor();
+				return basicGetBasecolor();
+			case ReportDSLPackage.COLOR__DARKENSBY:
+				return getDarkensby();
+			case ReportDSLPackage.COLOR__LIGHTENSBY:
+				return getLightensby();
+			case ReportDSLPackage.COLOR__TRANSFORMSBY:
+				return getTransformsby();
+			case ReportDSLPackage.COLOR__TARGETCOLOR:
+				if (resolve) return getTargetcolor();
+				return basicGetTargetcolor();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case ReportDSLPackage.COLOR__COLOR:
+				setColor((String)newValue);
+				return;
+			case ReportDSLPackage.COLOR__BASECOLOR:
+				setBasecolor((Color)newValue);
+				return;
+			case ReportDSLPackage.COLOR__DARKENSBY:
+				setDarkensby((Integer)newValue);
+				return;
+			case ReportDSLPackage.COLOR__LIGHTENSBY:
+				setLightensby((Integer)newValue);
+				return;
+			case ReportDSLPackage.COLOR__TRANSFORMSBY:
+				setTransformsby((Integer)newValue);
+				return;
+			case ReportDSLPackage.COLOR__TARGETCOLOR:
+				setTargetcolor((Color)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case ReportDSLPackage.COLOR__COLOR:
+				setColor(COLOR_EDEFAULT);
+				return;
+			case ReportDSLPackage.COLOR__BASECOLOR:
+				setBasecolor((Color)null);
+				return;
+			case ReportDSLPackage.COLOR__DARKENSBY:
+				setDarkensby(DARKENSBY_EDEFAULT);
+				return;
+			case ReportDSLPackage.COLOR__LIGHTENSBY:
+				setLightensby(LIGHTENSBY_EDEFAULT);
+				return;
+			case ReportDSLPackage.COLOR__TRANSFORMSBY:
+				setTransformsby(TRANSFORMSBY_EDEFAULT);
+				return;
+			case ReportDSLPackage.COLOR__TARGETCOLOR:
+				setTargetcolor((Color)null);
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case ReportDSLPackage.COLOR__COLOR:
+				return COLOR_EDEFAULT == null ? color != null : !COLOR_EDEFAULT.equals(color);
+			case ReportDSLPackage.COLOR__BASECOLOR:
+				return basecolor != null;
+			case ReportDSLPackage.COLOR__DARKENSBY:
+				return DARKENSBY_EDEFAULT == null ? darkensby != null : !DARKENSBY_EDEFAULT.equals(darkensby);
+			case ReportDSLPackage.COLOR__LIGHTENSBY:
+				return LIGHTENSBY_EDEFAULT == null ? lightensby != null : !LIGHTENSBY_EDEFAULT.equals(lightensby);
+			case ReportDSLPackage.COLOR__TRANSFORMSBY:
+				return TRANSFORMSBY_EDEFAULT == null ? transformsby != null : !TRANSFORMSBY_EDEFAULT.equals(transformsby);
+			case ReportDSLPackage.COLOR__TARGETCOLOR:
+				return targetcolor != 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(" (color: ");
+		result.append(color);
+		result.append(", darkensby: ");
+		result.append(darkensby);
+		result.append(", lightensby: ");
+		result.append(lightensby);
+		result.append(", transformsby: ");
+		result.append(transformsby);
+		result.append(')');
+		return result.toString();
+	}
+
+} //ColorImpl
diff --git a/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/impl/ColorsImpl.java b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/impl/ColorsImpl.java
new file mode 100644
index 0000000..53a436d
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/impl/ColorsImpl.java
@@ -0,0 +1,161 @@
+/**
+ * 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:  
+ *  		Christophe Loetz  (Loetz GmbH&Co.KG) - Initial implementation 
+ *  
+ */
+package org.eclipse.osbp.xtext.reportdsl.impl;
+
+import java.util.Collection;
+
+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.util.EObjectContainmentEList;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+import org.eclipse.osbp.xtext.reportdsl.Color;
+import org.eclipse.osbp.xtext.reportdsl.Colors;
+import org.eclipse.osbp.xtext.reportdsl.ReportDSLPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Colors</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.impl.ColorsImpl#getColors <em>Colors</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class ColorsImpl extends ReportLazyResolverImpl implements Colors {
+	/**
+	 * The cached value of the '{@link #getColors() <em>Colors</em>}' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getColors()
+	 * @generated
+	 * @ordered
+	 */
+	protected EList<Color> colors;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected ColorsImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return ReportDSLPackage.Literals.COLORS;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EList<Color> getColors() {
+		if (colors == null) {
+			colors = new EObjectContainmentEList<Color>(Color.class, this, ReportDSLPackage.COLORS__COLORS);
+		}
+		return colors;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+		switch (featureID) {
+			case ReportDSLPackage.COLORS__COLORS:
+				return ((InternalEList<?>)getColors()).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 ReportDSLPackage.COLORS__COLORS:
+				return getColors();
+		}
+		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 ReportDSLPackage.COLORS__COLORS:
+				getColors().clear();
+				getColors().addAll((Collection<? extends Color>)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case ReportDSLPackage.COLORS__COLORS:
+				getColors().clear();
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case ReportDSLPackage.COLORS__COLORS:
+				return colors != null && !colors.isEmpty();
+		}
+		return super.eIsSet(featureID);
+	}
+
+} //ColorsImpl
diff --git a/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/impl/ContainerImpl.java b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/impl/ContainerImpl.java
new file mode 100644
index 0000000..6e34740
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/impl/ContainerImpl.java
@@ -0,0 +1,160 @@
+/**
+ * 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:  
+ *  		Christophe Loetz  (Loetz GmbH&Co.KG) - Initial implementation 
+ *  
+ */
+package org.eclipse.osbp.xtext.reportdsl.impl;
+
+import java.util.Collection;
+
+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.util.EObjectContainmentEList;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+import org.eclipse.osbp.xtext.reportdsl.Element;
+import org.eclipse.osbp.xtext.reportdsl.ReportDSLPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Container</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.impl.ContainerImpl#getElements <em>Elements</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class ContainerImpl extends ReportLazyResolverImpl implements org.eclipse.osbp.xtext.reportdsl.Container {
+	/**
+	 * 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<Element> elements;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected ContainerImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return ReportDSLPackage.Literals.CONTAINER;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EList<Element> getElements() {
+		if (elements == null) {
+			elements = new EObjectContainmentEList<Element>(Element.class, this, ReportDSLPackage.CONTAINER__ELEMENTS);
+		}
+		return elements;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+		switch (featureID) {
+			case ReportDSLPackage.CONTAINER__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 ReportDSLPackage.CONTAINER__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 ReportDSLPackage.CONTAINER__ELEMENTS:
+				getElements().clear();
+				getElements().addAll((Collection<? extends Element>)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case ReportDSLPackage.CONTAINER__ELEMENTS:
+				getElements().clear();
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case ReportDSLPackage.CONTAINER__ELEMENTS:
+				return elements != null && !elements.isEmpty();
+		}
+		return super.eIsSet(featureID);
+	}
+
+} //ContainerImpl
diff --git a/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/impl/CurrencyFormatImpl.java b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/impl/CurrencyFormatImpl.java
new file mode 100644
index 0000000..fd4a42e
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/impl/CurrencyFormatImpl.java
@@ -0,0 +1,174 @@
+/**
+ * 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:  
+ *  		Christophe Loetz  (Loetz GmbH&Co.KG) - Initial implementation 
+ *  
+ */
+package org.eclipse.osbp.xtext.reportdsl.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.osbp.xtext.reportdsl.CurrencyFormat;
+import org.eclipse.osbp.xtext.reportdsl.CurrencyFormatCategoryEnum;
+import org.eclipse.osbp.xtext.reportdsl.ReportDSLPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Currency Format</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.impl.CurrencyFormatImpl#getReport_category <em>Report category</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class CurrencyFormatImpl extends SomeFormatImpl implements CurrencyFormat {
+	/**
+	 * The default value of the '{@link #getReport_category() <em>Report category</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getReport_category()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final CurrencyFormatCategoryEnum REPORT_CATEGORY_EDEFAULT = CurrencyFormatCategoryEnum.UNFORMATTED;
+
+	/**
+	 * The cached value of the '{@link #getReport_category() <em>Report category</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getReport_category()
+	 * @generated
+	 * @ordered
+	 */
+	protected CurrencyFormatCategoryEnum report_category = REPORT_CATEGORY_EDEFAULT;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected CurrencyFormatImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return ReportDSLPackage.Literals.CURRENCY_FORMAT;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public CurrencyFormatCategoryEnum getReport_category() {
+		return report_category;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setReport_category(CurrencyFormatCategoryEnum newReport_category) {
+		CurrencyFormatCategoryEnum oldReport_category = report_category;
+		report_category = newReport_category == null ? REPORT_CATEGORY_EDEFAULT : newReport_category;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ReportDSLPackage.CURRENCY_FORMAT__REPORT_CATEGORY, oldReport_category, report_category));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case ReportDSLPackage.CURRENCY_FORMAT__REPORT_CATEGORY:
+				return getReport_category();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case ReportDSLPackage.CURRENCY_FORMAT__REPORT_CATEGORY:
+				setReport_category((CurrencyFormatCategoryEnum)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case ReportDSLPackage.CURRENCY_FORMAT__REPORT_CATEGORY:
+				setReport_category(REPORT_CATEGORY_EDEFAULT);
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case ReportDSLPackage.CURRENCY_FORMAT__REPORT_CATEGORY:
+				return report_category != REPORT_CATEGORY_EDEFAULT;
+		}
+		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(" (report_category: ");
+		result.append(report_category);
+		result.append(')');
+		return result.toString();
+	}
+
+} //CurrencyFormatImpl
diff --git a/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/impl/CustomFontFamilyImpl.java b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/impl/CustomFontFamilyImpl.java
new file mode 100644
index 0000000..e5fba7e
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/impl/CustomFontFamilyImpl.java
@@ -0,0 +1,173 @@
+/**
+ * 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:  
+ *  		Christophe Loetz  (Loetz GmbH&Co.KG) - Initial implementation 
+ *  
+ */
+package org.eclipse.osbp.xtext.reportdsl.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.osbp.xtext.reportdsl.CustomFontFamily;
+import org.eclipse.osbp.xtext.reportdsl.ReportDSLPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Custom Font Family</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.impl.CustomFontFamilyImpl#getCustom <em>Custom</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class CustomFontFamilyImpl extends ReportLazyResolverImpl implements CustomFontFamily {
+	/**
+	 * The default value of the '{@link #getCustom() <em>Custom</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getCustom()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String CUSTOM_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getCustom() <em>Custom</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getCustom()
+	 * @generated
+	 * @ordered
+	 */
+	protected String custom = CUSTOM_EDEFAULT;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected CustomFontFamilyImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return ReportDSLPackage.Literals.CUSTOM_FONT_FAMILY;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getCustom() {
+		return custom;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setCustom(String newCustom) {
+		String oldCustom = custom;
+		custom = newCustom;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ReportDSLPackage.CUSTOM_FONT_FAMILY__CUSTOM, oldCustom, custom));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case ReportDSLPackage.CUSTOM_FONT_FAMILY__CUSTOM:
+				return getCustom();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case ReportDSLPackage.CUSTOM_FONT_FAMILY__CUSTOM:
+				setCustom((String)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case ReportDSLPackage.CUSTOM_FONT_FAMILY__CUSTOM:
+				setCustom(CUSTOM_EDEFAULT);
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case ReportDSLPackage.CUSTOM_FONT_FAMILY__CUSTOM:
+				return CUSTOM_EDEFAULT == null ? custom != null : !CUSTOM_EDEFAULT.equals(custom);
+		}
+		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(" (custom: ");
+		result.append(custom);
+		result.append(')');
+		return result.toString();
+	}
+
+} //CustomFontFamilyImpl
diff --git a/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/impl/DatamartTableDetailImpl.java b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/impl/DatamartTableDetailImpl.java
new file mode 100644
index 0000000..4a01c58
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/impl/DatamartTableDetailImpl.java
@@ -0,0 +1,161 @@
+/**
+ * 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:  
+ *  		Christophe Loetz  (Loetz GmbH&Co.KG) - Initial implementation 
+ *  
+ */
+package org.eclipse.osbp.xtext.reportdsl.impl;
+
+import java.util.Collection;
+
+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.util.EObjectContainmentEList;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+import org.eclipse.osbp.xtext.reportdsl.DatamartTableDetail;
+import org.eclipse.osbp.xtext.reportdsl.DatamartTableProperty;
+import org.eclipse.osbp.xtext.reportdsl.ReportDSLPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Datamart Table Detail</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.impl.DatamartTableDetailImpl#getColumnFormatters <em>Column Formatters</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class DatamartTableDetailImpl extends WithStyleImpl implements DatamartTableDetail {
+	/**
+	 * The cached value of the '{@link #getColumnFormatters() <em>Column Formatters</em>}' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getColumnFormatters()
+	 * @generated
+	 * @ordered
+	 */
+	protected EList<DatamartTableProperty> columnFormatters;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected DatamartTableDetailImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return ReportDSLPackage.Literals.DATAMART_TABLE_DETAIL;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EList<DatamartTableProperty> getColumnFormatters() {
+		if (columnFormatters == null) {
+			columnFormatters = new EObjectContainmentEList<DatamartTableProperty>(DatamartTableProperty.class, this, ReportDSLPackage.DATAMART_TABLE_DETAIL__COLUMN_FORMATTERS);
+		}
+		return columnFormatters;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+		switch (featureID) {
+			case ReportDSLPackage.DATAMART_TABLE_DETAIL__COLUMN_FORMATTERS:
+				return ((InternalEList<?>)getColumnFormatters()).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 ReportDSLPackage.DATAMART_TABLE_DETAIL__COLUMN_FORMATTERS:
+				return getColumnFormatters();
+		}
+		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 ReportDSLPackage.DATAMART_TABLE_DETAIL__COLUMN_FORMATTERS:
+				getColumnFormatters().clear();
+				getColumnFormatters().addAll((Collection<? extends DatamartTableProperty>)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case ReportDSLPackage.DATAMART_TABLE_DETAIL__COLUMN_FORMATTERS:
+				getColumnFormatters().clear();
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case ReportDSLPackage.DATAMART_TABLE_DETAIL__COLUMN_FORMATTERS:
+				return columnFormatters != null && !columnFormatters.isEmpty();
+		}
+		return super.eIsSet(featureID);
+	}
+
+} //DatamartTableDetailImpl
diff --git a/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/impl/DatamartTableGroupFooterImpl.java b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/impl/DatamartTableGroupFooterImpl.java
new file mode 100644
index 0000000..38f35a8
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/impl/DatamartTableGroupFooterImpl.java
@@ -0,0 +1,271 @@
+/**
+ * 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:  
+ *  		Christophe Loetz  (Loetz GmbH&Co.KG) - Initial implementation 
+ *  
+ */
+package org.eclipse.osbp.xtext.reportdsl.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.reportdsl.DatamartTableGroupFooter;
+import org.eclipse.osbp.xtext.reportdsl.GridRow;
+import org.eclipse.osbp.xtext.reportdsl.ReportDSLPackage;
+import org.eclipse.osbp.xtext.reportdsl.SomeGrid;
+import org.eclipse.osbp.xtext.reportdsl.Style;
+import org.eclipse.osbp.xtext.reportdsl.WithStyle;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Datamart Table Group Footer</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.impl.DatamartTableGroupFooterImpl#getRows <em>Rows</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.impl.DatamartTableGroupFooterImpl#getStyle <em>Style</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class DatamartTableGroupFooterImpl extends ReportLazyResolverImpl implements DatamartTableGroupFooter {
+	/**
+	 * The cached value of the '{@link #getRows() <em>Rows</em>}' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getRows()
+	 * @generated
+	 * @ordered
+	 */
+	protected EList<GridRow> rows;
+
+	/**
+	 * The cached value of the '{@link #getStyle() <em>Style</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getStyle()
+	 * @generated
+	 * @ordered
+	 */
+	protected Style style;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected DatamartTableGroupFooterImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return ReportDSLPackage.Literals.DATAMART_TABLE_GROUP_FOOTER;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EList<GridRow> getRows() {
+		if (rows == null) {
+			rows = new EObjectContainmentEList<GridRow>(GridRow.class, this, ReportDSLPackage.DATAMART_TABLE_GROUP_FOOTER__ROWS);
+		}
+		return rows;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Style getStyle() {
+		if (style != null && style.eIsProxy()) {
+			InternalEObject oldStyle = (InternalEObject)style;
+			style = (Style)eResolveProxy(oldStyle);
+			if (style != oldStyle) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, ReportDSLPackage.DATAMART_TABLE_GROUP_FOOTER__STYLE, oldStyle, style));
+			}
+		}
+		return style;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Style basicGetStyle() {
+		return style;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setStyle(Style newStyle) {
+		Style oldStyle = style;
+		style = newStyle;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ReportDSLPackage.DATAMART_TABLE_GROUP_FOOTER__STYLE, oldStyle, style));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+		switch (featureID) {
+			case ReportDSLPackage.DATAMART_TABLE_GROUP_FOOTER__ROWS:
+				return ((InternalEList<?>)getRows()).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 ReportDSLPackage.DATAMART_TABLE_GROUP_FOOTER__ROWS:
+				return getRows();
+			case ReportDSLPackage.DATAMART_TABLE_GROUP_FOOTER__STYLE:
+				if (resolve) return getStyle();
+				return basicGetStyle();
+		}
+		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 ReportDSLPackage.DATAMART_TABLE_GROUP_FOOTER__ROWS:
+				getRows().clear();
+				getRows().addAll((Collection<? extends GridRow>)newValue);
+				return;
+			case ReportDSLPackage.DATAMART_TABLE_GROUP_FOOTER__STYLE:
+				setStyle((Style)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case ReportDSLPackage.DATAMART_TABLE_GROUP_FOOTER__ROWS:
+				getRows().clear();
+				return;
+			case ReportDSLPackage.DATAMART_TABLE_GROUP_FOOTER__STYLE:
+				setStyle((Style)null);
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case ReportDSLPackage.DATAMART_TABLE_GROUP_FOOTER__ROWS:
+				return rows != null && !rows.isEmpty();
+			case ReportDSLPackage.DATAMART_TABLE_GROUP_FOOTER__STYLE:
+				return style != null;
+		}
+		return super.eIsSet(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public int eBaseStructuralFeatureID(int derivedFeatureID, Class<?> baseClass) {
+		if (baseClass == SomeGrid.class) {
+			switch (derivedFeatureID) {
+				case ReportDSLPackage.DATAMART_TABLE_GROUP_FOOTER__ROWS: return ReportDSLPackage.SOME_GRID__ROWS;
+				default: return -1;
+			}
+		}
+		if (baseClass == WithStyle.class) {
+			switch (derivedFeatureID) {
+				case ReportDSLPackage.DATAMART_TABLE_GROUP_FOOTER__STYLE: return ReportDSLPackage.WITH_STYLE__STYLE;
+				default: return -1;
+			}
+		}
+		return super.eBaseStructuralFeatureID(derivedFeatureID, baseClass);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public int eDerivedStructuralFeatureID(int baseFeatureID, Class<?> baseClass) {
+		if (baseClass == SomeGrid.class) {
+			switch (baseFeatureID) {
+				case ReportDSLPackage.SOME_GRID__ROWS: return ReportDSLPackage.DATAMART_TABLE_GROUP_FOOTER__ROWS;
+				default: return -1;
+			}
+		}
+		if (baseClass == WithStyle.class) {
+			switch (baseFeatureID) {
+				case ReportDSLPackage.WITH_STYLE__STYLE: return ReportDSLPackage.DATAMART_TABLE_GROUP_FOOTER__STYLE;
+				default: return -1;
+			}
+		}
+		return super.eDerivedStructuralFeatureID(baseFeatureID, baseClass);
+	}
+
+} //DatamartTableGroupFooterImpl
diff --git a/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/impl/DatamartTableGroupHeaderImpl.java b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/impl/DatamartTableGroupHeaderImpl.java
new file mode 100644
index 0000000..0f1bb7f
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/impl/DatamartTableGroupHeaderImpl.java
@@ -0,0 +1,271 @@
+/**
+ * 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:  
+ *  		Christophe Loetz  (Loetz GmbH&Co.KG) - Initial implementation 
+ *  
+ */
+package org.eclipse.osbp.xtext.reportdsl.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.reportdsl.DatamartTableGroupHeader;
+import org.eclipse.osbp.xtext.reportdsl.GridRow;
+import org.eclipse.osbp.xtext.reportdsl.ReportDSLPackage;
+import org.eclipse.osbp.xtext.reportdsl.SomeGrid;
+import org.eclipse.osbp.xtext.reportdsl.Style;
+import org.eclipse.osbp.xtext.reportdsl.WithStyle;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Datamart Table Group Header</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.impl.DatamartTableGroupHeaderImpl#getRows <em>Rows</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.impl.DatamartTableGroupHeaderImpl#getStyle <em>Style</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class DatamartTableGroupHeaderImpl extends ReportLazyResolverImpl implements DatamartTableGroupHeader {
+	/**
+	 * The cached value of the '{@link #getRows() <em>Rows</em>}' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getRows()
+	 * @generated
+	 * @ordered
+	 */
+	protected EList<GridRow> rows;
+
+	/**
+	 * The cached value of the '{@link #getStyle() <em>Style</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getStyle()
+	 * @generated
+	 * @ordered
+	 */
+	protected Style style;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected DatamartTableGroupHeaderImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return ReportDSLPackage.Literals.DATAMART_TABLE_GROUP_HEADER;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EList<GridRow> getRows() {
+		if (rows == null) {
+			rows = new EObjectContainmentEList<GridRow>(GridRow.class, this, ReportDSLPackage.DATAMART_TABLE_GROUP_HEADER__ROWS);
+		}
+		return rows;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Style getStyle() {
+		if (style != null && style.eIsProxy()) {
+			InternalEObject oldStyle = (InternalEObject)style;
+			style = (Style)eResolveProxy(oldStyle);
+			if (style != oldStyle) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, ReportDSLPackage.DATAMART_TABLE_GROUP_HEADER__STYLE, oldStyle, style));
+			}
+		}
+		return style;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Style basicGetStyle() {
+		return style;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setStyle(Style newStyle) {
+		Style oldStyle = style;
+		style = newStyle;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ReportDSLPackage.DATAMART_TABLE_GROUP_HEADER__STYLE, oldStyle, style));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+		switch (featureID) {
+			case ReportDSLPackage.DATAMART_TABLE_GROUP_HEADER__ROWS:
+				return ((InternalEList<?>)getRows()).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 ReportDSLPackage.DATAMART_TABLE_GROUP_HEADER__ROWS:
+				return getRows();
+			case ReportDSLPackage.DATAMART_TABLE_GROUP_HEADER__STYLE:
+				if (resolve) return getStyle();
+				return basicGetStyle();
+		}
+		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 ReportDSLPackage.DATAMART_TABLE_GROUP_HEADER__ROWS:
+				getRows().clear();
+				getRows().addAll((Collection<? extends GridRow>)newValue);
+				return;
+			case ReportDSLPackage.DATAMART_TABLE_GROUP_HEADER__STYLE:
+				setStyle((Style)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case ReportDSLPackage.DATAMART_TABLE_GROUP_HEADER__ROWS:
+				getRows().clear();
+				return;
+			case ReportDSLPackage.DATAMART_TABLE_GROUP_HEADER__STYLE:
+				setStyle((Style)null);
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case ReportDSLPackage.DATAMART_TABLE_GROUP_HEADER__ROWS:
+				return rows != null && !rows.isEmpty();
+			case ReportDSLPackage.DATAMART_TABLE_GROUP_HEADER__STYLE:
+				return style != null;
+		}
+		return super.eIsSet(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public int eBaseStructuralFeatureID(int derivedFeatureID, Class<?> baseClass) {
+		if (baseClass == SomeGrid.class) {
+			switch (derivedFeatureID) {
+				case ReportDSLPackage.DATAMART_TABLE_GROUP_HEADER__ROWS: return ReportDSLPackage.SOME_GRID__ROWS;
+				default: return -1;
+			}
+		}
+		if (baseClass == WithStyle.class) {
+			switch (derivedFeatureID) {
+				case ReportDSLPackage.DATAMART_TABLE_GROUP_HEADER__STYLE: return ReportDSLPackage.WITH_STYLE__STYLE;
+				default: return -1;
+			}
+		}
+		return super.eBaseStructuralFeatureID(derivedFeatureID, baseClass);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public int eDerivedStructuralFeatureID(int baseFeatureID, Class<?> baseClass) {
+		if (baseClass == SomeGrid.class) {
+			switch (baseFeatureID) {
+				case ReportDSLPackage.SOME_GRID__ROWS: return ReportDSLPackage.DATAMART_TABLE_GROUP_HEADER__ROWS;
+				default: return -1;
+			}
+		}
+		if (baseClass == WithStyle.class) {
+			switch (baseFeatureID) {
+				case ReportDSLPackage.WITH_STYLE__STYLE: return ReportDSLPackage.DATAMART_TABLE_GROUP_HEADER__STYLE;
+				default: return -1;
+			}
+		}
+		return super.eDerivedStructuralFeatureID(baseFeatureID, baseClass);
+	}
+
+} //DatamartTableGroupHeaderImpl
diff --git a/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/impl/DatamartTableGroupImpl.java b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/impl/DatamartTableGroupImpl.java
new file mode 100644
index 0000000..b5c0d8c
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/impl/DatamartTableGroupImpl.java
@@ -0,0 +1,597 @@
+/**
+ * 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:  
+ *  		Christophe Loetz  (Loetz GmbH&Co.KG) - Initial implementation 
+ *  
+ */
+package org.eclipse.osbp.xtext.reportdsl.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.datamartdsl.DatamartProperty;
+
+import org.eclipse.osbp.xtext.reportdsl.DatamartTableGroup;
+import org.eclipse.osbp.xtext.reportdsl.DatamartTableGroupFooter;
+import org.eclipse.osbp.xtext.reportdsl.DatamartTableGroupHeader;
+import org.eclipse.osbp.xtext.reportdsl.ReportDSLPackage;
+import org.eclipse.osbp.xtext.reportdsl.Style;
+import org.eclipse.osbp.xtext.reportdsl.WithHeaderFooter;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Datamart Table Group</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.impl.DatamartTableGroupImpl#isDetailheader <em>Detailheader</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.impl.DatamartTableGroupImpl#getHeaderstyle <em>Headerstyle</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.impl.DatamartTableGroupImpl#isDetailfooter <em>Detailfooter</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.impl.DatamartTableGroupImpl#getFooterstyle <em>Footerstyle</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.impl.DatamartTableGroupImpl#getGroupingRef <em>Grouping Ref</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.impl.DatamartTableGroupImpl#getHeader <em>Header</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.impl.DatamartTableGroupImpl#getFooter <em>Footer</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class DatamartTableGroupImpl extends ReportBaseImpl implements DatamartTableGroup {
+	/**
+	 * The default value of the '{@link #isDetailheader() <em>Detailheader</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isDetailheader()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final boolean DETAILHEADER_EDEFAULT = false;
+
+	/**
+	 * The cached value of the '{@link #isDetailheader() <em>Detailheader</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isDetailheader()
+	 * @generated
+	 * @ordered
+	 */
+	protected boolean detailheader = DETAILHEADER_EDEFAULT;
+
+	/**
+	 * The cached value of the '{@link #getHeaderstyle() <em>Headerstyle</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getHeaderstyle()
+	 * @generated
+	 * @ordered
+	 */
+	protected Style headerstyle;
+
+	/**
+	 * The default value of the '{@link #isDetailfooter() <em>Detailfooter</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isDetailfooter()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final boolean DETAILFOOTER_EDEFAULT = false;
+
+	/**
+	 * The cached value of the '{@link #isDetailfooter() <em>Detailfooter</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isDetailfooter()
+	 * @generated
+	 * @ordered
+	 */
+	protected boolean detailfooter = DETAILFOOTER_EDEFAULT;
+
+	/**
+	 * The cached value of the '{@link #getFooterstyle() <em>Footerstyle</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getFooterstyle()
+	 * @generated
+	 * @ordered
+	 */
+	protected Style footerstyle;
+
+	/**
+	 * The cached value of the '{@link #getGroupingRef() <em>Grouping Ref</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getGroupingRef()
+	 * @generated
+	 * @ordered
+	 */
+	protected DatamartProperty groupingRef;
+
+	/**
+	 * The cached value of the '{@link #getHeader() <em>Header</em>}' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getHeader()
+	 * @generated
+	 * @ordered
+	 */
+	protected DatamartTableGroupHeader header;
+
+	/**
+	 * The cached value of the '{@link #getFooter() <em>Footer</em>}' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getFooter()
+	 * @generated
+	 * @ordered
+	 */
+	protected DatamartTableGroupFooter footer;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected DatamartTableGroupImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return ReportDSLPackage.Literals.DATAMART_TABLE_GROUP;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public boolean isDetailheader() {
+		return detailheader;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setDetailheader(boolean newDetailheader) {
+		boolean oldDetailheader = detailheader;
+		detailheader = newDetailheader;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ReportDSLPackage.DATAMART_TABLE_GROUP__DETAILHEADER, oldDetailheader, detailheader));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Style getHeaderstyle() {
+		if (headerstyle != null && headerstyle.eIsProxy()) {
+			InternalEObject oldHeaderstyle = (InternalEObject)headerstyle;
+			headerstyle = (Style)eResolveProxy(oldHeaderstyle);
+			if (headerstyle != oldHeaderstyle) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, ReportDSLPackage.DATAMART_TABLE_GROUP__HEADERSTYLE, oldHeaderstyle, headerstyle));
+			}
+		}
+		return headerstyle;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Style basicGetHeaderstyle() {
+		return headerstyle;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setHeaderstyle(Style newHeaderstyle) {
+		Style oldHeaderstyle = headerstyle;
+		headerstyle = newHeaderstyle;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ReportDSLPackage.DATAMART_TABLE_GROUP__HEADERSTYLE, oldHeaderstyle, headerstyle));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public boolean isDetailfooter() {
+		return detailfooter;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setDetailfooter(boolean newDetailfooter) {
+		boolean oldDetailfooter = detailfooter;
+		detailfooter = newDetailfooter;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ReportDSLPackage.DATAMART_TABLE_GROUP__DETAILFOOTER, oldDetailfooter, detailfooter));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Style getFooterstyle() {
+		if (footerstyle != null && footerstyle.eIsProxy()) {
+			InternalEObject oldFooterstyle = (InternalEObject)footerstyle;
+			footerstyle = (Style)eResolveProxy(oldFooterstyle);
+			if (footerstyle != oldFooterstyle) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, ReportDSLPackage.DATAMART_TABLE_GROUP__FOOTERSTYLE, oldFooterstyle, footerstyle));
+			}
+		}
+		return footerstyle;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Style basicGetFooterstyle() {
+		return footerstyle;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setFooterstyle(Style newFooterstyle) {
+		Style oldFooterstyle = footerstyle;
+		footerstyle = newFooterstyle;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ReportDSLPackage.DATAMART_TABLE_GROUP__FOOTERSTYLE, oldFooterstyle, footerstyle));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public DatamartProperty getGroupingRef() {
+		if (groupingRef != null && groupingRef.eIsProxy()) {
+			InternalEObject oldGroupingRef = (InternalEObject)groupingRef;
+			groupingRef = (DatamartProperty)eResolveProxy(oldGroupingRef);
+			if (groupingRef != oldGroupingRef) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, ReportDSLPackage.DATAMART_TABLE_GROUP__GROUPING_REF, oldGroupingRef, groupingRef));
+			}
+		}
+		return groupingRef;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public DatamartProperty basicGetGroupingRef() {
+		return groupingRef;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setGroupingRef(DatamartProperty newGroupingRef) {
+		DatamartProperty oldGroupingRef = groupingRef;
+		groupingRef = newGroupingRef;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ReportDSLPackage.DATAMART_TABLE_GROUP__GROUPING_REF, oldGroupingRef, groupingRef));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public DatamartTableGroupHeader getHeader() {
+		return header;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public NotificationChain basicSetHeader(DatamartTableGroupHeader newHeader, NotificationChain msgs) {
+		DatamartTableGroupHeader oldHeader = header;
+		header = newHeader;
+		if (eNotificationRequired()) {
+			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, ReportDSLPackage.DATAMART_TABLE_GROUP__HEADER, oldHeader, newHeader);
+			if (msgs == null) msgs = notification; else msgs.add(notification);
+		}
+		return msgs;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setHeader(DatamartTableGroupHeader newHeader) {
+		if (newHeader != header) {
+			NotificationChain msgs = null;
+			if (header != null)
+				msgs = ((InternalEObject)header).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - ReportDSLPackage.DATAMART_TABLE_GROUP__HEADER, null, msgs);
+			if (newHeader != null)
+				msgs = ((InternalEObject)newHeader).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - ReportDSLPackage.DATAMART_TABLE_GROUP__HEADER, null, msgs);
+			msgs = basicSetHeader(newHeader, msgs);
+			if (msgs != null) msgs.dispatch();
+		}
+		else if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ReportDSLPackage.DATAMART_TABLE_GROUP__HEADER, newHeader, newHeader));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public DatamartTableGroupFooter getFooter() {
+		return footer;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public NotificationChain basicSetFooter(DatamartTableGroupFooter newFooter, NotificationChain msgs) {
+		DatamartTableGroupFooter oldFooter = footer;
+		footer = newFooter;
+		if (eNotificationRequired()) {
+			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, ReportDSLPackage.DATAMART_TABLE_GROUP__FOOTER, oldFooter, newFooter);
+			if (msgs == null) msgs = notification; else msgs.add(notification);
+		}
+		return msgs;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setFooter(DatamartTableGroupFooter newFooter) {
+		if (newFooter != footer) {
+			NotificationChain msgs = null;
+			if (footer != null)
+				msgs = ((InternalEObject)footer).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - ReportDSLPackage.DATAMART_TABLE_GROUP__FOOTER, null, msgs);
+			if (newFooter != null)
+				msgs = ((InternalEObject)newFooter).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - ReportDSLPackage.DATAMART_TABLE_GROUP__FOOTER, null, msgs);
+			msgs = basicSetFooter(newFooter, msgs);
+			if (msgs != null) msgs.dispatch();
+		}
+		else if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ReportDSLPackage.DATAMART_TABLE_GROUP__FOOTER, newFooter, newFooter));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+		switch (featureID) {
+			case ReportDSLPackage.DATAMART_TABLE_GROUP__HEADER:
+				return basicSetHeader(null, msgs);
+			case ReportDSLPackage.DATAMART_TABLE_GROUP__FOOTER:
+				return basicSetFooter(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 ReportDSLPackage.DATAMART_TABLE_GROUP__DETAILHEADER:
+				return isDetailheader();
+			case ReportDSLPackage.DATAMART_TABLE_GROUP__HEADERSTYLE:
+				if (resolve) return getHeaderstyle();
+				return basicGetHeaderstyle();
+			case ReportDSLPackage.DATAMART_TABLE_GROUP__DETAILFOOTER:
+				return isDetailfooter();
+			case ReportDSLPackage.DATAMART_TABLE_GROUP__FOOTERSTYLE:
+				if (resolve) return getFooterstyle();
+				return basicGetFooterstyle();
+			case ReportDSLPackage.DATAMART_TABLE_GROUP__GROUPING_REF:
+				if (resolve) return getGroupingRef();
+				return basicGetGroupingRef();
+			case ReportDSLPackage.DATAMART_TABLE_GROUP__HEADER:
+				return getHeader();
+			case ReportDSLPackage.DATAMART_TABLE_GROUP__FOOTER:
+				return getFooter();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case ReportDSLPackage.DATAMART_TABLE_GROUP__DETAILHEADER:
+				setDetailheader((Boolean)newValue);
+				return;
+			case ReportDSLPackage.DATAMART_TABLE_GROUP__HEADERSTYLE:
+				setHeaderstyle((Style)newValue);
+				return;
+			case ReportDSLPackage.DATAMART_TABLE_GROUP__DETAILFOOTER:
+				setDetailfooter((Boolean)newValue);
+				return;
+			case ReportDSLPackage.DATAMART_TABLE_GROUP__FOOTERSTYLE:
+				setFooterstyle((Style)newValue);
+				return;
+			case ReportDSLPackage.DATAMART_TABLE_GROUP__GROUPING_REF:
+				setGroupingRef((DatamartProperty)newValue);
+				return;
+			case ReportDSLPackage.DATAMART_TABLE_GROUP__HEADER:
+				setHeader((DatamartTableGroupHeader)newValue);
+				return;
+			case ReportDSLPackage.DATAMART_TABLE_GROUP__FOOTER:
+				setFooter((DatamartTableGroupFooter)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case ReportDSLPackage.DATAMART_TABLE_GROUP__DETAILHEADER:
+				setDetailheader(DETAILHEADER_EDEFAULT);
+				return;
+			case ReportDSLPackage.DATAMART_TABLE_GROUP__HEADERSTYLE:
+				setHeaderstyle((Style)null);
+				return;
+			case ReportDSLPackage.DATAMART_TABLE_GROUP__DETAILFOOTER:
+				setDetailfooter(DETAILFOOTER_EDEFAULT);
+				return;
+			case ReportDSLPackage.DATAMART_TABLE_GROUP__FOOTERSTYLE:
+				setFooterstyle((Style)null);
+				return;
+			case ReportDSLPackage.DATAMART_TABLE_GROUP__GROUPING_REF:
+				setGroupingRef((DatamartProperty)null);
+				return;
+			case ReportDSLPackage.DATAMART_TABLE_GROUP__HEADER:
+				setHeader((DatamartTableGroupHeader)null);
+				return;
+			case ReportDSLPackage.DATAMART_TABLE_GROUP__FOOTER:
+				setFooter((DatamartTableGroupFooter)null);
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case ReportDSLPackage.DATAMART_TABLE_GROUP__DETAILHEADER:
+				return detailheader != DETAILHEADER_EDEFAULT;
+			case ReportDSLPackage.DATAMART_TABLE_GROUP__HEADERSTYLE:
+				return headerstyle != null;
+			case ReportDSLPackage.DATAMART_TABLE_GROUP__DETAILFOOTER:
+				return detailfooter != DETAILFOOTER_EDEFAULT;
+			case ReportDSLPackage.DATAMART_TABLE_GROUP__FOOTERSTYLE:
+				return footerstyle != null;
+			case ReportDSLPackage.DATAMART_TABLE_GROUP__GROUPING_REF:
+				return groupingRef != null;
+			case ReportDSLPackage.DATAMART_TABLE_GROUP__HEADER:
+				return header != null;
+			case ReportDSLPackage.DATAMART_TABLE_GROUP__FOOTER:
+				return footer != null;
+		}
+		return super.eIsSet(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public int eBaseStructuralFeatureID(int derivedFeatureID, Class<?> baseClass) {
+		if (baseClass == WithHeaderFooter.class) {
+			switch (derivedFeatureID) {
+				case ReportDSLPackage.DATAMART_TABLE_GROUP__DETAILHEADER: return ReportDSLPackage.WITH_HEADER_FOOTER__DETAILHEADER;
+				case ReportDSLPackage.DATAMART_TABLE_GROUP__HEADERSTYLE: return ReportDSLPackage.WITH_HEADER_FOOTER__HEADERSTYLE;
+				case ReportDSLPackage.DATAMART_TABLE_GROUP__DETAILFOOTER: return ReportDSLPackage.WITH_HEADER_FOOTER__DETAILFOOTER;
+				case ReportDSLPackage.DATAMART_TABLE_GROUP__FOOTERSTYLE: return ReportDSLPackage.WITH_HEADER_FOOTER__FOOTERSTYLE;
+				default: return -1;
+			}
+		}
+		return super.eBaseStructuralFeatureID(derivedFeatureID, baseClass);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public int eDerivedStructuralFeatureID(int baseFeatureID, Class<?> baseClass) {
+		if (baseClass == WithHeaderFooter.class) {
+			switch (baseFeatureID) {
+				case ReportDSLPackage.WITH_HEADER_FOOTER__DETAILHEADER: return ReportDSLPackage.DATAMART_TABLE_GROUP__DETAILHEADER;
+				case ReportDSLPackage.WITH_HEADER_FOOTER__HEADERSTYLE: return ReportDSLPackage.DATAMART_TABLE_GROUP__HEADERSTYLE;
+				case ReportDSLPackage.WITH_HEADER_FOOTER__DETAILFOOTER: return ReportDSLPackage.DATAMART_TABLE_GROUP__DETAILFOOTER;
+				case ReportDSLPackage.WITH_HEADER_FOOTER__FOOTERSTYLE: return ReportDSLPackage.DATAMART_TABLE_GROUP__FOOTERSTYLE;
+				default: return -1;
+			}
+		}
+		return super.eDerivedStructuralFeatureID(baseFeatureID, baseClass);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String toString() {
+		if (eIsProxy()) return super.toString();
+
+		StringBuffer result = new StringBuffer(super.toString());
+		result.append(" (detailheader: ");
+		result.append(detailheader);
+		result.append(", detailfooter: ");
+		result.append(detailfooter);
+		result.append(')');
+		return result.toString();
+	}
+
+} //DatamartTableGroupImpl
diff --git a/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/impl/DatamartTableImpl.java b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/impl/DatamartTableImpl.java
new file mode 100644
index 0000000..dc7d31b
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/impl/DatamartTableImpl.java
@@ -0,0 +1,597 @@
+/**
+ * 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:  
+ *  		Christophe Loetz  (Loetz GmbH&Co.KG) - Initial implementation 
+ *  
+ */
+package org.eclipse.osbp.xtext.reportdsl.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.reportdsl.DatamartTable;
+import org.eclipse.osbp.xtext.reportdsl.DatamartTableDetail;
+import org.eclipse.osbp.xtext.reportdsl.DatamartTableGroup;
+import org.eclipse.osbp.xtext.reportdsl.Element;
+import org.eclipse.osbp.xtext.reportdsl.ReportDSLPackage;
+import org.eclipse.osbp.xtext.reportdsl.Style;
+import org.eclipse.osbp.xtext.reportdsl.WithHeaderFooter;
+import org.eclipse.osbp.xtext.reportdsl.WithStyle;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Datamart Table</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.impl.DatamartTableImpl#getStyle <em>Style</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.impl.DatamartTableImpl#isDetailheader <em>Detailheader</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.impl.DatamartTableImpl#getHeaderstyle <em>Headerstyle</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.impl.DatamartTableImpl#isDetailfooter <em>Detailfooter</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.impl.DatamartTableImpl#getFooterstyle <em>Footerstyle</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.impl.DatamartTableImpl#getGroups <em>Groups</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.impl.DatamartTableImpl#getDetail <em>Detail</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class DatamartTableImpl extends ReportBaseImpl implements DatamartTable {
+	/**
+	 * The cached value of the '{@link #getStyle() <em>Style</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getStyle()
+	 * @generated
+	 * @ordered
+	 */
+	protected Style style;
+
+	/**
+	 * The default value of the '{@link #isDetailheader() <em>Detailheader</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isDetailheader()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final boolean DETAILHEADER_EDEFAULT = false;
+
+	/**
+	 * The cached value of the '{@link #isDetailheader() <em>Detailheader</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isDetailheader()
+	 * @generated
+	 * @ordered
+	 */
+	protected boolean detailheader = DETAILHEADER_EDEFAULT;
+
+	/**
+	 * The cached value of the '{@link #getHeaderstyle() <em>Headerstyle</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getHeaderstyle()
+	 * @generated
+	 * @ordered
+	 */
+	protected Style headerstyle;
+
+	/**
+	 * The default value of the '{@link #isDetailfooter() <em>Detailfooter</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isDetailfooter()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final boolean DETAILFOOTER_EDEFAULT = false;
+
+	/**
+	 * The cached value of the '{@link #isDetailfooter() <em>Detailfooter</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isDetailfooter()
+	 * @generated
+	 * @ordered
+	 */
+	protected boolean detailfooter = DETAILFOOTER_EDEFAULT;
+
+	/**
+	 * The cached value of the '{@link #getFooterstyle() <em>Footerstyle</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getFooterstyle()
+	 * @generated
+	 * @ordered
+	 */
+	protected Style footerstyle;
+
+	/**
+	 * The cached value of the '{@link #getGroups() <em>Groups</em>}' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getGroups()
+	 * @generated
+	 * @ordered
+	 */
+	protected EList<DatamartTableGroup> groups;
+
+	/**
+	 * The cached value of the '{@link #getDetail() <em>Detail</em>}' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getDetail()
+	 * @generated
+	 * @ordered
+	 */
+	protected DatamartTableDetail detail;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected DatamartTableImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return ReportDSLPackage.Literals.DATAMART_TABLE;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Style getStyle() {
+		if (style != null && style.eIsProxy()) {
+			InternalEObject oldStyle = (InternalEObject)style;
+			style = (Style)eResolveProxy(oldStyle);
+			if (style != oldStyle) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, ReportDSLPackage.DATAMART_TABLE__STYLE, oldStyle, style));
+			}
+		}
+		return style;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Style basicGetStyle() {
+		return style;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setStyle(Style newStyle) {
+		Style oldStyle = style;
+		style = newStyle;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ReportDSLPackage.DATAMART_TABLE__STYLE, oldStyle, style));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public boolean isDetailheader() {
+		return detailheader;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setDetailheader(boolean newDetailheader) {
+		boolean oldDetailheader = detailheader;
+		detailheader = newDetailheader;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ReportDSLPackage.DATAMART_TABLE__DETAILHEADER, oldDetailheader, detailheader));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Style getHeaderstyle() {
+		if (headerstyle != null && headerstyle.eIsProxy()) {
+			InternalEObject oldHeaderstyle = (InternalEObject)headerstyle;
+			headerstyle = (Style)eResolveProxy(oldHeaderstyle);
+			if (headerstyle != oldHeaderstyle) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, ReportDSLPackage.DATAMART_TABLE__HEADERSTYLE, oldHeaderstyle, headerstyle));
+			}
+		}
+		return headerstyle;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Style basicGetHeaderstyle() {
+		return headerstyle;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setHeaderstyle(Style newHeaderstyle) {
+		Style oldHeaderstyle = headerstyle;
+		headerstyle = newHeaderstyle;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ReportDSLPackage.DATAMART_TABLE__HEADERSTYLE, oldHeaderstyle, headerstyle));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public boolean isDetailfooter() {
+		return detailfooter;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setDetailfooter(boolean newDetailfooter) {
+		boolean oldDetailfooter = detailfooter;
+		detailfooter = newDetailfooter;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ReportDSLPackage.DATAMART_TABLE__DETAILFOOTER, oldDetailfooter, detailfooter));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Style getFooterstyle() {
+		if (footerstyle != null && footerstyle.eIsProxy()) {
+			InternalEObject oldFooterstyle = (InternalEObject)footerstyle;
+			footerstyle = (Style)eResolveProxy(oldFooterstyle);
+			if (footerstyle != oldFooterstyle) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, ReportDSLPackage.DATAMART_TABLE__FOOTERSTYLE, oldFooterstyle, footerstyle));
+			}
+		}
+		return footerstyle;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Style basicGetFooterstyle() {
+		return footerstyle;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setFooterstyle(Style newFooterstyle) {
+		Style oldFooterstyle = footerstyle;
+		footerstyle = newFooterstyle;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ReportDSLPackage.DATAMART_TABLE__FOOTERSTYLE, oldFooterstyle, footerstyle));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EList<DatamartTableGroup> getGroups() {
+		if (groups == null) {
+			groups = new EObjectContainmentEList<DatamartTableGroup>(DatamartTableGroup.class, this, ReportDSLPackage.DATAMART_TABLE__GROUPS);
+		}
+		return groups;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public DatamartTableDetail getDetail() {
+		return detail;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public NotificationChain basicSetDetail(DatamartTableDetail newDetail, NotificationChain msgs) {
+		DatamartTableDetail oldDetail = detail;
+		detail = newDetail;
+		if (eNotificationRequired()) {
+			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, ReportDSLPackage.DATAMART_TABLE__DETAIL, oldDetail, newDetail);
+			if (msgs == null) msgs = notification; else msgs.add(notification);
+		}
+		return msgs;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setDetail(DatamartTableDetail newDetail) {
+		if (newDetail != detail) {
+			NotificationChain msgs = null;
+			if (detail != null)
+				msgs = ((InternalEObject)detail).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - ReportDSLPackage.DATAMART_TABLE__DETAIL, null, msgs);
+			if (newDetail != null)
+				msgs = ((InternalEObject)newDetail).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - ReportDSLPackage.DATAMART_TABLE__DETAIL, null, msgs);
+			msgs = basicSetDetail(newDetail, msgs);
+			if (msgs != null) msgs.dispatch();
+		}
+		else if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ReportDSLPackage.DATAMART_TABLE__DETAIL, newDetail, newDetail));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+		switch (featureID) {
+			case ReportDSLPackage.DATAMART_TABLE__GROUPS:
+				return ((InternalEList<?>)getGroups()).basicRemove(otherEnd, msgs);
+			case ReportDSLPackage.DATAMART_TABLE__DETAIL:
+				return basicSetDetail(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 ReportDSLPackage.DATAMART_TABLE__STYLE:
+				if (resolve) return getStyle();
+				return basicGetStyle();
+			case ReportDSLPackage.DATAMART_TABLE__DETAILHEADER:
+				return isDetailheader();
+			case ReportDSLPackage.DATAMART_TABLE__HEADERSTYLE:
+				if (resolve) return getHeaderstyle();
+				return basicGetHeaderstyle();
+			case ReportDSLPackage.DATAMART_TABLE__DETAILFOOTER:
+				return isDetailfooter();
+			case ReportDSLPackage.DATAMART_TABLE__FOOTERSTYLE:
+				if (resolve) return getFooterstyle();
+				return basicGetFooterstyle();
+			case ReportDSLPackage.DATAMART_TABLE__GROUPS:
+				return getGroups();
+			case ReportDSLPackage.DATAMART_TABLE__DETAIL:
+				return getDetail();
+		}
+		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 ReportDSLPackage.DATAMART_TABLE__STYLE:
+				setStyle((Style)newValue);
+				return;
+			case ReportDSLPackage.DATAMART_TABLE__DETAILHEADER:
+				setDetailheader((Boolean)newValue);
+				return;
+			case ReportDSLPackage.DATAMART_TABLE__HEADERSTYLE:
+				setHeaderstyle((Style)newValue);
+				return;
+			case ReportDSLPackage.DATAMART_TABLE__DETAILFOOTER:
+				setDetailfooter((Boolean)newValue);
+				return;
+			case ReportDSLPackage.DATAMART_TABLE__FOOTERSTYLE:
+				setFooterstyle((Style)newValue);
+				return;
+			case ReportDSLPackage.DATAMART_TABLE__GROUPS:
+				getGroups().clear();
+				getGroups().addAll((Collection<? extends DatamartTableGroup>)newValue);
+				return;
+			case ReportDSLPackage.DATAMART_TABLE__DETAIL:
+				setDetail((DatamartTableDetail)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case ReportDSLPackage.DATAMART_TABLE__STYLE:
+				setStyle((Style)null);
+				return;
+			case ReportDSLPackage.DATAMART_TABLE__DETAILHEADER:
+				setDetailheader(DETAILHEADER_EDEFAULT);
+				return;
+			case ReportDSLPackage.DATAMART_TABLE__HEADERSTYLE:
+				setHeaderstyle((Style)null);
+				return;
+			case ReportDSLPackage.DATAMART_TABLE__DETAILFOOTER:
+				setDetailfooter(DETAILFOOTER_EDEFAULT);
+				return;
+			case ReportDSLPackage.DATAMART_TABLE__FOOTERSTYLE:
+				setFooterstyle((Style)null);
+				return;
+			case ReportDSLPackage.DATAMART_TABLE__GROUPS:
+				getGroups().clear();
+				return;
+			case ReportDSLPackage.DATAMART_TABLE__DETAIL:
+				setDetail((DatamartTableDetail)null);
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case ReportDSLPackage.DATAMART_TABLE__STYLE:
+				return style != null;
+			case ReportDSLPackage.DATAMART_TABLE__DETAILHEADER:
+				return detailheader != DETAILHEADER_EDEFAULT;
+			case ReportDSLPackage.DATAMART_TABLE__HEADERSTYLE:
+				return headerstyle != null;
+			case ReportDSLPackage.DATAMART_TABLE__DETAILFOOTER:
+				return detailfooter != DETAILFOOTER_EDEFAULT;
+			case ReportDSLPackage.DATAMART_TABLE__FOOTERSTYLE:
+				return footerstyle != null;
+			case ReportDSLPackage.DATAMART_TABLE__GROUPS:
+				return groups != null && !groups.isEmpty();
+			case ReportDSLPackage.DATAMART_TABLE__DETAIL:
+				return detail != null;
+		}
+		return super.eIsSet(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public int eBaseStructuralFeatureID(int derivedFeatureID, Class<?> baseClass) {
+		if (baseClass == Element.class) {
+			switch (derivedFeatureID) {
+				default: return -1;
+			}
+		}
+		if (baseClass == WithStyle.class) {
+			switch (derivedFeatureID) {
+				case ReportDSLPackage.DATAMART_TABLE__STYLE: return ReportDSLPackage.WITH_STYLE__STYLE;
+				default: return -1;
+			}
+		}
+		if (baseClass == WithHeaderFooter.class) {
+			switch (derivedFeatureID) {
+				case ReportDSLPackage.DATAMART_TABLE__DETAILHEADER: return ReportDSLPackage.WITH_HEADER_FOOTER__DETAILHEADER;
+				case ReportDSLPackage.DATAMART_TABLE__HEADERSTYLE: return ReportDSLPackage.WITH_HEADER_FOOTER__HEADERSTYLE;
+				case ReportDSLPackage.DATAMART_TABLE__DETAILFOOTER: return ReportDSLPackage.WITH_HEADER_FOOTER__DETAILFOOTER;
+				case ReportDSLPackage.DATAMART_TABLE__FOOTERSTYLE: return ReportDSLPackage.WITH_HEADER_FOOTER__FOOTERSTYLE;
+				default: return -1;
+			}
+		}
+		return super.eBaseStructuralFeatureID(derivedFeatureID, baseClass);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public int eDerivedStructuralFeatureID(int baseFeatureID, Class<?> baseClass) {
+		if (baseClass == Element.class) {
+			switch (baseFeatureID) {
+				default: return -1;
+			}
+		}
+		if (baseClass == WithStyle.class) {
+			switch (baseFeatureID) {
+				case ReportDSLPackage.WITH_STYLE__STYLE: return ReportDSLPackage.DATAMART_TABLE__STYLE;
+				default: return -1;
+			}
+		}
+		if (baseClass == WithHeaderFooter.class) {
+			switch (baseFeatureID) {
+				case ReportDSLPackage.WITH_HEADER_FOOTER__DETAILHEADER: return ReportDSLPackage.DATAMART_TABLE__DETAILHEADER;
+				case ReportDSLPackage.WITH_HEADER_FOOTER__HEADERSTYLE: return ReportDSLPackage.DATAMART_TABLE__HEADERSTYLE;
+				case ReportDSLPackage.WITH_HEADER_FOOTER__DETAILFOOTER: return ReportDSLPackage.DATAMART_TABLE__DETAILFOOTER;
+				case ReportDSLPackage.WITH_HEADER_FOOTER__FOOTERSTYLE: return ReportDSLPackage.DATAMART_TABLE__FOOTERSTYLE;
+				default: return -1;
+			}
+		}
+		return super.eDerivedStructuralFeatureID(baseFeatureID, baseClass);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String toString() {
+		if (eIsProxy()) return super.toString();
+
+		StringBuffer result = new StringBuffer(super.toString());
+		result.append(" (detailheader: ");
+		result.append(detailheader);
+		result.append(", detailfooter: ");
+		result.append(detailfooter);
+		result.append(')');
+		return result.toString();
+	}
+
+} //DatamartTableImpl
diff --git a/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/impl/DatamartTablePropertyImpl.java b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/impl/DatamartTablePropertyImpl.java
new file mode 100644
index 0000000..704e50a
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/impl/DatamartTablePropertyImpl.java
@@ -0,0 +1,605 @@
+/**
+ * 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:  
+ *  		Christophe Loetz  (Loetz GmbH&Co.KG) - Initial implementation 
+ *  
+ */
+package org.eclipse.osbp.xtext.reportdsl.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.reportdsl.DatamartTableProperty;
+import org.eclipse.osbp.xtext.reportdsl.ReportDSLPackage;
+import org.eclipse.osbp.xtext.reportdsl.Style;
+import org.eclipse.osbp.xtext.reportdsl.TableImage;
+import org.eclipse.osbp.xtext.reportdsl.TableInterval;
+import org.eclipse.osbp.xtext.reportdsl.TableLookup;
+import org.eclipse.osbp.xtext.reportdsl.TableValueElement;
+import org.eclipse.osbp.xtext.reportdsl.WithStyle;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Datamart Table Property</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.impl.DatamartTablePropertyImpl#getStyle <em>Style</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.impl.DatamartTablePropertyImpl#getColumn <em>Column</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.impl.DatamartTablePropertyImpl#getIntervals <em>Intervals</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.impl.DatamartTablePropertyImpl#isHideLabelInterval <em>Hide Label Interval</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.impl.DatamartTablePropertyImpl#getLookups <em>Lookups</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.impl.DatamartTablePropertyImpl#isHideLabelLookup <em>Hide Label Lookup</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.impl.DatamartTablePropertyImpl#isHasImage <em>Has Image</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.impl.DatamartTablePropertyImpl#getImage <em>Image</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class DatamartTablePropertyImpl extends ReportLazyResolverImpl implements DatamartTableProperty {
+	/**
+	 * The cached value of the '{@link #getStyle() <em>Style</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getStyle()
+	 * @generated
+	 * @ordered
+	 */
+	protected Style style;
+
+	/**
+	 * The cached value of the '{@link #getColumn() <em>Column</em>}' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getColumn()
+	 * @generated
+	 * @ordered
+	 */
+	protected TableValueElement column;
+
+	/**
+	 * The cached value of the '{@link #getIntervals() <em>Intervals</em>}' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getIntervals()
+	 * @generated
+	 * @ordered
+	 */
+	protected EList<TableInterval> intervals;
+
+	/**
+	 * The default value of the '{@link #isHideLabelInterval() <em>Hide Label Interval</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isHideLabelInterval()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final boolean HIDE_LABEL_INTERVAL_EDEFAULT = false;
+
+	/**
+	 * The cached value of the '{@link #isHideLabelInterval() <em>Hide Label Interval</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isHideLabelInterval()
+	 * @generated
+	 * @ordered
+	 */
+	protected boolean hideLabelInterval = HIDE_LABEL_INTERVAL_EDEFAULT;
+
+	/**
+	 * The cached value of the '{@link #getLookups() <em>Lookups</em>}' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getLookups()
+	 * @generated
+	 * @ordered
+	 */
+	protected EList<TableLookup> lookups;
+
+	/**
+	 * The default value of the '{@link #isHideLabelLookup() <em>Hide Label Lookup</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isHideLabelLookup()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final boolean HIDE_LABEL_LOOKUP_EDEFAULT = false;
+
+	/**
+	 * The cached value of the '{@link #isHideLabelLookup() <em>Hide Label Lookup</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isHideLabelLookup()
+	 * @generated
+	 * @ordered
+	 */
+	protected boolean hideLabelLookup = HIDE_LABEL_LOOKUP_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #isHasImage() <em>Has Image</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isHasImage()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final boolean HAS_IMAGE_EDEFAULT = false;
+
+	/**
+	 * The cached value of the '{@link #isHasImage() <em>Has Image</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isHasImage()
+	 * @generated
+	 * @ordered
+	 */
+	protected boolean hasImage = HAS_IMAGE_EDEFAULT;
+
+	/**
+	 * The cached value of the '{@link #getImage() <em>Image</em>}' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getImage()
+	 * @generated
+	 * @ordered
+	 */
+	protected TableImage image;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected DatamartTablePropertyImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return ReportDSLPackage.Literals.DATAMART_TABLE_PROPERTY;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Style getStyle() {
+		if (style != null && style.eIsProxy()) {
+			InternalEObject oldStyle = (InternalEObject)style;
+			style = (Style)eResolveProxy(oldStyle);
+			if (style != oldStyle) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, ReportDSLPackage.DATAMART_TABLE_PROPERTY__STYLE, oldStyle, style));
+			}
+		}
+		return style;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Style basicGetStyle() {
+		return style;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setStyle(Style newStyle) {
+		Style oldStyle = style;
+		style = newStyle;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ReportDSLPackage.DATAMART_TABLE_PROPERTY__STYLE, oldStyle, style));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public TableValueElement getColumn() {
+		return column;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public NotificationChain basicSetColumn(TableValueElement newColumn, NotificationChain msgs) {
+		TableValueElement oldColumn = column;
+		column = newColumn;
+		if (eNotificationRequired()) {
+			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, ReportDSLPackage.DATAMART_TABLE_PROPERTY__COLUMN, oldColumn, newColumn);
+			if (msgs == null) msgs = notification; else msgs.add(notification);
+		}
+		return msgs;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setColumn(TableValueElement newColumn) {
+		if (newColumn != column) {
+			NotificationChain msgs = null;
+			if (column != null)
+				msgs = ((InternalEObject)column).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - ReportDSLPackage.DATAMART_TABLE_PROPERTY__COLUMN, null, msgs);
+			if (newColumn != null)
+				msgs = ((InternalEObject)newColumn).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - ReportDSLPackage.DATAMART_TABLE_PROPERTY__COLUMN, null, msgs);
+			msgs = basicSetColumn(newColumn, msgs);
+			if (msgs != null) msgs.dispatch();
+		}
+		else if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ReportDSLPackage.DATAMART_TABLE_PROPERTY__COLUMN, newColumn, newColumn));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EList<TableInterval> getIntervals() {
+		if (intervals == null) {
+			intervals = new EObjectContainmentEList<TableInterval>(TableInterval.class, this, ReportDSLPackage.DATAMART_TABLE_PROPERTY__INTERVALS);
+		}
+		return intervals;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public boolean isHideLabelInterval() {
+		return hideLabelInterval;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setHideLabelInterval(boolean newHideLabelInterval) {
+		boolean oldHideLabelInterval = hideLabelInterval;
+		hideLabelInterval = newHideLabelInterval;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ReportDSLPackage.DATAMART_TABLE_PROPERTY__HIDE_LABEL_INTERVAL, oldHideLabelInterval, hideLabelInterval));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EList<TableLookup> getLookups() {
+		if (lookups == null) {
+			lookups = new EObjectContainmentEList<TableLookup>(TableLookup.class, this, ReportDSLPackage.DATAMART_TABLE_PROPERTY__LOOKUPS);
+		}
+		return lookups;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public boolean isHideLabelLookup() {
+		return hideLabelLookup;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setHideLabelLookup(boolean newHideLabelLookup) {
+		boolean oldHideLabelLookup = hideLabelLookup;
+		hideLabelLookup = newHideLabelLookup;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ReportDSLPackage.DATAMART_TABLE_PROPERTY__HIDE_LABEL_LOOKUP, oldHideLabelLookup, hideLabelLookup));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public boolean isHasImage() {
+		return hasImage;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setHasImage(boolean newHasImage) {
+		boolean oldHasImage = hasImage;
+		hasImage = newHasImage;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ReportDSLPackage.DATAMART_TABLE_PROPERTY__HAS_IMAGE, oldHasImage, hasImage));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public TableImage getImage() {
+		return image;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public NotificationChain basicSetImage(TableImage newImage, NotificationChain msgs) {
+		TableImage oldImage = image;
+		image = newImage;
+		if (eNotificationRequired()) {
+			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, ReportDSLPackage.DATAMART_TABLE_PROPERTY__IMAGE, oldImage, newImage);
+			if (msgs == null) msgs = notification; else msgs.add(notification);
+		}
+		return msgs;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setImage(TableImage newImage) {
+		if (newImage != image) {
+			NotificationChain msgs = null;
+			if (image != null)
+				msgs = ((InternalEObject)image).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - ReportDSLPackage.DATAMART_TABLE_PROPERTY__IMAGE, null, msgs);
+			if (newImage != null)
+				msgs = ((InternalEObject)newImage).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - ReportDSLPackage.DATAMART_TABLE_PROPERTY__IMAGE, null, msgs);
+			msgs = basicSetImage(newImage, msgs);
+			if (msgs != null) msgs.dispatch();
+		}
+		else if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ReportDSLPackage.DATAMART_TABLE_PROPERTY__IMAGE, newImage, newImage));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+		switch (featureID) {
+			case ReportDSLPackage.DATAMART_TABLE_PROPERTY__COLUMN:
+				return basicSetColumn(null, msgs);
+			case ReportDSLPackage.DATAMART_TABLE_PROPERTY__INTERVALS:
+				return ((InternalEList<?>)getIntervals()).basicRemove(otherEnd, msgs);
+			case ReportDSLPackage.DATAMART_TABLE_PROPERTY__LOOKUPS:
+				return ((InternalEList<?>)getLookups()).basicRemove(otherEnd, msgs);
+			case ReportDSLPackage.DATAMART_TABLE_PROPERTY__IMAGE:
+				return basicSetImage(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 ReportDSLPackage.DATAMART_TABLE_PROPERTY__STYLE:
+				if (resolve) return getStyle();
+				return basicGetStyle();
+			case ReportDSLPackage.DATAMART_TABLE_PROPERTY__COLUMN:
+				return getColumn();
+			case ReportDSLPackage.DATAMART_TABLE_PROPERTY__INTERVALS:
+				return getIntervals();
+			case ReportDSLPackage.DATAMART_TABLE_PROPERTY__HIDE_LABEL_INTERVAL:
+				return isHideLabelInterval();
+			case ReportDSLPackage.DATAMART_TABLE_PROPERTY__LOOKUPS:
+				return getLookups();
+			case ReportDSLPackage.DATAMART_TABLE_PROPERTY__HIDE_LABEL_LOOKUP:
+				return isHideLabelLookup();
+			case ReportDSLPackage.DATAMART_TABLE_PROPERTY__HAS_IMAGE:
+				return isHasImage();
+			case ReportDSLPackage.DATAMART_TABLE_PROPERTY__IMAGE:
+				return getImage();
+		}
+		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 ReportDSLPackage.DATAMART_TABLE_PROPERTY__STYLE:
+				setStyle((Style)newValue);
+				return;
+			case ReportDSLPackage.DATAMART_TABLE_PROPERTY__COLUMN:
+				setColumn((TableValueElement)newValue);
+				return;
+			case ReportDSLPackage.DATAMART_TABLE_PROPERTY__INTERVALS:
+				getIntervals().clear();
+				getIntervals().addAll((Collection<? extends TableInterval>)newValue);
+				return;
+			case ReportDSLPackage.DATAMART_TABLE_PROPERTY__HIDE_LABEL_INTERVAL:
+				setHideLabelInterval((Boolean)newValue);
+				return;
+			case ReportDSLPackage.DATAMART_TABLE_PROPERTY__LOOKUPS:
+				getLookups().clear();
+				getLookups().addAll((Collection<? extends TableLookup>)newValue);
+				return;
+			case ReportDSLPackage.DATAMART_TABLE_PROPERTY__HIDE_LABEL_LOOKUP:
+				setHideLabelLookup((Boolean)newValue);
+				return;
+			case ReportDSLPackage.DATAMART_TABLE_PROPERTY__HAS_IMAGE:
+				setHasImage((Boolean)newValue);
+				return;
+			case ReportDSLPackage.DATAMART_TABLE_PROPERTY__IMAGE:
+				setImage((TableImage)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case ReportDSLPackage.DATAMART_TABLE_PROPERTY__STYLE:
+				setStyle((Style)null);
+				return;
+			case ReportDSLPackage.DATAMART_TABLE_PROPERTY__COLUMN:
+				setColumn((TableValueElement)null);
+				return;
+			case ReportDSLPackage.DATAMART_TABLE_PROPERTY__INTERVALS:
+				getIntervals().clear();
+				return;
+			case ReportDSLPackage.DATAMART_TABLE_PROPERTY__HIDE_LABEL_INTERVAL:
+				setHideLabelInterval(HIDE_LABEL_INTERVAL_EDEFAULT);
+				return;
+			case ReportDSLPackage.DATAMART_TABLE_PROPERTY__LOOKUPS:
+				getLookups().clear();
+				return;
+			case ReportDSLPackage.DATAMART_TABLE_PROPERTY__HIDE_LABEL_LOOKUP:
+				setHideLabelLookup(HIDE_LABEL_LOOKUP_EDEFAULT);
+				return;
+			case ReportDSLPackage.DATAMART_TABLE_PROPERTY__HAS_IMAGE:
+				setHasImage(HAS_IMAGE_EDEFAULT);
+				return;
+			case ReportDSLPackage.DATAMART_TABLE_PROPERTY__IMAGE:
+				setImage((TableImage)null);
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case ReportDSLPackage.DATAMART_TABLE_PROPERTY__STYLE:
+				return style != null;
+			case ReportDSLPackage.DATAMART_TABLE_PROPERTY__COLUMN:
+				return column != null;
+			case ReportDSLPackage.DATAMART_TABLE_PROPERTY__INTERVALS:
+				return intervals != null && !intervals.isEmpty();
+			case ReportDSLPackage.DATAMART_TABLE_PROPERTY__HIDE_LABEL_INTERVAL:
+				return hideLabelInterval != HIDE_LABEL_INTERVAL_EDEFAULT;
+			case ReportDSLPackage.DATAMART_TABLE_PROPERTY__LOOKUPS:
+				return lookups != null && !lookups.isEmpty();
+			case ReportDSLPackage.DATAMART_TABLE_PROPERTY__HIDE_LABEL_LOOKUP:
+				return hideLabelLookup != HIDE_LABEL_LOOKUP_EDEFAULT;
+			case ReportDSLPackage.DATAMART_TABLE_PROPERTY__HAS_IMAGE:
+				return hasImage != HAS_IMAGE_EDEFAULT;
+			case ReportDSLPackage.DATAMART_TABLE_PROPERTY__IMAGE:
+				return image != null;
+		}
+		return super.eIsSet(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public int eBaseStructuralFeatureID(int derivedFeatureID, Class<?> baseClass) {
+		if (baseClass == WithStyle.class) {
+			switch (derivedFeatureID) {
+				case ReportDSLPackage.DATAMART_TABLE_PROPERTY__STYLE: return ReportDSLPackage.WITH_STYLE__STYLE;
+				default: return -1;
+			}
+		}
+		return super.eBaseStructuralFeatureID(derivedFeatureID, baseClass);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public int eDerivedStructuralFeatureID(int baseFeatureID, Class<?> baseClass) {
+		if (baseClass == WithStyle.class) {
+			switch (baseFeatureID) {
+				case ReportDSLPackage.WITH_STYLE__STYLE: return ReportDSLPackage.DATAMART_TABLE_PROPERTY__STYLE;
+				default: return -1;
+			}
+		}
+		return super.eDerivedStructuralFeatureID(baseFeatureID, baseClass);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String toString() {
+		if (eIsProxy()) return super.toString();
+
+		StringBuffer result = new StringBuffer(super.toString());
+		result.append(" (hideLabelInterval: ");
+		result.append(hideLabelInterval);
+		result.append(", hideLabelLookup: ");
+		result.append(hideLabelLookup);
+		result.append(", hasImage: ");
+		result.append(hasImage);
+		result.append(')');
+		return result.toString();
+	}
+
+} //DatamartTablePropertyImpl
diff --git a/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/impl/DateFormatImpl.java b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/impl/DateFormatImpl.java
new file mode 100644
index 0000000..6d6bb2b
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/impl/DateFormatImpl.java
@@ -0,0 +1,174 @@
+/**
+ * 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:  
+ *  		Christophe Loetz  (Loetz GmbH&Co.KG) - Initial implementation 
+ *  
+ */
+package org.eclipse.osbp.xtext.reportdsl.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.osbp.xtext.reportdsl.DateFormat;
+import org.eclipse.osbp.xtext.reportdsl.DateFormatCategoryEnum;
+import org.eclipse.osbp.xtext.reportdsl.ReportDSLPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Date Format</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.impl.DateFormatImpl#getReport_category <em>Report category</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class DateFormatImpl extends SomeFormatImpl implements DateFormat {
+	/**
+	 * The default value of the '{@link #getReport_category() <em>Report category</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getReport_category()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final DateFormatCategoryEnum REPORT_CATEGORY_EDEFAULT = DateFormatCategoryEnum.CUSTOM;
+
+	/**
+	 * The cached value of the '{@link #getReport_category() <em>Report category</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getReport_category()
+	 * @generated
+	 * @ordered
+	 */
+	protected DateFormatCategoryEnum report_category = REPORT_CATEGORY_EDEFAULT;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected DateFormatImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return ReportDSLPackage.Literals.DATE_FORMAT;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public DateFormatCategoryEnum getReport_category() {
+		return report_category;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setReport_category(DateFormatCategoryEnum newReport_category) {
+		DateFormatCategoryEnum oldReport_category = report_category;
+		report_category = newReport_category == null ? REPORT_CATEGORY_EDEFAULT : newReport_category;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ReportDSLPackage.DATE_FORMAT__REPORT_CATEGORY, oldReport_category, report_category));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case ReportDSLPackage.DATE_FORMAT__REPORT_CATEGORY:
+				return getReport_category();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case ReportDSLPackage.DATE_FORMAT__REPORT_CATEGORY:
+				setReport_category((DateFormatCategoryEnum)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case ReportDSLPackage.DATE_FORMAT__REPORT_CATEGORY:
+				setReport_category(REPORT_CATEGORY_EDEFAULT);
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case ReportDSLPackage.DATE_FORMAT__REPORT_CATEGORY:
+				return report_category != REPORT_CATEGORY_EDEFAULT;
+		}
+		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(" (report_category: ");
+		result.append(report_category);
+		result.append(')');
+		return result.toString();
+	}
+
+} //DateFormatImpl
diff --git a/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/impl/DateTimeFormatImpl.java b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/impl/DateTimeFormatImpl.java
new file mode 100644
index 0000000..82bd731
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/impl/DateTimeFormatImpl.java
@@ -0,0 +1,174 @@
+/**
+ * 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:  
+ *  		Christophe Loetz  (Loetz GmbH&Co.KG) - Initial implementation 
+ *  
+ */
+package org.eclipse.osbp.xtext.reportdsl.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.osbp.xtext.reportdsl.DateTimeFormat;
+import org.eclipse.osbp.xtext.reportdsl.DateTimeFormatCategoryEnum;
+import org.eclipse.osbp.xtext.reportdsl.ReportDSLPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Date Time Format</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.impl.DateTimeFormatImpl#getReport_category <em>Report category</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class DateTimeFormatImpl extends SomeFormatImpl implements DateTimeFormat {
+	/**
+	 * The default value of the '{@link #getReport_category() <em>Report category</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getReport_category()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final DateTimeFormatCategoryEnum REPORT_CATEGORY_EDEFAULT = DateTimeFormatCategoryEnum.CUSTOM;
+
+	/**
+	 * The cached value of the '{@link #getReport_category() <em>Report category</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getReport_category()
+	 * @generated
+	 * @ordered
+	 */
+	protected DateTimeFormatCategoryEnum report_category = REPORT_CATEGORY_EDEFAULT;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected DateTimeFormatImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return ReportDSLPackage.Literals.DATE_TIME_FORMAT;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public DateTimeFormatCategoryEnum getReport_category() {
+		return report_category;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setReport_category(DateTimeFormatCategoryEnum newReport_category) {
+		DateTimeFormatCategoryEnum oldReport_category = report_category;
+		report_category = newReport_category == null ? REPORT_CATEGORY_EDEFAULT : newReport_category;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ReportDSLPackage.DATE_TIME_FORMAT__REPORT_CATEGORY, oldReport_category, report_category));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case ReportDSLPackage.DATE_TIME_FORMAT__REPORT_CATEGORY:
+				return getReport_category();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case ReportDSLPackage.DATE_TIME_FORMAT__REPORT_CATEGORY:
+				setReport_category((DateTimeFormatCategoryEnum)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case ReportDSLPackage.DATE_TIME_FORMAT__REPORT_CATEGORY:
+				setReport_category(REPORT_CATEGORY_EDEFAULT);
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case ReportDSLPackage.DATE_TIME_FORMAT__REPORT_CATEGORY:
+				return report_category != REPORT_CATEGORY_EDEFAULT;
+		}
+		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(" (report_category: ");
+		result.append(report_category);
+		result.append(')');
+		return result.toString();
+	}
+
+} //DateTimeFormatImpl
diff --git a/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/impl/FontImpl.java b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/impl/FontImpl.java
new file mode 100644
index 0000000..a4ddb2f
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/impl/FontImpl.java
@@ -0,0 +1,478 @@
+/**
+ * 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:  
+ *  		Christophe Loetz  (Loetz GmbH&Co.KG) - Initial implementation 
+ *  
+ */
+package org.eclipse.osbp.xtext.reportdsl.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.reportdsl.Font;
+import org.eclipse.osbp.xtext.reportdsl.FontFamily;
+import org.eclipse.osbp.xtext.reportdsl.FontStyleEnum;
+import org.eclipse.osbp.xtext.reportdsl.ReportDSLPackage;
+import org.eclipse.osbp.xtext.reportdsl.UnitEnum;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Font</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.impl.FontImpl#getExtends <em>Extends</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.impl.FontImpl#getFamily <em>Family</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.impl.FontImpl#getStyle <em>Style</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.impl.FontImpl#isBold <em>Bold</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.impl.FontImpl#getSizevalue <em>Sizevalue</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.impl.FontImpl#getSizeunit <em>Sizeunit</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class FontImpl extends ReportBaseImpl implements Font {
+	/**
+	 * The cached value of the '{@link #getExtends() <em>Extends</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getExtends()
+	 * @generated
+	 * @ordered
+	 */
+	protected Font extends_;
+
+	/**
+	 * The cached value of the '{@link #getFamily() <em>Family</em>}' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getFamily()
+	 * @generated
+	 * @ordered
+	 */
+	protected FontFamily family;
+
+	/**
+	 * The default value of the '{@link #getStyle() <em>Style</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getStyle()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final FontStyleEnum STYLE_EDEFAULT = FontStyleEnum.NORMAL;
+
+	/**
+	 * The cached value of the '{@link #getStyle() <em>Style</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getStyle()
+	 * @generated
+	 * @ordered
+	 */
+	protected FontStyleEnum style = STYLE_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #isBold() <em>Bold</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isBold()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final boolean BOLD_EDEFAULT = false;
+
+	/**
+	 * The cached value of the '{@link #isBold() <em>Bold</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isBold()
+	 * @generated
+	 * @ordered
+	 */
+	protected boolean bold = BOLD_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getSizevalue() <em>Sizevalue</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getSizevalue()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final double SIZEVALUE_EDEFAULT = 0.0;
+
+	/**
+	 * The cached value of the '{@link #getSizevalue() <em>Sizevalue</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getSizevalue()
+	 * @generated
+	 * @ordered
+	 */
+	protected double sizevalue = SIZEVALUE_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getSizeunit() <em>Sizeunit</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getSizeunit()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final UnitEnum SIZEUNIT_EDEFAULT = UnitEnum.NULL;
+
+	/**
+	 * The cached value of the '{@link #getSizeunit() <em>Sizeunit</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getSizeunit()
+	 * @generated
+	 * @ordered
+	 */
+	protected UnitEnum sizeunit = SIZEUNIT_EDEFAULT;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected FontImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return ReportDSLPackage.Literals.FONT;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Font getExtends() {
+		if (extends_ != null && extends_.eIsProxy()) {
+			InternalEObject oldExtends = (InternalEObject)extends_;
+			extends_ = (Font)eResolveProxy(oldExtends);
+			if (extends_ != oldExtends) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, ReportDSLPackage.FONT__EXTENDS, oldExtends, extends_));
+			}
+		}
+		return extends_;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Font basicGetExtends() {
+		return extends_;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setExtends(Font newExtends) {
+		Font oldExtends = extends_;
+		extends_ = newExtends;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ReportDSLPackage.FONT__EXTENDS, oldExtends, extends_));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public FontFamily getFamily() {
+		return family;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public NotificationChain basicSetFamily(FontFamily newFamily, NotificationChain msgs) {
+		FontFamily oldFamily = family;
+		family = newFamily;
+		if (eNotificationRequired()) {
+			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, ReportDSLPackage.FONT__FAMILY, oldFamily, newFamily);
+			if (msgs == null) msgs = notification; else msgs.add(notification);
+		}
+		return msgs;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setFamily(FontFamily newFamily) {
+		if (newFamily != family) {
+			NotificationChain msgs = null;
+			if (family != null)
+				msgs = ((InternalEObject)family).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - ReportDSLPackage.FONT__FAMILY, null, msgs);
+			if (newFamily != null)
+				msgs = ((InternalEObject)newFamily).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - ReportDSLPackage.FONT__FAMILY, null, msgs);
+			msgs = basicSetFamily(newFamily, msgs);
+			if (msgs != null) msgs.dispatch();
+		}
+		else if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ReportDSLPackage.FONT__FAMILY, newFamily, newFamily));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public FontStyleEnum getStyle() {
+		return style;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setStyle(FontStyleEnum newStyle) {
+		FontStyleEnum oldStyle = style;
+		style = newStyle == null ? STYLE_EDEFAULT : newStyle;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ReportDSLPackage.FONT__STYLE, oldStyle, style));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public boolean isBold() {
+		return bold;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setBold(boolean newBold) {
+		boolean oldBold = bold;
+		bold = newBold;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ReportDSLPackage.FONT__BOLD, oldBold, bold));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public double getSizevalue() {
+		return sizevalue;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setSizevalue(double newSizevalue) {
+		double oldSizevalue = sizevalue;
+		sizevalue = newSizevalue;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ReportDSLPackage.FONT__SIZEVALUE, oldSizevalue, sizevalue));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public UnitEnum getSizeunit() {
+		return sizeunit;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setSizeunit(UnitEnum newSizeunit) {
+		UnitEnum oldSizeunit = sizeunit;
+		sizeunit = newSizeunit == null ? SIZEUNIT_EDEFAULT : newSizeunit;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ReportDSLPackage.FONT__SIZEUNIT, oldSizeunit, sizeunit));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+		switch (featureID) {
+			case ReportDSLPackage.FONT__FAMILY:
+				return basicSetFamily(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 ReportDSLPackage.FONT__EXTENDS:
+				if (resolve) return getExtends();
+				return basicGetExtends();
+			case ReportDSLPackage.FONT__FAMILY:
+				return getFamily();
+			case ReportDSLPackage.FONT__STYLE:
+				return getStyle();
+			case ReportDSLPackage.FONT__BOLD:
+				return isBold();
+			case ReportDSLPackage.FONT__SIZEVALUE:
+				return getSizevalue();
+			case ReportDSLPackage.FONT__SIZEUNIT:
+				return getSizeunit();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case ReportDSLPackage.FONT__EXTENDS:
+				setExtends((Font)newValue);
+				return;
+			case ReportDSLPackage.FONT__FAMILY:
+				setFamily((FontFamily)newValue);
+				return;
+			case ReportDSLPackage.FONT__STYLE:
+				setStyle((FontStyleEnum)newValue);
+				return;
+			case ReportDSLPackage.FONT__BOLD:
+				setBold((Boolean)newValue);
+				return;
+			case ReportDSLPackage.FONT__SIZEVALUE:
+				setSizevalue((Double)newValue);
+				return;
+			case ReportDSLPackage.FONT__SIZEUNIT:
+				setSizeunit((UnitEnum)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case ReportDSLPackage.FONT__EXTENDS:
+				setExtends((Font)null);
+				return;
+			case ReportDSLPackage.FONT__FAMILY:
+				setFamily((FontFamily)null);
+				return;
+			case ReportDSLPackage.FONT__STYLE:
+				setStyle(STYLE_EDEFAULT);
+				return;
+			case ReportDSLPackage.FONT__BOLD:
+				setBold(BOLD_EDEFAULT);
+				return;
+			case ReportDSLPackage.FONT__SIZEVALUE:
+				setSizevalue(SIZEVALUE_EDEFAULT);
+				return;
+			case ReportDSLPackage.FONT__SIZEUNIT:
+				setSizeunit(SIZEUNIT_EDEFAULT);
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case ReportDSLPackage.FONT__EXTENDS:
+				return extends_ != null;
+			case ReportDSLPackage.FONT__FAMILY:
+				return family != null;
+			case ReportDSLPackage.FONT__STYLE:
+				return style != STYLE_EDEFAULT;
+			case ReportDSLPackage.FONT__BOLD:
+				return bold != BOLD_EDEFAULT;
+			case ReportDSLPackage.FONT__SIZEVALUE:
+				return sizevalue != SIZEVALUE_EDEFAULT;
+			case ReportDSLPackage.FONT__SIZEUNIT:
+				return sizeunit != SIZEUNIT_EDEFAULT;
+		}
+		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(" (style: ");
+		result.append(style);
+		result.append(", bold: ");
+		result.append(bold);
+		result.append(", sizevalue: ");
+		result.append(sizevalue);
+		result.append(", sizeunit: ");
+		result.append(sizeunit);
+		result.append(')');
+		return result.toString();
+	}
+
+} //FontImpl
diff --git a/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/impl/FontsImpl.java b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/impl/FontsImpl.java
new file mode 100644
index 0000000..ecb1827
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/impl/FontsImpl.java
@@ -0,0 +1,161 @@
+/**
+ * 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:  
+ *  		Christophe Loetz  (Loetz GmbH&Co.KG) - Initial implementation 
+ *  
+ */
+package org.eclipse.osbp.xtext.reportdsl.impl;
+
+import java.util.Collection;
+
+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.util.EObjectContainmentEList;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+import org.eclipse.osbp.xtext.reportdsl.Font;
+import org.eclipse.osbp.xtext.reportdsl.Fonts;
+import org.eclipse.osbp.xtext.reportdsl.ReportDSLPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Fonts</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.impl.FontsImpl#getFonts <em>Fonts</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class FontsImpl extends ReportLazyResolverImpl implements Fonts {
+	/**
+	 * The cached value of the '{@link #getFonts() <em>Fonts</em>}' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getFonts()
+	 * @generated
+	 * @ordered
+	 */
+	protected EList<Font> fonts;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected FontsImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return ReportDSLPackage.Literals.FONTS;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EList<Font> getFonts() {
+		if (fonts == null) {
+			fonts = new EObjectContainmentEList<Font>(Font.class, this, ReportDSLPackage.FONTS__FONTS);
+		}
+		return fonts;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+		switch (featureID) {
+			case ReportDSLPackage.FONTS__FONTS:
+				return ((InternalEList<?>)getFonts()).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 ReportDSLPackage.FONTS__FONTS:
+				return getFonts();
+		}
+		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 ReportDSLPackage.FONTS__FONTS:
+				getFonts().clear();
+				getFonts().addAll((Collection<? extends Font>)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case ReportDSLPackage.FONTS__FONTS:
+				getFonts().clear();
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case ReportDSLPackage.FONTS__FONTS:
+				return fonts != null && !fonts.isEmpty();
+		}
+		return super.eIsSet(featureID);
+	}
+
+} //FontsImpl
diff --git a/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/impl/GridCellImpl.java b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/impl/GridCellImpl.java
new file mode 100644
index 0000000..eff6509
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/impl/GridCellImpl.java
@@ -0,0 +1,264 @@
+/**
+ * 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:  
+ *  		Christophe Loetz  (Loetz GmbH&Co.KG) - Initial implementation 
+ *  
+ */
+package org.eclipse.osbp.xtext.reportdsl.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.reportdsl.Element;
+import org.eclipse.osbp.xtext.reportdsl.GridCell;
+import org.eclipse.osbp.xtext.reportdsl.ReportDSLPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Grid Cell</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.impl.GridCellImpl#getElements <em>Elements</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.impl.GridCellImpl#getColumnspan <em>Columnspan</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class GridCellImpl extends ReportBaseImpl implements GridCell {
+	/**
+	 * 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<Element> elements;
+
+	/**
+	 * The default value of the '{@link #getColumnspan() <em>Columnspan</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getColumnspan()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final int COLUMNSPAN_EDEFAULT = 0;
+
+	/**
+	 * The cached value of the '{@link #getColumnspan() <em>Columnspan</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getColumnspan()
+	 * @generated
+	 * @ordered
+	 */
+	protected int columnspan = COLUMNSPAN_EDEFAULT;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected GridCellImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return ReportDSLPackage.Literals.GRID_CELL;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EList<Element> getElements() {
+		if (elements == null) {
+			elements = new EObjectContainmentEList<Element>(Element.class, this, ReportDSLPackage.GRID_CELL__ELEMENTS);
+		}
+		return elements;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public int getColumnspan() {
+		return columnspan;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setColumnspan(int newColumnspan) {
+		int oldColumnspan = columnspan;
+		columnspan = newColumnspan;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ReportDSLPackage.GRID_CELL__COLUMNSPAN, oldColumnspan, columnspan));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+		switch (featureID) {
+			case ReportDSLPackage.GRID_CELL__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 ReportDSLPackage.GRID_CELL__ELEMENTS:
+				return getElements();
+			case ReportDSLPackage.GRID_CELL__COLUMNSPAN:
+				return getColumnspan();
+		}
+		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 ReportDSLPackage.GRID_CELL__ELEMENTS:
+				getElements().clear();
+				getElements().addAll((Collection<? extends Element>)newValue);
+				return;
+			case ReportDSLPackage.GRID_CELL__COLUMNSPAN:
+				setColumnspan((Integer)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case ReportDSLPackage.GRID_CELL__ELEMENTS:
+				getElements().clear();
+				return;
+			case ReportDSLPackage.GRID_CELL__COLUMNSPAN:
+				setColumnspan(COLUMNSPAN_EDEFAULT);
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case ReportDSLPackage.GRID_CELL__ELEMENTS:
+				return elements != null && !elements.isEmpty();
+			case ReportDSLPackage.GRID_CELL__COLUMNSPAN:
+				return columnspan != COLUMNSPAN_EDEFAULT;
+		}
+		return super.eIsSet(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public int eBaseStructuralFeatureID(int derivedFeatureID, Class<?> baseClass) {
+		if (baseClass == org.eclipse.osbp.xtext.reportdsl.Container.class) {
+			switch (derivedFeatureID) {
+				case ReportDSLPackage.GRID_CELL__ELEMENTS: return ReportDSLPackage.CONTAINER__ELEMENTS;
+				default: return -1;
+			}
+		}
+		return super.eBaseStructuralFeatureID(derivedFeatureID, baseClass);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public int eDerivedStructuralFeatureID(int baseFeatureID, Class<?> baseClass) {
+		if (baseClass == org.eclipse.osbp.xtext.reportdsl.Container.class) {
+			switch (baseFeatureID) {
+				case ReportDSLPackage.CONTAINER__ELEMENTS: return ReportDSLPackage.GRID_CELL__ELEMENTS;
+				default: return -1;
+			}
+		}
+		return super.eDerivedStructuralFeatureID(baseFeatureID, baseClass);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String toString() {
+		if (eIsProxy()) return super.toString();
+
+		StringBuffer result = new StringBuffer(super.toString());
+		result.append(" (columnspan: ");
+		result.append(columnspan);
+		result.append(')');
+		return result.toString();
+	}
+
+} //GridCellImpl
diff --git a/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/impl/GridImpl.java b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/impl/GridImpl.java
new file mode 100644
index 0000000..911c0fa
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/impl/GridImpl.java
@@ -0,0 +1,205 @@
+/**
+ * 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:  
+ *  		Christophe Loetz  (Loetz GmbH&Co.KG) - Initial implementation 
+ *  
+ */
+package org.eclipse.osbp.xtext.reportdsl.impl;
+
+import java.util.Collection;
+
+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.util.EObjectContainmentEList;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+import org.eclipse.osbp.xtext.reportdsl.Element;
+import org.eclipse.osbp.xtext.reportdsl.Grid;
+import org.eclipse.osbp.xtext.reportdsl.GridRow;
+import org.eclipse.osbp.xtext.reportdsl.ReportDSLPackage;
+import org.eclipse.osbp.xtext.reportdsl.SomeGrid;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Grid</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.impl.GridImpl#getRows <em>Rows</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class GridImpl extends ReportBaseImpl implements Grid {
+	/**
+	 * The cached value of the '{@link #getRows() <em>Rows</em>}' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getRows()
+	 * @generated
+	 * @ordered
+	 */
+	protected EList<GridRow> rows;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected GridImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return ReportDSLPackage.Literals.GRID;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EList<GridRow> getRows() {
+		if (rows == null) {
+			rows = new EObjectContainmentEList<GridRow>(GridRow.class, this, ReportDSLPackage.GRID__ROWS);
+		}
+		return rows;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+		switch (featureID) {
+			case ReportDSLPackage.GRID__ROWS:
+				return ((InternalEList<?>)getRows()).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 ReportDSLPackage.GRID__ROWS:
+				return getRows();
+		}
+		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 ReportDSLPackage.GRID__ROWS:
+				getRows().clear();
+				getRows().addAll((Collection<? extends GridRow>)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case ReportDSLPackage.GRID__ROWS:
+				getRows().clear();
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case ReportDSLPackage.GRID__ROWS:
+				return rows != null && !rows.isEmpty();
+		}
+		return super.eIsSet(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public int eBaseStructuralFeatureID(int derivedFeatureID, Class<?> baseClass) {
+		if (baseClass == Element.class) {
+			switch (derivedFeatureID) {
+				default: return -1;
+			}
+		}
+		if (baseClass == SomeGrid.class) {
+			switch (derivedFeatureID) {
+				case ReportDSLPackage.GRID__ROWS: return ReportDSLPackage.SOME_GRID__ROWS;
+				default: return -1;
+			}
+		}
+		return super.eBaseStructuralFeatureID(derivedFeatureID, baseClass);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public int eDerivedStructuralFeatureID(int baseFeatureID, Class<?> baseClass) {
+		if (baseClass == Element.class) {
+			switch (baseFeatureID) {
+				default: return -1;
+			}
+		}
+		if (baseClass == SomeGrid.class) {
+			switch (baseFeatureID) {
+				case ReportDSLPackage.SOME_GRID__ROWS: return ReportDSLPackage.GRID__ROWS;
+				default: return -1;
+			}
+		}
+		return super.eDerivedStructuralFeatureID(baseFeatureID, baseClass);
+	}
+
+} //GridImpl
diff --git a/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/impl/GridRowImpl.java b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/impl/GridRowImpl.java
new file mode 100644
index 0000000..ecb3a82
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/impl/GridRowImpl.java
@@ -0,0 +1,258 @@
+/**
+ * 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:  
+ *  		Christophe Loetz  (Loetz GmbH&Co.KG) - Initial implementation 
+ *  
+ */
+package org.eclipse.osbp.xtext.reportdsl.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.reportdsl.GridCell;
+import org.eclipse.osbp.xtext.reportdsl.GridRow;
+import org.eclipse.osbp.xtext.reportdsl.ReportDSLPackage;
+import org.eclipse.osbp.xtext.reportdsl.Style;
+import org.eclipse.osbp.xtext.reportdsl.WithStyle;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Grid Row</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.impl.GridRowImpl#getStyle <em>Style</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.impl.GridRowImpl#getCells <em>Cells</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class GridRowImpl extends ReportBaseImpl implements GridRow {
+	/**
+	 * The cached value of the '{@link #getStyle() <em>Style</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getStyle()
+	 * @generated
+	 * @ordered
+	 */
+	protected Style style;
+
+	/**
+	 * The cached value of the '{@link #getCells() <em>Cells</em>}' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getCells()
+	 * @generated
+	 * @ordered
+	 */
+	protected EList<GridCell> cells;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected GridRowImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return ReportDSLPackage.Literals.GRID_ROW;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Style getStyle() {
+		if (style != null && style.eIsProxy()) {
+			InternalEObject oldStyle = (InternalEObject)style;
+			style = (Style)eResolveProxy(oldStyle);
+			if (style != oldStyle) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, ReportDSLPackage.GRID_ROW__STYLE, oldStyle, style));
+			}
+		}
+		return style;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Style basicGetStyle() {
+		return style;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setStyle(Style newStyle) {
+		Style oldStyle = style;
+		style = newStyle;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ReportDSLPackage.GRID_ROW__STYLE, oldStyle, style));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EList<GridCell> getCells() {
+		if (cells == null) {
+			cells = new EObjectContainmentEList<GridCell>(GridCell.class, this, ReportDSLPackage.GRID_ROW__CELLS);
+		}
+		return cells;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+		switch (featureID) {
+			case ReportDSLPackage.GRID_ROW__CELLS:
+				return ((InternalEList<?>)getCells()).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 ReportDSLPackage.GRID_ROW__STYLE:
+				if (resolve) return getStyle();
+				return basicGetStyle();
+			case ReportDSLPackage.GRID_ROW__CELLS:
+				return getCells();
+		}
+		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 ReportDSLPackage.GRID_ROW__STYLE:
+				setStyle((Style)newValue);
+				return;
+			case ReportDSLPackage.GRID_ROW__CELLS:
+				getCells().clear();
+				getCells().addAll((Collection<? extends GridCell>)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case ReportDSLPackage.GRID_ROW__STYLE:
+				setStyle((Style)null);
+				return;
+			case ReportDSLPackage.GRID_ROW__CELLS:
+				getCells().clear();
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case ReportDSLPackage.GRID_ROW__STYLE:
+				return style != null;
+			case ReportDSLPackage.GRID_ROW__CELLS:
+				return cells != null && !cells.isEmpty();
+		}
+		return super.eIsSet(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public int eBaseStructuralFeatureID(int derivedFeatureID, Class<?> baseClass) {
+		if (baseClass == WithStyle.class) {
+			switch (derivedFeatureID) {
+				case ReportDSLPackage.GRID_ROW__STYLE: return ReportDSLPackage.WITH_STYLE__STYLE;
+				default: return -1;
+			}
+		}
+		return super.eBaseStructuralFeatureID(derivedFeatureID, baseClass);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public int eDerivedStructuralFeatureID(int baseFeatureID, Class<?> baseClass) {
+		if (baseClass == WithStyle.class) {
+			switch (baseFeatureID) {
+				case ReportDSLPackage.WITH_STYLE__STYLE: return ReportDSLPackage.GRID_ROW__STYLE;
+				default: return -1;
+			}
+		}
+		return super.eDerivedStructuralFeatureID(baseFeatureID, baseClass);
+	}
+
+} //GridRowImpl
diff --git a/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/impl/ImageImpl.java b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/impl/ImageImpl.java
new file mode 100644
index 0000000..8c590b4
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/impl/ImageImpl.java
@@ -0,0 +1,432 @@
+/**
+ * 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:  
+ *  		Christophe Loetz  (Loetz GmbH&Co.KG) - Initial implementation 
+ *  
+ */
+package org.eclipse.osbp.xtext.reportdsl.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.reportdsl.Image;
+import org.eclipse.osbp.xtext.reportdsl.ImageSizeEnum;
+import org.eclipse.osbp.xtext.reportdsl.ImageSourceEnum;
+import org.eclipse.osbp.xtext.reportdsl.ReportDSLPackage;
+import org.eclipse.osbp.xtext.reportdsl.Style;
+import org.eclipse.osbp.xtext.reportdsl.WithStyle;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Image</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.impl.ImageImpl#getStyle <em>Style</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.impl.ImageImpl#getSize <em>Size</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.impl.ImageImpl#getScale <em>Scale</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.impl.ImageImpl#getSourceType <em>Source Type</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.impl.ImageImpl#getFilename <em>Filename</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class ImageImpl extends ReportLazyResolverImpl implements Image {
+	/**
+	 * The cached value of the '{@link #getStyle() <em>Style</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getStyle()
+	 * @generated
+	 * @ordered
+	 */
+	protected Style style;
+
+	/**
+	 * The default value of the '{@link #getSize() <em>Size</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getSize()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final ImageSizeEnum SIZE_EDEFAULT = ImageSizeEnum.SIZE_TO_IMAGE;
+
+	/**
+	 * The cached value of the '{@link #getSize() <em>Size</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getSize()
+	 * @generated
+	 * @ordered
+	 */
+	protected ImageSizeEnum size = SIZE_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getScale() <em>Scale</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getScale()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final double SCALE_EDEFAULT = 0.0;
+
+	/**
+	 * The cached value of the '{@link #getScale() <em>Scale</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getScale()
+	 * @generated
+	 * @ordered
+	 */
+	protected double scale = SCALE_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getSourceType() <em>Source Type</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getSourceType()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final ImageSourceEnum SOURCE_TYPE_EDEFAULT = ImageSourceEnum.FILE;
+
+	/**
+	 * The cached value of the '{@link #getSourceType() <em>Source Type</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getSourceType()
+	 * @generated
+	 * @ordered
+	 */
+	protected ImageSourceEnum sourceType = SOURCE_TYPE_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getFilename() <em>Filename</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getFilename()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String FILENAME_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getFilename() <em>Filename</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getFilename()
+	 * @generated
+	 * @ordered
+	 */
+	protected String filename = FILENAME_EDEFAULT;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected ImageImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return ReportDSLPackage.Literals.IMAGE;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Style getStyle() {
+		if (style != null && style.eIsProxy()) {
+			InternalEObject oldStyle = (InternalEObject)style;
+			style = (Style)eResolveProxy(oldStyle);
+			if (style != oldStyle) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, ReportDSLPackage.IMAGE__STYLE, oldStyle, style));
+			}
+		}
+		return style;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Style basicGetStyle() {
+		return style;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setStyle(Style newStyle) {
+		Style oldStyle = style;
+		style = newStyle;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ReportDSLPackage.IMAGE__STYLE, oldStyle, style));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public ImageSizeEnum getSize() {
+		return size;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setSize(ImageSizeEnum newSize) {
+		ImageSizeEnum oldSize = size;
+		size = newSize == null ? SIZE_EDEFAULT : newSize;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ReportDSLPackage.IMAGE__SIZE, oldSize, size));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public double getScale() {
+		return scale;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setScale(double newScale) {
+		double oldScale = scale;
+		scale = newScale;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ReportDSLPackage.IMAGE__SCALE, oldScale, scale));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public ImageSourceEnum getSourceType() {
+		return sourceType;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setSourceType(ImageSourceEnum newSourceType) {
+		ImageSourceEnum oldSourceType = sourceType;
+		sourceType = newSourceType == null ? SOURCE_TYPE_EDEFAULT : newSourceType;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ReportDSLPackage.IMAGE__SOURCE_TYPE, oldSourceType, sourceType));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getFilename() {
+		return filename;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setFilename(String newFilename) {
+		String oldFilename = filename;
+		filename = newFilename;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ReportDSLPackage.IMAGE__FILENAME, oldFilename, filename));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case ReportDSLPackage.IMAGE__STYLE:
+				if (resolve) return getStyle();
+				return basicGetStyle();
+			case ReportDSLPackage.IMAGE__SIZE:
+				return getSize();
+			case ReportDSLPackage.IMAGE__SCALE:
+				return getScale();
+			case ReportDSLPackage.IMAGE__SOURCE_TYPE:
+				return getSourceType();
+			case ReportDSLPackage.IMAGE__FILENAME:
+				return getFilename();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case ReportDSLPackage.IMAGE__STYLE:
+				setStyle((Style)newValue);
+				return;
+			case ReportDSLPackage.IMAGE__SIZE:
+				setSize((ImageSizeEnum)newValue);
+				return;
+			case ReportDSLPackage.IMAGE__SCALE:
+				setScale((Double)newValue);
+				return;
+			case ReportDSLPackage.IMAGE__SOURCE_TYPE:
+				setSourceType((ImageSourceEnum)newValue);
+				return;
+			case ReportDSLPackage.IMAGE__FILENAME:
+				setFilename((String)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case ReportDSLPackage.IMAGE__STYLE:
+				setStyle((Style)null);
+				return;
+			case ReportDSLPackage.IMAGE__SIZE:
+				setSize(SIZE_EDEFAULT);
+				return;
+			case ReportDSLPackage.IMAGE__SCALE:
+				setScale(SCALE_EDEFAULT);
+				return;
+			case ReportDSLPackage.IMAGE__SOURCE_TYPE:
+				setSourceType(SOURCE_TYPE_EDEFAULT);
+				return;
+			case ReportDSLPackage.IMAGE__FILENAME:
+				setFilename(FILENAME_EDEFAULT);
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case ReportDSLPackage.IMAGE__STYLE:
+				return style != null;
+			case ReportDSLPackage.IMAGE__SIZE:
+				return size != SIZE_EDEFAULT;
+			case ReportDSLPackage.IMAGE__SCALE:
+				return scale != SCALE_EDEFAULT;
+			case ReportDSLPackage.IMAGE__SOURCE_TYPE:
+				return sourceType != SOURCE_TYPE_EDEFAULT;
+			case ReportDSLPackage.IMAGE__FILENAME:
+				return FILENAME_EDEFAULT == null ? filename != null : !FILENAME_EDEFAULT.equals(filename);
+		}
+		return super.eIsSet(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public int eBaseStructuralFeatureID(int derivedFeatureID, Class<?> baseClass) {
+		if (baseClass == WithStyle.class) {
+			switch (derivedFeatureID) {
+				case ReportDSLPackage.IMAGE__STYLE: return ReportDSLPackage.WITH_STYLE__STYLE;
+				default: return -1;
+			}
+		}
+		return super.eBaseStructuralFeatureID(derivedFeatureID, baseClass);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public int eDerivedStructuralFeatureID(int baseFeatureID, Class<?> baseClass) {
+		if (baseClass == WithStyle.class) {
+			switch (baseFeatureID) {
+				case ReportDSLPackage.WITH_STYLE__STYLE: return ReportDSLPackage.IMAGE__STYLE;
+				default: return -1;
+			}
+		}
+		return super.eDerivedStructuralFeatureID(baseFeatureID, baseClass);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String toString() {
+		if (eIsProxy()) return super.toString();
+
+		StringBuffer result = new StringBuffer(super.toString());
+		result.append(" (size: ");
+		result.append(size);
+		result.append(", scale: ");
+		result.append(scale);
+		result.append(", sourceType: ");
+		result.append(sourceType);
+		result.append(", filename: ");
+		result.append(filename);
+		result.append(')');
+		return result.toString();
+	}
+
+} //ImageImpl
diff --git a/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/impl/LabelImpl.java b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/impl/LabelImpl.java
new file mode 100644
index 0000000..ffd0b71
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/impl/LabelImpl.java
@@ -0,0 +1,50 @@
+/**
+ * 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:  
+ *  		Christophe Loetz  (Loetz GmbH&Co.KG) - Initial implementation 
+ *  
+ */
+package org.eclipse.osbp.xtext.reportdsl.impl;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.osbp.xtext.reportdsl.Label;
+import org.eclipse.osbp.xtext.reportdsl.ReportDSLPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Label</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * </p>
+ *
+ * @generated
+ */
+public class LabelImpl extends TextElementImpl implements Label {
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected LabelImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return ReportDSLPackage.Literals.LABEL;
+	}
+
+} //LabelImpl
diff --git a/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/impl/MediaImpl.java b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/impl/MediaImpl.java
new file mode 100644
index 0000000..dcdf0c5
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/impl/MediaImpl.java
@@ -0,0 +1,50 @@
+/**
+ * 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:  
+ *  		Christophe Loetz  (Loetz GmbH&Co.KG) - Initial implementation 
+ *  
+ */
+package org.eclipse.osbp.xtext.reportdsl.impl;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.osbp.xtext.reportdsl.Media;
+import org.eclipse.osbp.xtext.reportdsl.ReportDSLPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Media</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * </p>
+ *
+ * @generated
+ */
+public class MediaImpl extends ReportBaseImpl implements Media {
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected MediaImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return ReportDSLPackage.Literals.MEDIA;
+	}
+
+} //MediaImpl
diff --git a/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/impl/MediaStyleImpl.java b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/impl/MediaStyleImpl.java
new file mode 100644
index 0000000..3f95c10
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/impl/MediaStyleImpl.java
@@ -0,0 +1,167 @@
+/**
+ * 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:  
+ *  		Christophe Loetz  (Loetz GmbH&Co.KG) - Initial implementation 
+ *  
+ */
+package org.eclipse.osbp.xtext.reportdsl.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.reportdsl.Media;
+import org.eclipse.osbp.xtext.reportdsl.MediaStyle;
+import org.eclipse.osbp.xtext.reportdsl.ReportDSLPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Media Style</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.impl.MediaStyleImpl#getMedia <em>Media</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class MediaStyleImpl extends BaseStyleImpl implements MediaStyle {
+	/**
+	 * The cached value of the '{@link #getMedia() <em>Media</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getMedia()
+	 * @generated
+	 * @ordered
+	 */
+	protected Media media;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected MediaStyleImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return ReportDSLPackage.Literals.MEDIA_STYLE;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Media getMedia() {
+		if (media != null && media.eIsProxy()) {
+			InternalEObject oldMedia = (InternalEObject)media;
+			media = (Media)eResolveProxy(oldMedia);
+			if (media != oldMedia) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, ReportDSLPackage.MEDIA_STYLE__MEDIA, oldMedia, media));
+			}
+		}
+		return media;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Media basicGetMedia() {
+		return media;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setMedia(Media newMedia) {
+		Media oldMedia = media;
+		media = newMedia;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ReportDSLPackage.MEDIA_STYLE__MEDIA, oldMedia, media));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case ReportDSLPackage.MEDIA_STYLE__MEDIA:
+				if (resolve) return getMedia();
+				return basicGetMedia();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case ReportDSLPackage.MEDIA_STYLE__MEDIA:
+				setMedia((Media)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case ReportDSLPackage.MEDIA_STYLE__MEDIA:
+				setMedia((Media)null);
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case ReportDSLPackage.MEDIA_STYLE__MEDIA:
+				return media != null;
+		}
+		return super.eIsSet(featureID);
+	}
+
+} //MediaStyleImpl
diff --git a/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/impl/MediasImpl.java b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/impl/MediasImpl.java
new file mode 100644
index 0000000..36ebbcc
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/impl/MediasImpl.java
@@ -0,0 +1,161 @@
+/**
+ * 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:  
+ *  		Christophe Loetz  (Loetz GmbH&Co.KG) - Initial implementation 
+ *  
+ */
+package org.eclipse.osbp.xtext.reportdsl.impl;
+
+import java.util.Collection;
+
+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.util.EObjectContainmentEList;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+import org.eclipse.osbp.xtext.reportdsl.Media;
+import org.eclipse.osbp.xtext.reportdsl.Medias;
+import org.eclipse.osbp.xtext.reportdsl.ReportDSLPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Medias</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.impl.MediasImpl#getMedias <em>Medias</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class MediasImpl extends ReportLazyResolverImpl implements Medias {
+	/**
+	 * The cached value of the '{@link #getMedias() <em>Medias</em>}' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getMedias()
+	 * @generated
+	 * @ordered
+	 */
+	protected EList<Media> medias;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected MediasImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return ReportDSLPackage.Literals.MEDIAS;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EList<Media> getMedias() {
+		if (medias == null) {
+			medias = new EObjectContainmentEList<Media>(Media.class, this, ReportDSLPackage.MEDIAS__MEDIAS);
+		}
+		return medias;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+		switch (featureID) {
+			case ReportDSLPackage.MEDIAS__MEDIAS:
+				return ((InternalEList<?>)getMedias()).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 ReportDSLPackage.MEDIAS__MEDIAS:
+				return getMedias();
+		}
+		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 ReportDSLPackage.MEDIAS__MEDIAS:
+				getMedias().clear();
+				getMedias().addAll((Collection<? extends Media>)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case ReportDSLPackage.MEDIAS__MEDIAS:
+				getMedias().clear();
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case ReportDSLPackage.MEDIAS__MEDIAS:
+				return medias != null && !medias.isEmpty();
+		}
+		return super.eIsSet(featureID);
+	}
+
+} //MediasImpl
diff --git a/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/impl/NumberFormatImpl.java b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/impl/NumberFormatImpl.java
new file mode 100644
index 0000000..ec65433
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/impl/NumberFormatImpl.java
@@ -0,0 +1,174 @@
+/**
+ * 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:  
+ *  		Christophe Loetz  (Loetz GmbH&Co.KG) - Initial implementation 
+ *  
+ */
+package org.eclipse.osbp.xtext.reportdsl.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.osbp.xtext.reportdsl.NumberFormat;
+import org.eclipse.osbp.xtext.reportdsl.NumberFormatCategoryEnum;
+import org.eclipse.osbp.xtext.reportdsl.ReportDSLPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Number Format</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.impl.NumberFormatImpl#getReport_category <em>Report category</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class NumberFormatImpl extends SomeFormatImpl implements NumberFormat {
+	/**
+	 * The default value of the '{@link #getReport_category() <em>Report category</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getReport_category()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final NumberFormatCategoryEnum REPORT_CATEGORY_EDEFAULT = NumberFormatCategoryEnum.UNFORMATTED;
+
+	/**
+	 * The cached value of the '{@link #getReport_category() <em>Report category</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getReport_category()
+	 * @generated
+	 * @ordered
+	 */
+	protected NumberFormatCategoryEnum report_category = REPORT_CATEGORY_EDEFAULT;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected NumberFormatImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return ReportDSLPackage.Literals.NUMBER_FORMAT;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public NumberFormatCategoryEnum getReport_category() {
+		return report_category;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setReport_category(NumberFormatCategoryEnum newReport_category) {
+		NumberFormatCategoryEnum oldReport_category = report_category;
+		report_category = newReport_category == null ? REPORT_CATEGORY_EDEFAULT : newReport_category;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ReportDSLPackage.NUMBER_FORMAT__REPORT_CATEGORY, oldReport_category, report_category));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case ReportDSLPackage.NUMBER_FORMAT__REPORT_CATEGORY:
+				return getReport_category();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case ReportDSLPackage.NUMBER_FORMAT__REPORT_CATEGORY:
+				setReport_category((NumberFormatCategoryEnum)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case ReportDSLPackage.NUMBER_FORMAT__REPORT_CATEGORY:
+				setReport_category(REPORT_CATEGORY_EDEFAULT);
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case ReportDSLPackage.NUMBER_FORMAT__REPORT_CATEGORY:
+				return report_category != REPORT_CATEGORY_EDEFAULT;
+		}
+		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(" (report_category: ");
+		result.append(report_category);
+		result.append(')');
+		return result.toString();
+	}
+
+} //NumberFormatImpl
diff --git a/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/impl/PageDetailImpl.java b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/impl/PageDetailImpl.java
new file mode 100644
index 0000000..7030286
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/impl/PageDetailImpl.java
@@ -0,0 +1,50 @@
+/**
+ * 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:  
+ *  		Christophe Loetz  (Loetz GmbH&Co.KG) - Initial implementation 
+ *  
+ */
+package org.eclipse.osbp.xtext.reportdsl.impl;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.osbp.xtext.reportdsl.PageDetail;
+import org.eclipse.osbp.xtext.reportdsl.ReportDSLPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Page Detail</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * </p>
+ *
+ * @generated
+ */
+public class PageDetailImpl extends ContainerImpl implements PageDetail {
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected PageDetailImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return ReportDSLPackage.Literals.PAGE_DETAIL;
+	}
+
+} //PageDetailImpl
diff --git a/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/impl/PageFooterImpl.java b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/impl/PageFooterImpl.java
new file mode 100644
index 0000000..2de6263
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/impl/PageFooterImpl.java
@@ -0,0 +1,282 @@
+/**
+ * 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:  
+ *  		Christophe Loetz  (Loetz GmbH&Co.KG) - Initial implementation 
+ *  
+ */
+package org.eclipse.osbp.xtext.reportdsl.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.osbp.xtext.reportdsl.PageFooter;
+import org.eclipse.osbp.xtext.reportdsl.ReportDSLPackage;
+import org.eclipse.osbp.xtext.reportdsl.UnitEnum;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Page Footer</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.impl.PageFooterImpl#isShowOnLast <em>Show On Last</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.impl.PageFooterImpl#getHeightValue <em>Height Value</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.impl.PageFooterImpl#getHeightUnit <em>Height Unit</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class PageFooterImpl extends ContainerImpl implements PageFooter {
+	/**
+	 * The default value of the '{@link #isShowOnLast() <em>Show On Last</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isShowOnLast()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final boolean SHOW_ON_LAST_EDEFAULT = false;
+
+	/**
+	 * The cached value of the '{@link #isShowOnLast() <em>Show On Last</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isShowOnLast()
+	 * @generated
+	 * @ordered
+	 */
+	protected boolean showOnLast = SHOW_ON_LAST_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getHeightValue() <em>Height Value</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getHeightValue()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final double HEIGHT_VALUE_EDEFAULT = 0.0;
+
+	/**
+	 * The cached value of the '{@link #getHeightValue() <em>Height Value</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getHeightValue()
+	 * @generated
+	 * @ordered
+	 */
+	protected double heightValue = HEIGHT_VALUE_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getHeightUnit() <em>Height Unit</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getHeightUnit()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final UnitEnum HEIGHT_UNIT_EDEFAULT = UnitEnum.NULL;
+
+	/**
+	 * The cached value of the '{@link #getHeightUnit() <em>Height Unit</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getHeightUnit()
+	 * @generated
+	 * @ordered
+	 */
+	protected UnitEnum heightUnit = HEIGHT_UNIT_EDEFAULT;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected PageFooterImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return ReportDSLPackage.Literals.PAGE_FOOTER;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public boolean isShowOnLast() {
+		return showOnLast;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setShowOnLast(boolean newShowOnLast) {
+		boolean oldShowOnLast = showOnLast;
+		showOnLast = newShowOnLast;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ReportDSLPackage.PAGE_FOOTER__SHOW_ON_LAST, oldShowOnLast, showOnLast));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public double getHeightValue() {
+		return heightValue;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setHeightValue(double newHeightValue) {
+		double oldHeightValue = heightValue;
+		heightValue = newHeightValue;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ReportDSLPackage.PAGE_FOOTER__HEIGHT_VALUE, oldHeightValue, heightValue));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public UnitEnum getHeightUnit() {
+		return heightUnit;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setHeightUnit(UnitEnum newHeightUnit) {
+		UnitEnum oldHeightUnit = heightUnit;
+		heightUnit = newHeightUnit == null ? HEIGHT_UNIT_EDEFAULT : newHeightUnit;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ReportDSLPackage.PAGE_FOOTER__HEIGHT_UNIT, oldHeightUnit, heightUnit));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case ReportDSLPackage.PAGE_FOOTER__SHOW_ON_LAST:
+				return isShowOnLast();
+			case ReportDSLPackage.PAGE_FOOTER__HEIGHT_VALUE:
+				return getHeightValue();
+			case ReportDSLPackage.PAGE_FOOTER__HEIGHT_UNIT:
+				return getHeightUnit();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case ReportDSLPackage.PAGE_FOOTER__SHOW_ON_LAST:
+				setShowOnLast((Boolean)newValue);
+				return;
+			case ReportDSLPackage.PAGE_FOOTER__HEIGHT_VALUE:
+				setHeightValue((Double)newValue);
+				return;
+			case ReportDSLPackage.PAGE_FOOTER__HEIGHT_UNIT:
+				setHeightUnit((UnitEnum)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case ReportDSLPackage.PAGE_FOOTER__SHOW_ON_LAST:
+				setShowOnLast(SHOW_ON_LAST_EDEFAULT);
+				return;
+			case ReportDSLPackage.PAGE_FOOTER__HEIGHT_VALUE:
+				setHeightValue(HEIGHT_VALUE_EDEFAULT);
+				return;
+			case ReportDSLPackage.PAGE_FOOTER__HEIGHT_UNIT:
+				setHeightUnit(HEIGHT_UNIT_EDEFAULT);
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case ReportDSLPackage.PAGE_FOOTER__SHOW_ON_LAST:
+				return showOnLast != SHOW_ON_LAST_EDEFAULT;
+			case ReportDSLPackage.PAGE_FOOTER__HEIGHT_VALUE:
+				return heightValue != HEIGHT_VALUE_EDEFAULT;
+			case ReportDSLPackage.PAGE_FOOTER__HEIGHT_UNIT:
+				return heightUnit != HEIGHT_UNIT_EDEFAULT;
+		}
+		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(" (showOnLast: ");
+		result.append(showOnLast);
+		result.append(", heightValue: ");
+		result.append(heightValue);
+		result.append(", heightUnit: ");
+		result.append(heightUnit);
+		result.append(')');
+		return result.toString();
+	}
+
+} //PageFooterImpl
diff --git a/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/impl/PageHeaderImpl.java b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/impl/PageHeaderImpl.java
new file mode 100644
index 0000000..19ac656
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/impl/PageHeaderImpl.java
@@ -0,0 +1,282 @@
+/**
+ * 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:  
+ *  		Christophe Loetz  (Loetz GmbH&Co.KG) - Initial implementation 
+ *  
+ */
+package org.eclipse.osbp.xtext.reportdsl.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.osbp.xtext.reportdsl.PageHeader;
+import org.eclipse.osbp.xtext.reportdsl.ReportDSLPackage;
+import org.eclipse.osbp.xtext.reportdsl.UnitEnum;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Page Header</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.impl.PageHeaderImpl#isShowOnFirst <em>Show On First</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.impl.PageHeaderImpl#getHeightValue <em>Height Value</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.impl.PageHeaderImpl#getHeightUnit <em>Height Unit</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class PageHeaderImpl extends ContainerImpl implements PageHeader {
+	/**
+	 * The default value of the '{@link #isShowOnFirst() <em>Show On First</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isShowOnFirst()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final boolean SHOW_ON_FIRST_EDEFAULT = false;
+
+	/**
+	 * The cached value of the '{@link #isShowOnFirst() <em>Show On First</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isShowOnFirst()
+	 * @generated
+	 * @ordered
+	 */
+	protected boolean showOnFirst = SHOW_ON_FIRST_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getHeightValue() <em>Height Value</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getHeightValue()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final double HEIGHT_VALUE_EDEFAULT = 0.0;
+
+	/**
+	 * The cached value of the '{@link #getHeightValue() <em>Height Value</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getHeightValue()
+	 * @generated
+	 * @ordered
+	 */
+	protected double heightValue = HEIGHT_VALUE_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getHeightUnit() <em>Height Unit</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getHeightUnit()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final UnitEnum HEIGHT_UNIT_EDEFAULT = UnitEnum.NULL;
+
+	/**
+	 * The cached value of the '{@link #getHeightUnit() <em>Height Unit</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getHeightUnit()
+	 * @generated
+	 * @ordered
+	 */
+	protected UnitEnum heightUnit = HEIGHT_UNIT_EDEFAULT;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected PageHeaderImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return ReportDSLPackage.Literals.PAGE_HEADER;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public boolean isShowOnFirst() {
+		return showOnFirst;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setShowOnFirst(boolean newShowOnFirst) {
+		boolean oldShowOnFirst = showOnFirst;
+		showOnFirst = newShowOnFirst;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ReportDSLPackage.PAGE_HEADER__SHOW_ON_FIRST, oldShowOnFirst, showOnFirst));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public double getHeightValue() {
+		return heightValue;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setHeightValue(double newHeightValue) {
+		double oldHeightValue = heightValue;
+		heightValue = newHeightValue;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ReportDSLPackage.PAGE_HEADER__HEIGHT_VALUE, oldHeightValue, heightValue));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public UnitEnum getHeightUnit() {
+		return heightUnit;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setHeightUnit(UnitEnum newHeightUnit) {
+		UnitEnum oldHeightUnit = heightUnit;
+		heightUnit = newHeightUnit == null ? HEIGHT_UNIT_EDEFAULT : newHeightUnit;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ReportDSLPackage.PAGE_HEADER__HEIGHT_UNIT, oldHeightUnit, heightUnit));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case ReportDSLPackage.PAGE_HEADER__SHOW_ON_FIRST:
+				return isShowOnFirst();
+			case ReportDSLPackage.PAGE_HEADER__HEIGHT_VALUE:
+				return getHeightValue();
+			case ReportDSLPackage.PAGE_HEADER__HEIGHT_UNIT:
+				return getHeightUnit();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case ReportDSLPackage.PAGE_HEADER__SHOW_ON_FIRST:
+				setShowOnFirst((Boolean)newValue);
+				return;
+			case ReportDSLPackage.PAGE_HEADER__HEIGHT_VALUE:
+				setHeightValue((Double)newValue);
+				return;
+			case ReportDSLPackage.PAGE_HEADER__HEIGHT_UNIT:
+				setHeightUnit((UnitEnum)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case ReportDSLPackage.PAGE_HEADER__SHOW_ON_FIRST:
+				setShowOnFirst(SHOW_ON_FIRST_EDEFAULT);
+				return;
+			case ReportDSLPackage.PAGE_HEADER__HEIGHT_VALUE:
+				setHeightValue(HEIGHT_VALUE_EDEFAULT);
+				return;
+			case ReportDSLPackage.PAGE_HEADER__HEIGHT_UNIT:
+				setHeightUnit(HEIGHT_UNIT_EDEFAULT);
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case ReportDSLPackage.PAGE_HEADER__SHOW_ON_FIRST:
+				return showOnFirst != SHOW_ON_FIRST_EDEFAULT;
+			case ReportDSLPackage.PAGE_HEADER__HEIGHT_VALUE:
+				return heightValue != HEIGHT_VALUE_EDEFAULT;
+			case ReportDSLPackage.PAGE_HEADER__HEIGHT_UNIT:
+				return heightUnit != HEIGHT_UNIT_EDEFAULT;
+		}
+		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(" (showOnFirst: ");
+		result.append(showOnFirst);
+		result.append(", heightValue: ");
+		result.append(heightValue);
+		result.append(", heightUnit: ");
+		result.append(heightUnit);
+		result.append(')');
+		return result.toString();
+	}
+
+} //PageHeaderImpl
diff --git a/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/impl/PageTemplateImpl.java b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/impl/PageTemplateImpl.java
new file mode 100644
index 0000000..5b5a3c2
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/impl/PageTemplateImpl.java
@@ -0,0 +1,810 @@
+/**
+ * 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:  
+ *  		Christophe Loetz  (Loetz GmbH&Co.KG) - Initial implementation 
+ *  
+ */
+package org.eclipse.osbp.xtext.reportdsl.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.reportdsl.OrientationEnum;
+import org.eclipse.osbp.xtext.reportdsl.PageFooter;
+import org.eclipse.osbp.xtext.reportdsl.PageHeader;
+import org.eclipse.osbp.xtext.reportdsl.PageSizeEnum;
+import org.eclipse.osbp.xtext.reportdsl.PageTemplate;
+import org.eclipse.osbp.xtext.reportdsl.ReportDSLPackage;
+import org.eclipse.osbp.xtext.reportdsl.UnitEnum;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Page Template</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.impl.PageTemplateImpl#getSize <em>Size</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.impl.PageTemplateImpl#getOrientation <em>Orientation</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.impl.PageTemplateImpl#getTopMarginValue <em>Top Margin Value</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.impl.PageTemplateImpl#getTopMarginUnit <em>Top Margin Unit</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.impl.PageTemplateImpl#getLeftMarginValue <em>Left Margin Value</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.impl.PageTemplateImpl#getLeftMarginUnit <em>Left Margin Unit</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.impl.PageTemplateImpl#getBottomMarginValue <em>Bottom Margin Value</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.impl.PageTemplateImpl#getBottomMarginUnit <em>Bottom Margin Unit</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.impl.PageTemplateImpl#getRightMarginValue <em>Right Margin Value</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.impl.PageTemplateImpl#getRightMarginUnit <em>Right Margin Unit</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.impl.PageTemplateImpl#getHeader <em>Header</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.impl.PageTemplateImpl#getFooter <em>Footer</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class PageTemplateImpl extends ReportBaseImpl implements PageTemplate {
+	/**
+	 * The default value of the '{@link #getSize() <em>Size</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getSize()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final PageSizeEnum SIZE_EDEFAULT = PageSizeEnum.A4;
+
+	/**
+	 * The cached value of the '{@link #getSize() <em>Size</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getSize()
+	 * @generated
+	 * @ordered
+	 */
+	protected PageSizeEnum size = SIZE_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getOrientation() <em>Orientation</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getOrientation()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final OrientationEnum ORIENTATION_EDEFAULT = OrientationEnum.PORTRAIT;
+
+	/**
+	 * The cached value of the '{@link #getOrientation() <em>Orientation</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getOrientation()
+	 * @generated
+	 * @ordered
+	 */
+	protected OrientationEnum orientation = ORIENTATION_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getTopMarginValue() <em>Top Margin Value</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getTopMarginValue()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final double TOP_MARGIN_VALUE_EDEFAULT = 0.0;
+
+	/**
+	 * The cached value of the '{@link #getTopMarginValue() <em>Top Margin Value</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getTopMarginValue()
+	 * @generated
+	 * @ordered
+	 */
+	protected double topMarginValue = TOP_MARGIN_VALUE_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getTopMarginUnit() <em>Top Margin Unit</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getTopMarginUnit()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final UnitEnum TOP_MARGIN_UNIT_EDEFAULT = UnitEnum.NULL;
+
+	/**
+	 * The cached value of the '{@link #getTopMarginUnit() <em>Top Margin Unit</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getTopMarginUnit()
+	 * @generated
+	 * @ordered
+	 */
+	protected UnitEnum topMarginUnit = TOP_MARGIN_UNIT_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getLeftMarginValue() <em>Left Margin Value</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getLeftMarginValue()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final double LEFT_MARGIN_VALUE_EDEFAULT = 0.0;
+
+	/**
+	 * The cached value of the '{@link #getLeftMarginValue() <em>Left Margin Value</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getLeftMarginValue()
+	 * @generated
+	 * @ordered
+	 */
+	protected double leftMarginValue = LEFT_MARGIN_VALUE_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getLeftMarginUnit() <em>Left Margin Unit</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getLeftMarginUnit()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final UnitEnum LEFT_MARGIN_UNIT_EDEFAULT = UnitEnum.NULL;
+
+	/**
+	 * The cached value of the '{@link #getLeftMarginUnit() <em>Left Margin Unit</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getLeftMarginUnit()
+	 * @generated
+	 * @ordered
+	 */
+	protected UnitEnum leftMarginUnit = LEFT_MARGIN_UNIT_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getBottomMarginValue() <em>Bottom Margin Value</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getBottomMarginValue()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final double BOTTOM_MARGIN_VALUE_EDEFAULT = 0.0;
+
+	/**
+	 * The cached value of the '{@link #getBottomMarginValue() <em>Bottom Margin Value</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getBottomMarginValue()
+	 * @generated
+	 * @ordered
+	 */
+	protected double bottomMarginValue = BOTTOM_MARGIN_VALUE_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getBottomMarginUnit() <em>Bottom Margin Unit</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getBottomMarginUnit()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final UnitEnum BOTTOM_MARGIN_UNIT_EDEFAULT = UnitEnum.NULL;
+
+	/**
+	 * The cached value of the '{@link #getBottomMarginUnit() <em>Bottom Margin Unit</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getBottomMarginUnit()
+	 * @generated
+	 * @ordered
+	 */
+	protected UnitEnum bottomMarginUnit = BOTTOM_MARGIN_UNIT_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getRightMarginValue() <em>Right Margin Value</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getRightMarginValue()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final double RIGHT_MARGIN_VALUE_EDEFAULT = 0.0;
+
+	/**
+	 * The cached value of the '{@link #getRightMarginValue() <em>Right Margin Value</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getRightMarginValue()
+	 * @generated
+	 * @ordered
+	 */
+	protected double rightMarginValue = RIGHT_MARGIN_VALUE_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getRightMarginUnit() <em>Right Margin Unit</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getRightMarginUnit()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final UnitEnum RIGHT_MARGIN_UNIT_EDEFAULT = UnitEnum.NULL;
+
+	/**
+	 * The cached value of the '{@link #getRightMarginUnit() <em>Right Margin Unit</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getRightMarginUnit()
+	 * @generated
+	 * @ordered
+	 */
+	protected UnitEnum rightMarginUnit = RIGHT_MARGIN_UNIT_EDEFAULT;
+
+	/**
+	 * The cached value of the '{@link #getHeader() <em>Header</em>}' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getHeader()
+	 * @generated
+	 * @ordered
+	 */
+	protected PageHeader header;
+
+	/**
+	 * The cached value of the '{@link #getFooter() <em>Footer</em>}' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getFooter()
+	 * @generated
+	 * @ordered
+	 */
+	protected PageFooter footer;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected PageTemplateImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return ReportDSLPackage.Literals.PAGE_TEMPLATE;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public PageSizeEnum getSize() {
+		return size;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setSize(PageSizeEnum newSize) {
+		PageSizeEnum oldSize = size;
+		size = newSize == null ? SIZE_EDEFAULT : newSize;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ReportDSLPackage.PAGE_TEMPLATE__SIZE, oldSize, size));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public OrientationEnum getOrientation() {
+		return orientation;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setOrientation(OrientationEnum newOrientation) {
+		OrientationEnum oldOrientation = orientation;
+		orientation = newOrientation == null ? ORIENTATION_EDEFAULT : newOrientation;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ReportDSLPackage.PAGE_TEMPLATE__ORIENTATION, oldOrientation, orientation));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public double getTopMarginValue() {
+		return topMarginValue;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setTopMarginValue(double newTopMarginValue) {
+		double oldTopMarginValue = topMarginValue;
+		topMarginValue = newTopMarginValue;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ReportDSLPackage.PAGE_TEMPLATE__TOP_MARGIN_VALUE, oldTopMarginValue, topMarginValue));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public UnitEnum getTopMarginUnit() {
+		return topMarginUnit;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setTopMarginUnit(UnitEnum newTopMarginUnit) {
+		UnitEnum oldTopMarginUnit = topMarginUnit;
+		topMarginUnit = newTopMarginUnit == null ? TOP_MARGIN_UNIT_EDEFAULT : newTopMarginUnit;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ReportDSLPackage.PAGE_TEMPLATE__TOP_MARGIN_UNIT, oldTopMarginUnit, topMarginUnit));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public double getLeftMarginValue() {
+		return leftMarginValue;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setLeftMarginValue(double newLeftMarginValue) {
+		double oldLeftMarginValue = leftMarginValue;
+		leftMarginValue = newLeftMarginValue;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ReportDSLPackage.PAGE_TEMPLATE__LEFT_MARGIN_VALUE, oldLeftMarginValue, leftMarginValue));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public UnitEnum getLeftMarginUnit() {
+		return leftMarginUnit;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setLeftMarginUnit(UnitEnum newLeftMarginUnit) {
+		UnitEnum oldLeftMarginUnit = leftMarginUnit;
+		leftMarginUnit = newLeftMarginUnit == null ? LEFT_MARGIN_UNIT_EDEFAULT : newLeftMarginUnit;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ReportDSLPackage.PAGE_TEMPLATE__LEFT_MARGIN_UNIT, oldLeftMarginUnit, leftMarginUnit));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public double getBottomMarginValue() {
+		return bottomMarginValue;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setBottomMarginValue(double newBottomMarginValue) {
+		double oldBottomMarginValue = bottomMarginValue;
+		bottomMarginValue = newBottomMarginValue;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ReportDSLPackage.PAGE_TEMPLATE__BOTTOM_MARGIN_VALUE, oldBottomMarginValue, bottomMarginValue));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public UnitEnum getBottomMarginUnit() {
+		return bottomMarginUnit;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setBottomMarginUnit(UnitEnum newBottomMarginUnit) {
+		UnitEnum oldBottomMarginUnit = bottomMarginUnit;
+		bottomMarginUnit = newBottomMarginUnit == null ? BOTTOM_MARGIN_UNIT_EDEFAULT : newBottomMarginUnit;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ReportDSLPackage.PAGE_TEMPLATE__BOTTOM_MARGIN_UNIT, oldBottomMarginUnit, bottomMarginUnit));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public double getRightMarginValue() {
+		return rightMarginValue;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setRightMarginValue(double newRightMarginValue) {
+		double oldRightMarginValue = rightMarginValue;
+		rightMarginValue = newRightMarginValue;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ReportDSLPackage.PAGE_TEMPLATE__RIGHT_MARGIN_VALUE, oldRightMarginValue, rightMarginValue));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public UnitEnum getRightMarginUnit() {
+		return rightMarginUnit;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setRightMarginUnit(UnitEnum newRightMarginUnit) {
+		UnitEnum oldRightMarginUnit = rightMarginUnit;
+		rightMarginUnit = newRightMarginUnit == null ? RIGHT_MARGIN_UNIT_EDEFAULT : newRightMarginUnit;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ReportDSLPackage.PAGE_TEMPLATE__RIGHT_MARGIN_UNIT, oldRightMarginUnit, rightMarginUnit));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public PageHeader getHeader() {
+		return header;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public NotificationChain basicSetHeader(PageHeader newHeader, NotificationChain msgs) {
+		PageHeader oldHeader = header;
+		header = newHeader;
+		if (eNotificationRequired()) {
+			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, ReportDSLPackage.PAGE_TEMPLATE__HEADER, oldHeader, newHeader);
+			if (msgs == null) msgs = notification; else msgs.add(notification);
+		}
+		return msgs;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setHeader(PageHeader newHeader) {
+		if (newHeader != header) {
+			NotificationChain msgs = null;
+			if (header != null)
+				msgs = ((InternalEObject)header).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - ReportDSLPackage.PAGE_TEMPLATE__HEADER, null, msgs);
+			if (newHeader != null)
+				msgs = ((InternalEObject)newHeader).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - ReportDSLPackage.PAGE_TEMPLATE__HEADER, null, msgs);
+			msgs = basicSetHeader(newHeader, msgs);
+			if (msgs != null) msgs.dispatch();
+		}
+		else if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ReportDSLPackage.PAGE_TEMPLATE__HEADER, newHeader, newHeader));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public PageFooter getFooter() {
+		return footer;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public NotificationChain basicSetFooter(PageFooter newFooter, NotificationChain msgs) {
+		PageFooter oldFooter = footer;
+		footer = newFooter;
+		if (eNotificationRequired()) {
+			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, ReportDSLPackage.PAGE_TEMPLATE__FOOTER, oldFooter, newFooter);
+			if (msgs == null) msgs = notification; else msgs.add(notification);
+		}
+		return msgs;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setFooter(PageFooter newFooter) {
+		if (newFooter != footer) {
+			NotificationChain msgs = null;
+			if (footer != null)
+				msgs = ((InternalEObject)footer).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - ReportDSLPackage.PAGE_TEMPLATE__FOOTER, null, msgs);
+			if (newFooter != null)
+				msgs = ((InternalEObject)newFooter).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - ReportDSLPackage.PAGE_TEMPLATE__FOOTER, null, msgs);
+			msgs = basicSetFooter(newFooter, msgs);
+			if (msgs != null) msgs.dispatch();
+		}
+		else if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ReportDSLPackage.PAGE_TEMPLATE__FOOTER, newFooter, newFooter));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+		switch (featureID) {
+			case ReportDSLPackage.PAGE_TEMPLATE__HEADER:
+				return basicSetHeader(null, msgs);
+			case ReportDSLPackage.PAGE_TEMPLATE__FOOTER:
+				return basicSetFooter(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 ReportDSLPackage.PAGE_TEMPLATE__SIZE:
+				return getSize();
+			case ReportDSLPackage.PAGE_TEMPLATE__ORIENTATION:
+				return getOrientation();
+			case ReportDSLPackage.PAGE_TEMPLATE__TOP_MARGIN_VALUE:
+				return getTopMarginValue();
+			case ReportDSLPackage.PAGE_TEMPLATE__TOP_MARGIN_UNIT:
+				return getTopMarginUnit();
+			case ReportDSLPackage.PAGE_TEMPLATE__LEFT_MARGIN_VALUE:
+				return getLeftMarginValue();
+			case ReportDSLPackage.PAGE_TEMPLATE__LEFT_MARGIN_UNIT:
+				return getLeftMarginUnit();
+			case ReportDSLPackage.PAGE_TEMPLATE__BOTTOM_MARGIN_VALUE:
+				return getBottomMarginValue();
+			case ReportDSLPackage.PAGE_TEMPLATE__BOTTOM_MARGIN_UNIT:
+				return getBottomMarginUnit();
+			case ReportDSLPackage.PAGE_TEMPLATE__RIGHT_MARGIN_VALUE:
+				return getRightMarginValue();
+			case ReportDSLPackage.PAGE_TEMPLATE__RIGHT_MARGIN_UNIT:
+				return getRightMarginUnit();
+			case ReportDSLPackage.PAGE_TEMPLATE__HEADER:
+				return getHeader();
+			case ReportDSLPackage.PAGE_TEMPLATE__FOOTER:
+				return getFooter();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case ReportDSLPackage.PAGE_TEMPLATE__SIZE:
+				setSize((PageSizeEnum)newValue);
+				return;
+			case ReportDSLPackage.PAGE_TEMPLATE__ORIENTATION:
+				setOrientation((OrientationEnum)newValue);
+				return;
+			case ReportDSLPackage.PAGE_TEMPLATE__TOP_MARGIN_VALUE:
+				setTopMarginValue((Double)newValue);
+				return;
+			case ReportDSLPackage.PAGE_TEMPLATE__TOP_MARGIN_UNIT:
+				setTopMarginUnit((UnitEnum)newValue);
+				return;
+			case ReportDSLPackage.PAGE_TEMPLATE__LEFT_MARGIN_VALUE:
+				setLeftMarginValue((Double)newValue);
+				return;
+			case ReportDSLPackage.PAGE_TEMPLATE__LEFT_MARGIN_UNIT:
+				setLeftMarginUnit((UnitEnum)newValue);
+				return;
+			case ReportDSLPackage.PAGE_TEMPLATE__BOTTOM_MARGIN_VALUE:
+				setBottomMarginValue((Double)newValue);
+				return;
+			case ReportDSLPackage.PAGE_TEMPLATE__BOTTOM_MARGIN_UNIT:
+				setBottomMarginUnit((UnitEnum)newValue);
+				return;
+			case ReportDSLPackage.PAGE_TEMPLATE__RIGHT_MARGIN_VALUE:
+				setRightMarginValue((Double)newValue);
+				return;
+			case ReportDSLPackage.PAGE_TEMPLATE__RIGHT_MARGIN_UNIT:
+				setRightMarginUnit((UnitEnum)newValue);
+				return;
+			case ReportDSLPackage.PAGE_TEMPLATE__HEADER:
+				setHeader((PageHeader)newValue);
+				return;
+			case ReportDSLPackage.PAGE_TEMPLATE__FOOTER:
+				setFooter((PageFooter)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case ReportDSLPackage.PAGE_TEMPLATE__SIZE:
+				setSize(SIZE_EDEFAULT);
+				return;
+			case ReportDSLPackage.PAGE_TEMPLATE__ORIENTATION:
+				setOrientation(ORIENTATION_EDEFAULT);
+				return;
+			case ReportDSLPackage.PAGE_TEMPLATE__TOP_MARGIN_VALUE:
+				setTopMarginValue(TOP_MARGIN_VALUE_EDEFAULT);
+				return;
+			case ReportDSLPackage.PAGE_TEMPLATE__TOP_MARGIN_UNIT:
+				setTopMarginUnit(TOP_MARGIN_UNIT_EDEFAULT);
+				return;
+			case ReportDSLPackage.PAGE_TEMPLATE__LEFT_MARGIN_VALUE:
+				setLeftMarginValue(LEFT_MARGIN_VALUE_EDEFAULT);
+				return;
+			case ReportDSLPackage.PAGE_TEMPLATE__LEFT_MARGIN_UNIT:
+				setLeftMarginUnit(LEFT_MARGIN_UNIT_EDEFAULT);
+				return;
+			case ReportDSLPackage.PAGE_TEMPLATE__BOTTOM_MARGIN_VALUE:
+				setBottomMarginValue(BOTTOM_MARGIN_VALUE_EDEFAULT);
+				return;
+			case ReportDSLPackage.PAGE_TEMPLATE__BOTTOM_MARGIN_UNIT:
+				setBottomMarginUnit(BOTTOM_MARGIN_UNIT_EDEFAULT);
+				return;
+			case ReportDSLPackage.PAGE_TEMPLATE__RIGHT_MARGIN_VALUE:
+				setRightMarginValue(RIGHT_MARGIN_VALUE_EDEFAULT);
+				return;
+			case ReportDSLPackage.PAGE_TEMPLATE__RIGHT_MARGIN_UNIT:
+				setRightMarginUnit(RIGHT_MARGIN_UNIT_EDEFAULT);
+				return;
+			case ReportDSLPackage.PAGE_TEMPLATE__HEADER:
+				setHeader((PageHeader)null);
+				return;
+			case ReportDSLPackage.PAGE_TEMPLATE__FOOTER:
+				setFooter((PageFooter)null);
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case ReportDSLPackage.PAGE_TEMPLATE__SIZE:
+				return size != SIZE_EDEFAULT;
+			case ReportDSLPackage.PAGE_TEMPLATE__ORIENTATION:
+				return orientation != ORIENTATION_EDEFAULT;
+			case ReportDSLPackage.PAGE_TEMPLATE__TOP_MARGIN_VALUE:
+				return topMarginValue != TOP_MARGIN_VALUE_EDEFAULT;
+			case ReportDSLPackage.PAGE_TEMPLATE__TOP_MARGIN_UNIT:
+				return topMarginUnit != TOP_MARGIN_UNIT_EDEFAULT;
+			case ReportDSLPackage.PAGE_TEMPLATE__LEFT_MARGIN_VALUE:
+				return leftMarginValue != LEFT_MARGIN_VALUE_EDEFAULT;
+			case ReportDSLPackage.PAGE_TEMPLATE__LEFT_MARGIN_UNIT:
+				return leftMarginUnit != LEFT_MARGIN_UNIT_EDEFAULT;
+			case ReportDSLPackage.PAGE_TEMPLATE__BOTTOM_MARGIN_VALUE:
+				return bottomMarginValue != BOTTOM_MARGIN_VALUE_EDEFAULT;
+			case ReportDSLPackage.PAGE_TEMPLATE__BOTTOM_MARGIN_UNIT:
+				return bottomMarginUnit != BOTTOM_MARGIN_UNIT_EDEFAULT;
+			case ReportDSLPackage.PAGE_TEMPLATE__RIGHT_MARGIN_VALUE:
+				return rightMarginValue != RIGHT_MARGIN_VALUE_EDEFAULT;
+			case ReportDSLPackage.PAGE_TEMPLATE__RIGHT_MARGIN_UNIT:
+				return rightMarginUnit != RIGHT_MARGIN_UNIT_EDEFAULT;
+			case ReportDSLPackage.PAGE_TEMPLATE__HEADER:
+				return header != null;
+			case ReportDSLPackage.PAGE_TEMPLATE__FOOTER:
+				return footer != 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(" (size: ");
+		result.append(size);
+		result.append(", orientation: ");
+		result.append(orientation);
+		result.append(", topMarginValue: ");
+		result.append(topMarginValue);
+		result.append(", topMarginUnit: ");
+		result.append(topMarginUnit);
+		result.append(", leftMarginValue: ");
+		result.append(leftMarginValue);
+		result.append(", leftMarginUnit: ");
+		result.append(leftMarginUnit);
+		result.append(", bottomMarginValue: ");
+		result.append(bottomMarginValue);
+		result.append(", bottomMarginUnit: ");
+		result.append(bottomMarginUnit);
+		result.append(", rightMarginValue: ");
+		result.append(rightMarginValue);
+		result.append(", rightMarginUnit: ");
+		result.append(rightMarginUnit);
+		result.append(')');
+		return result.toString();
+	}
+
+} //PageTemplateImpl
diff --git a/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/impl/PageTemplatesImpl.java b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/impl/PageTemplatesImpl.java
new file mode 100644
index 0000000..91aca4f
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/impl/PageTemplatesImpl.java
@@ -0,0 +1,161 @@
+/**
+ * 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:  
+ *  		Christophe Loetz  (Loetz GmbH&Co.KG) - Initial implementation 
+ *  
+ */
+package org.eclipse.osbp.xtext.reportdsl.impl;
+
+import java.util.Collection;
+
+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.util.EObjectContainmentEList;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+import org.eclipse.osbp.xtext.reportdsl.PageTemplate;
+import org.eclipse.osbp.xtext.reportdsl.PageTemplates;
+import org.eclipse.osbp.xtext.reportdsl.ReportDSLPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Page Templates</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.impl.PageTemplatesImpl#getPagetemplates <em>Pagetemplates</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class PageTemplatesImpl extends ReportLazyResolverImpl implements PageTemplates {
+	/**
+	 * The cached value of the '{@link #getPagetemplates() <em>Pagetemplates</em>}' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getPagetemplates()
+	 * @generated
+	 * @ordered
+	 */
+	protected EList<PageTemplate> pagetemplates;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected PageTemplatesImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return ReportDSLPackage.Literals.PAGE_TEMPLATES;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EList<PageTemplate> getPagetemplates() {
+		if (pagetemplates == null) {
+			pagetemplates = new EObjectContainmentEList<PageTemplate>(PageTemplate.class, this, ReportDSLPackage.PAGE_TEMPLATES__PAGETEMPLATES);
+		}
+		return pagetemplates;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+		switch (featureID) {
+			case ReportDSLPackage.PAGE_TEMPLATES__PAGETEMPLATES:
+				return ((InternalEList<?>)getPagetemplates()).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 ReportDSLPackage.PAGE_TEMPLATES__PAGETEMPLATES:
+				return getPagetemplates();
+		}
+		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 ReportDSLPackage.PAGE_TEMPLATES__PAGETEMPLATES:
+				getPagetemplates().clear();
+				getPagetemplates().addAll((Collection<? extends PageTemplate>)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case ReportDSLPackage.PAGE_TEMPLATES__PAGETEMPLATES:
+				getPagetemplates().clear();
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case ReportDSLPackage.PAGE_TEMPLATES__PAGETEMPLATES:
+				return pagetemplates != null && !pagetemplates.isEmpty();
+		}
+		return super.eIsSet(featureID);
+	}
+
+} //PageTemplatesImpl
diff --git a/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/impl/ReportBaseImpl.java b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/impl/ReportBaseImpl.java
new file mode 100644
index 0000000..b57fdfa
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/impl/ReportBaseImpl.java
@@ -0,0 +1,173 @@
+/**
+ * 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:  
+ *  		Christophe Loetz  (Loetz GmbH&Co.KG) - Initial implementation 
+ *  
+ */
+package org.eclipse.osbp.xtext.reportdsl.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.osbp.xtext.reportdsl.ReportBase;
+import org.eclipse.osbp.xtext.reportdsl.ReportDSLPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Report Base</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.impl.ReportBaseImpl#getName <em>Name</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class ReportBaseImpl extends ReportLazyResolverImpl implements ReportBase {
+	/**
+	 * The default value of the '{@link #getName() <em>Name</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getName()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String NAME_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getName() <em>Name</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getName()
+	 * @generated
+	 * @ordered
+	 */
+	protected String name = NAME_EDEFAULT;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected ReportBaseImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return ReportDSLPackage.Literals.REPORT_BASE;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getName() {
+		return name;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setName(String newName) {
+		String oldName = name;
+		name = newName;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ReportDSLPackage.REPORT_BASE__NAME, oldName, name));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case ReportDSLPackage.REPORT_BASE__NAME:
+				return getName();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case ReportDSLPackage.REPORT_BASE__NAME:
+				setName((String)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case ReportDSLPackage.REPORT_BASE__NAME:
+				setName(NAME_EDEFAULT);
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case ReportDSLPackage.REPORT_BASE__NAME:
+				return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name);
+		}
+		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(" (name: ");
+		result.append(name);
+		result.append(')');
+		return result.toString();
+	}
+
+} //ReportBaseImpl
diff --git a/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/impl/ReportDSLFactoryImpl.java b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/impl/ReportDSLFactoryImpl.java
new file mode 100644
index 0000000..f8ec3a2
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/impl/ReportDSLFactoryImpl.java
@@ -0,0 +1,1452 @@
+/**
+ * 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:  
+ *  		Christophe Loetz  (Loetz GmbH&Co.KG) - Initial implementation 
+ *  
+ */
+package org.eclipse.osbp.xtext.reportdsl.impl;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EDataType;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.EFactoryImpl;
+
+import org.eclipse.emf.ecore.plugin.EcorePlugin;
+
+import org.eclipse.osbp.xtext.reportdsl.*;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model <b>Factory</b>.
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class ReportDSLFactoryImpl extends EFactoryImpl implements ReportDSLFactory {
+	/**
+	 * Creates the default factory implementation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static ReportDSLFactory init() {
+		try {
+			ReportDSLFactory theReportDSLFactory = (ReportDSLFactory)EPackage.Registry.INSTANCE.getEFactory(ReportDSLPackage.eNS_URI);
+			if (theReportDSLFactory != null) {
+				return theReportDSLFactory;
+			}
+		}
+		catch (Exception exception) {
+			EcorePlugin.INSTANCE.log(exception);
+		}
+		return new ReportDSLFactoryImpl();
+	}
+
+	/**
+	 * Creates an instance of the factory.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public ReportDSLFactoryImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public EObject create(EClass eClass) {
+		switch (eClass.getClassifierID()) {
+			case ReportDSLPackage.REPORT_MODEL: return createReportModel();
+			case ReportDSLPackage.REPORT_LAZY_RESOLVER: return createReportLazyResolver();
+			case ReportDSLPackage.REPORT_BASE: return createReportBase();
+			case ReportDSLPackage.REPORT_PACKAGE: return createReportPackage();
+			case ReportDSLPackage.PAGE_TEMPLATES: return createPageTemplates();
+			case ReportDSLPackage.SOME_FORMATS: return createSomeFormats();
+			case ReportDSLPackage.COLORS: return createColors();
+			case ReportDSLPackage.FONTS: return createFonts();
+			case ReportDSLPackage.MEDIAS: return createMedias();
+			case ReportDSLPackage.STYLES: return createStyles();
+			case ReportDSLPackage.PAGE_TEMPLATE: return createPageTemplate();
+			case ReportDSLPackage.COLOR: return createColor();
+			case ReportDSLPackage.FONT: return createFont();
+			case ReportDSLPackage.BUILD_IN_FONT_FAMILY: return createBuildInFontFamily();
+			case ReportDSLPackage.CUSTOM_FONT_FAMILY: return createCustomFontFamily();
+			case ReportDSLPackage.MEDIA: return createMedia();
+			case ReportDSLPackage.BORDER_STYLE: return createBorderStyle();
+			case ReportDSLPackage.BASE_STYLE: return createBaseStyle();
+			case ReportDSLPackage.MEDIA_STYLE: return createMediaStyle();
+			case ReportDSLPackage.STYLE: return createStyle();
+			case ReportDSLPackage.SOME_FORMAT: return createSomeFormat();
+			case ReportDSLPackage.UOMO_FORMAT: return createUomoFormat();
+			case ReportDSLPackage.NUMBER_FORMAT: return createNumberFormat();
+			case ReportDSLPackage.CURRENCY_FORMAT: return createCurrencyFormat();
+			case ReportDSLPackage.DATE_FORMAT: return createDateFormat();
+			case ReportDSLPackage.DATE_TIME_FORMAT: return createDateTimeFormat();
+			case ReportDSLPackage.TIME_FORMAT: return createTimeFormat();
+			case ReportDSLPackage.REPORT: return createReport();
+			case ReportDSLPackage.REPORT_DESIGN_FILE: return createReportDesignFile();
+			case ReportDSLPackage.REPORT_DESIGN_TEMPLATE: return createReportDesignTemplate();
+			case ReportDSLPackage.CONTAINER: return createContainer();
+			case ReportDSLPackage.PAGE_HEADER: return createPageHeader();
+			case ReportDSLPackage.PAGE_DETAIL: return createPageDetail();
+			case ReportDSLPackage.PAGE_FOOTER: return createPageFooter();
+			case ReportDSLPackage.WITH_STYLE: return createWithStyle();
+			case ReportDSLPackage.TEXT_ELEMENT: return createTextElement();
+			case ReportDSLPackage.TITLE: return createTitle();
+			case ReportDSLPackage.SUB_TITLE: return createSubTitle();
+			case ReportDSLPackage.SUB_SUB_TITLE: return createSubSubTitle();
+			case ReportDSLPackage.LABEL: return createLabel();
+			case ReportDSLPackage.TEXT: return createText();
+			case ReportDSLPackage.AUTO_TEXT: return createAutoText();
+			case ReportDSLPackage.IMAGE: return createImage();
+			case ReportDSLPackage.WITH_HEADER_FOOTER: return createWithHeaderFooter();
+			case ReportDSLPackage.DATAMART_TABLE: return createDatamartTable();
+			case ReportDSLPackage.DATAMART_TABLE_GROUP: return createDatamartTableGroup();
+			case ReportDSLPackage.SOME_GRID: return createSomeGrid();
+			case ReportDSLPackage.DATAMART_TABLE_GROUP_HEADER: return createDatamartTableGroupHeader();
+			case ReportDSLPackage.DATAMART_TABLE_GROUP_FOOTER: return createDatamartTableGroupFooter();
+			case ReportDSLPackage.DATAMART_TABLE_DETAIL: return createDatamartTableDetail();
+			case ReportDSLPackage.DATAMART_TABLE_PROPERTY: return createDatamartTableProperty();
+			case ReportDSLPackage.TABLE_FORMATTER: return createTableFormatter();
+			case ReportDSLPackage.TABLE_IMAGE: return createTableImage();
+			case ReportDSLPackage.TABLE_PROPERTY: return createTableProperty();
+			case ReportDSLPackage.TABLE_AGGREGATION: return createTableAggregation();
+			case ReportDSLPackage.TABLE_BASE_AGGREGATION: return createTableBaseAggregation();
+			case ReportDSLPackage.TABLE_PURE_AGGREGATION: return createTablePureAggregation();
+			case ReportDSLPackage.TABLE_UNARY_AGGREGATION: return createTableUnaryAggregation();
+			case ReportDSLPackage.TABLE_MULTIPLE_AGGREGATION: return createTableMultipleAggregation();
+			case ReportDSLPackage.TABLE_BINARY_AGGREGATION: return createTableBinaryAggregation();
+			case ReportDSLPackage.TABLE_NUMBER_INTERVAL: return createTableNumberInterval();
+			case ReportDSLPackage.TABLE_DATE_DAY_INTERVAL: return createTableDateDayInterval();
+			case ReportDSLPackage.TABLE_NUMBER_LOOKUP: return createTableNumberLookup();
+			case ReportDSLPackage.TABLE_STRING_LOOKUP: return createTableStringLookup();
+			case ReportDSLPackage.TABLE_DATE_DAY_LOOKUP: return createTableDateDayLookup();
+			case ReportDSLPackage.TABLE_TEXT_COLOR: return createTableTextColor();
+			case ReportDSLPackage.TABLE_CELL_COLOR: return createTableCellColor();
+			case ReportDSLPackage.TABLE_ICON: return createTableIcon();
+			case ReportDSLPackage.TABLE_TREND: return createTableTrend();
+			case ReportDSLPackage.TABLE_TOOLTIP: return createTableTooltip();
+			case ReportDSLPackage.GRID: return createGrid();
+			case ReportDSLPackage.GRID_ROW: return createGridRow();
+			case ReportDSLPackage.GRID_CELL: return createGridCell();
+			default:
+				throw new IllegalArgumentException("The class '" + eClass.getName() + "' is not a valid classifier");
+		}
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object createFromString(EDataType eDataType, String initialValue) {
+		switch (eDataType.getClassifierID()) {
+			case ReportDSLPackage.UNIT_ENUM:
+				return createUnitEnumFromString(eDataType, initialValue);
+			case ReportDSLPackage.PAGE_SIZE_ENUM:
+				return createPageSizeEnumFromString(eDataType, initialValue);
+			case ReportDSLPackage.ORIENTATION_ENUM:
+				return createOrientationEnumFromString(eDataType, initialValue);
+			case ReportDSLPackage.FONT_STYLE_ENUM:
+				return createFontStyleEnumFromString(eDataType, initialValue);
+			case ReportDSLPackage.BUILD_IN_FONT_FAMILY_ENUM:
+				return createBuildInFontFamilyEnumFromString(eDataType, initialValue);
+			case ReportDSLPackage.BORDER_TYPE_ENUM:
+				return createBorderTypeEnumFromString(eDataType, initialValue);
+			case ReportDSLPackage.TEXT_ALIGN_ENUM:
+				return createTextAlignEnumFromString(eDataType, initialValue);
+			case ReportDSLPackage.NUMBER_FORMAT_CATEGORY_ENUM:
+				return createNumberFormatCategoryEnumFromString(eDataType, initialValue);
+			case ReportDSLPackage.CURRENCY_FORMAT_CATEGORY_ENUM:
+				return createCurrencyFormatCategoryEnumFromString(eDataType, initialValue);
+			case ReportDSLPackage.DATE_FORMAT_CATEGORY_ENUM:
+				return createDateFormatCategoryEnumFromString(eDataType, initialValue);
+			case ReportDSLPackage.DATE_TIME_FORMAT_CATEGORY_ENUM:
+				return createDateTimeFormatCategoryEnumFromString(eDataType, initialValue);
+			case ReportDSLPackage.TIME_FORMAT_CATEGORY_ENUM:
+				return createTimeFormatCategoryEnumFromString(eDataType, initialValue);
+			case ReportDSLPackage.AUTO_TEXT_ENUM:
+				return createAutoTextEnumFromString(eDataType, initialValue);
+			case ReportDSLPackage.IMAGE_SIZE_ENUM:
+				return createImageSizeEnumFromString(eDataType, initialValue);
+			case ReportDSLPackage.IMAGE_SOURCE_ENUM:
+				return createImageSourceEnumFromString(eDataType, initialValue);
+			case ReportDSLPackage.PURE_AGGREGATION_TYPE_ENUM:
+				return createPureAggregationTypeEnumFromString(eDataType, initialValue);
+			case ReportDSLPackage.UNARY_AGGREGATION_TYPE_ENUM:
+				return createUnaryAggregationTypeEnumFromString(eDataType, initialValue);
+			case ReportDSLPackage.BINARY_AGGREGATION_TYPE_ENUM:
+				return createBinaryAggregationTypeEnumFromString(eDataType, initialValue);
+			case ReportDSLPackage.MULTIPLE_AGGREGATION_TYPE_ENUM:
+				return createMultipleAggregationTypeEnumFromString(eDataType, initialValue);
+			case ReportDSLPackage.TREND_ICON_ENUM:
+				return createTrendIconEnumFromString(eDataType, initialValue);
+			case ReportDSLPackage.RENDERING_ENUM:
+				return createRenderingEnumFromString(eDataType, initialValue);
+			case ReportDSLPackage.INTERNAL_EOBJECT:
+				return createInternalEObjectFromString(eDataType, initialValue);
+			default:
+				throw new IllegalArgumentException("The datatype '" + eDataType.getName() + "' is not a valid classifier");
+		}
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String convertToString(EDataType eDataType, Object instanceValue) {
+		switch (eDataType.getClassifierID()) {
+			case ReportDSLPackage.UNIT_ENUM:
+				return convertUnitEnumToString(eDataType, instanceValue);
+			case ReportDSLPackage.PAGE_SIZE_ENUM:
+				return convertPageSizeEnumToString(eDataType, instanceValue);
+			case ReportDSLPackage.ORIENTATION_ENUM:
+				return convertOrientationEnumToString(eDataType, instanceValue);
+			case ReportDSLPackage.FONT_STYLE_ENUM:
+				return convertFontStyleEnumToString(eDataType, instanceValue);
+			case ReportDSLPackage.BUILD_IN_FONT_FAMILY_ENUM:
+				return convertBuildInFontFamilyEnumToString(eDataType, instanceValue);
+			case ReportDSLPackage.BORDER_TYPE_ENUM:
+				return convertBorderTypeEnumToString(eDataType, instanceValue);
+			case ReportDSLPackage.TEXT_ALIGN_ENUM:
+				return convertTextAlignEnumToString(eDataType, instanceValue);
+			case ReportDSLPackage.NUMBER_FORMAT_CATEGORY_ENUM:
+				return convertNumberFormatCategoryEnumToString(eDataType, instanceValue);
+			case ReportDSLPackage.CURRENCY_FORMAT_CATEGORY_ENUM:
+				return convertCurrencyFormatCategoryEnumToString(eDataType, instanceValue);
+			case ReportDSLPackage.DATE_FORMAT_CATEGORY_ENUM:
+				return convertDateFormatCategoryEnumToString(eDataType, instanceValue);
+			case ReportDSLPackage.DATE_TIME_FORMAT_CATEGORY_ENUM:
+				return convertDateTimeFormatCategoryEnumToString(eDataType, instanceValue);
+			case ReportDSLPackage.TIME_FORMAT_CATEGORY_ENUM:
+				return convertTimeFormatCategoryEnumToString(eDataType, instanceValue);
+			case ReportDSLPackage.AUTO_TEXT_ENUM:
+				return convertAutoTextEnumToString(eDataType, instanceValue);
+			case ReportDSLPackage.IMAGE_SIZE_ENUM:
+				return convertImageSizeEnumToString(eDataType, instanceValue);
+			case ReportDSLPackage.IMAGE_SOURCE_ENUM:
+				return convertImageSourceEnumToString(eDataType, instanceValue);
+			case ReportDSLPackage.PURE_AGGREGATION_TYPE_ENUM:
+				return convertPureAggregationTypeEnumToString(eDataType, instanceValue);
+			case ReportDSLPackage.UNARY_AGGREGATION_TYPE_ENUM:
+				return convertUnaryAggregationTypeEnumToString(eDataType, instanceValue);
+			case ReportDSLPackage.BINARY_AGGREGATION_TYPE_ENUM:
+				return convertBinaryAggregationTypeEnumToString(eDataType, instanceValue);
+			case ReportDSLPackage.MULTIPLE_AGGREGATION_TYPE_ENUM:
+				return convertMultipleAggregationTypeEnumToString(eDataType, instanceValue);
+			case ReportDSLPackage.TREND_ICON_ENUM:
+				return convertTrendIconEnumToString(eDataType, instanceValue);
+			case ReportDSLPackage.RENDERING_ENUM:
+				return convertRenderingEnumToString(eDataType, instanceValue);
+			case ReportDSLPackage.INTERNAL_EOBJECT:
+				return convertInternalEObjectToString(eDataType, instanceValue);
+			default:
+				throw new IllegalArgumentException("The datatype '" + eDataType.getName() + "' is not a valid classifier");
+		}
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public ReportModel createReportModel() {
+		ReportModelImpl reportModel = new ReportModelImpl();
+		return reportModel;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public ReportLazyResolver createReportLazyResolver() {
+		ReportLazyResolverImpl reportLazyResolver = new ReportLazyResolverImpl();
+		return reportLazyResolver;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public ReportBase createReportBase() {
+		ReportBaseImpl reportBase = new ReportBaseImpl();
+		return reportBase;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public ReportPackage createReportPackage() {
+		ReportPackageImpl reportPackage = new ReportPackageImpl();
+		return reportPackage;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public PageTemplates createPageTemplates() {
+		PageTemplatesImpl pageTemplates = new PageTemplatesImpl();
+		return pageTemplates;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public SomeFormats createSomeFormats() {
+		SomeFormatsImpl someFormats = new SomeFormatsImpl();
+		return someFormats;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Colors createColors() {
+		ColorsImpl colors = new ColorsImpl();
+		return colors;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Fonts createFonts() {
+		FontsImpl fonts = new FontsImpl();
+		return fonts;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Medias createMedias() {
+		MediasImpl medias = new MediasImpl();
+		return medias;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Styles createStyles() {
+		StylesImpl styles = new StylesImpl();
+		return styles;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public PageTemplate createPageTemplate() {
+		PageTemplateImpl pageTemplate = new PageTemplateImpl();
+		return pageTemplate;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Color createColor() {
+		ColorImpl color = new ColorImpl();
+		return color;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Font createFont() {
+		FontImpl font = new FontImpl();
+		return font;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public BuildInFontFamily createBuildInFontFamily() {
+		BuildInFontFamilyImpl buildInFontFamily = new BuildInFontFamilyImpl();
+		return buildInFontFamily;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public CustomFontFamily createCustomFontFamily() {
+		CustomFontFamilyImpl customFontFamily = new CustomFontFamilyImpl();
+		return customFontFamily;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Media createMedia() {
+		MediaImpl media = new MediaImpl();
+		return media;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public BorderStyle createBorderStyle() {
+		BorderStyleImpl borderStyle = new BorderStyleImpl();
+		return borderStyle;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public BaseStyle createBaseStyle() {
+		BaseStyleImpl baseStyle = new BaseStyleImpl();
+		return baseStyle;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public MediaStyle createMediaStyle() {
+		MediaStyleImpl mediaStyle = new MediaStyleImpl();
+		return mediaStyle;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Style createStyle() {
+		StyleImpl style = new StyleImpl();
+		return style;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public SomeFormat createSomeFormat() {
+		SomeFormatImpl someFormat = new SomeFormatImpl();
+		return someFormat;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public UomoFormat createUomoFormat() {
+		UomoFormatImpl uomoFormat = new UomoFormatImpl();
+		return uomoFormat;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public NumberFormat createNumberFormat() {
+		NumberFormatImpl numberFormat = new NumberFormatImpl();
+		return numberFormat;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public CurrencyFormat createCurrencyFormat() {
+		CurrencyFormatImpl currencyFormat = new CurrencyFormatImpl();
+		return currencyFormat;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public DateFormat createDateFormat() {
+		DateFormatImpl dateFormat = new DateFormatImpl();
+		return dateFormat;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public DateTimeFormat createDateTimeFormat() {
+		DateTimeFormatImpl dateTimeFormat = new DateTimeFormatImpl();
+		return dateTimeFormat;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public TimeFormat createTimeFormat() {
+		TimeFormatImpl timeFormat = new TimeFormatImpl();
+		return timeFormat;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Report createReport() {
+		ReportImpl report = new ReportImpl();
+		return report;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public ReportDesignFile createReportDesignFile() {
+		ReportDesignFileImpl reportDesignFile = new ReportDesignFileImpl();
+		return reportDesignFile;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public ReportDesignTemplate createReportDesignTemplate() {
+		ReportDesignTemplateImpl reportDesignTemplate = new ReportDesignTemplateImpl();
+		return reportDesignTemplate;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public org.eclipse.osbp.xtext.reportdsl.Container createContainer() {
+		ContainerImpl container = new ContainerImpl();
+		return container;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public PageHeader createPageHeader() {
+		PageHeaderImpl pageHeader = new PageHeaderImpl();
+		return pageHeader;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public PageDetail createPageDetail() {
+		PageDetailImpl pageDetail = new PageDetailImpl();
+		return pageDetail;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public PageFooter createPageFooter() {
+		PageFooterImpl pageFooter = new PageFooterImpl();
+		return pageFooter;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public WithStyle createWithStyle() {
+		WithStyleImpl withStyle = new WithStyleImpl();
+		return withStyle;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public TextElement createTextElement() {
+		TextElementImpl textElement = new TextElementImpl();
+		return textElement;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Title createTitle() {
+		TitleImpl title = new TitleImpl();
+		return title;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public SubTitle createSubTitle() {
+		SubTitleImpl subTitle = new SubTitleImpl();
+		return subTitle;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public SubSubTitle createSubSubTitle() {
+		SubSubTitleImpl subSubTitle = new SubSubTitleImpl();
+		return subSubTitle;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Label createLabel() {
+		LabelImpl label = new LabelImpl();
+		return label;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Text createText() {
+		TextImpl text = new TextImpl();
+		return text;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public AutoText createAutoText() {
+		AutoTextImpl autoText = new AutoTextImpl();
+		return autoText;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Image createImage() {
+		ImageImpl image = new ImageImpl();
+		return image;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public WithHeaderFooter createWithHeaderFooter() {
+		WithHeaderFooterImpl withHeaderFooter = new WithHeaderFooterImpl();
+		return withHeaderFooter;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public DatamartTable createDatamartTable() {
+		DatamartTableImpl datamartTable = new DatamartTableImpl();
+		return datamartTable;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public DatamartTableGroup createDatamartTableGroup() {
+		DatamartTableGroupImpl datamartTableGroup = new DatamartTableGroupImpl();
+		return datamartTableGroup;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public SomeGrid createSomeGrid() {
+		SomeGridImpl someGrid = new SomeGridImpl();
+		return someGrid;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public DatamartTableGroupHeader createDatamartTableGroupHeader() {
+		DatamartTableGroupHeaderImpl datamartTableGroupHeader = new DatamartTableGroupHeaderImpl();
+		return datamartTableGroupHeader;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public DatamartTableGroupFooter createDatamartTableGroupFooter() {
+		DatamartTableGroupFooterImpl datamartTableGroupFooter = new DatamartTableGroupFooterImpl();
+		return datamartTableGroupFooter;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public DatamartTableDetail createDatamartTableDetail() {
+		DatamartTableDetailImpl datamartTableDetail = new DatamartTableDetailImpl();
+		return datamartTableDetail;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public DatamartTableProperty createDatamartTableProperty() {
+		DatamartTablePropertyImpl datamartTableProperty = new DatamartTablePropertyImpl();
+		return datamartTableProperty;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public TableFormatter createTableFormatter() {
+		TableFormatterImpl tableFormatter = new TableFormatterImpl();
+		return tableFormatter;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public TableImage createTableImage() {
+		TableImageImpl tableImage = new TableImageImpl();
+		return tableImage;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public TableProperty createTableProperty() {
+		TablePropertyImpl tableProperty = new TablePropertyImpl();
+		return tableProperty;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public TableAggregation createTableAggregation() {
+		TableAggregationImpl tableAggregation = new TableAggregationImpl();
+		return tableAggregation;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public TableBaseAggregation createTableBaseAggregation() {
+		TableBaseAggregationImpl tableBaseAggregation = new TableBaseAggregationImpl();
+		return tableBaseAggregation;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public TablePureAggregation createTablePureAggregation() {
+		TablePureAggregationImpl tablePureAggregation = new TablePureAggregationImpl();
+		return tablePureAggregation;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public TableUnaryAggregation createTableUnaryAggregation() {
+		TableUnaryAggregationImpl tableUnaryAggregation = new TableUnaryAggregationImpl();
+		return tableUnaryAggregation;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public TableMultipleAggregation createTableMultipleAggregation() {
+		TableMultipleAggregationImpl tableMultipleAggregation = new TableMultipleAggregationImpl();
+		return tableMultipleAggregation;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public TableBinaryAggregation createTableBinaryAggregation() {
+		TableBinaryAggregationImpl tableBinaryAggregation = new TableBinaryAggregationImpl();
+		return tableBinaryAggregation;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public TableNumberInterval createTableNumberInterval() {
+		TableNumberIntervalImpl tableNumberInterval = new TableNumberIntervalImpl();
+		return tableNumberInterval;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public TableDateDayInterval createTableDateDayInterval() {
+		TableDateDayIntervalImpl tableDateDayInterval = new TableDateDayIntervalImpl();
+		return tableDateDayInterval;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public TableNumberLookup createTableNumberLookup() {
+		TableNumberLookupImpl tableNumberLookup = new TableNumberLookupImpl();
+		return tableNumberLookup;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public TableStringLookup createTableStringLookup() {
+		TableStringLookupImpl tableStringLookup = new TableStringLookupImpl();
+		return tableStringLookup;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public TableDateDayLookup createTableDateDayLookup() {
+		TableDateDayLookupImpl tableDateDayLookup = new TableDateDayLookupImpl();
+		return tableDateDayLookup;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public TableTextColor createTableTextColor() {
+		TableTextColorImpl tableTextColor = new TableTextColorImpl();
+		return tableTextColor;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public TableCellColor createTableCellColor() {
+		TableCellColorImpl tableCellColor = new TableCellColorImpl();
+		return tableCellColor;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public TableIcon createTableIcon() {
+		TableIconImpl tableIcon = new TableIconImpl();
+		return tableIcon;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public TableTrend createTableTrend() {
+		TableTrendImpl tableTrend = new TableTrendImpl();
+		return tableTrend;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public TableTooltip createTableTooltip() {
+		TableTooltipImpl tableTooltip = new TableTooltipImpl();
+		return tableTooltip;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Grid createGrid() {
+		GridImpl grid = new GridImpl();
+		return grid;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public GridRow createGridRow() {
+		GridRowImpl gridRow = new GridRowImpl();
+		return gridRow;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public GridCell createGridCell() {
+		GridCellImpl gridCell = new GridCellImpl();
+		return gridCell;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public UnitEnum createUnitEnumFromString(EDataType eDataType, String initialValue) {
+		UnitEnum result = UnitEnum.get(initialValue);
+		if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'");
+		return result;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String convertUnitEnumToString(EDataType eDataType, Object instanceValue) {
+		return instanceValue == null ? null : instanceValue.toString();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public PageSizeEnum createPageSizeEnumFromString(EDataType eDataType, String initialValue) {
+		PageSizeEnum result = PageSizeEnum.get(initialValue);
+		if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'");
+		return result;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String convertPageSizeEnumToString(EDataType eDataType, Object instanceValue) {
+		return instanceValue == null ? null : instanceValue.toString();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public OrientationEnum createOrientationEnumFromString(EDataType eDataType, String initialValue) {
+		OrientationEnum result = OrientationEnum.get(initialValue);
+		if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'");
+		return result;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String convertOrientationEnumToString(EDataType eDataType, Object instanceValue) {
+		return instanceValue == null ? null : instanceValue.toString();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public FontStyleEnum createFontStyleEnumFromString(EDataType eDataType, String initialValue) {
+		FontStyleEnum result = FontStyleEnum.get(initialValue);
+		if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'");
+		return result;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String convertFontStyleEnumToString(EDataType eDataType, Object instanceValue) {
+		return instanceValue == null ? null : instanceValue.toString();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public BuildInFontFamilyEnum createBuildInFontFamilyEnumFromString(EDataType eDataType, String initialValue) {
+		BuildInFontFamilyEnum result = BuildInFontFamilyEnum.get(initialValue);
+		if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'");
+		return result;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String convertBuildInFontFamilyEnumToString(EDataType eDataType, Object instanceValue) {
+		return instanceValue == null ? null : instanceValue.toString();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public BorderTypeEnum createBorderTypeEnumFromString(EDataType eDataType, String initialValue) {
+		BorderTypeEnum result = BorderTypeEnum.get(initialValue);
+		if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'");
+		return result;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String convertBorderTypeEnumToString(EDataType eDataType, Object instanceValue) {
+		return instanceValue == null ? null : instanceValue.toString();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public TextAlignEnum createTextAlignEnumFromString(EDataType eDataType, String initialValue) {
+		TextAlignEnum result = TextAlignEnum.get(initialValue);
+		if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'");
+		return result;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String convertTextAlignEnumToString(EDataType eDataType, Object instanceValue) {
+		return instanceValue == null ? null : instanceValue.toString();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public NumberFormatCategoryEnum createNumberFormatCategoryEnumFromString(EDataType eDataType, String initialValue) {
+		NumberFormatCategoryEnum result = NumberFormatCategoryEnum.get(initialValue);
+		if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'");
+		return result;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String convertNumberFormatCategoryEnumToString(EDataType eDataType, Object instanceValue) {
+		return instanceValue == null ? null : instanceValue.toString();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public CurrencyFormatCategoryEnum createCurrencyFormatCategoryEnumFromString(EDataType eDataType, String initialValue) {
+		CurrencyFormatCategoryEnum result = CurrencyFormatCategoryEnum.get(initialValue);
+		if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'");
+		return result;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String convertCurrencyFormatCategoryEnumToString(EDataType eDataType, Object instanceValue) {
+		return instanceValue == null ? null : instanceValue.toString();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public DateFormatCategoryEnum createDateFormatCategoryEnumFromString(EDataType eDataType, String initialValue) {
+		DateFormatCategoryEnum result = DateFormatCategoryEnum.get(initialValue);
+		if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'");
+		return result;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String convertDateFormatCategoryEnumToString(EDataType eDataType, Object instanceValue) {
+		return instanceValue == null ? null : instanceValue.toString();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public DateTimeFormatCategoryEnum createDateTimeFormatCategoryEnumFromString(EDataType eDataType, String initialValue) {
+		DateTimeFormatCategoryEnum result = DateTimeFormatCategoryEnum.get(initialValue);
+		if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'");
+		return result;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String convertDateTimeFormatCategoryEnumToString(EDataType eDataType, Object instanceValue) {
+		return instanceValue == null ? null : instanceValue.toString();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public TimeFormatCategoryEnum createTimeFormatCategoryEnumFromString(EDataType eDataType, String initialValue) {
+		TimeFormatCategoryEnum result = TimeFormatCategoryEnum.get(initialValue);
+		if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'");
+		return result;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String convertTimeFormatCategoryEnumToString(EDataType eDataType, Object instanceValue) {
+		return instanceValue == null ? null : instanceValue.toString();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public AutoTextEnum createAutoTextEnumFromString(EDataType eDataType, String initialValue) {
+		AutoTextEnum result = AutoTextEnum.get(initialValue);
+		if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'");
+		return result;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String convertAutoTextEnumToString(EDataType eDataType, Object instanceValue) {
+		return instanceValue == null ? null : instanceValue.toString();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public ImageSizeEnum createImageSizeEnumFromString(EDataType eDataType, String initialValue) {
+		ImageSizeEnum result = ImageSizeEnum.get(initialValue);
+		if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'");
+		return result;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String convertImageSizeEnumToString(EDataType eDataType, Object instanceValue) {
+		return instanceValue == null ? null : instanceValue.toString();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public ImageSourceEnum createImageSourceEnumFromString(EDataType eDataType, String initialValue) {
+		ImageSourceEnum result = ImageSourceEnum.get(initialValue);
+		if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'");
+		return result;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String convertImageSourceEnumToString(EDataType eDataType, Object instanceValue) {
+		return instanceValue == null ? null : instanceValue.toString();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public PureAggregationTypeEnum createPureAggregationTypeEnumFromString(EDataType eDataType, String initialValue) {
+		PureAggregationTypeEnum result = PureAggregationTypeEnum.get(initialValue);
+		if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'");
+		return result;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String convertPureAggregationTypeEnumToString(EDataType eDataType, Object instanceValue) {
+		return instanceValue == null ? null : instanceValue.toString();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public UnaryAggregationTypeEnum createUnaryAggregationTypeEnumFromString(EDataType eDataType, String initialValue) {
+		UnaryAggregationTypeEnum result = UnaryAggregationTypeEnum.get(initialValue);
+		if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'");
+		return result;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String convertUnaryAggregationTypeEnumToString(EDataType eDataType, Object instanceValue) {
+		return instanceValue == null ? null : instanceValue.toString();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public BinaryAggregationTypeEnum createBinaryAggregationTypeEnumFromString(EDataType eDataType, String initialValue) {
+		BinaryAggregationTypeEnum result = BinaryAggregationTypeEnum.get(initialValue);
+		if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'");
+		return result;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String convertBinaryAggregationTypeEnumToString(EDataType eDataType, Object instanceValue) {
+		return instanceValue == null ? null : instanceValue.toString();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public MultipleAggregationTypeEnum createMultipleAggregationTypeEnumFromString(EDataType eDataType, String initialValue) {
+		MultipleAggregationTypeEnum result = MultipleAggregationTypeEnum.get(initialValue);
+		if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'");
+		return result;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String convertMultipleAggregationTypeEnumToString(EDataType eDataType, Object instanceValue) {
+		return instanceValue == null ? null : instanceValue.toString();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public TrendIconEnum createTrendIconEnumFromString(EDataType eDataType, String initialValue) {
+		TrendIconEnum result = TrendIconEnum.get(initialValue);
+		if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'");
+		return result;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String convertTrendIconEnumToString(EDataType eDataType, Object instanceValue) {
+		return instanceValue == null ? null : instanceValue.toString();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public RenderingEnum createRenderingEnumFromString(EDataType eDataType, String initialValue) {
+		RenderingEnum result = RenderingEnum.get(initialValue);
+		if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'");
+		return result;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String convertRenderingEnumToString(EDataType eDataType, Object instanceValue) {
+		return instanceValue == null ? null : instanceValue.toString();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public InternalEObject createInternalEObjectFromString(EDataType eDataType, String initialValue) {
+		return (InternalEObject)super.createFromString(eDataType, initialValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String convertInternalEObjectToString(EDataType eDataType, Object instanceValue) {
+		return super.convertToString(eDataType, instanceValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public ReportDSLPackage getReportDSLPackage() {
+		return (ReportDSLPackage)getEPackage();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @deprecated
+	 * @generated
+	 */
+	@Deprecated
+	public static ReportDSLPackage getPackage() {
+		return ReportDSLPackage.eINSTANCE;
+	}
+
+} //ReportDSLFactoryImpl
diff --git a/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/impl/ReportDSLPackageImpl.java b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/impl/ReportDSLPackageImpl.java
new file mode 100644
index 0000000..16b17ba
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/impl/ReportDSLPackageImpl.java
@@ -0,0 +1,4324 @@
+/**
+ * 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:  
+ *  		Christophe Loetz  (Loetz GmbH&Co.KG) - Initial implementation 
+ *  
+ */
+package org.eclipse.osbp.xtext.reportdsl.impl;
+
+import org.eclipse.emf.ecore.EAttribute;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EDataType;
+import org.eclipse.emf.ecore.EEnum;
+import org.eclipse.emf.ecore.EOperation;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.EReference;
+import org.eclipse.emf.ecore.EcorePackage;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.EPackageImpl;
+
+import org.eclipse.osbp.dsl.semantic.common.types.OSBPTypesPackage;
+
+import org.eclipse.osbp.xtext.action.ActionDSLPackage;
+
+import org.eclipse.osbp.xtext.datamartdsl.DatamartDSLPackage;
+
+import org.eclipse.osbp.xtext.reportdsl.AutoText;
+import org.eclipse.osbp.xtext.reportdsl.AutoTextEnum;
+import org.eclipse.osbp.xtext.reportdsl.BaseStyle;
+import org.eclipse.osbp.xtext.reportdsl.BinaryAggregationTypeEnum;
+import org.eclipse.osbp.xtext.reportdsl.BorderStyle;
+import org.eclipse.osbp.xtext.reportdsl.BorderTypeEnum;
+import org.eclipse.osbp.xtext.reportdsl.BuildInFontFamily;
+import org.eclipse.osbp.xtext.reportdsl.BuildInFontFamilyEnum;
+import org.eclipse.osbp.xtext.reportdsl.Color;
+import org.eclipse.osbp.xtext.reportdsl.Colors;
+import org.eclipse.osbp.xtext.reportdsl.CurrencyFormat;
+import org.eclipse.osbp.xtext.reportdsl.CurrencyFormatCategoryEnum;
+import org.eclipse.osbp.xtext.reportdsl.CustomFontFamily;
+import org.eclipse.osbp.xtext.reportdsl.DatamartTable;
+import org.eclipse.osbp.xtext.reportdsl.DatamartTableDetail;
+import org.eclipse.osbp.xtext.reportdsl.DatamartTableGroup;
+import org.eclipse.osbp.xtext.reportdsl.DatamartTableGroupFooter;
+import org.eclipse.osbp.xtext.reportdsl.DatamartTableGroupHeader;
+import org.eclipse.osbp.xtext.reportdsl.DatamartTableProperty;
+import org.eclipse.osbp.xtext.reportdsl.DateFormat;
+import org.eclipse.osbp.xtext.reportdsl.DateFormatCategoryEnum;
+import org.eclipse.osbp.xtext.reportdsl.DateTimeFormat;
+import org.eclipse.osbp.xtext.reportdsl.DateTimeFormatCategoryEnum;
+import org.eclipse.osbp.xtext.reportdsl.Element;
+import org.eclipse.osbp.xtext.reportdsl.Font;
+import org.eclipse.osbp.xtext.reportdsl.FontFamily;
+import org.eclipse.osbp.xtext.reportdsl.FontStyleEnum;
+import org.eclipse.osbp.xtext.reportdsl.Fonts;
+import org.eclipse.osbp.xtext.reportdsl.Grid;
+import org.eclipse.osbp.xtext.reportdsl.GridCell;
+import org.eclipse.osbp.xtext.reportdsl.GridRow;
+import org.eclipse.osbp.xtext.reportdsl.Image;
+import org.eclipse.osbp.xtext.reportdsl.ImageSizeEnum;
+import org.eclipse.osbp.xtext.reportdsl.ImageSourceEnum;
+import org.eclipse.osbp.xtext.reportdsl.Label;
+import org.eclipse.osbp.xtext.reportdsl.Media;
+import org.eclipse.osbp.xtext.reportdsl.MediaStyle;
+import org.eclipse.osbp.xtext.reportdsl.Medias;
+import org.eclipse.osbp.xtext.reportdsl.MultipleAggregationTypeEnum;
+import org.eclipse.osbp.xtext.reportdsl.NumberFormat;
+import org.eclipse.osbp.xtext.reportdsl.NumberFormatCategoryEnum;
+import org.eclipse.osbp.xtext.reportdsl.OrientationEnum;
+import org.eclipse.osbp.xtext.reportdsl.PageDetail;
+import org.eclipse.osbp.xtext.reportdsl.PageFooter;
+import org.eclipse.osbp.xtext.reportdsl.PageHeader;
+import org.eclipse.osbp.xtext.reportdsl.PageSizeEnum;
+import org.eclipse.osbp.xtext.reportdsl.PageTemplate;
+import org.eclipse.osbp.xtext.reportdsl.PageTemplates;
+import org.eclipse.osbp.xtext.reportdsl.PureAggregationTypeEnum;
+import org.eclipse.osbp.xtext.reportdsl.RenderingEnum;
+import org.eclipse.osbp.xtext.reportdsl.Report;
+import org.eclipse.osbp.xtext.reportdsl.ReportBase;
+import org.eclipse.osbp.xtext.reportdsl.ReportDSLFactory;
+import org.eclipse.osbp.xtext.reportdsl.ReportDSLPackage;
+import org.eclipse.osbp.xtext.reportdsl.ReportDesign;
+import org.eclipse.osbp.xtext.reportdsl.ReportDesignFile;
+import org.eclipse.osbp.xtext.reportdsl.ReportDesignTemplate;
+import org.eclipse.osbp.xtext.reportdsl.ReportLazyResolver;
+import org.eclipse.osbp.xtext.reportdsl.ReportModel;
+import org.eclipse.osbp.xtext.reportdsl.ReportPackage;
+import org.eclipse.osbp.xtext.reportdsl.SomeFormat;
+import org.eclipse.osbp.xtext.reportdsl.SomeFormats;
+import org.eclipse.osbp.xtext.reportdsl.SomeGrid;
+import org.eclipse.osbp.xtext.reportdsl.Style;
+import org.eclipse.osbp.xtext.reportdsl.Styles;
+import org.eclipse.osbp.xtext.reportdsl.SubSubTitle;
+import org.eclipse.osbp.xtext.reportdsl.SubTitle;
+import org.eclipse.osbp.xtext.reportdsl.TableAggregation;
+import org.eclipse.osbp.xtext.reportdsl.TableBaseAggregation;
+import org.eclipse.osbp.xtext.reportdsl.TableBinaryAggregation;
+import org.eclipse.osbp.xtext.reportdsl.TableCellColor;
+import org.eclipse.osbp.xtext.reportdsl.TableDateDayInterval;
+import org.eclipse.osbp.xtext.reportdsl.TableDateDayLookup;
+import org.eclipse.osbp.xtext.reportdsl.TableFormatter;
+import org.eclipse.osbp.xtext.reportdsl.TableIcon;
+import org.eclipse.osbp.xtext.reportdsl.TableImage;
+import org.eclipse.osbp.xtext.reportdsl.TableInterval;
+import org.eclipse.osbp.xtext.reportdsl.TableLookup;
+import org.eclipse.osbp.xtext.reportdsl.TableMultipleAggregation;
+import org.eclipse.osbp.xtext.reportdsl.TableNumberInterval;
+import org.eclipse.osbp.xtext.reportdsl.TableNumberLookup;
+import org.eclipse.osbp.xtext.reportdsl.TableProperty;
+import org.eclipse.osbp.xtext.reportdsl.TablePureAggregation;
+import org.eclipse.osbp.xtext.reportdsl.TableRangeElement;
+import org.eclipse.osbp.xtext.reportdsl.TableStringLookup;
+import org.eclipse.osbp.xtext.reportdsl.TableTextColor;
+import org.eclipse.osbp.xtext.reportdsl.TableTooltip;
+import org.eclipse.osbp.xtext.reportdsl.TableTrend;
+import org.eclipse.osbp.xtext.reportdsl.TableUnaryAggregation;
+import org.eclipse.osbp.xtext.reportdsl.TableValueElement;
+import org.eclipse.osbp.xtext.reportdsl.Text;
+import org.eclipse.osbp.xtext.reportdsl.TextAlignEnum;
+import org.eclipse.osbp.xtext.reportdsl.TextElement;
+import org.eclipse.osbp.xtext.reportdsl.TimeFormat;
+import org.eclipse.osbp.xtext.reportdsl.TimeFormatCategoryEnum;
+import org.eclipse.osbp.xtext.reportdsl.Title;
+import org.eclipse.osbp.xtext.reportdsl.TrendIconEnum;
+import org.eclipse.osbp.xtext.reportdsl.UnaryAggregationTypeEnum;
+import org.eclipse.osbp.xtext.reportdsl.UnitEnum;
+import org.eclipse.osbp.xtext.reportdsl.UomoFormat;
+import org.eclipse.osbp.xtext.reportdsl.WithHeaderFooter;
+import org.eclipse.osbp.xtext.reportdsl.WithStyle;
+
+import org.eclipse.xtext.xtype.XtypePackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model <b>Package</b>.
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class ReportDSLPackageImpl extends EPackageImpl implements ReportDSLPackage {
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass reportModelEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass reportLazyResolverEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass reportBaseEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass reportPackageEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass pageTemplatesEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass someFormatsEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass colorsEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass fontsEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass mediasEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass stylesEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass pageTemplateEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass colorEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass fontEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass fontFamilyEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass buildInFontFamilyEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass customFontFamilyEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass mediaEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass borderStyleEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass baseStyleEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass mediaStyleEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass styleEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass someFormatEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass uomoFormatEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass numberFormatEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass currencyFormatEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass dateFormatEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass dateTimeFormatEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass timeFormatEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass reportEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass reportDesignEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass reportDesignFileEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass reportDesignTemplateEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass containerEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass pageHeaderEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass pageDetailEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass pageFooterEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass elementEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass withStyleEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass textElementEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass titleEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass subTitleEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass subSubTitleEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass labelEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass textEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass autoTextEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass imageEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass withHeaderFooterEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass datamartTableEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass datamartTableGroupEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass someGridEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass datamartTableGroupHeaderEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass datamartTableGroupFooterEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass datamartTableDetailEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass datamartTablePropertyEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass tableFormatterEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass tableImageEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass tableValueElementEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass tablePropertyEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass tableAggregationEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass tableBaseAggregationEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass tablePureAggregationEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass tableUnaryAggregationEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass tableMultipleAggregationEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass tableBinaryAggregationEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass tableIntervalEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass tableNumberIntervalEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass tableDateDayIntervalEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass tableLookupEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass tableNumberLookupEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass tableStringLookupEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass tableDateDayLookupEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass tableRangeElementEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass tableTextColorEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass tableCellColorEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass tableIconEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass tableTrendEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass tableTooltipEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass gridEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass gridRowEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass gridCellEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EEnum unitEnumEEnum = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EEnum pageSizeEnumEEnum = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EEnum orientationEnumEEnum = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EEnum fontStyleEnumEEnum = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EEnum buildInFontFamilyEnumEEnum = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EEnum borderTypeEnumEEnum = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EEnum textAlignEnumEEnum = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EEnum numberFormatCategoryEnumEEnum = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EEnum currencyFormatCategoryEnumEEnum = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EEnum dateFormatCategoryEnumEEnum = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EEnum dateTimeFormatCategoryEnumEEnum = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EEnum timeFormatCategoryEnumEEnum = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EEnum autoTextEnumEEnum = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EEnum imageSizeEnumEEnum = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EEnum imageSourceEnumEEnum = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EEnum pureAggregationTypeEnumEEnum = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EEnum unaryAggregationTypeEnumEEnum = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EEnum binaryAggregationTypeEnumEEnum = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EEnum multipleAggregationTypeEnumEEnum = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EEnum trendIconEnumEEnum = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EEnum renderingEnumEEnum = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EDataType internalEObjectEDataType = null;
+
+	/**
+	 * Creates an instance of the model <b>Package</b>, registered with
+	 * {@link org.eclipse.emf.ecore.EPackage.Registry EPackage.Registry} by the package
+	 * package URI value.
+	 * <p>Note: the correct way to create the package is via the static
+	 * factory method {@link #init init()}, which also performs
+	 * initialization of the package, or returns the registered package,
+	 * if one already exists.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.emf.ecore.EPackage.Registry
+	 * @see org.eclipse.osbp.xtext.reportdsl.ReportDSLPackage#eNS_URI
+	 * @see #init()
+	 * @generated
+	 */
+	private ReportDSLPackageImpl() {
+		super(eNS_URI, ReportDSLFactory.eINSTANCE);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private static boolean isInited = false;
+
+	/**
+	 * Creates, registers, and initializes the <b>Package</b> for this model, and for any others upon which it depends.
+	 * 
+	 * <p>This method is used to initialize {@link ReportDSLPackage#eINSTANCE} when that field is accessed.
+	 * Clients should not invoke it directly. Instead, they should simply access that field to obtain the package.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #eNS_URI
+	 * @see #createPackageContents()
+	 * @see #initializePackageContents()
+	 * @generated
+	 */
+	public static ReportDSLPackage init() {
+		if (isInited) return (ReportDSLPackage)EPackage.Registry.INSTANCE.getEPackage(ReportDSLPackage.eNS_URI);
+
+		// Obtain or create and register package
+		ReportDSLPackageImpl theReportDSLPackage = (ReportDSLPackageImpl)(EPackage.Registry.INSTANCE.get(eNS_URI) instanceof ReportDSLPackageImpl ? EPackage.Registry.INSTANCE.get(eNS_URI) : new ReportDSLPackageImpl());
+
+		isInited = true;
+
+		// Initialize simple dependencies
+		DatamartDSLPackage.eINSTANCE.eClass();
+		ActionDSLPackage.eINSTANCE.eClass();
+
+		// Create package meta-data objects
+		theReportDSLPackage.createPackageContents();
+
+		// Initialize created meta-data
+		theReportDSLPackage.initializePackageContents();
+
+		// Mark meta-data to indicate it can't be changed
+		theReportDSLPackage.freeze();
+
+  
+		// Update the registry and return the package
+		EPackage.Registry.INSTANCE.put(ReportDSLPackage.eNS_URI, theReportDSLPackage);
+		return theReportDSLPackage;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getReportModel() {
+		return reportModelEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getReportModel_Pckg() {
+		return (EReference)reportModelEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getReportLazyResolver() {
+		return reportLazyResolverEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EOperation getReportLazyResolver__EResolveProxy__InternalEObject() {
+		return reportLazyResolverEClass.getEOperations().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getReportBase() {
+		return reportBaseEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getReportBase_Name() {
+		return (EAttribute)reportBaseEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getReportPackage() {
+		return reportPackageEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getReportPackage_ImportSection() {
+		return (EReference)reportPackageEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getReportPackage_ExternalCssURI() {
+		return (EAttribute)reportPackageEClass.getEStructuralFeatures().get(1);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getReportPackage_ExternalCssURIBundle() {
+		return (EAttribute)reportPackageEClass.getEStructuralFeatures().get(2);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getReportPackage_Pagetemplates() {
+		return (EReference)reportPackageEClass.getEStructuralFeatures().get(3);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getReportPackage_Formatters() {
+		return (EReference)reportPackageEClass.getEStructuralFeatures().get(4);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getReportPackage_Colors() {
+		return (EReference)reportPackageEClass.getEStructuralFeatures().get(5);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getReportPackage_Fonts() {
+		return (EReference)reportPackageEClass.getEStructuralFeatures().get(6);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getReportPackage_Medias() {
+		return (EReference)reportPackageEClass.getEStructuralFeatures().get(7);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getReportPackage_Styles() {
+		return (EReference)reportPackageEClass.getEStructuralFeatures().get(8);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getReportPackage_Reports() {
+		return (EReference)reportPackageEClass.getEStructuralFeatures().get(9);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getPageTemplates() {
+		return pageTemplatesEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getPageTemplates_Pagetemplates() {
+		return (EReference)pageTemplatesEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getSomeFormats() {
+		return someFormatsEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getSomeFormats_Formatters() {
+		return (EReference)someFormatsEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getColors() {
+		return colorsEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getColors_Colors() {
+		return (EReference)colorsEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getFonts() {
+		return fontsEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getFonts_Fonts() {
+		return (EReference)fontsEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getMedias() {
+		return mediasEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getMedias_Medias() {
+		return (EReference)mediasEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getStyles() {
+		return stylesEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getStyles_Styles() {
+		return (EReference)stylesEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getPageTemplate() {
+		return pageTemplateEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getPageTemplate_Size() {
+		return (EAttribute)pageTemplateEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getPageTemplate_Orientation() {
+		return (EAttribute)pageTemplateEClass.getEStructuralFeatures().get(1);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getPageTemplate_TopMarginValue() {
+		return (EAttribute)pageTemplateEClass.getEStructuralFeatures().get(2);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getPageTemplate_TopMarginUnit() {
+		return (EAttribute)pageTemplateEClass.getEStructuralFeatures().get(3);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getPageTemplate_LeftMarginValue() {
+		return (EAttribute)pageTemplateEClass.getEStructuralFeatures().get(4);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getPageTemplate_LeftMarginUnit() {
+		return (EAttribute)pageTemplateEClass.getEStructuralFeatures().get(5);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getPageTemplate_BottomMarginValue() {
+		return (EAttribute)pageTemplateEClass.getEStructuralFeatures().get(6);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getPageTemplate_BottomMarginUnit() {
+		return (EAttribute)pageTemplateEClass.getEStructuralFeatures().get(7);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getPageTemplate_RightMarginValue() {
+		return (EAttribute)pageTemplateEClass.getEStructuralFeatures().get(8);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getPageTemplate_RightMarginUnit() {
+		return (EAttribute)pageTemplateEClass.getEStructuralFeatures().get(9);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getPageTemplate_Header() {
+		return (EReference)pageTemplateEClass.getEStructuralFeatures().get(10);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getPageTemplate_Footer() {
+		return (EReference)pageTemplateEClass.getEStructuralFeatures().get(11);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getColor() {
+		return colorEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getColor_Color() {
+		return (EAttribute)colorEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getColor_Basecolor() {
+		return (EReference)colorEClass.getEStructuralFeatures().get(1);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getColor_Darkensby() {
+		return (EAttribute)colorEClass.getEStructuralFeatures().get(2);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getColor_Lightensby() {
+		return (EAttribute)colorEClass.getEStructuralFeatures().get(3);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getColor_Transformsby() {
+		return (EAttribute)colorEClass.getEStructuralFeatures().get(4);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getColor_Targetcolor() {
+		return (EReference)colorEClass.getEStructuralFeatures().get(5);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getFont() {
+		return fontEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getFont_Extends() {
+		return (EReference)fontEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getFont_Family() {
+		return (EReference)fontEClass.getEStructuralFeatures().get(1);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getFont_Style() {
+		return (EAttribute)fontEClass.getEStructuralFeatures().get(2);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getFont_Bold() {
+		return (EAttribute)fontEClass.getEStructuralFeatures().get(3);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getFont_Sizevalue() {
+		return (EAttribute)fontEClass.getEStructuralFeatures().get(4);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getFont_Sizeunit() {
+		return (EAttribute)fontEClass.getEStructuralFeatures().get(5);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getFontFamily() {
+		return fontFamilyEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getBuildInFontFamily() {
+		return buildInFontFamilyEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getBuildInFontFamily_Custom() {
+		return (EAttribute)buildInFontFamilyEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getCustomFontFamily() {
+		return customFontFamilyEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getCustomFontFamily_Custom() {
+		return (EAttribute)customFontFamilyEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getMedia() {
+		return mediaEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getBorderStyle() {
+		return borderStyleEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getBorderStyle_Type() {
+		return (EAttribute)borderStyleEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getBorderStyle_Widthvalue() {
+		return (EAttribute)borderStyleEClass.getEStructuralFeatures().get(1);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getBorderStyle_Widthunit() {
+		return (EAttribute)borderStyleEClass.getEStructuralFeatures().get(2);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getBorderStyle_Color() {
+		return (EReference)borderStyleEClass.getEStructuralFeatures().get(3);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getBaseStyle() {
+		return baseStyleEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getBaseStyle_Format() {
+		return (EReference)baseStyleEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getBaseStyle_Font() {
+		return (EReference)baseStyleEClass.getEStructuralFeatures().get(1);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getBaseStyle_Backgroundcolor() {
+		return (EReference)baseStyleEClass.getEStructuralFeatures().get(2);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getBaseStyle_Backgroundcolor_alternate() {
+		return (EReference)baseStyleEClass.getEStructuralFeatures().get(3);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getBaseStyle_Textcolor() {
+		return (EReference)baseStyleEClass.getEStructuralFeatures().get(4);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getBaseStyle_Textalign() {
+		return (EAttribute)baseStyleEClass.getEStructuralFeatures().get(5);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getBaseStyle_BorderTop() {
+		return (EReference)baseStyleEClass.getEStructuralFeatures().get(6);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getBaseStyle_BorderBottom() {
+		return (EReference)baseStyleEClass.getEStructuralFeatures().get(7);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getBaseStyle_BorderLeft() {
+		return (EReference)baseStyleEClass.getEStructuralFeatures().get(8);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getBaseStyle_BorderRight() {
+		return (EReference)baseStyleEClass.getEStructuralFeatures().get(9);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getBaseStyle_PaddingTopValue() {
+		return (EAttribute)baseStyleEClass.getEStructuralFeatures().get(10);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getBaseStyle_PaddingTopUnit() {
+		return (EAttribute)baseStyleEClass.getEStructuralFeatures().get(11);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getBaseStyle_PaddingBottomValue() {
+		return (EAttribute)baseStyleEClass.getEStructuralFeatures().get(12);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getBaseStyle_PaddingBottomUnit() {
+		return (EAttribute)baseStyleEClass.getEStructuralFeatures().get(13);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getBaseStyle_PaddingLeftValue() {
+		return (EAttribute)baseStyleEClass.getEStructuralFeatures().get(14);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getBaseStyle_PaddingLeftUnit() {
+		return (EAttribute)baseStyleEClass.getEStructuralFeatures().get(15);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getBaseStyle_PaddingRightValue() {
+		return (EAttribute)baseStyleEClass.getEStructuralFeatures().get(16);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getBaseStyle_PaddingRightUnit() {
+		return (EAttribute)baseStyleEClass.getEStructuralFeatures().get(17);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getBaseStyle_MarginTopValue() {
+		return (EAttribute)baseStyleEClass.getEStructuralFeatures().get(18);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getBaseStyle_MarginTopUnit() {
+		return (EAttribute)baseStyleEClass.getEStructuralFeatures().get(19);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getBaseStyle_MarginLeftValue() {
+		return (EAttribute)baseStyleEClass.getEStructuralFeatures().get(20);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getBaseStyle_MarginLeftUnit() {
+		return (EAttribute)baseStyleEClass.getEStructuralFeatures().get(21);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getBaseStyle_MarginBottomValue() {
+		return (EAttribute)baseStyleEClass.getEStructuralFeatures().get(22);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getBaseStyle_MarginBottomUnit() {
+		return (EAttribute)baseStyleEClass.getEStructuralFeatures().get(23);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getBaseStyle_MarginRightValue() {
+		return (EAttribute)baseStyleEClass.getEStructuralFeatures().get(24);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getBaseStyle_MarginRightUnit() {
+		return (EAttribute)baseStyleEClass.getEStructuralFeatures().get(25);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getMediaStyle() {
+		return mediaStyleEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getMediaStyle_Media() {
+		return (EReference)mediaStyleEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getStyle() {
+		return styleEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getStyle_Extends() {
+		return (EReference)styleEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getStyle_Mediastyles() {
+		return (EReference)styleEClass.getEStructuralFeatures().get(1);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getSomeFormat() {
+		return someFormatEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getSomeFormat_Ui_pattern() {
+		return (EAttribute)someFormatEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getSomeFormat_Report_pattern() {
+		return (EAttribute)someFormatEClass.getEStructuralFeatures().get(1);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getSomeFormat_Textalign() {
+		return (EAttribute)someFormatEClass.getEStructuralFeatures().get(2);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getUomoFormat() {
+		return uomoFormatEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getNumberFormat() {
+		return numberFormatEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getNumberFormat_Report_category() {
+		return (EAttribute)numberFormatEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getCurrencyFormat() {
+		return currencyFormatEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getCurrencyFormat_Report_category() {
+		return (EAttribute)currencyFormatEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getDateFormat() {
+		return dateFormatEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getDateFormat_Report_category() {
+		return (EAttribute)dateFormatEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getDateTimeFormat() {
+		return dateTimeFormatEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getDateTimeFormat_Report_category() {
+		return (EAttribute)dateTimeFormatEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getTimeFormat() {
+		return timeFormatEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getTimeFormat_Report_category() {
+		return (EAttribute)timeFormatEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getReport() {
+		return reportEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getReport_Description() {
+		return (EAttribute)reportEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getReport_DescriptionValue() {
+		return (EAttribute)reportEClass.getEStructuralFeatures().get(1);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getReport_DatamartRef() {
+		return (EReference)reportEClass.getEStructuralFeatures().get(2);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getReport_Rendering() {
+		return (EAttribute)reportEClass.getEStructuralFeatures().get(3);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getReport_ExternalCssURI() {
+		return (EAttribute)reportEClass.getEStructuralFeatures().get(4);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getReport_ExternalCssURIBundle() {
+		return (EAttribute)reportEClass.getEStructuralFeatures().get(5);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getReport_PageTemplate() {
+		return (EReference)reportEClass.getEStructuralFeatures().get(6);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getReport_Media() {
+		return (EReference)reportEClass.getEStructuralFeatures().get(7);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getReport_Toolbar() {
+		return (EReference)reportEClass.getEStructuralFeatures().get(8);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getReport_Design() {
+		return (EReference)reportEClass.getEStructuralFeatures().get(9);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getReportDesign() {
+		return reportDesignEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getReportDesignFile() {
+		return reportDesignFileEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getReportDesignFile_Name() {
+		return (EAttribute)reportDesignFileEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getReportDesignTemplate() {
+		return reportDesignTemplateEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getReportDesignTemplate_Description() {
+		return (EAttribute)reportDesignTemplateEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getReportDesignTemplate_Header() {
+		return (EReference)reportDesignTemplateEClass.getEStructuralFeatures().get(1);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getReportDesignTemplate_Detail() {
+		return (EReference)reportDesignTemplateEClass.getEStructuralFeatures().get(2);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getReportDesignTemplate_Footer() {
+		return (EReference)reportDesignTemplateEClass.getEStructuralFeatures().get(3);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getContainer() {
+		return containerEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getContainer_Elements() {
+		return (EReference)containerEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getPageHeader() {
+		return pageHeaderEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getPageHeader_ShowOnFirst() {
+		return (EAttribute)pageHeaderEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getPageHeader_HeightValue() {
+		return (EAttribute)pageHeaderEClass.getEStructuralFeatures().get(1);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getPageHeader_HeightUnit() {
+		return (EAttribute)pageHeaderEClass.getEStructuralFeatures().get(2);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getPageDetail() {
+		return pageDetailEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getPageFooter() {
+		return pageFooterEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getPageFooter_ShowOnLast() {
+		return (EAttribute)pageFooterEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getPageFooter_HeightValue() {
+		return (EAttribute)pageFooterEClass.getEStructuralFeatures().get(1);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getPageFooter_HeightUnit() {
+		return (EAttribute)pageFooterEClass.getEStructuralFeatures().get(2);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getElement() {
+		return elementEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getWithStyle() {
+		return withStyleEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getWithStyle_Style() {
+		return (EReference)withStyleEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getTextElement() {
+		return textElementEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getTextElement_Text() {
+		return (EAttribute)textElementEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getTitle() {
+		return titleEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getSubTitle() {
+		return subTitleEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getSubSubTitle() {
+		return subSubTitleEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getLabel() {
+		return labelEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getText() {
+		return textEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getAutoText() {
+		return autoTextEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getAutoText_Type() {
+		return (EAttribute)autoTextEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getImage() {
+		return imageEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getImage_Size() {
+		return (EAttribute)imageEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getImage_Scale() {
+		return (EAttribute)imageEClass.getEStructuralFeatures().get(1);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getImage_SourceType() {
+		return (EAttribute)imageEClass.getEStructuralFeatures().get(2);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getImage_Filename() {
+		return (EAttribute)imageEClass.getEStructuralFeatures().get(3);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getWithHeaderFooter() {
+		return withHeaderFooterEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getWithHeaderFooter_Detailheader() {
+		return (EAttribute)withHeaderFooterEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getWithHeaderFooter_Headerstyle() {
+		return (EReference)withHeaderFooterEClass.getEStructuralFeatures().get(1);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getWithHeaderFooter_Detailfooter() {
+		return (EAttribute)withHeaderFooterEClass.getEStructuralFeatures().get(2);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getWithHeaderFooter_Footerstyle() {
+		return (EReference)withHeaderFooterEClass.getEStructuralFeatures().get(3);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getDatamartTable() {
+		return datamartTableEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getDatamartTable_Groups() {
+		return (EReference)datamartTableEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getDatamartTable_Detail() {
+		return (EReference)datamartTableEClass.getEStructuralFeatures().get(1);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getDatamartTableGroup() {
+		return datamartTableGroupEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getDatamartTableGroup_GroupingRef() {
+		return (EReference)datamartTableGroupEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getDatamartTableGroup_Header() {
+		return (EReference)datamartTableGroupEClass.getEStructuralFeatures().get(1);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getDatamartTableGroup_Footer() {
+		return (EReference)datamartTableGroupEClass.getEStructuralFeatures().get(2);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getSomeGrid() {
+		return someGridEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getSomeGrid_Rows() {
+		return (EReference)someGridEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getDatamartTableGroupHeader() {
+		return datamartTableGroupHeaderEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getDatamartTableGroupFooter() {
+		return datamartTableGroupFooterEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getDatamartTableDetail() {
+		return datamartTableDetailEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getDatamartTableDetail_ColumnFormatters() {
+		return (EReference)datamartTableDetailEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getDatamartTableProperty() {
+		return datamartTablePropertyEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getDatamartTableProperty_Column() {
+		return (EReference)datamartTablePropertyEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getDatamartTableProperty_Intervals() {
+		return (EReference)datamartTablePropertyEClass.getEStructuralFeatures().get(1);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getDatamartTableProperty_HideLabelInterval() {
+		return (EAttribute)datamartTablePropertyEClass.getEStructuralFeatures().get(2);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getDatamartTableProperty_Lookups() {
+		return (EReference)datamartTablePropertyEClass.getEStructuralFeatures().get(3);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getDatamartTableProperty_HideLabelLookup() {
+		return (EAttribute)datamartTablePropertyEClass.getEStructuralFeatures().get(4);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getDatamartTableProperty_HasImage() {
+		return (EAttribute)datamartTablePropertyEClass.getEStructuralFeatures().get(5);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getDatamartTableProperty_Image() {
+		return (EReference)datamartTablePropertyEClass.getEStructuralFeatures().get(6);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getTableFormatter() {
+		return tableFormatterEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getTableFormatter_Format() {
+		return (EAttribute)tableFormatterEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getTableImage() {
+		return tableImageEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getTableImage_ImagePathPattern() {
+		return (EAttribute)tableImageEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getTableImage_HideImageLabel() {
+		return (EAttribute)tableImageEClass.getEStructuralFeatures().get(1);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getTableImage_HasParameter() {
+		return (EAttribute)tableImageEClass.getEStructuralFeatures().get(2);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getTableImage_Resize() {
+		return (EAttribute)tableImageEClass.getEStructuralFeatures().get(3);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getTableImage_ResizeString() {
+		return (EAttribute)tableImageEClass.getEStructuralFeatures().get(4);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getTableImage_ImagePathParameter() {
+		return (EReference)tableImageEClass.getEStructuralFeatures().get(5);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getTableValueElement() {
+		return tableValueElementEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getTableProperty() {
+		return tablePropertyEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getTableProperty_ValueRef() {
+		return (EReference)tablePropertyEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getTableAggregation() {
+		return tableAggregationEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getTableAggregation_Text() {
+		return (EAttribute)tableAggregationEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getTableAggregation_Aggregation() {
+		return (EReference)tableAggregationEClass.getEStructuralFeatures().get(1);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getTableAggregation_OnGroup() {
+		return (EReference)tableAggregationEClass.getEStructuralFeatures().get(2);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getTableBaseAggregation() {
+		return tableBaseAggregationEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getTableBaseAggregation_ValueRefs() {
+		return (EReference)tableBaseAggregationEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getTablePureAggregation() {
+		return tablePureAggregationEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getTablePureAggregation_Aggregation() {
+		return (EAttribute)tablePureAggregationEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getTableUnaryAggregation() {
+		return tableUnaryAggregationEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getTableUnaryAggregation_Aggregation() {
+		return (EAttribute)tableUnaryAggregationEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getTableMultipleAggregation() {
+		return tableMultipleAggregationEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getTableMultipleAggregation_Aggregation() {
+		return (EAttribute)tableMultipleAggregationEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getTableBinaryAggregation() {
+		return tableBinaryAggregationEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getTableBinaryAggregation_Aggregation() {
+		return (EAttribute)tableBinaryAggregationEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getTableInterval() {
+		return tableIntervalEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getTableNumberInterval() {
+		return tableNumberIntervalEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getTableNumberInterval_NumberIntervalValue() {
+		return (EAttribute)tableNumberIntervalEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getTableNumberInterval_NumberRange() {
+		return (EReference)tableNumberIntervalEClass.getEStructuralFeatures().get(1);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getTableDateDayInterval() {
+		return tableDateDayIntervalEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getTableDateDayInterval_DateIntervalValue() {
+		return (EAttribute)tableDateDayIntervalEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getTableDateDayInterval_DateRange() {
+		return (EReference)tableDateDayIntervalEClass.getEStructuralFeatures().get(1);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getTableLookup() {
+		return tableLookupEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getTableNumberLookup() {
+		return tableNumberLookupEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getTableNumberLookup_LookupValue() {
+		return (EAttribute)tableNumberLookupEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getTableNumberLookup_Discrete() {
+		return (EReference)tableNumberLookupEClass.getEStructuralFeatures().get(1);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getTableStringLookup() {
+		return tableStringLookupEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getTableStringLookup_LookupValue() {
+		return (EAttribute)tableStringLookupEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getTableStringLookup_Discrete() {
+		return (EReference)tableStringLookupEClass.getEStructuralFeatures().get(1);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getTableDateDayLookup() {
+		return tableDateDayLookupEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getTableDateDayLookup_LookupValue() {
+		return (EAttribute)tableDateDayLookupEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getTableDateDayLookup_Discrete() {
+		return (EReference)tableDateDayLookupEClass.getEStructuralFeatures().get(1);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getTableRangeElement() {
+		return tableRangeElementEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getTableTextColor() {
+		return tableTextColorEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getTableTextColor_Color() {
+		return (EReference)tableTextColorEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getTableCellColor() {
+		return tableCellColorEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getTableCellColor_Color() {
+		return (EReference)tableCellColorEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getTableIcon() {
+		return tableIconEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getTableIcon_Icon() {
+		return (EAttribute)tableIconEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getTableTrend() {
+		return tableTrendEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getTableTrend_Icon() {
+		return (EAttribute)tableTrendEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getTableTooltip() {
+		return tableTooltipEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getTableTooltip_Tooltip() {
+		return (EAttribute)tableTooltipEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getGrid() {
+		return gridEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getGridRow() {
+		return gridRowEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getGridRow_Cells() {
+		return (EReference)gridRowEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getGridCell() {
+		return gridCellEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getGridCell_Columnspan() {
+		return (EAttribute)gridCellEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EEnum getUnitEnum() {
+		return unitEnumEEnum;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EEnum getPageSizeEnum() {
+		return pageSizeEnumEEnum;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EEnum getOrientationEnum() {
+		return orientationEnumEEnum;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EEnum getFontStyleEnum() {
+		return fontStyleEnumEEnum;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EEnum getBuildInFontFamilyEnum() {
+		return buildInFontFamilyEnumEEnum;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EEnum getBorderTypeEnum() {
+		return borderTypeEnumEEnum;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EEnum getTextAlignEnum() {
+		return textAlignEnumEEnum;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EEnum getNumberFormatCategoryEnum() {
+		return numberFormatCategoryEnumEEnum;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EEnum getCurrencyFormatCategoryEnum() {
+		return currencyFormatCategoryEnumEEnum;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EEnum getDateFormatCategoryEnum() {
+		return dateFormatCategoryEnumEEnum;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EEnum getDateTimeFormatCategoryEnum() {
+		return dateTimeFormatCategoryEnumEEnum;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EEnum getTimeFormatCategoryEnum() {
+		return timeFormatCategoryEnumEEnum;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EEnum getAutoTextEnum() {
+		return autoTextEnumEEnum;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EEnum getImageSizeEnum() {
+		return imageSizeEnumEEnum;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EEnum getImageSourceEnum() {
+		return imageSourceEnumEEnum;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EEnum getPureAggregationTypeEnum() {
+		return pureAggregationTypeEnumEEnum;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EEnum getUnaryAggregationTypeEnum() {
+		return unaryAggregationTypeEnumEEnum;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EEnum getBinaryAggregationTypeEnum() {
+		return binaryAggregationTypeEnumEEnum;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EEnum getMultipleAggregationTypeEnum() {
+		return multipleAggregationTypeEnumEEnum;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EEnum getTrendIconEnum() {
+		return trendIconEnumEEnum;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EEnum getRenderingEnum() {
+		return renderingEnumEEnum;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EDataType getInternalEObject() {
+		return internalEObjectEDataType;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public ReportDSLFactory getReportDSLFactory() {
+		return (ReportDSLFactory)getEFactoryInstance();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private boolean isCreated = false;
+
+	/**
+	 * Creates the meta-model objects for the package.  This method is
+	 * guarded to have no affect on any invocation but its first.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void createPackageContents() {
+		if (isCreated) return;
+		isCreated = true;
+
+		// Create classes and their features
+		reportModelEClass = createEClass(REPORT_MODEL);
+		createEReference(reportModelEClass, REPORT_MODEL__PCKG);
+
+		reportLazyResolverEClass = createEClass(REPORT_LAZY_RESOLVER);
+		createEOperation(reportLazyResolverEClass, REPORT_LAZY_RESOLVER___ERESOLVE_PROXY__INTERNALEOBJECT);
+
+		reportBaseEClass = createEClass(REPORT_BASE);
+		createEAttribute(reportBaseEClass, REPORT_BASE__NAME);
+
+		reportPackageEClass = createEClass(REPORT_PACKAGE);
+		createEReference(reportPackageEClass, REPORT_PACKAGE__IMPORT_SECTION);
+		createEAttribute(reportPackageEClass, REPORT_PACKAGE__EXTERNAL_CSS_URI);
+		createEAttribute(reportPackageEClass, REPORT_PACKAGE__EXTERNAL_CSS_URI_BUNDLE);
+		createEReference(reportPackageEClass, REPORT_PACKAGE__PAGETEMPLATES);
+		createEReference(reportPackageEClass, REPORT_PACKAGE__FORMATTERS);
+		createEReference(reportPackageEClass, REPORT_PACKAGE__COLORS);
+		createEReference(reportPackageEClass, REPORT_PACKAGE__FONTS);
+		createEReference(reportPackageEClass, REPORT_PACKAGE__MEDIAS);
+		createEReference(reportPackageEClass, REPORT_PACKAGE__STYLES);
+		createEReference(reportPackageEClass, REPORT_PACKAGE__REPORTS);
+
+		pageTemplatesEClass = createEClass(PAGE_TEMPLATES);
+		createEReference(pageTemplatesEClass, PAGE_TEMPLATES__PAGETEMPLATES);
+
+		someFormatsEClass = createEClass(SOME_FORMATS);
+		createEReference(someFormatsEClass, SOME_FORMATS__FORMATTERS);
+
+		colorsEClass = createEClass(COLORS);
+		createEReference(colorsEClass, COLORS__COLORS);
+
+		fontsEClass = createEClass(FONTS);
+		createEReference(fontsEClass, FONTS__FONTS);
+
+		mediasEClass = createEClass(MEDIAS);
+		createEReference(mediasEClass, MEDIAS__MEDIAS);
+
+		stylesEClass = createEClass(STYLES);
+		createEReference(stylesEClass, STYLES__STYLES);
+
+		pageTemplateEClass = createEClass(PAGE_TEMPLATE);
+		createEAttribute(pageTemplateEClass, PAGE_TEMPLATE__SIZE);
+		createEAttribute(pageTemplateEClass, PAGE_TEMPLATE__ORIENTATION);
+		createEAttribute(pageTemplateEClass, PAGE_TEMPLATE__TOP_MARGIN_VALUE);
+		createEAttribute(pageTemplateEClass, PAGE_TEMPLATE__TOP_MARGIN_UNIT);
+		createEAttribute(pageTemplateEClass, PAGE_TEMPLATE__LEFT_MARGIN_VALUE);
+		createEAttribute(pageTemplateEClass, PAGE_TEMPLATE__LEFT_MARGIN_UNIT);
+		createEAttribute(pageTemplateEClass, PAGE_TEMPLATE__BOTTOM_MARGIN_VALUE);
+		createEAttribute(pageTemplateEClass, PAGE_TEMPLATE__BOTTOM_MARGIN_UNIT);
+		createEAttribute(pageTemplateEClass, PAGE_TEMPLATE__RIGHT_MARGIN_VALUE);
+		createEAttribute(pageTemplateEClass, PAGE_TEMPLATE__RIGHT_MARGIN_UNIT);
+		createEReference(pageTemplateEClass, PAGE_TEMPLATE__HEADER);
+		createEReference(pageTemplateEClass, PAGE_TEMPLATE__FOOTER);
+
+		colorEClass = createEClass(COLOR);
+		createEAttribute(colorEClass, COLOR__COLOR);
+		createEReference(colorEClass, COLOR__BASECOLOR);
+		createEAttribute(colorEClass, COLOR__DARKENSBY);
+		createEAttribute(colorEClass, COLOR__LIGHTENSBY);
+		createEAttribute(colorEClass, COLOR__TRANSFORMSBY);
+		createEReference(colorEClass, COLOR__TARGETCOLOR);
+
+		fontEClass = createEClass(FONT);
+		createEReference(fontEClass, FONT__EXTENDS);
+		createEReference(fontEClass, FONT__FAMILY);
+		createEAttribute(fontEClass, FONT__STYLE);
+		createEAttribute(fontEClass, FONT__BOLD);
+		createEAttribute(fontEClass, FONT__SIZEVALUE);
+		createEAttribute(fontEClass, FONT__SIZEUNIT);
+
+		fontFamilyEClass = createEClass(FONT_FAMILY);
+
+		buildInFontFamilyEClass = createEClass(BUILD_IN_FONT_FAMILY);
+		createEAttribute(buildInFontFamilyEClass, BUILD_IN_FONT_FAMILY__CUSTOM);
+
+		customFontFamilyEClass = createEClass(CUSTOM_FONT_FAMILY);
+		createEAttribute(customFontFamilyEClass, CUSTOM_FONT_FAMILY__CUSTOM);
+
+		mediaEClass = createEClass(MEDIA);
+
+		borderStyleEClass = createEClass(BORDER_STYLE);
+		createEAttribute(borderStyleEClass, BORDER_STYLE__TYPE);
+		createEAttribute(borderStyleEClass, BORDER_STYLE__WIDTHVALUE);
+		createEAttribute(borderStyleEClass, BORDER_STYLE__WIDTHUNIT);
+		createEReference(borderStyleEClass, BORDER_STYLE__COLOR);
+
+		baseStyleEClass = createEClass(BASE_STYLE);
+		createEReference(baseStyleEClass, BASE_STYLE__FORMAT);
+		createEReference(baseStyleEClass, BASE_STYLE__FONT);
+		createEReference(baseStyleEClass, BASE_STYLE__BACKGROUNDCOLOR);
+		createEReference(baseStyleEClass, BASE_STYLE__BACKGROUNDCOLOR_ALTERNATE);
+		createEReference(baseStyleEClass, BASE_STYLE__TEXTCOLOR);
+		createEAttribute(baseStyleEClass, BASE_STYLE__TEXTALIGN);
+		createEReference(baseStyleEClass, BASE_STYLE__BORDER_TOP);
+		createEReference(baseStyleEClass, BASE_STYLE__BORDER_BOTTOM);
+		createEReference(baseStyleEClass, BASE_STYLE__BORDER_LEFT);
+		createEReference(baseStyleEClass, BASE_STYLE__BORDER_RIGHT);
+		createEAttribute(baseStyleEClass, BASE_STYLE__PADDING_TOP_VALUE);
+		createEAttribute(baseStyleEClass, BASE_STYLE__PADDING_TOP_UNIT);
+		createEAttribute(baseStyleEClass, BASE_STYLE__PADDING_BOTTOM_VALUE);
+		createEAttribute(baseStyleEClass, BASE_STYLE__PADDING_BOTTOM_UNIT);
+		createEAttribute(baseStyleEClass, BASE_STYLE__PADDING_LEFT_VALUE);
+		createEAttribute(baseStyleEClass, BASE_STYLE__PADDING_LEFT_UNIT);
+		createEAttribute(baseStyleEClass, BASE_STYLE__PADDING_RIGHT_VALUE);
+		createEAttribute(baseStyleEClass, BASE_STYLE__PADDING_RIGHT_UNIT);
+		createEAttribute(baseStyleEClass, BASE_STYLE__MARGIN_TOP_VALUE);
+		createEAttribute(baseStyleEClass, BASE_STYLE__MARGIN_TOP_UNIT);
+		createEAttribute(baseStyleEClass, BASE_STYLE__MARGIN_LEFT_VALUE);
+		createEAttribute(baseStyleEClass, BASE_STYLE__MARGIN_LEFT_UNIT);
+		createEAttribute(baseStyleEClass, BASE_STYLE__MARGIN_BOTTOM_VALUE);
+		createEAttribute(baseStyleEClass, BASE_STYLE__MARGIN_BOTTOM_UNIT);
+		createEAttribute(baseStyleEClass, BASE_STYLE__MARGIN_RIGHT_VALUE);
+		createEAttribute(baseStyleEClass, BASE_STYLE__MARGIN_RIGHT_UNIT);
+
+		mediaStyleEClass = createEClass(MEDIA_STYLE);
+		createEReference(mediaStyleEClass, MEDIA_STYLE__MEDIA);
+
+		styleEClass = createEClass(STYLE);
+		createEReference(styleEClass, STYLE__EXTENDS);
+		createEReference(styleEClass, STYLE__MEDIASTYLES);
+
+		someFormatEClass = createEClass(SOME_FORMAT);
+		createEAttribute(someFormatEClass, SOME_FORMAT__UI_PATTERN);
+		createEAttribute(someFormatEClass, SOME_FORMAT__REPORT_PATTERN);
+		createEAttribute(someFormatEClass, SOME_FORMAT__TEXTALIGN);
+
+		uomoFormatEClass = createEClass(UOMO_FORMAT);
+
+		numberFormatEClass = createEClass(NUMBER_FORMAT);
+		createEAttribute(numberFormatEClass, NUMBER_FORMAT__REPORT_CATEGORY);
+
+		currencyFormatEClass = createEClass(CURRENCY_FORMAT);
+		createEAttribute(currencyFormatEClass, CURRENCY_FORMAT__REPORT_CATEGORY);
+
+		dateFormatEClass = createEClass(DATE_FORMAT);
+		createEAttribute(dateFormatEClass, DATE_FORMAT__REPORT_CATEGORY);
+
+		dateTimeFormatEClass = createEClass(DATE_TIME_FORMAT);
+		createEAttribute(dateTimeFormatEClass, DATE_TIME_FORMAT__REPORT_CATEGORY);
+
+		timeFormatEClass = createEClass(TIME_FORMAT);
+		createEAttribute(timeFormatEClass, TIME_FORMAT__REPORT_CATEGORY);
+
+		reportEClass = createEClass(REPORT);
+		createEAttribute(reportEClass, REPORT__DESCRIPTION);
+		createEAttribute(reportEClass, REPORT__DESCRIPTION_VALUE);
+		createEReference(reportEClass, REPORT__DATAMART_REF);
+		createEAttribute(reportEClass, REPORT__RENDERING);
+		createEAttribute(reportEClass, REPORT__EXTERNAL_CSS_URI);
+		createEAttribute(reportEClass, REPORT__EXTERNAL_CSS_URI_BUNDLE);
+		createEReference(reportEClass, REPORT__PAGE_TEMPLATE);
+		createEReference(reportEClass, REPORT__MEDIA);
+		createEReference(reportEClass, REPORT__TOOLBAR);
+		createEReference(reportEClass, REPORT__DESIGN);
+
+		reportDesignEClass = createEClass(REPORT_DESIGN);
+
+		reportDesignFileEClass = createEClass(REPORT_DESIGN_FILE);
+		createEAttribute(reportDesignFileEClass, REPORT_DESIGN_FILE__NAME);
+
+		reportDesignTemplateEClass = createEClass(REPORT_DESIGN_TEMPLATE);
+		createEAttribute(reportDesignTemplateEClass, REPORT_DESIGN_TEMPLATE__DESCRIPTION);
+		createEReference(reportDesignTemplateEClass, REPORT_DESIGN_TEMPLATE__HEADER);
+		createEReference(reportDesignTemplateEClass, REPORT_DESIGN_TEMPLATE__DETAIL);
+		createEReference(reportDesignTemplateEClass, REPORT_DESIGN_TEMPLATE__FOOTER);
+
+		containerEClass = createEClass(CONTAINER);
+		createEReference(containerEClass, CONTAINER__ELEMENTS);
+
+		pageHeaderEClass = createEClass(PAGE_HEADER);
+		createEAttribute(pageHeaderEClass, PAGE_HEADER__SHOW_ON_FIRST);
+		createEAttribute(pageHeaderEClass, PAGE_HEADER__HEIGHT_VALUE);
+		createEAttribute(pageHeaderEClass, PAGE_HEADER__HEIGHT_UNIT);
+
+		pageDetailEClass = createEClass(PAGE_DETAIL);
+
+		pageFooterEClass = createEClass(PAGE_FOOTER);
+		createEAttribute(pageFooterEClass, PAGE_FOOTER__SHOW_ON_LAST);
+		createEAttribute(pageFooterEClass, PAGE_FOOTER__HEIGHT_VALUE);
+		createEAttribute(pageFooterEClass, PAGE_FOOTER__HEIGHT_UNIT);
+
+		elementEClass = createEClass(ELEMENT);
+
+		withStyleEClass = createEClass(WITH_STYLE);
+		createEReference(withStyleEClass, WITH_STYLE__STYLE);
+
+		textElementEClass = createEClass(TEXT_ELEMENT);
+		createEAttribute(textElementEClass, TEXT_ELEMENT__TEXT);
+
+		titleEClass = createEClass(TITLE);
+
+		subTitleEClass = createEClass(SUB_TITLE);
+
+		subSubTitleEClass = createEClass(SUB_SUB_TITLE);
+
+		labelEClass = createEClass(LABEL);
+
+		textEClass = createEClass(TEXT);
+
+		autoTextEClass = createEClass(AUTO_TEXT);
+		createEAttribute(autoTextEClass, AUTO_TEXT__TYPE);
+
+		imageEClass = createEClass(IMAGE);
+		createEAttribute(imageEClass, IMAGE__SIZE);
+		createEAttribute(imageEClass, IMAGE__SCALE);
+		createEAttribute(imageEClass, IMAGE__SOURCE_TYPE);
+		createEAttribute(imageEClass, IMAGE__FILENAME);
+
+		withHeaderFooterEClass = createEClass(WITH_HEADER_FOOTER);
+		createEAttribute(withHeaderFooterEClass, WITH_HEADER_FOOTER__DETAILHEADER);
+		createEReference(withHeaderFooterEClass, WITH_HEADER_FOOTER__HEADERSTYLE);
+		createEAttribute(withHeaderFooterEClass, WITH_HEADER_FOOTER__DETAILFOOTER);
+		createEReference(withHeaderFooterEClass, WITH_HEADER_FOOTER__FOOTERSTYLE);
+
+		datamartTableEClass = createEClass(DATAMART_TABLE);
+		createEReference(datamartTableEClass, DATAMART_TABLE__GROUPS);
+		createEReference(datamartTableEClass, DATAMART_TABLE__DETAIL);
+
+		datamartTableGroupEClass = createEClass(DATAMART_TABLE_GROUP);
+		createEReference(datamartTableGroupEClass, DATAMART_TABLE_GROUP__GROUPING_REF);
+		createEReference(datamartTableGroupEClass, DATAMART_TABLE_GROUP__HEADER);
+		createEReference(datamartTableGroupEClass, DATAMART_TABLE_GROUP__FOOTER);
+
+		someGridEClass = createEClass(SOME_GRID);
+		createEReference(someGridEClass, SOME_GRID__ROWS);
+
+		datamartTableGroupHeaderEClass = createEClass(DATAMART_TABLE_GROUP_HEADER);
+
+		datamartTableGroupFooterEClass = createEClass(DATAMART_TABLE_GROUP_FOOTER);
+
+		datamartTableDetailEClass = createEClass(DATAMART_TABLE_DETAIL);
+		createEReference(datamartTableDetailEClass, DATAMART_TABLE_DETAIL__COLUMN_FORMATTERS);
+
+		datamartTablePropertyEClass = createEClass(DATAMART_TABLE_PROPERTY);
+		createEReference(datamartTablePropertyEClass, DATAMART_TABLE_PROPERTY__COLUMN);
+		createEReference(datamartTablePropertyEClass, DATAMART_TABLE_PROPERTY__INTERVALS);
+		createEAttribute(datamartTablePropertyEClass, DATAMART_TABLE_PROPERTY__HIDE_LABEL_INTERVAL);
+		createEReference(datamartTablePropertyEClass, DATAMART_TABLE_PROPERTY__LOOKUPS);
+		createEAttribute(datamartTablePropertyEClass, DATAMART_TABLE_PROPERTY__HIDE_LABEL_LOOKUP);
+		createEAttribute(datamartTablePropertyEClass, DATAMART_TABLE_PROPERTY__HAS_IMAGE);
+		createEReference(datamartTablePropertyEClass, DATAMART_TABLE_PROPERTY__IMAGE);
+
+		tableFormatterEClass = createEClass(TABLE_FORMATTER);
+		createEAttribute(tableFormatterEClass, TABLE_FORMATTER__FORMAT);
+
+		tableImageEClass = createEClass(TABLE_IMAGE);
+		createEAttribute(tableImageEClass, TABLE_IMAGE__IMAGE_PATH_PATTERN);
+		createEAttribute(tableImageEClass, TABLE_IMAGE__HIDE_IMAGE_LABEL);
+		createEAttribute(tableImageEClass, TABLE_IMAGE__HAS_PARAMETER);
+		createEAttribute(tableImageEClass, TABLE_IMAGE__RESIZE);
+		createEAttribute(tableImageEClass, TABLE_IMAGE__RESIZE_STRING);
+		createEReference(tableImageEClass, TABLE_IMAGE__IMAGE_PATH_PARAMETER);
+
+		tableValueElementEClass = createEClass(TABLE_VALUE_ELEMENT);
+
+		tablePropertyEClass = createEClass(TABLE_PROPERTY);
+		createEReference(tablePropertyEClass, TABLE_PROPERTY__VALUE_REF);
+
+		tableAggregationEClass = createEClass(TABLE_AGGREGATION);
+		createEAttribute(tableAggregationEClass, TABLE_AGGREGATION__TEXT);
+		createEReference(tableAggregationEClass, TABLE_AGGREGATION__AGGREGATION);
+		createEReference(tableAggregationEClass, TABLE_AGGREGATION__ON_GROUP);
+
+		tableBaseAggregationEClass = createEClass(TABLE_BASE_AGGREGATION);
+		createEReference(tableBaseAggregationEClass, TABLE_BASE_AGGREGATION__VALUE_REFS);
+
+		tablePureAggregationEClass = createEClass(TABLE_PURE_AGGREGATION);
+		createEAttribute(tablePureAggregationEClass, TABLE_PURE_AGGREGATION__AGGREGATION);
+
+		tableUnaryAggregationEClass = createEClass(TABLE_UNARY_AGGREGATION);
+		createEAttribute(tableUnaryAggregationEClass, TABLE_UNARY_AGGREGATION__AGGREGATION);
+
+		tableMultipleAggregationEClass = createEClass(TABLE_MULTIPLE_AGGREGATION);
+		createEAttribute(tableMultipleAggregationEClass, TABLE_MULTIPLE_AGGREGATION__AGGREGATION);
+
+		tableBinaryAggregationEClass = createEClass(TABLE_BINARY_AGGREGATION);
+		createEAttribute(tableBinaryAggregationEClass, TABLE_BINARY_AGGREGATION__AGGREGATION);
+
+		tableIntervalEClass = createEClass(TABLE_INTERVAL);
+
+		tableNumberIntervalEClass = createEClass(TABLE_NUMBER_INTERVAL);
+		createEAttribute(tableNumberIntervalEClass, TABLE_NUMBER_INTERVAL__NUMBER_INTERVAL_VALUE);
+		createEReference(tableNumberIntervalEClass, TABLE_NUMBER_INTERVAL__NUMBER_RANGE);
+
+		tableDateDayIntervalEClass = createEClass(TABLE_DATE_DAY_INTERVAL);
+		createEAttribute(tableDateDayIntervalEClass, TABLE_DATE_DAY_INTERVAL__DATE_INTERVAL_VALUE);
+		createEReference(tableDateDayIntervalEClass, TABLE_DATE_DAY_INTERVAL__DATE_RANGE);
+
+		tableLookupEClass = createEClass(TABLE_LOOKUP);
+
+		tableNumberLookupEClass = createEClass(TABLE_NUMBER_LOOKUP);
+		createEAttribute(tableNumberLookupEClass, TABLE_NUMBER_LOOKUP__LOOKUP_VALUE);
+		createEReference(tableNumberLookupEClass, TABLE_NUMBER_LOOKUP__DISCRETE);
+
+		tableStringLookupEClass = createEClass(TABLE_STRING_LOOKUP);
+		createEAttribute(tableStringLookupEClass, TABLE_STRING_LOOKUP__LOOKUP_VALUE);
+		createEReference(tableStringLookupEClass, TABLE_STRING_LOOKUP__DISCRETE);
+
+		tableDateDayLookupEClass = createEClass(TABLE_DATE_DAY_LOOKUP);
+		createEAttribute(tableDateDayLookupEClass, TABLE_DATE_DAY_LOOKUP__LOOKUP_VALUE);
+		createEReference(tableDateDayLookupEClass, TABLE_DATE_DAY_LOOKUP__DISCRETE);
+
+		tableRangeElementEClass = createEClass(TABLE_RANGE_ELEMENT);
+
+		tableTextColorEClass = createEClass(TABLE_TEXT_COLOR);
+		createEReference(tableTextColorEClass, TABLE_TEXT_COLOR__COLOR);
+
+		tableCellColorEClass = createEClass(TABLE_CELL_COLOR);
+		createEReference(tableCellColorEClass, TABLE_CELL_COLOR__COLOR);
+
+		tableIconEClass = createEClass(TABLE_ICON);
+		createEAttribute(tableIconEClass, TABLE_ICON__ICON);
+
+		tableTrendEClass = createEClass(TABLE_TREND);
+		createEAttribute(tableTrendEClass, TABLE_TREND__ICON);
+
+		tableTooltipEClass = createEClass(TABLE_TOOLTIP);
+		createEAttribute(tableTooltipEClass, TABLE_TOOLTIP__TOOLTIP);
+
+		gridEClass = createEClass(GRID);
+
+		gridRowEClass = createEClass(GRID_ROW);
+		createEReference(gridRowEClass, GRID_ROW__CELLS);
+
+		gridCellEClass = createEClass(GRID_CELL);
+		createEAttribute(gridCellEClass, GRID_CELL__COLUMNSPAN);
+
+		// Create enums
+		unitEnumEEnum = createEEnum(UNIT_ENUM);
+		pageSizeEnumEEnum = createEEnum(PAGE_SIZE_ENUM);
+		orientationEnumEEnum = createEEnum(ORIENTATION_ENUM);
+		fontStyleEnumEEnum = createEEnum(FONT_STYLE_ENUM);
+		buildInFontFamilyEnumEEnum = createEEnum(BUILD_IN_FONT_FAMILY_ENUM);
+		borderTypeEnumEEnum = createEEnum(BORDER_TYPE_ENUM);
+		textAlignEnumEEnum = createEEnum(TEXT_ALIGN_ENUM);
+		numberFormatCategoryEnumEEnum = createEEnum(NUMBER_FORMAT_CATEGORY_ENUM);
+		currencyFormatCategoryEnumEEnum = createEEnum(CURRENCY_FORMAT_CATEGORY_ENUM);
+		dateFormatCategoryEnumEEnum = createEEnum(DATE_FORMAT_CATEGORY_ENUM);
+		dateTimeFormatCategoryEnumEEnum = createEEnum(DATE_TIME_FORMAT_CATEGORY_ENUM);
+		timeFormatCategoryEnumEEnum = createEEnum(TIME_FORMAT_CATEGORY_ENUM);
+		autoTextEnumEEnum = createEEnum(AUTO_TEXT_ENUM);
+		imageSizeEnumEEnum = createEEnum(IMAGE_SIZE_ENUM);
+		imageSourceEnumEEnum = createEEnum(IMAGE_SOURCE_ENUM);
+		pureAggregationTypeEnumEEnum = createEEnum(PURE_AGGREGATION_TYPE_ENUM);
+		unaryAggregationTypeEnumEEnum = createEEnum(UNARY_AGGREGATION_TYPE_ENUM);
+		binaryAggregationTypeEnumEEnum = createEEnum(BINARY_AGGREGATION_TYPE_ENUM);
+		multipleAggregationTypeEnumEEnum = createEEnum(MULTIPLE_AGGREGATION_TYPE_ENUM);
+		trendIconEnumEEnum = createEEnum(TREND_ICON_ENUM);
+		renderingEnumEEnum = createEEnum(RENDERING_ENUM);
+
+		// Create data types
+		internalEObjectEDataType = createEDataType(INTERNAL_EOBJECT);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private boolean isInitialized = false;
+
+	/**
+	 * Complete the initialization of the package and its meta-model.  This
+	 * method is guarded to have no affect on any invocation but its first.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void initializePackageContents() {
+		if (isInitialized) return;
+		isInitialized = true;
+
+		// Initialize package
+		setName(eNAME);
+		setNsPrefix(eNS_PREFIX);
+		setNsURI(eNS_URI);
+
+		// Obtain other dependent packages
+		EcorePackage theEcorePackage = (EcorePackage)EPackage.Registry.INSTANCE.getEPackage(EcorePackage.eNS_URI);
+		OSBPTypesPackage theOSBPTypesPackage = (OSBPTypesPackage)EPackage.Registry.INSTANCE.getEPackage(OSBPTypesPackage.eNS_URI);
+		XtypePackage theXtypePackage = (XtypePackage)EPackage.Registry.INSTANCE.getEPackage(XtypePackage.eNS_URI);
+		DatamartDSLPackage theDatamartDSLPackage = (DatamartDSLPackage)EPackage.Registry.INSTANCE.getEPackage(DatamartDSLPackage.eNS_URI);
+		ActionDSLPackage theActionDSLPackage = (ActionDSLPackage)EPackage.Registry.INSTANCE.getEPackage(ActionDSLPackage.eNS_URI);
+
+		// Create type parameters
+
+		// Set bounds for type parameters
+
+		// Add supertypes to classes
+		reportBaseEClass.getESuperTypes().add(this.getReportLazyResolver());
+		reportPackageEClass.getESuperTypes().add(theOSBPTypesPackage.getLPackage());
+		pageTemplatesEClass.getESuperTypes().add(this.getReportLazyResolver());
+		someFormatsEClass.getESuperTypes().add(this.getReportLazyResolver());
+		colorsEClass.getESuperTypes().add(this.getReportLazyResolver());
+		fontsEClass.getESuperTypes().add(this.getReportLazyResolver());
+		mediasEClass.getESuperTypes().add(this.getReportLazyResolver());
+		stylesEClass.getESuperTypes().add(this.getReportLazyResolver());
+		pageTemplateEClass.getESuperTypes().add(this.getReportBase());
+		colorEClass.getESuperTypes().add(this.getReportBase());
+		fontEClass.getESuperTypes().add(this.getReportBase());
+		fontFamilyEClass.getESuperTypes().add(this.getReportLazyResolver());
+		buildInFontFamilyEClass.getESuperTypes().add(this.getFontFamily());
+		customFontFamilyEClass.getESuperTypes().add(this.getFontFamily());
+		mediaEClass.getESuperTypes().add(this.getReportBase());
+		borderStyleEClass.getESuperTypes().add(this.getReportLazyResolver());
+		baseStyleEClass.getESuperTypes().add(this.getReportLazyResolver());
+		mediaStyleEClass.getESuperTypes().add(this.getBaseStyle());
+		styleEClass.getESuperTypes().add(this.getReportBase());
+		styleEClass.getESuperTypes().add(this.getBaseStyle());
+		someFormatEClass.getESuperTypes().add(this.getReportBase());
+		uomoFormatEClass.getESuperTypes().add(this.getSomeFormat());
+		numberFormatEClass.getESuperTypes().add(this.getSomeFormat());
+		currencyFormatEClass.getESuperTypes().add(this.getSomeFormat());
+		dateFormatEClass.getESuperTypes().add(this.getSomeFormat());
+		dateTimeFormatEClass.getESuperTypes().add(this.getSomeFormat());
+		timeFormatEClass.getESuperTypes().add(this.getSomeFormat());
+		reportEClass.getESuperTypes().add(this.getReportBase());
+		reportDesignEClass.getESuperTypes().add(this.getReportLazyResolver());
+		reportDesignFileEClass.getESuperTypes().add(this.getReportDesign());
+		reportDesignTemplateEClass.getESuperTypes().add(this.getReportDesign());
+		containerEClass.getESuperTypes().add(this.getReportLazyResolver());
+		pageHeaderEClass.getESuperTypes().add(this.getContainer());
+		pageDetailEClass.getESuperTypes().add(this.getContainer());
+		pageFooterEClass.getESuperTypes().add(this.getContainer());
+		elementEClass.getESuperTypes().add(this.getReportLazyResolver());
+		withStyleEClass.getESuperTypes().add(this.getReportLazyResolver());
+		textElementEClass.getESuperTypes().add(this.getElement());
+		textElementEClass.getESuperTypes().add(this.getWithStyle());
+		titleEClass.getESuperTypes().add(this.getTextElement());
+		subTitleEClass.getESuperTypes().add(this.getTextElement());
+		subSubTitleEClass.getESuperTypes().add(this.getTextElement());
+		labelEClass.getESuperTypes().add(this.getTextElement());
+		textEClass.getESuperTypes().add(this.getTextElement());
+		autoTextEClass.getESuperTypes().add(this.getElement());
+		autoTextEClass.getESuperTypes().add(this.getWithStyle());
+		imageEClass.getESuperTypes().add(this.getElement());
+		imageEClass.getESuperTypes().add(this.getWithStyle());
+		withHeaderFooterEClass.getESuperTypes().add(this.getReportLazyResolver());
+		datamartTableEClass.getESuperTypes().add(this.getReportBase());
+		datamartTableEClass.getESuperTypes().add(this.getElement());
+		datamartTableEClass.getESuperTypes().add(this.getWithStyle());
+		datamartTableEClass.getESuperTypes().add(this.getWithHeaderFooter());
+		datamartTableGroupEClass.getESuperTypes().add(this.getReportBase());
+		datamartTableGroupEClass.getESuperTypes().add(this.getWithHeaderFooter());
+		someGridEClass.getESuperTypes().add(this.getReportLazyResolver());
+		datamartTableGroupHeaderEClass.getESuperTypes().add(this.getElement());
+		datamartTableGroupHeaderEClass.getESuperTypes().add(this.getSomeGrid());
+		datamartTableGroupHeaderEClass.getESuperTypes().add(this.getWithStyle());
+		datamartTableGroupFooterEClass.getESuperTypes().add(this.getElement());
+		datamartTableGroupFooterEClass.getESuperTypes().add(this.getSomeGrid());
+		datamartTableGroupFooterEClass.getESuperTypes().add(this.getWithStyle());
+		datamartTableDetailEClass.getESuperTypes().add(this.getWithStyle());
+		datamartTablePropertyEClass.getESuperTypes().add(this.getElement());
+		datamartTablePropertyEClass.getESuperTypes().add(this.getWithStyle());
+		tableImageEClass.getESuperTypes().add(this.getReportLazyResolver());
+		tableValueElementEClass.getESuperTypes().add(this.getReportLazyResolver());
+		tablePropertyEClass.getESuperTypes().add(this.getTableValueElement());
+		tableAggregationEClass.getESuperTypes().add(this.getTableValueElement());
+		tableBaseAggregationEClass.getESuperTypes().add(this.getReportLazyResolver());
+		tablePureAggregationEClass.getESuperTypes().add(this.getTableBaseAggregation());
+		tableUnaryAggregationEClass.getESuperTypes().add(this.getTableBaseAggregation());
+		tableMultipleAggregationEClass.getESuperTypes().add(this.getTableBaseAggregation());
+		tableBinaryAggregationEClass.getESuperTypes().add(this.getTableBaseAggregation());
+		tableIntervalEClass.getESuperTypes().add(this.getReportLazyResolver());
+		tableNumberIntervalEClass.getESuperTypes().add(this.getTableInterval());
+		tableDateDayIntervalEClass.getESuperTypes().add(this.getTableInterval());
+		tableLookupEClass.getESuperTypes().add(this.getReportLazyResolver());
+		tableNumberLookupEClass.getESuperTypes().add(this.getTableLookup());
+		tableStringLookupEClass.getESuperTypes().add(this.getTableLookup());
+		tableDateDayLookupEClass.getESuperTypes().add(this.getTableLookup());
+		tableRangeElementEClass.getESuperTypes().add(this.getReportLazyResolver());
+		tableTextColorEClass.getESuperTypes().add(this.getTableRangeElement());
+		tableCellColorEClass.getESuperTypes().add(this.getTableRangeElement());
+		tableIconEClass.getESuperTypes().add(this.getTableRangeElement());
+		tableTrendEClass.getESuperTypes().add(this.getTableRangeElement());
+		tableTooltipEClass.getESuperTypes().add(this.getTableRangeElement());
+		gridEClass.getESuperTypes().add(this.getReportBase());
+		gridEClass.getESuperTypes().add(this.getElement());
+		gridEClass.getESuperTypes().add(this.getSomeGrid());
+		gridRowEClass.getESuperTypes().add(this.getReportBase());
+		gridRowEClass.getESuperTypes().add(this.getWithStyle());
+		gridCellEClass.getESuperTypes().add(this.getReportBase());
+		gridCellEClass.getESuperTypes().add(this.getContainer());
+
+		// Initialize classes, features, and operations; add parameters
+		initEClass(reportModelEClass, ReportModel.class, "ReportModel", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEReference(getReportModel_Pckg(), this.getReportPackage(), null, "pckg", null, 0, -1, ReportModel.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+		initEClass(reportLazyResolverEClass, ReportLazyResolver.class, "ReportLazyResolver", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+
+		EOperation op = initEOperation(getReportLazyResolver__EResolveProxy__InternalEObject(), theEcorePackage.getEObject(), "eResolveProxy", 0, 1, !IS_UNIQUE, IS_ORDERED);
+		addEParameter(op, this.getInternalEObject(), "proxy", 0, 1, !IS_UNIQUE, IS_ORDERED);
+
+		initEClass(reportBaseEClass, ReportBase.class, "ReportBase", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEAttribute(getReportBase_Name(), theEcorePackage.getEString(), "name", null, 0, 1, ReportBase.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+		initEClass(reportPackageEClass, ReportPackage.class, "ReportPackage", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEReference(getReportPackage_ImportSection(), theXtypePackage.getXImportSection(), null, "importSection", null, 0, 1, ReportPackage.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getReportPackage_ExternalCssURI(), theEcorePackage.getEString(), "externalCssURI", null, 0, 1, ReportPackage.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getReportPackage_ExternalCssURIBundle(), theEcorePackage.getEString(), "externalCssURIBundle", null, 0, 1, ReportPackage.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEReference(getReportPackage_Pagetemplates(), this.getPageTemplates(), null, "pagetemplates", null, 0, 1, ReportPackage.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEReference(getReportPackage_Formatters(), this.getSomeFormats(), null, "formatters", null, 0, 1, ReportPackage.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEReference(getReportPackage_Colors(), this.getColors(), null, "colors", null, 0, 1, ReportPackage.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEReference(getReportPackage_Fonts(), this.getFonts(), null, "fonts", null, 0, 1, ReportPackage.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEReference(getReportPackage_Medias(), this.getMedias(), null, "medias", null, 0, 1, ReportPackage.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEReference(getReportPackage_Styles(), this.getStyles(), null, "styles", null, 0, 1, ReportPackage.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEReference(getReportPackage_Reports(), this.getReport(), null, "reports", null, 0, -1, ReportPackage.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+		initEClass(pageTemplatesEClass, PageTemplates.class, "PageTemplates", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEReference(getPageTemplates_Pagetemplates(), this.getPageTemplate(), null, "pagetemplates", null, 0, -1, PageTemplates.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+		initEClass(someFormatsEClass, SomeFormats.class, "SomeFormats", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEReference(getSomeFormats_Formatters(), this.getSomeFormat(), null, "formatters", null, 0, -1, SomeFormats.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+		initEClass(colorsEClass, Colors.class, "Colors", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEReference(getColors_Colors(), this.getColor(), null, "colors", null, 0, -1, Colors.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+		initEClass(fontsEClass, Fonts.class, "Fonts", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEReference(getFonts_Fonts(), this.getFont(), null, "fonts", null, 0, -1, Fonts.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+		initEClass(mediasEClass, Medias.class, "Medias", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEReference(getMedias_Medias(), this.getMedia(), null, "medias", null, 0, -1, Medias.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+		initEClass(stylesEClass, Styles.class, "Styles", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEReference(getStyles_Styles(), this.getStyle(), null, "styles", null, 0, -1, Styles.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+		initEClass(pageTemplateEClass, PageTemplate.class, "PageTemplate", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEAttribute(getPageTemplate_Size(), this.getPageSizeEnum(), "size", null, 0, 1, PageTemplate.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getPageTemplate_Orientation(), this.getOrientationEnum(), "orientation", null, 0, 1, PageTemplate.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getPageTemplate_TopMarginValue(), theEcorePackage.getEDouble(), "topMarginValue", null, 0, 1, PageTemplate.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getPageTemplate_TopMarginUnit(), this.getUnitEnum(), "topMarginUnit", null, 0, 1, PageTemplate.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getPageTemplate_LeftMarginValue(), theEcorePackage.getEDouble(), "leftMarginValue", null, 0, 1, PageTemplate.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getPageTemplate_LeftMarginUnit(), this.getUnitEnum(), "leftMarginUnit", null, 0, 1, PageTemplate.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getPageTemplate_BottomMarginValue(), theEcorePackage.getEDouble(), "bottomMarginValue", null, 0, 1, PageTemplate.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getPageTemplate_BottomMarginUnit(), this.getUnitEnum(), "bottomMarginUnit", null, 0, 1, PageTemplate.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getPageTemplate_RightMarginValue(), theEcorePackage.getEDouble(), "rightMarginValue", null, 0, 1, PageTemplate.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getPageTemplate_RightMarginUnit(), this.getUnitEnum(), "rightMarginUnit", null, 0, 1, PageTemplate.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEReference(getPageTemplate_Header(), this.getPageHeader(), null, "header", null, 0, 1, PageTemplate.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEReference(getPageTemplate_Footer(), this.getPageFooter(), null, "footer", null, 0, 1, PageTemplate.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+		initEClass(colorEClass, Color.class, "Color", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEAttribute(getColor_Color(), theEcorePackage.getEString(), "color", null, 0, 1, Color.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEReference(getColor_Basecolor(), this.getColor(), null, "basecolor", null, 0, 1, Color.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getColor_Darkensby(), theEcorePackage.getEIntegerObject(), "darkensby", null, 0, 1, Color.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getColor_Lightensby(), theEcorePackage.getEIntegerObject(), "lightensby", null, 0, 1, Color.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getColor_Transformsby(), theEcorePackage.getEIntegerObject(), "transformsby", null, 0, 1, Color.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEReference(getColor_Targetcolor(), this.getColor(), null, "targetcolor", null, 0, 1, Color.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+		initEClass(fontEClass, Font.class, "Font", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEReference(getFont_Extends(), this.getFont(), null, "extends", null, 0, 1, Font.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEReference(getFont_Family(), this.getFontFamily(), null, "family", null, 0, 1, Font.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getFont_Style(), this.getFontStyleEnum(), "style", null, 0, 1, Font.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getFont_Bold(), theEcorePackage.getEBoolean(), "bold", null, 0, 1, Font.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getFont_Sizevalue(), theEcorePackage.getEDouble(), "sizevalue", null, 0, 1, Font.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getFont_Sizeunit(), this.getUnitEnum(), "sizeunit", null, 0, 1, Font.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+		initEClass(fontFamilyEClass, FontFamily.class, "FontFamily", IS_ABSTRACT, IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+
+		initEClass(buildInFontFamilyEClass, BuildInFontFamily.class, "BuildInFontFamily", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEAttribute(getBuildInFontFamily_Custom(), this.getBuildInFontFamilyEnum(), "custom", null, 0, 1, BuildInFontFamily.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+		initEClass(customFontFamilyEClass, CustomFontFamily.class, "CustomFontFamily", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEAttribute(getCustomFontFamily_Custom(), theEcorePackage.getEString(), "custom", null, 0, 1, CustomFontFamily.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+		initEClass(mediaEClass, Media.class, "Media", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+
+		initEClass(borderStyleEClass, BorderStyle.class, "BorderStyle", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEAttribute(getBorderStyle_Type(), this.getBorderTypeEnum(), "type", null, 0, 1, BorderStyle.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getBorderStyle_Widthvalue(), theEcorePackage.getEDouble(), "widthvalue", null, 0, 1, BorderStyle.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getBorderStyle_Widthunit(), this.getUnitEnum(), "widthunit", null, 0, 1, BorderStyle.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEReference(getBorderStyle_Color(), this.getColor(), null, "color", null, 0, 1, BorderStyle.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+		initEClass(baseStyleEClass, BaseStyle.class, "BaseStyle", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEReference(getBaseStyle_Format(), this.getSomeFormat(), null, "format", null, 0, 1, BaseStyle.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEReference(getBaseStyle_Font(), this.getFont(), null, "font", null, 0, 1, BaseStyle.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEReference(getBaseStyle_Backgroundcolor(), this.getColor(), null, "backgroundcolor", null, 0, 1, BaseStyle.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEReference(getBaseStyle_Backgroundcolor_alternate(), this.getColor(), null, "backgroundcolor_alternate", null, 0, 1, BaseStyle.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEReference(getBaseStyle_Textcolor(), this.getColor(), null, "textcolor", null, 0, 1, BaseStyle.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getBaseStyle_Textalign(), this.getTextAlignEnum(), "textalign", null, 0, 1, BaseStyle.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEReference(getBaseStyle_BorderTop(), this.getBorderStyle(), null, "borderTop", null, 0, 1, BaseStyle.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEReference(getBaseStyle_BorderBottom(), this.getBorderStyle(), null, "borderBottom", null, 0, 1, BaseStyle.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEReference(getBaseStyle_BorderLeft(), this.getBorderStyle(), null, "borderLeft", null, 0, 1, BaseStyle.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEReference(getBaseStyle_BorderRight(), this.getBorderStyle(), null, "borderRight", null, 0, 1, BaseStyle.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getBaseStyle_PaddingTopValue(), theEcorePackage.getEDouble(), "paddingTopValue", null, 0, 1, BaseStyle.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getBaseStyle_PaddingTopUnit(), this.getUnitEnum(), "paddingTopUnit", null, 0, 1, BaseStyle.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getBaseStyle_PaddingBottomValue(), theEcorePackage.getEDouble(), "paddingBottomValue", null, 0, 1, BaseStyle.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getBaseStyle_PaddingBottomUnit(), this.getUnitEnum(), "paddingBottomUnit", null, 0, 1, BaseStyle.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getBaseStyle_PaddingLeftValue(), theEcorePackage.getEDouble(), "paddingLeftValue", null, 0, 1, BaseStyle.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getBaseStyle_PaddingLeftUnit(), this.getUnitEnum(), "paddingLeftUnit", null, 0, 1, BaseStyle.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getBaseStyle_PaddingRightValue(), theEcorePackage.getEDouble(), "paddingRightValue", null, 0, 1, BaseStyle.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getBaseStyle_PaddingRightUnit(), this.getUnitEnum(), "paddingRightUnit", null, 0, 1, BaseStyle.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getBaseStyle_MarginTopValue(), theEcorePackage.getEDouble(), "marginTopValue", null, 0, 1, BaseStyle.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getBaseStyle_MarginTopUnit(), this.getUnitEnum(), "marginTopUnit", null, 0, 1, BaseStyle.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getBaseStyle_MarginLeftValue(), theEcorePackage.getEDouble(), "marginLeftValue", null, 0, 1, BaseStyle.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getBaseStyle_MarginLeftUnit(), this.getUnitEnum(), "marginLeftUnit", null, 0, 1, BaseStyle.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getBaseStyle_MarginBottomValue(), theEcorePackage.getEDouble(), "marginBottomValue", null, 0, 1, BaseStyle.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getBaseStyle_MarginBottomUnit(), this.getUnitEnum(), "marginBottomUnit", null, 0, 1, BaseStyle.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getBaseStyle_MarginRightValue(), theEcorePackage.getEDouble(), "marginRightValue", null, 0, 1, BaseStyle.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getBaseStyle_MarginRightUnit(), this.getUnitEnum(), "marginRightUnit", null, 0, 1, BaseStyle.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+		initEClass(mediaStyleEClass, MediaStyle.class, "MediaStyle", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEReference(getMediaStyle_Media(), this.getMedia(), null, "media", null, 0, 1, MediaStyle.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+		initEClass(styleEClass, Style.class, "Style", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEReference(getStyle_Extends(), this.getStyle(), null, "extends", null, 0, 1, Style.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEReference(getStyle_Mediastyles(), this.getMediaStyle(), null, "mediastyles", null, 0, -1, Style.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+		initEClass(someFormatEClass, SomeFormat.class, "SomeFormat", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEAttribute(getSomeFormat_Ui_pattern(), theEcorePackage.getEString(), "ui_pattern", null, 0, 1, SomeFormat.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getSomeFormat_Report_pattern(), theEcorePackage.getEString(), "report_pattern", null, 0, 1, SomeFormat.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getSomeFormat_Textalign(), this.getTextAlignEnum(), "textalign", null, 0, 1, SomeFormat.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+		initEClass(uomoFormatEClass, UomoFormat.class, "UomoFormat", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+
+		initEClass(numberFormatEClass, NumberFormat.class, "NumberFormat", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEAttribute(getNumberFormat_Report_category(), this.getNumberFormatCategoryEnum(), "report_category", null, 0, 1, NumberFormat.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+		initEClass(currencyFormatEClass, CurrencyFormat.class, "CurrencyFormat", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEAttribute(getCurrencyFormat_Report_category(), this.getCurrencyFormatCategoryEnum(), "report_category", null, 0, 1, CurrencyFormat.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+		initEClass(dateFormatEClass, DateFormat.class, "DateFormat", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEAttribute(getDateFormat_Report_category(), this.getDateFormatCategoryEnum(), "report_category", null, 0, 1, DateFormat.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+		initEClass(dateTimeFormatEClass, DateTimeFormat.class, "DateTimeFormat", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEAttribute(getDateTimeFormat_Report_category(), this.getDateTimeFormatCategoryEnum(), "report_category", null, 0, 1, DateTimeFormat.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+		initEClass(timeFormatEClass, TimeFormat.class, "TimeFormat", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEAttribute(getTimeFormat_Report_category(), this.getTimeFormatCategoryEnum(), "report_category", null, 0, 1, TimeFormat.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+		initEClass(reportEClass, Report.class, "Report", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEAttribute(getReport_Description(), theEcorePackage.getEBoolean(), "description", null, 0, 1, Report.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getReport_DescriptionValue(), theEcorePackage.getEString(), "descriptionValue", null, 0, 1, Report.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEReference(getReport_DatamartRef(), theDatamartDSLPackage.getDatamartDefinition(), null, "datamartRef", null, 0, 1, Report.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getReport_Rendering(), this.getRenderingEnum(), "rendering", null, 0, 1, Report.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getReport_ExternalCssURI(), theEcorePackage.getEString(), "externalCssURI", null, 0, 1, Report.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getReport_ExternalCssURIBundle(), theEcorePackage.getEString(), "externalCssURIBundle", null, 0, 1, Report.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEReference(getReport_PageTemplate(), this.getPageTemplate(), null, "pageTemplate", null, 0, 1, Report.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEReference(getReport_Media(), this.getMedia(), null, "media", null, 0, 1, Report.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEReference(getReport_Toolbar(), theActionDSLPackage.getActionToolbar(), null, "toolbar", null, 0, 1, Report.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEReference(getReport_Design(), this.getReportDesign(), null, "design", null, 0, 1, Report.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+		initEClass(reportDesignEClass, ReportDesign.class, "ReportDesign", IS_ABSTRACT, IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+
+		initEClass(reportDesignFileEClass, ReportDesignFile.class, "ReportDesignFile", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEAttribute(getReportDesignFile_Name(), theEcorePackage.getEString(), "name", null, 0, 1, ReportDesignFile.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+		initEClass(reportDesignTemplateEClass, ReportDesignTemplate.class, "ReportDesignTemplate", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEAttribute(getReportDesignTemplate_Description(), theEcorePackage.getEString(), "description", null, 0, 1, ReportDesignTemplate.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEReference(getReportDesignTemplate_Header(), this.getPageHeader(), null, "header", null, 0, 1, ReportDesignTemplate.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEReference(getReportDesignTemplate_Detail(), this.getPageDetail(), null, "detail", null, 0, 1, ReportDesignTemplate.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEReference(getReportDesignTemplate_Footer(), this.getPageFooter(), null, "footer", null, 0, 1, ReportDesignTemplate.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+		initEClass(containerEClass, org.eclipse.osbp.xtext.reportdsl.Container.class, "Container", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEReference(getContainer_Elements(), this.getElement(), null, "elements", null, 0, -1, org.eclipse.osbp.xtext.reportdsl.Container.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+		initEClass(pageHeaderEClass, PageHeader.class, "PageHeader", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEAttribute(getPageHeader_ShowOnFirst(), theEcorePackage.getEBoolean(), "showOnFirst", null, 0, 1, PageHeader.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getPageHeader_HeightValue(), theEcorePackage.getEDouble(), "heightValue", null, 0, 1, PageHeader.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getPageHeader_HeightUnit(), this.getUnitEnum(), "heightUnit", null, 0, 1, PageHeader.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+		initEClass(pageDetailEClass, PageDetail.class, "PageDetail", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+
+		initEClass(pageFooterEClass, PageFooter.class, "PageFooter", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEAttribute(getPageFooter_ShowOnLast(), theEcorePackage.getEBoolean(), "showOnLast", null, 0, 1, PageFooter.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getPageFooter_HeightValue(), theEcorePackage.getEDouble(), "heightValue", null, 0, 1, PageFooter.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getPageFooter_HeightUnit(), this.getUnitEnum(), "heightUnit", null, 0, 1, PageFooter.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+		initEClass(elementEClass, Element.class, "Element", IS_ABSTRACT, IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+
+		initEClass(withStyleEClass, WithStyle.class, "WithStyle", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEReference(getWithStyle_Style(), this.getStyle(), null, "style", null, 0, 1, WithStyle.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+		initEClass(textElementEClass, TextElement.class, "TextElement", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEAttribute(getTextElement_Text(), theEcorePackage.getEString(), "text", null, 0, 1, TextElement.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+		initEClass(titleEClass, Title.class, "Title", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+
+		initEClass(subTitleEClass, SubTitle.class, "SubTitle", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+
+		initEClass(subSubTitleEClass, SubSubTitle.class, "SubSubTitle", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+
+		initEClass(labelEClass, Label.class, "Label", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+
+		initEClass(textEClass, Text.class, "Text", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+
+		initEClass(autoTextEClass, AutoText.class, "AutoText", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEAttribute(getAutoText_Type(), this.getAutoTextEnum(), "type", null, 0, 1, AutoText.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+		initEClass(imageEClass, Image.class, "Image", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEAttribute(getImage_Size(), this.getImageSizeEnum(), "size", null, 0, 1, Image.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getImage_Scale(), theEcorePackage.getEDouble(), "scale", null, 0, 1, Image.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getImage_SourceType(), this.getImageSourceEnum(), "sourceType", null, 0, 1, Image.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getImage_Filename(), theEcorePackage.getEString(), "filename", null, 0, 1, Image.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+		initEClass(withHeaderFooterEClass, WithHeaderFooter.class, "WithHeaderFooter", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEAttribute(getWithHeaderFooter_Detailheader(), theEcorePackage.getEBoolean(), "detailheader", null, 0, 1, WithHeaderFooter.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEReference(getWithHeaderFooter_Headerstyle(), this.getStyle(), null, "headerstyle", null, 0, 1, WithHeaderFooter.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getWithHeaderFooter_Detailfooter(), theEcorePackage.getEBoolean(), "detailfooter", null, 0, 1, WithHeaderFooter.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEReference(getWithHeaderFooter_Footerstyle(), this.getStyle(), null, "footerstyle", null, 0, 1, WithHeaderFooter.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+		initEClass(datamartTableEClass, DatamartTable.class, "DatamartTable", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEReference(getDatamartTable_Groups(), this.getDatamartTableGroup(), null, "groups", null, 0, -1, DatamartTable.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEReference(getDatamartTable_Detail(), this.getDatamartTableDetail(), null, "detail", null, 0, 1, DatamartTable.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+		initEClass(datamartTableGroupEClass, DatamartTableGroup.class, "DatamartTableGroup", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEReference(getDatamartTableGroup_GroupingRef(), theDatamartDSLPackage.getDatamartProperty(), null, "groupingRef", null, 0, 1, DatamartTableGroup.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEReference(getDatamartTableGroup_Header(), this.getDatamartTableGroupHeader(), null, "header", null, 0, 1, DatamartTableGroup.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEReference(getDatamartTableGroup_Footer(), this.getDatamartTableGroupFooter(), null, "footer", null, 0, 1, DatamartTableGroup.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+		initEClass(someGridEClass, SomeGrid.class, "SomeGrid", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEReference(getSomeGrid_Rows(), this.getGridRow(), null, "rows", null, 0, -1, SomeGrid.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+		initEClass(datamartTableGroupHeaderEClass, DatamartTableGroupHeader.class, "DatamartTableGroupHeader", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+
+		initEClass(datamartTableGroupFooterEClass, DatamartTableGroupFooter.class, "DatamartTableGroupFooter", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+
+		initEClass(datamartTableDetailEClass, DatamartTableDetail.class, "DatamartTableDetail", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEReference(getDatamartTableDetail_ColumnFormatters(), this.getDatamartTableProperty(), null, "columnFormatters", null, 0, -1, DatamartTableDetail.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+		initEClass(datamartTablePropertyEClass, DatamartTableProperty.class, "DatamartTableProperty", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEReference(getDatamartTableProperty_Column(), this.getTableValueElement(), null, "column", null, 0, 1, DatamartTableProperty.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEReference(getDatamartTableProperty_Intervals(), this.getTableInterval(), null, "intervals", null, 0, -1, DatamartTableProperty.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getDatamartTableProperty_HideLabelInterval(), theEcorePackage.getEBoolean(), "hideLabelInterval", null, 0, 1, DatamartTableProperty.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEReference(getDatamartTableProperty_Lookups(), this.getTableLookup(), null, "lookups", null, 0, -1, DatamartTableProperty.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getDatamartTableProperty_HideLabelLookup(), theEcorePackage.getEBoolean(), "hideLabelLookup", null, 0, 1, DatamartTableProperty.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getDatamartTableProperty_HasImage(), theEcorePackage.getEBoolean(), "hasImage", null, 0, 1, DatamartTableProperty.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEReference(getDatamartTableProperty_Image(), this.getTableImage(), null, "image", null, 0, 1, DatamartTableProperty.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+		initEClass(tableFormatterEClass, TableFormatter.class, "TableFormatter", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEAttribute(getTableFormatter_Format(), theEcorePackage.getEString(), "format", null, 0, 1, TableFormatter.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+		initEClass(tableImageEClass, TableImage.class, "TableImage", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEAttribute(getTableImage_ImagePathPattern(), theEcorePackage.getEString(), "imagePathPattern", null, 0, 1, TableImage.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getTableImage_HideImageLabel(), theEcorePackage.getEBoolean(), "hideImageLabel", null, 0, 1, TableImage.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getTableImage_HasParameter(), theEcorePackage.getEBoolean(), "hasParameter", null, 0, 1, TableImage.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getTableImage_Resize(), theEcorePackage.getEBoolean(), "resize", null, 0, 1, TableImage.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getTableImage_ResizeString(), theEcorePackage.getEString(), "resizeString", null, 0, 1, TableImage.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEReference(getTableImage_ImagePathParameter(), this.getTableValueElement(), null, "imagePathParameter", null, 0, 1, TableImage.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+		initEClass(tableValueElementEClass, TableValueElement.class, "TableValueElement", IS_ABSTRACT, IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+
+		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(tableAggregationEClass, TableAggregation.class, "TableAggregation", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEAttribute(getTableAggregation_Text(), theEcorePackage.getEString(), "text", null, 0, 1, TableAggregation.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEReference(getTableAggregation_Aggregation(), this.getTableBaseAggregation(), null, "aggregation", null, 0, 1, TableAggregation.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEReference(getTableAggregation_OnGroup(), this.getDatamartTableGroup(), null, "onGroup", null, 0, 1, TableAggregation.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+		initEClass(tableBaseAggregationEClass, TableBaseAggregation.class, "TableBaseAggregation", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEReference(getTableBaseAggregation_ValueRefs(), theDatamartDSLPackage.getDatamartProperty(), null, "valueRefs", null, 0, -1, TableBaseAggregation.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+		initEClass(tablePureAggregationEClass, TablePureAggregation.class, "TablePureAggregation", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEAttribute(getTablePureAggregation_Aggregation(), this.getPureAggregationTypeEnum(), "aggregation", null, 0, 1, TablePureAggregation.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+		initEClass(tableUnaryAggregationEClass, TableUnaryAggregation.class, "TableUnaryAggregation", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEAttribute(getTableUnaryAggregation_Aggregation(), this.getUnaryAggregationTypeEnum(), "aggregation", null, 0, 1, TableUnaryAggregation.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+		initEClass(tableMultipleAggregationEClass, TableMultipleAggregation.class, "TableMultipleAggregation", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEAttribute(getTableMultipleAggregation_Aggregation(), this.getMultipleAggregationTypeEnum(), "aggregation", null, 0, 1, TableMultipleAggregation.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+		initEClass(tableBinaryAggregationEClass, TableBinaryAggregation.class, "TableBinaryAggregation", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEAttribute(getTableBinaryAggregation_Aggregation(), this.getBinaryAggregationTypeEnum(), "aggregation", null, 0, 1, TableBinaryAggregation.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+		initEClass(tableIntervalEClass, TableInterval.class, "TableInterval", IS_ABSTRACT, IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+
+		initEClass(tableNumberIntervalEClass, TableNumberInterval.class, "TableNumberInterval", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		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(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);
+		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);
+
+		initEClass(tableNumberLookupEClass, TableNumberLookup.class, "TableNumberLookup", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		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(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);
+		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(tableRangeElementEClass, TableRangeElement.class, "TableRangeElement", IS_ABSTRACT, IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+
+		initEClass(tableTextColorEClass, TableTextColor.class, "TableTextColor", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEReference(getTableTextColor_Color(), this.getColor(), null, "color", null, 0, 1, TableTextColor.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+		initEClass(tableCellColorEClass, TableCellColor.class, "TableCellColor", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEReference(getTableCellColor_Color(), this.getColor(), null, "color", null, 0, 1, TableCellColor.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+		initEClass(tableIconEClass, TableIcon.class, "TableIcon", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEAttribute(getTableIcon_Icon(), theEcorePackage.getEString(), "icon", null, 0, 1, TableIcon.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+		initEClass(tableTrendEClass, TableTrend.class, "TableTrend", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEAttribute(getTableTrend_Icon(), this.getTrendIconEnum(), "icon", null, 0, 1, TableTrend.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+		initEClass(tableTooltipEClass, TableTooltip.class, "TableTooltip", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEAttribute(getTableTooltip_Tooltip(), theEcorePackage.getEString(), "tooltip", null, 0, 1, TableTooltip.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+		initEClass(gridEClass, Grid.class, "Grid", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+
+		initEClass(gridRowEClass, GridRow.class, "GridRow", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEReference(getGridRow_Cells(), this.getGridCell(), null, "cells", null, 0, -1, GridRow.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+		initEClass(gridCellEClass, GridCell.class, "GridCell", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEAttribute(getGridCell_Columnspan(), theEcorePackage.getEInt(), "columnspan", null, 0, 1, GridCell.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+		// Initialize enums and add enum literals
+		initEEnum(unitEnumEEnum, UnitEnum.class, "UnitEnum");
+		addEEnumLiteral(unitEnumEEnum, UnitEnum.NULL);
+		addEEnumLiteral(unitEnumEEnum, UnitEnum.MM);
+		addEEnumLiteral(unitEnumEEnum, UnitEnum.CM);
+		addEEnumLiteral(unitEnumEEnum, UnitEnum.PT);
+		addEEnumLiteral(unitEnumEEnum, UnitEnum.IN);
+		addEEnumLiteral(unitEnumEEnum, UnitEnum.PC);
+		addEEnumLiteral(unitEnumEEnum, UnitEnum.EM);
+		addEEnumLiteral(unitEnumEEnum, UnitEnum.EX);
+		addEEnumLiteral(unitEnumEEnum, UnitEnum.PX);
+		addEEnumLiteral(unitEnumEEnum, UnitEnum.PERCENTAGE);
+
+		initEEnum(pageSizeEnumEEnum, PageSizeEnum.class, "PageSizeEnum");
+		addEEnumLiteral(pageSizeEnumEEnum, PageSizeEnum.A4);
+		addEEnumLiteral(pageSizeEnumEEnum, PageSizeEnum.A3);
+		addEEnumLiteral(pageSizeEnumEEnum, PageSizeEnum.A5);
+		addEEnumLiteral(pageSizeEnumEEnum, PageSizeEnum.US_LETTER);
+		addEEnumLiteral(pageSizeEnumEEnum, PageSizeEnum.US_LEGAL);
+		addEEnumLiteral(pageSizeEnumEEnum, PageSizeEnum.US_LEDGER);
+		addEEnumLiteral(pageSizeEnumEEnum, PageSizeEnum.US_SUPER_B);
+
+		initEEnum(orientationEnumEEnum, OrientationEnum.class, "OrientationEnum");
+		addEEnumLiteral(orientationEnumEEnum, OrientationEnum.PORTRAIT);
+		addEEnumLiteral(orientationEnumEEnum, OrientationEnum.LANDSCAPE);
+
+		initEEnum(fontStyleEnumEEnum, FontStyleEnum.class, "FontStyleEnum");
+		addEEnumLiteral(fontStyleEnumEEnum, FontStyleEnum.NORMAL);
+		addEEnumLiteral(fontStyleEnumEEnum, FontStyleEnum.ITALIC);
+		addEEnumLiteral(fontStyleEnumEEnum, FontStyleEnum.OBLIQUE);
+
+		initEEnum(buildInFontFamilyEnumEEnum, BuildInFontFamilyEnum.class, "BuildInFontFamilyEnum");
+		addEEnumLiteral(buildInFontFamilyEnumEEnum, BuildInFontFamilyEnum.MONOSPACE);
+		addEEnumLiteral(buildInFontFamilyEnumEEnum, BuildInFontFamilyEnum.SANS_SERIF);
+		addEEnumLiteral(buildInFontFamilyEnumEEnum, BuildInFontFamilyEnum.SERIF);
+
+		initEEnum(borderTypeEnumEEnum, BorderTypeEnum.class, "BorderTypeEnum");
+		addEEnumLiteral(borderTypeEnumEEnum, BorderTypeEnum.NONE);
+		addEEnumLiteral(borderTypeEnumEEnum, BorderTypeEnum.SOLID);
+		addEEnumLiteral(borderTypeEnumEEnum, BorderTypeEnum.DOTTED);
+		addEEnumLiteral(borderTypeEnumEEnum, BorderTypeEnum.DASHED);
+		addEEnumLiteral(borderTypeEnumEEnum, BorderTypeEnum.DOUBLE);
+		addEEnumLiteral(borderTypeEnumEEnum, BorderTypeEnum.GROOVE);
+		addEEnumLiteral(borderTypeEnumEEnum, BorderTypeEnum.RIDGE);
+		addEEnumLiteral(borderTypeEnumEEnum, BorderTypeEnum.INSET);
+		addEEnumLiteral(borderTypeEnumEEnum, BorderTypeEnum.OUTSET);
+
+		initEEnum(textAlignEnumEEnum, TextAlignEnum.class, "TextAlignEnum");
+		addEEnumLiteral(textAlignEnumEEnum, TextAlignEnum.NULL);
+		addEEnumLiteral(textAlignEnumEEnum, TextAlignEnum.LEFT);
+		addEEnumLiteral(textAlignEnumEEnum, TextAlignEnum.CENTER);
+		addEEnumLiteral(textAlignEnumEEnum, TextAlignEnum.RIGHT);
+
+		initEEnum(numberFormatCategoryEnumEEnum, NumberFormatCategoryEnum.class, "NumberFormatCategoryEnum");
+		addEEnumLiteral(numberFormatCategoryEnumEEnum, NumberFormatCategoryEnum.UNFORMATTED);
+		addEEnumLiteral(numberFormatCategoryEnumEEnum, NumberFormatCategoryEnum.GENERAL_NUMBER);
+		addEEnumLiteral(numberFormatCategoryEnumEEnum, NumberFormatCategoryEnum.FIXED);
+		addEEnumLiteral(numberFormatCategoryEnumEEnum, NumberFormatCategoryEnum.PERCENT);
+		addEEnumLiteral(numberFormatCategoryEnumEEnum, NumberFormatCategoryEnum.SCIENTIFIC);
+		addEEnumLiteral(numberFormatCategoryEnumEEnum, NumberFormatCategoryEnum.CUSTOM);
+
+		initEEnum(currencyFormatCategoryEnumEEnum, CurrencyFormatCategoryEnum.class, "CurrencyFormatCategoryEnum");
+		addEEnumLiteral(currencyFormatCategoryEnumEEnum, CurrencyFormatCategoryEnum.UNFORMATTED);
+		addEEnumLiteral(currencyFormatCategoryEnumEEnum, CurrencyFormatCategoryEnum.CURRENCY);
+		addEEnumLiteral(currencyFormatCategoryEnumEEnum, CurrencyFormatCategoryEnum.CUSTOM);
+
+		initEEnum(dateFormatCategoryEnumEEnum, DateFormatCategoryEnum.class, "DateFormatCategoryEnum");
+		addEEnumLiteral(dateFormatCategoryEnumEEnum, DateFormatCategoryEnum.CUSTOM);
+
+		initEEnum(dateTimeFormatCategoryEnumEEnum, DateTimeFormatCategoryEnum.class, "DateTimeFormatCategoryEnum");
+		addEEnumLiteral(dateTimeFormatCategoryEnumEEnum, DateTimeFormatCategoryEnum.CUSTOM);
+
+		initEEnum(timeFormatCategoryEnumEEnum, TimeFormatCategoryEnum.class, "TimeFormatCategoryEnum");
+		addEEnumLiteral(timeFormatCategoryEnumEEnum, TimeFormatCategoryEnum.CUSTOM);
+
+		initEEnum(autoTextEnumEEnum, AutoTextEnum.class, "AutoTextEnum");
+		addEEnumLiteral(autoTextEnumEEnum, AutoTextEnum.PAGE_NUMBER);
+		addEEnumLiteral(autoTextEnumEEnum, AutoTextEnum.TOTAL_PAGE);
+		addEEnumLiteral(autoTextEnumEEnum, AutoTextEnum.PAGE_NUMBER_UNFILTERED);
+		addEEnumLiteral(autoTextEnumEEnum, AutoTextEnum.TOTAL_PAGE_UNFILTERED);
+		addEEnumLiteral(autoTextEnumEEnum, AutoTextEnum.PAGE_VARIABLE);
+
+		initEEnum(imageSizeEnumEEnum, ImageSizeEnum.class, "ImageSizeEnum");
+		addEEnumLiteral(imageSizeEnumEEnum, ImageSizeEnum.SIZE_TO_IMAGE);
+		addEEnumLiteral(imageSizeEnumEEnum, ImageSizeEnum.SCALE_TO_ITEM);
+		addEEnumLiteral(imageSizeEnumEEnum, ImageSizeEnum.CLIP);
+
+		initEEnum(imageSourceEnumEEnum, ImageSourceEnum.class, "ImageSourceEnum");
+		addEEnumLiteral(imageSourceEnumEEnum, ImageSourceEnum.FILE);
+		addEEnumLiteral(imageSourceEnumEEnum, ImageSourceEnum.URL);
+		addEEnumLiteral(imageSourceEnumEEnum, ImageSourceEnum.EMBED);
+
+		initEEnum(pureAggregationTypeEnumEEnum, PureAggregationTypeEnum.class, "PureAggregationTypeEnum");
+		addEEnumLiteral(pureAggregationTypeEnumEEnum, PureAggregationTypeEnum.COUNT);
+		addEEnumLiteral(pureAggregationTypeEnumEEnum, PureAggregationTypeEnum.RUNNINGCOUNT);
+
+		initEEnum(unaryAggregationTypeEnumEEnum, UnaryAggregationTypeEnum.class, "UnaryAggregationTypeEnum");
+		addEEnumLiteral(unaryAggregationTypeEnumEEnum, UnaryAggregationTypeEnum.SUM);
+		addEEnumLiteral(unaryAggregationTypeEnumEEnum, UnaryAggregationTypeEnum.AVE);
+		addEEnumLiteral(unaryAggregationTypeEnumEEnum, UnaryAggregationTypeEnum.MIN);
+		addEEnumLiteral(unaryAggregationTypeEnumEEnum, UnaryAggregationTypeEnum.MAX);
+		addEEnumLiteral(unaryAggregationTypeEnumEEnum, UnaryAggregationTypeEnum.RUNNINGSUM);
+
+		initEEnum(binaryAggregationTypeEnumEEnum, BinaryAggregationTypeEnum.class, "BinaryAggregationTypeEnum");
+		addEEnumLiteral(binaryAggregationTypeEnumEEnum, BinaryAggregationTypeEnum.DIV);
+
+		initEEnum(multipleAggregationTypeEnumEEnum, MultipleAggregationTypeEnum.class, "MultipleAggregationTypeEnum");
+		addEEnumLiteral(multipleAggregationTypeEnumEEnum, MultipleAggregationTypeEnum.CONCAT);
+
+		initEEnum(trendIconEnumEEnum, TrendIconEnum.class, "TrendIconEnum");
+		addEEnumLiteral(trendIconEnumEEnum, TrendIconEnum.RISING);
+		addEEnumLiteral(trendIconEnumEEnum, TrendIconEnum.BADRISING);
+		addEEnumLiteral(trendIconEnumEEnum, TrendIconEnum.SLOPING);
+		addEEnumLiteral(trendIconEnumEEnum, TrendIconEnum.GOODSLOPING);
+		addEEnumLiteral(trendIconEnumEEnum, TrendIconEnum.STAGNATING);
+
+		initEEnum(renderingEnumEEnum, RenderingEnum.class, "RenderingEnum");
+		addEEnumLiteral(renderingEnumEEnum, RenderingEnum.HTML);
+		addEEnumLiteral(renderingEnumEEnum, RenderingEnum.PDF);
+
+		// Initialize data types
+		initEDataType(internalEObjectEDataType, InternalEObject.class, "InternalEObject", IS_SERIALIZABLE, !IS_GENERATED_INSTANCE_CLASS);
+
+		// Create resource
+		createResource(eNS_URI);
+
+		// Create annotations
+		// http://www.eclipse.org/emf/2002/Ecore
+		createEcoreAnnotations();
+	}
+
+	/**
+	 * Initializes the annotations for <b>http://www.eclipse.org/emf/2002/Ecore</b>.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void createEcoreAnnotations() {
+		String source = "http://www.eclipse.org/emf/2002/Ecore";	
+		addAnnotation
+		  (this, 
+		   source, 
+		   new String[] {
+			 "rootPackage", "reportdsl"
+		   });
+	}
+
+} //ReportDSLPackageImpl
diff --git a/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/impl/ReportDesignFileImpl.java b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/impl/ReportDesignFileImpl.java
new file mode 100644
index 0000000..5dab7db
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/impl/ReportDesignFileImpl.java
@@ -0,0 +1,173 @@
+/**
+ * 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:  
+ *  		Christophe Loetz  (Loetz GmbH&Co.KG) - Initial implementation 
+ *  
+ */
+package org.eclipse.osbp.xtext.reportdsl.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.osbp.xtext.reportdsl.ReportDSLPackage;
+import org.eclipse.osbp.xtext.reportdsl.ReportDesignFile;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Report Design File</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.impl.ReportDesignFileImpl#getName <em>Name</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class ReportDesignFileImpl extends ReportLazyResolverImpl implements ReportDesignFile {
+	/**
+	 * The default value of the '{@link #getName() <em>Name</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getName()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String NAME_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getName() <em>Name</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getName()
+	 * @generated
+	 * @ordered
+	 */
+	protected String name = NAME_EDEFAULT;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected ReportDesignFileImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return ReportDSLPackage.Literals.REPORT_DESIGN_FILE;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getName() {
+		return name;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setName(String newName) {
+		String oldName = name;
+		name = newName;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ReportDSLPackage.REPORT_DESIGN_FILE__NAME, oldName, name));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case ReportDSLPackage.REPORT_DESIGN_FILE__NAME:
+				return getName();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case ReportDSLPackage.REPORT_DESIGN_FILE__NAME:
+				setName((String)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case ReportDSLPackage.REPORT_DESIGN_FILE__NAME:
+				setName(NAME_EDEFAULT);
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case ReportDSLPackage.REPORT_DESIGN_FILE__NAME:
+				return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name);
+		}
+		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(" (name: ");
+		result.append(name);
+		result.append(')');
+		return result.toString();
+	}
+
+} //ReportDesignFileImpl
diff --git a/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/impl/ReportDesignTemplateImpl.java b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/impl/ReportDesignTemplateImpl.java
new file mode 100644
index 0000000..fc56345
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/impl/ReportDesignTemplateImpl.java
@@ -0,0 +1,388 @@
+/**
+ * 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:  
+ *  		Christophe Loetz  (Loetz GmbH&Co.KG) - Initial implementation 
+ *  
+ */
+package org.eclipse.osbp.xtext.reportdsl.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.reportdsl.PageDetail;
+import org.eclipse.osbp.xtext.reportdsl.PageFooter;
+import org.eclipse.osbp.xtext.reportdsl.PageHeader;
+import org.eclipse.osbp.xtext.reportdsl.ReportDSLPackage;
+import org.eclipse.osbp.xtext.reportdsl.ReportDesignTemplate;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Report Design Template</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.impl.ReportDesignTemplateImpl#getDescription <em>Description</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.impl.ReportDesignTemplateImpl#getHeader <em>Header</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.impl.ReportDesignTemplateImpl#getDetail <em>Detail</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.impl.ReportDesignTemplateImpl#getFooter <em>Footer</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class ReportDesignTemplateImpl extends ReportLazyResolverImpl implements ReportDesignTemplate {
+	/**
+	 * The default value of the '{@link #getDescription() <em>Description</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getDescription()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String DESCRIPTION_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getDescription() <em>Description</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getDescription()
+	 * @generated
+	 * @ordered
+	 */
+	protected String description = DESCRIPTION_EDEFAULT;
+
+	/**
+	 * The cached value of the '{@link #getHeader() <em>Header</em>}' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getHeader()
+	 * @generated
+	 * @ordered
+	 */
+	protected PageHeader header;
+
+	/**
+	 * The cached value of the '{@link #getDetail() <em>Detail</em>}' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getDetail()
+	 * @generated
+	 * @ordered
+	 */
+	protected PageDetail detail;
+
+	/**
+	 * The cached value of the '{@link #getFooter() <em>Footer</em>}' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getFooter()
+	 * @generated
+	 * @ordered
+	 */
+	protected PageFooter footer;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected ReportDesignTemplateImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return ReportDSLPackage.Literals.REPORT_DESIGN_TEMPLATE;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getDescription() {
+		return description;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setDescription(String newDescription) {
+		String oldDescription = description;
+		description = newDescription;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ReportDSLPackage.REPORT_DESIGN_TEMPLATE__DESCRIPTION, oldDescription, description));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public PageHeader getHeader() {
+		return header;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public NotificationChain basicSetHeader(PageHeader newHeader, NotificationChain msgs) {
+		PageHeader oldHeader = header;
+		header = newHeader;
+		if (eNotificationRequired()) {
+			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, ReportDSLPackage.REPORT_DESIGN_TEMPLATE__HEADER, oldHeader, newHeader);
+			if (msgs == null) msgs = notification; else msgs.add(notification);
+		}
+		return msgs;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setHeader(PageHeader newHeader) {
+		if (newHeader != header) {
+			NotificationChain msgs = null;
+			if (header != null)
+				msgs = ((InternalEObject)header).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - ReportDSLPackage.REPORT_DESIGN_TEMPLATE__HEADER, null, msgs);
+			if (newHeader != null)
+				msgs = ((InternalEObject)newHeader).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - ReportDSLPackage.REPORT_DESIGN_TEMPLATE__HEADER, null, msgs);
+			msgs = basicSetHeader(newHeader, msgs);
+			if (msgs != null) msgs.dispatch();
+		}
+		else if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ReportDSLPackage.REPORT_DESIGN_TEMPLATE__HEADER, newHeader, newHeader));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public PageDetail getDetail() {
+		return detail;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public NotificationChain basicSetDetail(PageDetail newDetail, NotificationChain msgs) {
+		PageDetail oldDetail = detail;
+		detail = newDetail;
+		if (eNotificationRequired()) {
+			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, ReportDSLPackage.REPORT_DESIGN_TEMPLATE__DETAIL, oldDetail, newDetail);
+			if (msgs == null) msgs = notification; else msgs.add(notification);
+		}
+		return msgs;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setDetail(PageDetail newDetail) {
+		if (newDetail != detail) {
+			NotificationChain msgs = null;
+			if (detail != null)
+				msgs = ((InternalEObject)detail).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - ReportDSLPackage.REPORT_DESIGN_TEMPLATE__DETAIL, null, msgs);
+			if (newDetail != null)
+				msgs = ((InternalEObject)newDetail).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - ReportDSLPackage.REPORT_DESIGN_TEMPLATE__DETAIL, null, msgs);
+			msgs = basicSetDetail(newDetail, msgs);
+			if (msgs != null) msgs.dispatch();
+		}
+		else if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ReportDSLPackage.REPORT_DESIGN_TEMPLATE__DETAIL, newDetail, newDetail));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public PageFooter getFooter() {
+		return footer;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public NotificationChain basicSetFooter(PageFooter newFooter, NotificationChain msgs) {
+		PageFooter oldFooter = footer;
+		footer = newFooter;
+		if (eNotificationRequired()) {
+			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, ReportDSLPackage.REPORT_DESIGN_TEMPLATE__FOOTER, oldFooter, newFooter);
+			if (msgs == null) msgs = notification; else msgs.add(notification);
+		}
+		return msgs;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setFooter(PageFooter newFooter) {
+		if (newFooter != footer) {
+			NotificationChain msgs = null;
+			if (footer != null)
+				msgs = ((InternalEObject)footer).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - ReportDSLPackage.REPORT_DESIGN_TEMPLATE__FOOTER, null, msgs);
+			if (newFooter != null)
+				msgs = ((InternalEObject)newFooter).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - ReportDSLPackage.REPORT_DESIGN_TEMPLATE__FOOTER, null, msgs);
+			msgs = basicSetFooter(newFooter, msgs);
+			if (msgs != null) msgs.dispatch();
+		}
+		else if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ReportDSLPackage.REPORT_DESIGN_TEMPLATE__FOOTER, newFooter, newFooter));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+		switch (featureID) {
+			case ReportDSLPackage.REPORT_DESIGN_TEMPLATE__HEADER:
+				return basicSetHeader(null, msgs);
+			case ReportDSLPackage.REPORT_DESIGN_TEMPLATE__DETAIL:
+				return basicSetDetail(null, msgs);
+			case ReportDSLPackage.REPORT_DESIGN_TEMPLATE__FOOTER:
+				return basicSetFooter(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 ReportDSLPackage.REPORT_DESIGN_TEMPLATE__DESCRIPTION:
+				return getDescription();
+			case ReportDSLPackage.REPORT_DESIGN_TEMPLATE__HEADER:
+				return getHeader();
+			case ReportDSLPackage.REPORT_DESIGN_TEMPLATE__DETAIL:
+				return getDetail();
+			case ReportDSLPackage.REPORT_DESIGN_TEMPLATE__FOOTER:
+				return getFooter();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case ReportDSLPackage.REPORT_DESIGN_TEMPLATE__DESCRIPTION:
+				setDescription((String)newValue);
+				return;
+			case ReportDSLPackage.REPORT_DESIGN_TEMPLATE__HEADER:
+				setHeader((PageHeader)newValue);
+				return;
+			case ReportDSLPackage.REPORT_DESIGN_TEMPLATE__DETAIL:
+				setDetail((PageDetail)newValue);
+				return;
+			case ReportDSLPackage.REPORT_DESIGN_TEMPLATE__FOOTER:
+				setFooter((PageFooter)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case ReportDSLPackage.REPORT_DESIGN_TEMPLATE__DESCRIPTION:
+				setDescription(DESCRIPTION_EDEFAULT);
+				return;
+			case ReportDSLPackage.REPORT_DESIGN_TEMPLATE__HEADER:
+				setHeader((PageHeader)null);
+				return;
+			case ReportDSLPackage.REPORT_DESIGN_TEMPLATE__DETAIL:
+				setDetail((PageDetail)null);
+				return;
+			case ReportDSLPackage.REPORT_DESIGN_TEMPLATE__FOOTER:
+				setFooter((PageFooter)null);
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case ReportDSLPackage.REPORT_DESIGN_TEMPLATE__DESCRIPTION:
+				return DESCRIPTION_EDEFAULT == null ? description != null : !DESCRIPTION_EDEFAULT.equals(description);
+			case ReportDSLPackage.REPORT_DESIGN_TEMPLATE__HEADER:
+				return header != null;
+			case ReportDSLPackage.REPORT_DESIGN_TEMPLATE__DETAIL:
+				return detail != null;
+			case ReportDSLPackage.REPORT_DESIGN_TEMPLATE__FOOTER:
+				return footer != 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(" (description: ");
+		result.append(description);
+		result.append(')');
+		return result.toString();
+	}
+
+} //ReportDesignTemplateImpl
diff --git a/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/impl/ReportImpl.java b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/impl/ReportImpl.java
new file mode 100644
index 0000000..9a3961e
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/impl/ReportImpl.java
@@ -0,0 +1,717 @@
+/**
+ * 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:  
+ *  		Christophe Loetz  (Loetz GmbH&Co.KG) - Initial implementation 
+ *  
+ */
+package org.eclipse.osbp.xtext.reportdsl.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.datamartdsl.DatamartDefinition;
+
+import org.eclipse.osbp.xtext.reportdsl.Media;
+import org.eclipse.osbp.xtext.reportdsl.PageTemplate;
+import org.eclipse.osbp.xtext.reportdsl.RenderingEnum;
+import org.eclipse.osbp.xtext.reportdsl.Report;
+import org.eclipse.osbp.xtext.reportdsl.ReportDSLPackage;
+import org.eclipse.osbp.xtext.reportdsl.ReportDesign;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Report</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.impl.ReportImpl#isDescription <em>Description</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.impl.ReportImpl#getDescriptionValue <em>Description Value</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.impl.ReportImpl#getDatamartRef <em>Datamart Ref</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.impl.ReportImpl#getRendering <em>Rendering</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.impl.ReportImpl#getExternalCssURI <em>External Css URI</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.impl.ReportImpl#getExternalCssURIBundle <em>External Css URI Bundle</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.impl.ReportImpl#getPageTemplate <em>Page Template</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.impl.ReportImpl#getMedia <em>Media</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.impl.ReportImpl#getToolbar <em>Toolbar</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.impl.ReportImpl#getDesign <em>Design</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class ReportImpl extends ReportBaseImpl implements Report {
+	/**
+	 * The default value of the '{@link #isDescription() <em>Description</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isDescription()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final boolean DESCRIPTION_EDEFAULT = false;
+
+	/**
+	 * The cached value of the '{@link #isDescription() <em>Description</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isDescription()
+	 * @generated
+	 * @ordered
+	 */
+	protected boolean description = DESCRIPTION_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getDescriptionValue() <em>Description Value</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getDescriptionValue()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String DESCRIPTION_VALUE_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getDescriptionValue() <em>Description Value</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getDescriptionValue()
+	 * @generated
+	 * @ordered
+	 */
+	protected String descriptionValue = DESCRIPTION_VALUE_EDEFAULT;
+
+	/**
+	 * 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 default value of the '{@link #getRendering() <em>Rendering</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getRendering()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final RenderingEnum RENDERING_EDEFAULT = RenderingEnum.HTML;
+
+	/**
+	 * The cached value of the '{@link #getRendering() <em>Rendering</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getRendering()
+	 * @generated
+	 * @ordered
+	 */
+	protected RenderingEnum rendering = RENDERING_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getExternalCssURI() <em>External Css URI</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getExternalCssURI()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String EXTERNAL_CSS_URI_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getExternalCssURI() <em>External Css URI</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getExternalCssURI()
+	 * @generated
+	 * @ordered
+	 */
+	protected String externalCssURI = EXTERNAL_CSS_URI_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getExternalCssURIBundle() <em>External Css URI Bundle</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getExternalCssURIBundle()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String EXTERNAL_CSS_URI_BUNDLE_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getExternalCssURIBundle() <em>External Css URI Bundle</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getExternalCssURIBundle()
+	 * @generated
+	 * @ordered
+	 */
+	protected String externalCssURIBundle = EXTERNAL_CSS_URI_BUNDLE_EDEFAULT;
+
+	/**
+	 * The cached value of the '{@link #getPageTemplate() <em>Page Template</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getPageTemplate()
+	 * @generated
+	 * @ordered
+	 */
+	protected PageTemplate pageTemplate;
+
+	/**
+	 * The cached value of the '{@link #getMedia() <em>Media</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getMedia()
+	 * @generated
+	 * @ordered
+	 */
+	protected Media media;
+
+	/**
+	 * 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 cached value of the '{@link #getDesign() <em>Design</em>}' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getDesign()
+	 * @generated
+	 * @ordered
+	 */
+	protected ReportDesign design;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected ReportImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return ReportDSLPackage.Literals.REPORT;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public boolean isDescription() {
+		return description;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setDescription(boolean newDescription) {
+		boolean oldDescription = description;
+		description = newDescription;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ReportDSLPackage.REPORT__DESCRIPTION, oldDescription, description));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getDescriptionValue() {
+		return descriptionValue;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setDescriptionValue(String newDescriptionValue) {
+		String oldDescriptionValue = descriptionValue;
+		descriptionValue = newDescriptionValue;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ReportDSLPackage.REPORT__DESCRIPTION_VALUE, oldDescriptionValue, descriptionValue));
+	}
+
+	/**
+	 * <!-- 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, ReportDSLPackage.REPORT__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, ReportDSLPackage.REPORT__DATAMART_REF, oldDatamartRef, datamartRef));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public RenderingEnum getRendering() {
+		return rendering;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setRendering(RenderingEnum newRendering) {
+		RenderingEnum oldRendering = rendering;
+		rendering = newRendering == null ? RENDERING_EDEFAULT : newRendering;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ReportDSLPackage.REPORT__RENDERING, oldRendering, rendering));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getExternalCssURI() {
+		return externalCssURI;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setExternalCssURI(String newExternalCssURI) {
+		String oldExternalCssURI = externalCssURI;
+		externalCssURI = newExternalCssURI;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ReportDSLPackage.REPORT__EXTERNAL_CSS_URI, oldExternalCssURI, externalCssURI));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getExternalCssURIBundle() {
+		return externalCssURIBundle;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setExternalCssURIBundle(String newExternalCssURIBundle) {
+		String oldExternalCssURIBundle = externalCssURIBundle;
+		externalCssURIBundle = newExternalCssURIBundle;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ReportDSLPackage.REPORT__EXTERNAL_CSS_URI_BUNDLE, oldExternalCssURIBundle, externalCssURIBundle));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public PageTemplate getPageTemplate() {
+		if (pageTemplate != null && pageTemplate.eIsProxy()) {
+			InternalEObject oldPageTemplate = (InternalEObject)pageTemplate;
+			pageTemplate = (PageTemplate)eResolveProxy(oldPageTemplate);
+			if (pageTemplate != oldPageTemplate) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, ReportDSLPackage.REPORT__PAGE_TEMPLATE, oldPageTemplate, pageTemplate));
+			}
+		}
+		return pageTemplate;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public PageTemplate basicGetPageTemplate() {
+		return pageTemplate;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setPageTemplate(PageTemplate newPageTemplate) {
+		PageTemplate oldPageTemplate = pageTemplate;
+		pageTemplate = newPageTemplate;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ReportDSLPackage.REPORT__PAGE_TEMPLATE, oldPageTemplate, pageTemplate));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Media getMedia() {
+		if (media != null && media.eIsProxy()) {
+			InternalEObject oldMedia = (InternalEObject)media;
+			media = (Media)eResolveProxy(oldMedia);
+			if (media != oldMedia) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, ReportDSLPackage.REPORT__MEDIA, oldMedia, media));
+			}
+		}
+		return media;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Media basicGetMedia() {
+		return media;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setMedia(Media newMedia) {
+		Media oldMedia = media;
+		media = newMedia;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ReportDSLPackage.REPORT__MEDIA, oldMedia, media));
+	}
+
+	/**
+	 * <!-- 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, ReportDSLPackage.REPORT__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, ReportDSLPackage.REPORT__TOOLBAR, oldToolbar, toolbar));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public ReportDesign getDesign() {
+		return design;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public NotificationChain basicSetDesign(ReportDesign newDesign, NotificationChain msgs) {
+		ReportDesign oldDesign = design;
+		design = newDesign;
+		if (eNotificationRequired()) {
+			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, ReportDSLPackage.REPORT__DESIGN, oldDesign, newDesign);
+			if (msgs == null) msgs = notification; else msgs.add(notification);
+		}
+		return msgs;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setDesign(ReportDesign newDesign) {
+		if (newDesign != design) {
+			NotificationChain msgs = null;
+			if (design != null)
+				msgs = ((InternalEObject)design).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - ReportDSLPackage.REPORT__DESIGN, null, msgs);
+			if (newDesign != null)
+				msgs = ((InternalEObject)newDesign).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - ReportDSLPackage.REPORT__DESIGN, null, msgs);
+			msgs = basicSetDesign(newDesign, msgs);
+			if (msgs != null) msgs.dispatch();
+		}
+		else if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ReportDSLPackage.REPORT__DESIGN, newDesign, newDesign));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+		switch (featureID) {
+			case ReportDSLPackage.REPORT__DESIGN:
+				return basicSetDesign(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 ReportDSLPackage.REPORT__DESCRIPTION:
+				return isDescription();
+			case ReportDSLPackage.REPORT__DESCRIPTION_VALUE:
+				return getDescriptionValue();
+			case ReportDSLPackage.REPORT__DATAMART_REF:
+				if (resolve) return getDatamartRef();
+				return basicGetDatamartRef();
+			case ReportDSLPackage.REPORT__RENDERING:
+				return getRendering();
+			case ReportDSLPackage.REPORT__EXTERNAL_CSS_URI:
+				return getExternalCssURI();
+			case ReportDSLPackage.REPORT__EXTERNAL_CSS_URI_BUNDLE:
+				return getExternalCssURIBundle();
+			case ReportDSLPackage.REPORT__PAGE_TEMPLATE:
+				if (resolve) return getPageTemplate();
+				return basicGetPageTemplate();
+			case ReportDSLPackage.REPORT__MEDIA:
+				if (resolve) return getMedia();
+				return basicGetMedia();
+			case ReportDSLPackage.REPORT__TOOLBAR:
+				if (resolve) return getToolbar();
+				return basicGetToolbar();
+			case ReportDSLPackage.REPORT__DESIGN:
+				return getDesign();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case ReportDSLPackage.REPORT__DESCRIPTION:
+				setDescription((Boolean)newValue);
+				return;
+			case ReportDSLPackage.REPORT__DESCRIPTION_VALUE:
+				setDescriptionValue((String)newValue);
+				return;
+			case ReportDSLPackage.REPORT__DATAMART_REF:
+				setDatamartRef((DatamartDefinition)newValue);
+				return;
+			case ReportDSLPackage.REPORT__RENDERING:
+				setRendering((RenderingEnum)newValue);
+				return;
+			case ReportDSLPackage.REPORT__EXTERNAL_CSS_URI:
+				setExternalCssURI((String)newValue);
+				return;
+			case ReportDSLPackage.REPORT__EXTERNAL_CSS_URI_BUNDLE:
+				setExternalCssURIBundle((String)newValue);
+				return;
+			case ReportDSLPackage.REPORT__PAGE_TEMPLATE:
+				setPageTemplate((PageTemplate)newValue);
+				return;
+			case ReportDSLPackage.REPORT__MEDIA:
+				setMedia((Media)newValue);
+				return;
+			case ReportDSLPackage.REPORT__TOOLBAR:
+				setToolbar((ActionToolbar)newValue);
+				return;
+			case ReportDSLPackage.REPORT__DESIGN:
+				setDesign((ReportDesign)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case ReportDSLPackage.REPORT__DESCRIPTION:
+				setDescription(DESCRIPTION_EDEFAULT);
+				return;
+			case ReportDSLPackage.REPORT__DESCRIPTION_VALUE:
+				setDescriptionValue(DESCRIPTION_VALUE_EDEFAULT);
+				return;
+			case ReportDSLPackage.REPORT__DATAMART_REF:
+				setDatamartRef((DatamartDefinition)null);
+				return;
+			case ReportDSLPackage.REPORT__RENDERING:
+				setRendering(RENDERING_EDEFAULT);
+				return;
+			case ReportDSLPackage.REPORT__EXTERNAL_CSS_URI:
+				setExternalCssURI(EXTERNAL_CSS_URI_EDEFAULT);
+				return;
+			case ReportDSLPackage.REPORT__EXTERNAL_CSS_URI_BUNDLE:
+				setExternalCssURIBundle(EXTERNAL_CSS_URI_BUNDLE_EDEFAULT);
+				return;
+			case ReportDSLPackage.REPORT__PAGE_TEMPLATE:
+				setPageTemplate((PageTemplate)null);
+				return;
+			case ReportDSLPackage.REPORT__MEDIA:
+				setMedia((Media)null);
+				return;
+			case ReportDSLPackage.REPORT__TOOLBAR:
+				setToolbar((ActionToolbar)null);
+				return;
+			case ReportDSLPackage.REPORT__DESIGN:
+				setDesign((ReportDesign)null);
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case ReportDSLPackage.REPORT__DESCRIPTION:
+				return description != DESCRIPTION_EDEFAULT;
+			case ReportDSLPackage.REPORT__DESCRIPTION_VALUE:
+				return DESCRIPTION_VALUE_EDEFAULT == null ? descriptionValue != null : !DESCRIPTION_VALUE_EDEFAULT.equals(descriptionValue);
+			case ReportDSLPackage.REPORT__DATAMART_REF:
+				return datamartRef != null;
+			case ReportDSLPackage.REPORT__RENDERING:
+				return rendering != RENDERING_EDEFAULT;
+			case ReportDSLPackage.REPORT__EXTERNAL_CSS_URI:
+				return EXTERNAL_CSS_URI_EDEFAULT == null ? externalCssURI != null : !EXTERNAL_CSS_URI_EDEFAULT.equals(externalCssURI);
+			case ReportDSLPackage.REPORT__EXTERNAL_CSS_URI_BUNDLE:
+				return EXTERNAL_CSS_URI_BUNDLE_EDEFAULT == null ? externalCssURIBundle != null : !EXTERNAL_CSS_URI_BUNDLE_EDEFAULT.equals(externalCssURIBundle);
+			case ReportDSLPackage.REPORT__PAGE_TEMPLATE:
+				return pageTemplate != null;
+			case ReportDSLPackage.REPORT__MEDIA:
+				return media != null;
+			case ReportDSLPackage.REPORT__TOOLBAR:
+				return toolbar != null;
+			case ReportDSLPackage.REPORT__DESIGN:
+				return design != 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(" (description: ");
+		result.append(description);
+		result.append(", descriptionValue: ");
+		result.append(descriptionValue);
+		result.append(", rendering: ");
+		result.append(rendering);
+		result.append(", externalCssURI: ");
+		result.append(externalCssURI);
+		result.append(", externalCssURIBundle: ");
+		result.append(externalCssURIBundle);
+		result.append(')');
+		return result.toString();
+	}
+
+} //ReportImpl
diff --git a/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/impl/ReportLazyResolverImpl.java b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/impl/ReportLazyResolverImpl.java
new file mode 100644
index 0000000..40915d0
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/impl/ReportLazyResolverImpl.java
@@ -0,0 +1,88 @@
+/**
+ * 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:  
+ *  		Christophe Loetz  (Loetz GmbH&Co.KG) - Initial implementation 
+ *  
+ */
+package org.eclipse.osbp.xtext.reportdsl.impl;
+
+import java.lang.reflect.InvocationTargetException;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.InternalEObject;
+
+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.reportdsl.ReportDSLPackage;
+import org.eclipse.osbp.xtext.reportdsl.ReportLazyResolver;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Report Lazy Resolver</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * </p>
+ *
+ * @generated
+ */
+public class ReportLazyResolverImpl extends MinimalEObjectImpl.Container implements ReportLazyResolver {
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected ReportLazyResolverImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return ReportDSLPackage.Literals.REPORT_LAZY_RESOLVER;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EObject eResolveProxy(final InternalEObject proxy) {
+		Resource _eResource = this.eResource();
+		ResourceSet _resourceSet = _eResource.getResourceSet();
+		return EcoreUtil3.resolve(proxy, _resourceSet);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object eInvoke(int operationID, EList<?> arguments) throws InvocationTargetException {
+		switch (operationID) {
+			case ReportDSLPackage.REPORT_LAZY_RESOLVER___ERESOLVE_PROXY__INTERNALEOBJECT:
+				return eResolveProxy((InternalEObject)arguments.get(0));
+		}
+		return super.eInvoke(operationID, arguments);
+	}
+
+} //ReportLazyResolverImpl
diff --git a/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/impl/ReportModelImpl.java b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/impl/ReportModelImpl.java
new file mode 100644
index 0000000..4d43370
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/impl/ReportModelImpl.java
@@ -0,0 +1,163 @@
+/**
+ * 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:  
+ *  		Christophe Loetz  (Loetz GmbH&Co.KG) - Initial implementation 
+ *  
+ */
+package org.eclipse.osbp.xtext.reportdsl.impl;
+
+import java.util.Collection;
+
+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.MinimalEObjectImpl;
+
+import org.eclipse.emf.ecore.util.EObjectContainmentEList;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+import org.eclipse.osbp.xtext.reportdsl.ReportDSLPackage;
+import org.eclipse.osbp.xtext.reportdsl.ReportModel;
+import org.eclipse.osbp.xtext.reportdsl.ReportPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Report Model</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.impl.ReportModelImpl#getPckg <em>Pckg</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class ReportModelImpl extends MinimalEObjectImpl.Container implements ReportModel {
+	/**
+	 * The cached value of the '{@link #getPckg() <em>Pckg</em>}' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getPckg()
+	 * @generated
+	 * @ordered
+	 */
+	protected EList<ReportPackage> pckg;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected ReportModelImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return ReportDSLPackage.Literals.REPORT_MODEL;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EList<ReportPackage> getPckg() {
+		if (pckg == null) {
+			pckg = new EObjectContainmentEList<ReportPackage>(ReportPackage.class, this, ReportDSLPackage.REPORT_MODEL__PCKG);
+		}
+		return pckg;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+		switch (featureID) {
+			case ReportDSLPackage.REPORT_MODEL__PCKG:
+				return ((InternalEList<?>)getPckg()).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 ReportDSLPackage.REPORT_MODEL__PCKG:
+				return getPckg();
+		}
+		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 ReportDSLPackage.REPORT_MODEL__PCKG:
+				getPckg().clear();
+				getPckg().addAll((Collection<? extends ReportPackage>)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case ReportDSLPackage.REPORT_MODEL__PCKG:
+				getPckg().clear();
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case ReportDSLPackage.REPORT_MODEL__PCKG:
+				return pckg != null && !pckg.isEmpty();
+		}
+		return super.eIsSet(featureID);
+	}
+
+} //ReportModelImpl
diff --git a/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/impl/ReportPackageImpl.java b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/impl/ReportPackageImpl.java
new file mode 100644
index 0000000..686519a
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/impl/ReportPackageImpl.java
@@ -0,0 +1,758 @@
+/**
+ * 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:  
+ *  		Christophe Loetz  (Loetz GmbH&Co.KG) - Initial implementation 
+ *  
+ */
+package org.eclipse.osbp.xtext.reportdsl.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.dsl.semantic.common.types.impl.LPackageImpl;
+
+import org.eclipse.osbp.xtext.reportdsl.Colors;
+import org.eclipse.osbp.xtext.reportdsl.Fonts;
+import org.eclipse.osbp.xtext.reportdsl.Medias;
+import org.eclipse.osbp.xtext.reportdsl.PageTemplates;
+import org.eclipse.osbp.xtext.reportdsl.Report;
+import org.eclipse.osbp.xtext.reportdsl.ReportDSLPackage;
+import org.eclipse.osbp.xtext.reportdsl.ReportPackage;
+import org.eclipse.osbp.xtext.reportdsl.SomeFormats;
+import org.eclipse.osbp.xtext.reportdsl.Styles;
+
+import org.eclipse.xtext.xtype.XImportSection;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Report Package</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.impl.ReportPackageImpl#getImportSection <em>Import Section</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.impl.ReportPackageImpl#getExternalCssURI <em>External Css URI</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.impl.ReportPackageImpl#getExternalCssURIBundle <em>External Css URI Bundle</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.impl.ReportPackageImpl#getPagetemplates <em>Pagetemplates</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.impl.ReportPackageImpl#getFormatters <em>Formatters</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.impl.ReportPackageImpl#getColors <em>Colors</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.impl.ReportPackageImpl#getFonts <em>Fonts</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.impl.ReportPackageImpl#getMedias <em>Medias</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.impl.ReportPackageImpl#getStyles <em>Styles</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.impl.ReportPackageImpl#getReports <em>Reports</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class ReportPackageImpl extends LPackageImpl implements ReportPackage {
+	/**
+	 * 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 default value of the '{@link #getExternalCssURI() <em>External Css URI</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getExternalCssURI()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String EXTERNAL_CSS_URI_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getExternalCssURI() <em>External Css URI</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getExternalCssURI()
+	 * @generated
+	 * @ordered
+	 */
+	protected String externalCssURI = EXTERNAL_CSS_URI_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getExternalCssURIBundle() <em>External Css URI Bundle</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getExternalCssURIBundle()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String EXTERNAL_CSS_URI_BUNDLE_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getExternalCssURIBundle() <em>External Css URI Bundle</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getExternalCssURIBundle()
+	 * @generated
+	 * @ordered
+	 */
+	protected String externalCssURIBundle = EXTERNAL_CSS_URI_BUNDLE_EDEFAULT;
+
+	/**
+	 * The cached value of the '{@link #getPagetemplates() <em>Pagetemplates</em>}' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getPagetemplates()
+	 * @generated
+	 * @ordered
+	 */
+	protected PageTemplates pagetemplates;
+
+	/**
+	 * The cached value of the '{@link #getFormatters() <em>Formatters</em>}' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getFormatters()
+	 * @generated
+	 * @ordered
+	 */
+	protected SomeFormats formatters;
+
+	/**
+	 * The cached value of the '{@link #getColors() <em>Colors</em>}' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getColors()
+	 * @generated
+	 * @ordered
+	 */
+	protected Colors colors;
+
+	/**
+	 * The cached value of the '{@link #getFonts() <em>Fonts</em>}' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getFonts()
+	 * @generated
+	 * @ordered
+	 */
+	protected Fonts fonts;
+
+	/**
+	 * The cached value of the '{@link #getMedias() <em>Medias</em>}' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getMedias()
+	 * @generated
+	 * @ordered
+	 */
+	protected Medias medias;
+
+	/**
+	 * The cached value of the '{@link #getStyles() <em>Styles</em>}' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getStyles()
+	 * @generated
+	 * @ordered
+	 */
+	protected Styles styles;
+
+	/**
+	 * The cached value of the '{@link #getReports() <em>Reports</em>}' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getReports()
+	 * @generated
+	 * @ordered
+	 */
+	protected EList<Report> reports;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected ReportPackageImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return ReportDSLPackage.Literals.REPORT_PACKAGE;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- 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, ReportDSLPackage.REPORT_PACKAGE__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 - ReportDSLPackage.REPORT_PACKAGE__IMPORT_SECTION, null, msgs);
+			if (newImportSection != null)
+				msgs = ((InternalEObject)newImportSection).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - ReportDSLPackage.REPORT_PACKAGE__IMPORT_SECTION, null, msgs);
+			msgs = basicSetImportSection(newImportSection, msgs);
+			if (msgs != null) msgs.dispatch();
+		}
+		else if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ReportDSLPackage.REPORT_PACKAGE__IMPORT_SECTION, newImportSection, newImportSection));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getExternalCssURI() {
+		return externalCssURI;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setExternalCssURI(String newExternalCssURI) {
+		String oldExternalCssURI = externalCssURI;
+		externalCssURI = newExternalCssURI;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ReportDSLPackage.REPORT_PACKAGE__EXTERNAL_CSS_URI, oldExternalCssURI, externalCssURI));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getExternalCssURIBundle() {
+		return externalCssURIBundle;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setExternalCssURIBundle(String newExternalCssURIBundle) {
+		String oldExternalCssURIBundle = externalCssURIBundle;
+		externalCssURIBundle = newExternalCssURIBundle;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ReportDSLPackage.REPORT_PACKAGE__EXTERNAL_CSS_URI_BUNDLE, oldExternalCssURIBundle, externalCssURIBundle));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public PageTemplates getPagetemplates() {
+		return pagetemplates;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public NotificationChain basicSetPagetemplates(PageTemplates newPagetemplates, NotificationChain msgs) {
+		PageTemplates oldPagetemplates = pagetemplates;
+		pagetemplates = newPagetemplates;
+		if (eNotificationRequired()) {
+			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, ReportDSLPackage.REPORT_PACKAGE__PAGETEMPLATES, oldPagetemplates, newPagetemplates);
+			if (msgs == null) msgs = notification; else msgs.add(notification);
+		}
+		return msgs;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setPagetemplates(PageTemplates newPagetemplates) {
+		if (newPagetemplates != pagetemplates) {
+			NotificationChain msgs = null;
+			if (pagetemplates != null)
+				msgs = ((InternalEObject)pagetemplates).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - ReportDSLPackage.REPORT_PACKAGE__PAGETEMPLATES, null, msgs);
+			if (newPagetemplates != null)
+				msgs = ((InternalEObject)newPagetemplates).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - ReportDSLPackage.REPORT_PACKAGE__PAGETEMPLATES, null, msgs);
+			msgs = basicSetPagetemplates(newPagetemplates, msgs);
+			if (msgs != null) msgs.dispatch();
+		}
+		else if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ReportDSLPackage.REPORT_PACKAGE__PAGETEMPLATES, newPagetemplates, newPagetemplates));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public SomeFormats getFormatters() {
+		return formatters;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public NotificationChain basicSetFormatters(SomeFormats newFormatters, NotificationChain msgs) {
+		SomeFormats oldFormatters = formatters;
+		formatters = newFormatters;
+		if (eNotificationRequired()) {
+			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, ReportDSLPackage.REPORT_PACKAGE__FORMATTERS, oldFormatters, newFormatters);
+			if (msgs == null) msgs = notification; else msgs.add(notification);
+		}
+		return msgs;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setFormatters(SomeFormats newFormatters) {
+		if (newFormatters != formatters) {
+			NotificationChain msgs = null;
+			if (formatters != null)
+				msgs = ((InternalEObject)formatters).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - ReportDSLPackage.REPORT_PACKAGE__FORMATTERS, null, msgs);
+			if (newFormatters != null)
+				msgs = ((InternalEObject)newFormatters).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - ReportDSLPackage.REPORT_PACKAGE__FORMATTERS, null, msgs);
+			msgs = basicSetFormatters(newFormatters, msgs);
+			if (msgs != null) msgs.dispatch();
+		}
+		else if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ReportDSLPackage.REPORT_PACKAGE__FORMATTERS, newFormatters, newFormatters));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Colors getColors() {
+		return colors;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public NotificationChain basicSetColors(Colors newColors, NotificationChain msgs) {
+		Colors oldColors = colors;
+		colors = newColors;
+		if (eNotificationRequired()) {
+			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, ReportDSLPackage.REPORT_PACKAGE__COLORS, oldColors, newColors);
+			if (msgs == null) msgs = notification; else msgs.add(notification);
+		}
+		return msgs;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setColors(Colors newColors) {
+		if (newColors != colors) {
+			NotificationChain msgs = null;
+			if (colors != null)
+				msgs = ((InternalEObject)colors).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - ReportDSLPackage.REPORT_PACKAGE__COLORS, null, msgs);
+			if (newColors != null)
+				msgs = ((InternalEObject)newColors).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - ReportDSLPackage.REPORT_PACKAGE__COLORS, null, msgs);
+			msgs = basicSetColors(newColors, msgs);
+			if (msgs != null) msgs.dispatch();
+		}
+		else if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ReportDSLPackage.REPORT_PACKAGE__COLORS, newColors, newColors));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Fonts getFonts() {
+		return fonts;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public NotificationChain basicSetFonts(Fonts newFonts, NotificationChain msgs) {
+		Fonts oldFonts = fonts;
+		fonts = newFonts;
+		if (eNotificationRequired()) {
+			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, ReportDSLPackage.REPORT_PACKAGE__FONTS, oldFonts, newFonts);
+			if (msgs == null) msgs = notification; else msgs.add(notification);
+		}
+		return msgs;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setFonts(Fonts newFonts) {
+		if (newFonts != fonts) {
+			NotificationChain msgs = null;
+			if (fonts != null)
+				msgs = ((InternalEObject)fonts).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - ReportDSLPackage.REPORT_PACKAGE__FONTS, null, msgs);
+			if (newFonts != null)
+				msgs = ((InternalEObject)newFonts).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - ReportDSLPackage.REPORT_PACKAGE__FONTS, null, msgs);
+			msgs = basicSetFonts(newFonts, msgs);
+			if (msgs != null) msgs.dispatch();
+		}
+		else if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ReportDSLPackage.REPORT_PACKAGE__FONTS, newFonts, newFonts));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Medias getMedias() {
+		return medias;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public NotificationChain basicSetMedias(Medias newMedias, NotificationChain msgs) {
+		Medias oldMedias = medias;
+		medias = newMedias;
+		if (eNotificationRequired()) {
+			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, ReportDSLPackage.REPORT_PACKAGE__MEDIAS, oldMedias, newMedias);
+			if (msgs == null) msgs = notification; else msgs.add(notification);
+		}
+		return msgs;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setMedias(Medias newMedias) {
+		if (newMedias != medias) {
+			NotificationChain msgs = null;
+			if (medias != null)
+				msgs = ((InternalEObject)medias).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - ReportDSLPackage.REPORT_PACKAGE__MEDIAS, null, msgs);
+			if (newMedias != null)
+				msgs = ((InternalEObject)newMedias).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - ReportDSLPackage.REPORT_PACKAGE__MEDIAS, null, msgs);
+			msgs = basicSetMedias(newMedias, msgs);
+			if (msgs != null) msgs.dispatch();
+		}
+		else if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ReportDSLPackage.REPORT_PACKAGE__MEDIAS, newMedias, newMedias));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Styles getStyles() {
+		return styles;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public NotificationChain basicSetStyles(Styles newStyles, NotificationChain msgs) {
+		Styles oldStyles = styles;
+		styles = newStyles;
+		if (eNotificationRequired()) {
+			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, ReportDSLPackage.REPORT_PACKAGE__STYLES, oldStyles, newStyles);
+			if (msgs == null) msgs = notification; else msgs.add(notification);
+		}
+		return msgs;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setStyles(Styles newStyles) {
+		if (newStyles != styles) {
+			NotificationChain msgs = null;
+			if (styles != null)
+				msgs = ((InternalEObject)styles).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - ReportDSLPackage.REPORT_PACKAGE__STYLES, null, msgs);
+			if (newStyles != null)
+				msgs = ((InternalEObject)newStyles).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - ReportDSLPackage.REPORT_PACKAGE__STYLES, null, msgs);
+			msgs = basicSetStyles(newStyles, msgs);
+			if (msgs != null) msgs.dispatch();
+		}
+		else if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ReportDSLPackage.REPORT_PACKAGE__STYLES, newStyles, newStyles));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EList<Report> getReports() {
+		if (reports == null) {
+			reports = new EObjectContainmentEList<Report>(Report.class, this, ReportDSLPackage.REPORT_PACKAGE__REPORTS);
+		}
+		return reports;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+		switch (featureID) {
+			case ReportDSLPackage.REPORT_PACKAGE__IMPORT_SECTION:
+				return basicSetImportSection(null, msgs);
+			case ReportDSLPackage.REPORT_PACKAGE__PAGETEMPLATES:
+				return basicSetPagetemplates(null, msgs);
+			case ReportDSLPackage.REPORT_PACKAGE__FORMATTERS:
+				return basicSetFormatters(null, msgs);
+			case ReportDSLPackage.REPORT_PACKAGE__COLORS:
+				return basicSetColors(null, msgs);
+			case ReportDSLPackage.REPORT_PACKAGE__FONTS:
+				return basicSetFonts(null, msgs);
+			case ReportDSLPackage.REPORT_PACKAGE__MEDIAS:
+				return basicSetMedias(null, msgs);
+			case ReportDSLPackage.REPORT_PACKAGE__STYLES:
+				return basicSetStyles(null, msgs);
+			case ReportDSLPackage.REPORT_PACKAGE__REPORTS:
+				return ((InternalEList<?>)getReports()).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 ReportDSLPackage.REPORT_PACKAGE__IMPORT_SECTION:
+				return getImportSection();
+			case ReportDSLPackage.REPORT_PACKAGE__EXTERNAL_CSS_URI:
+				return getExternalCssURI();
+			case ReportDSLPackage.REPORT_PACKAGE__EXTERNAL_CSS_URI_BUNDLE:
+				return getExternalCssURIBundle();
+			case ReportDSLPackage.REPORT_PACKAGE__PAGETEMPLATES:
+				return getPagetemplates();
+			case ReportDSLPackage.REPORT_PACKAGE__FORMATTERS:
+				return getFormatters();
+			case ReportDSLPackage.REPORT_PACKAGE__COLORS:
+				return getColors();
+			case ReportDSLPackage.REPORT_PACKAGE__FONTS:
+				return getFonts();
+			case ReportDSLPackage.REPORT_PACKAGE__MEDIAS:
+				return getMedias();
+			case ReportDSLPackage.REPORT_PACKAGE__STYLES:
+				return getStyles();
+			case ReportDSLPackage.REPORT_PACKAGE__REPORTS:
+				return getReports();
+		}
+		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 ReportDSLPackage.REPORT_PACKAGE__IMPORT_SECTION:
+				setImportSection((XImportSection)newValue);
+				return;
+			case ReportDSLPackage.REPORT_PACKAGE__EXTERNAL_CSS_URI:
+				setExternalCssURI((String)newValue);
+				return;
+			case ReportDSLPackage.REPORT_PACKAGE__EXTERNAL_CSS_URI_BUNDLE:
+				setExternalCssURIBundle((String)newValue);
+				return;
+			case ReportDSLPackage.REPORT_PACKAGE__PAGETEMPLATES:
+				setPagetemplates((PageTemplates)newValue);
+				return;
+			case ReportDSLPackage.REPORT_PACKAGE__FORMATTERS:
+				setFormatters((SomeFormats)newValue);
+				return;
+			case ReportDSLPackage.REPORT_PACKAGE__COLORS:
+				setColors((Colors)newValue);
+				return;
+			case ReportDSLPackage.REPORT_PACKAGE__FONTS:
+				setFonts((Fonts)newValue);
+				return;
+			case ReportDSLPackage.REPORT_PACKAGE__MEDIAS:
+				setMedias((Medias)newValue);
+				return;
+			case ReportDSLPackage.REPORT_PACKAGE__STYLES:
+				setStyles((Styles)newValue);
+				return;
+			case ReportDSLPackage.REPORT_PACKAGE__REPORTS:
+				getReports().clear();
+				getReports().addAll((Collection<? extends Report>)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case ReportDSLPackage.REPORT_PACKAGE__IMPORT_SECTION:
+				setImportSection((XImportSection)null);
+				return;
+			case ReportDSLPackage.REPORT_PACKAGE__EXTERNAL_CSS_URI:
+				setExternalCssURI(EXTERNAL_CSS_URI_EDEFAULT);
+				return;
+			case ReportDSLPackage.REPORT_PACKAGE__EXTERNAL_CSS_URI_BUNDLE:
+				setExternalCssURIBundle(EXTERNAL_CSS_URI_BUNDLE_EDEFAULT);
+				return;
+			case ReportDSLPackage.REPORT_PACKAGE__PAGETEMPLATES:
+				setPagetemplates((PageTemplates)null);
+				return;
+			case ReportDSLPackage.REPORT_PACKAGE__FORMATTERS:
+				setFormatters((SomeFormats)null);
+				return;
+			case ReportDSLPackage.REPORT_PACKAGE__COLORS:
+				setColors((Colors)null);
+				return;
+			case ReportDSLPackage.REPORT_PACKAGE__FONTS:
+				setFonts((Fonts)null);
+				return;
+			case ReportDSLPackage.REPORT_PACKAGE__MEDIAS:
+				setMedias((Medias)null);
+				return;
+			case ReportDSLPackage.REPORT_PACKAGE__STYLES:
+				setStyles((Styles)null);
+				return;
+			case ReportDSLPackage.REPORT_PACKAGE__REPORTS:
+				getReports().clear();
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case ReportDSLPackage.REPORT_PACKAGE__IMPORT_SECTION:
+				return importSection != null;
+			case ReportDSLPackage.REPORT_PACKAGE__EXTERNAL_CSS_URI:
+				return EXTERNAL_CSS_URI_EDEFAULT == null ? externalCssURI != null : !EXTERNAL_CSS_URI_EDEFAULT.equals(externalCssURI);
+			case ReportDSLPackage.REPORT_PACKAGE__EXTERNAL_CSS_URI_BUNDLE:
+				return EXTERNAL_CSS_URI_BUNDLE_EDEFAULT == null ? externalCssURIBundle != null : !EXTERNAL_CSS_URI_BUNDLE_EDEFAULT.equals(externalCssURIBundle);
+			case ReportDSLPackage.REPORT_PACKAGE__PAGETEMPLATES:
+				return pagetemplates != null;
+			case ReportDSLPackage.REPORT_PACKAGE__FORMATTERS:
+				return formatters != null;
+			case ReportDSLPackage.REPORT_PACKAGE__COLORS:
+				return colors != null;
+			case ReportDSLPackage.REPORT_PACKAGE__FONTS:
+				return fonts != null;
+			case ReportDSLPackage.REPORT_PACKAGE__MEDIAS:
+				return medias != null;
+			case ReportDSLPackage.REPORT_PACKAGE__STYLES:
+				return styles != null;
+			case ReportDSLPackage.REPORT_PACKAGE__REPORTS:
+				return reports != null && !reports.isEmpty();
+		}
+		return super.eIsSet(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String toString() {
+		if (eIsProxy()) return super.toString();
+
+		StringBuffer result = new StringBuffer(super.toString());
+		result.append(" (externalCssURI: ");
+		result.append(externalCssURI);
+		result.append(", externalCssURIBundle: ");
+		result.append(externalCssURIBundle);
+		result.append(')');
+		return result.toString();
+	}
+
+} //ReportPackageImpl
diff --git a/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/impl/SomeFormatImpl.java b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/impl/SomeFormatImpl.java
new file mode 100644
index 0000000..a0c3be5
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/impl/SomeFormatImpl.java
@@ -0,0 +1,282 @@
+/**
+ * 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:  
+ *  		Christophe Loetz  (Loetz GmbH&Co.KG) - Initial implementation 
+ *  
+ */
+package org.eclipse.osbp.xtext.reportdsl.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.osbp.xtext.reportdsl.ReportDSLPackage;
+import org.eclipse.osbp.xtext.reportdsl.SomeFormat;
+import org.eclipse.osbp.xtext.reportdsl.TextAlignEnum;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Some Format</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.impl.SomeFormatImpl#getUi_pattern <em>Ui pattern</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.impl.SomeFormatImpl#getReport_pattern <em>Report pattern</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.impl.SomeFormatImpl#getTextalign <em>Textalign</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class SomeFormatImpl extends ReportBaseImpl implements SomeFormat {
+	/**
+	 * The default value of the '{@link #getUi_pattern() <em>Ui pattern</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getUi_pattern()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String UI_PATTERN_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getUi_pattern() <em>Ui pattern</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getUi_pattern()
+	 * @generated
+	 * @ordered
+	 */
+	protected String ui_pattern = UI_PATTERN_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getReport_pattern() <em>Report pattern</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getReport_pattern()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String REPORT_PATTERN_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getReport_pattern() <em>Report pattern</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getReport_pattern()
+	 * @generated
+	 * @ordered
+	 */
+	protected String report_pattern = REPORT_PATTERN_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getTextalign() <em>Textalign</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getTextalign()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final TextAlignEnum TEXTALIGN_EDEFAULT = TextAlignEnum.NULL;
+
+	/**
+	 * The cached value of the '{@link #getTextalign() <em>Textalign</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getTextalign()
+	 * @generated
+	 * @ordered
+	 */
+	protected TextAlignEnum textalign = TEXTALIGN_EDEFAULT;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected SomeFormatImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return ReportDSLPackage.Literals.SOME_FORMAT;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getUi_pattern() {
+		return ui_pattern;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setUi_pattern(String newUi_pattern) {
+		String oldUi_pattern = ui_pattern;
+		ui_pattern = newUi_pattern;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ReportDSLPackage.SOME_FORMAT__UI_PATTERN, oldUi_pattern, ui_pattern));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getReport_pattern() {
+		return report_pattern;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setReport_pattern(String newReport_pattern) {
+		String oldReport_pattern = report_pattern;
+		report_pattern = newReport_pattern;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ReportDSLPackage.SOME_FORMAT__REPORT_PATTERN, oldReport_pattern, report_pattern));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public TextAlignEnum getTextalign() {
+		return textalign;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setTextalign(TextAlignEnum newTextalign) {
+		TextAlignEnum oldTextalign = textalign;
+		textalign = newTextalign == null ? TEXTALIGN_EDEFAULT : newTextalign;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ReportDSLPackage.SOME_FORMAT__TEXTALIGN, oldTextalign, textalign));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case ReportDSLPackage.SOME_FORMAT__UI_PATTERN:
+				return getUi_pattern();
+			case ReportDSLPackage.SOME_FORMAT__REPORT_PATTERN:
+				return getReport_pattern();
+			case ReportDSLPackage.SOME_FORMAT__TEXTALIGN:
+				return getTextalign();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case ReportDSLPackage.SOME_FORMAT__UI_PATTERN:
+				setUi_pattern((String)newValue);
+				return;
+			case ReportDSLPackage.SOME_FORMAT__REPORT_PATTERN:
+				setReport_pattern((String)newValue);
+				return;
+			case ReportDSLPackage.SOME_FORMAT__TEXTALIGN:
+				setTextalign((TextAlignEnum)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case ReportDSLPackage.SOME_FORMAT__UI_PATTERN:
+				setUi_pattern(UI_PATTERN_EDEFAULT);
+				return;
+			case ReportDSLPackage.SOME_FORMAT__REPORT_PATTERN:
+				setReport_pattern(REPORT_PATTERN_EDEFAULT);
+				return;
+			case ReportDSLPackage.SOME_FORMAT__TEXTALIGN:
+				setTextalign(TEXTALIGN_EDEFAULT);
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case ReportDSLPackage.SOME_FORMAT__UI_PATTERN:
+				return UI_PATTERN_EDEFAULT == null ? ui_pattern != null : !UI_PATTERN_EDEFAULT.equals(ui_pattern);
+			case ReportDSLPackage.SOME_FORMAT__REPORT_PATTERN:
+				return REPORT_PATTERN_EDEFAULT == null ? report_pattern != null : !REPORT_PATTERN_EDEFAULT.equals(report_pattern);
+			case ReportDSLPackage.SOME_FORMAT__TEXTALIGN:
+				return textalign != TEXTALIGN_EDEFAULT;
+		}
+		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(" (ui_pattern: ");
+		result.append(ui_pattern);
+		result.append(", report_pattern: ");
+		result.append(report_pattern);
+		result.append(", textalign: ");
+		result.append(textalign);
+		result.append(')');
+		return result.toString();
+	}
+
+} //SomeFormatImpl
diff --git a/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/impl/SomeFormatsImpl.java b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/impl/SomeFormatsImpl.java
new file mode 100644
index 0000000..09b7630
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/impl/SomeFormatsImpl.java
@@ -0,0 +1,161 @@
+/**
+ * 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:  
+ *  		Christophe Loetz  (Loetz GmbH&Co.KG) - Initial implementation 
+ *  
+ */
+package org.eclipse.osbp.xtext.reportdsl.impl;
+
+import java.util.Collection;
+
+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.util.EObjectContainmentEList;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+import org.eclipse.osbp.xtext.reportdsl.ReportDSLPackage;
+import org.eclipse.osbp.xtext.reportdsl.SomeFormat;
+import org.eclipse.osbp.xtext.reportdsl.SomeFormats;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Some Formats</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.impl.SomeFormatsImpl#getFormatters <em>Formatters</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class SomeFormatsImpl extends ReportLazyResolverImpl implements SomeFormats {
+	/**
+	 * The cached value of the '{@link #getFormatters() <em>Formatters</em>}' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getFormatters()
+	 * @generated
+	 * @ordered
+	 */
+	protected EList<SomeFormat> formatters;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected SomeFormatsImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return ReportDSLPackage.Literals.SOME_FORMATS;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EList<SomeFormat> getFormatters() {
+		if (formatters == null) {
+			formatters = new EObjectContainmentEList<SomeFormat>(SomeFormat.class, this, ReportDSLPackage.SOME_FORMATS__FORMATTERS);
+		}
+		return formatters;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+		switch (featureID) {
+			case ReportDSLPackage.SOME_FORMATS__FORMATTERS:
+				return ((InternalEList<?>)getFormatters()).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 ReportDSLPackage.SOME_FORMATS__FORMATTERS:
+				return getFormatters();
+		}
+		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 ReportDSLPackage.SOME_FORMATS__FORMATTERS:
+				getFormatters().clear();
+				getFormatters().addAll((Collection<? extends SomeFormat>)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case ReportDSLPackage.SOME_FORMATS__FORMATTERS:
+				getFormatters().clear();
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case ReportDSLPackage.SOME_FORMATS__FORMATTERS:
+				return formatters != null && !formatters.isEmpty();
+		}
+		return super.eIsSet(featureID);
+	}
+
+} //SomeFormatsImpl
diff --git a/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/impl/SomeGridImpl.java b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/impl/SomeGridImpl.java
new file mode 100644
index 0000000..4e6d5b2
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/impl/SomeGridImpl.java
@@ -0,0 +1,161 @@
+/**
+ * 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:  
+ *  		Christophe Loetz  (Loetz GmbH&Co.KG) - Initial implementation 
+ *  
+ */
+package org.eclipse.osbp.xtext.reportdsl.impl;
+
+import java.util.Collection;
+
+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.util.EObjectContainmentEList;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+import org.eclipse.osbp.xtext.reportdsl.GridRow;
+import org.eclipse.osbp.xtext.reportdsl.ReportDSLPackage;
+import org.eclipse.osbp.xtext.reportdsl.SomeGrid;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Some Grid</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.impl.SomeGridImpl#getRows <em>Rows</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class SomeGridImpl extends ReportLazyResolverImpl implements SomeGrid {
+	/**
+	 * The cached value of the '{@link #getRows() <em>Rows</em>}' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getRows()
+	 * @generated
+	 * @ordered
+	 */
+	protected EList<GridRow> rows;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected SomeGridImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return ReportDSLPackage.Literals.SOME_GRID;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EList<GridRow> getRows() {
+		if (rows == null) {
+			rows = new EObjectContainmentEList<GridRow>(GridRow.class, this, ReportDSLPackage.SOME_GRID__ROWS);
+		}
+		return rows;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+		switch (featureID) {
+			case ReportDSLPackage.SOME_GRID__ROWS:
+				return ((InternalEList<?>)getRows()).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 ReportDSLPackage.SOME_GRID__ROWS:
+				return getRows();
+		}
+		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 ReportDSLPackage.SOME_GRID__ROWS:
+				getRows().clear();
+				getRows().addAll((Collection<? extends GridRow>)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case ReportDSLPackage.SOME_GRID__ROWS:
+				getRows().clear();
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case ReportDSLPackage.SOME_GRID__ROWS:
+				return rows != null && !rows.isEmpty();
+		}
+		return super.eIsSet(featureID);
+	}
+
+} //SomeGridImpl
diff --git a/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/impl/StyleImpl.java b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/impl/StyleImpl.java
new file mode 100644
index 0000000..d21d2f4
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/impl/StyleImpl.java
@@ -0,0 +1,1809 @@
+/**
+ * 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:  
+ *  		Christophe Loetz  (Loetz GmbH&Co.KG) - Initial implementation 
+ *  
+ */
+package org.eclipse.osbp.xtext.reportdsl.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.reportdsl.BaseStyle;
+import org.eclipse.osbp.xtext.reportdsl.BorderStyle;
+import org.eclipse.osbp.xtext.reportdsl.Color;
+import org.eclipse.osbp.xtext.reportdsl.Font;
+import org.eclipse.osbp.xtext.reportdsl.MediaStyle;
+import org.eclipse.osbp.xtext.reportdsl.ReportDSLPackage;
+import org.eclipse.osbp.xtext.reportdsl.SomeFormat;
+import org.eclipse.osbp.xtext.reportdsl.Style;
+import org.eclipse.osbp.xtext.reportdsl.TextAlignEnum;
+import org.eclipse.osbp.xtext.reportdsl.UnitEnum;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Style</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.impl.StyleImpl#getFormat <em>Format</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.impl.StyleImpl#getFont <em>Font</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.impl.StyleImpl#getBackgroundcolor <em>Backgroundcolor</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.impl.StyleImpl#getBackgroundcolor_alternate <em>Backgroundcolor alternate</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.impl.StyleImpl#getTextcolor <em>Textcolor</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.impl.StyleImpl#getTextalign <em>Textalign</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.impl.StyleImpl#getBorderTop <em>Border Top</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.impl.StyleImpl#getBorderBottom <em>Border Bottom</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.impl.StyleImpl#getBorderLeft <em>Border Left</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.impl.StyleImpl#getBorderRight <em>Border Right</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.impl.StyleImpl#getPaddingTopValue <em>Padding Top Value</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.impl.StyleImpl#getPaddingTopUnit <em>Padding Top Unit</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.impl.StyleImpl#getPaddingBottomValue <em>Padding Bottom Value</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.impl.StyleImpl#getPaddingBottomUnit <em>Padding Bottom Unit</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.impl.StyleImpl#getPaddingLeftValue <em>Padding Left Value</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.impl.StyleImpl#getPaddingLeftUnit <em>Padding Left Unit</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.impl.StyleImpl#getPaddingRightValue <em>Padding Right Value</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.impl.StyleImpl#getPaddingRightUnit <em>Padding Right Unit</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.impl.StyleImpl#getMarginTopValue <em>Margin Top Value</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.impl.StyleImpl#getMarginTopUnit <em>Margin Top Unit</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.impl.StyleImpl#getMarginLeftValue <em>Margin Left Value</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.impl.StyleImpl#getMarginLeftUnit <em>Margin Left Unit</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.impl.StyleImpl#getMarginBottomValue <em>Margin Bottom Value</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.impl.StyleImpl#getMarginBottomUnit <em>Margin Bottom Unit</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.impl.StyleImpl#getMarginRightValue <em>Margin Right Value</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.impl.StyleImpl#getMarginRightUnit <em>Margin Right Unit</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.impl.StyleImpl#getExtends <em>Extends</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.impl.StyleImpl#getMediastyles <em>Mediastyles</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class StyleImpl extends ReportBaseImpl implements Style {
+	/**
+	 * The cached value of the '{@link #getFormat() <em>Format</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getFormat()
+	 * @generated
+	 * @ordered
+	 */
+	protected SomeFormat format;
+
+	/**
+	 * The cached value of the '{@link #getFont() <em>Font</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getFont()
+	 * @generated
+	 * @ordered
+	 */
+	protected Font font;
+
+	/**
+	 * The cached value of the '{@link #getBackgroundcolor() <em>Backgroundcolor</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getBackgroundcolor()
+	 * @generated
+	 * @ordered
+	 */
+	protected Color backgroundcolor;
+
+	/**
+	 * The cached value of the '{@link #getBackgroundcolor_alternate() <em>Backgroundcolor alternate</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getBackgroundcolor_alternate()
+	 * @generated
+	 * @ordered
+	 */
+	protected Color backgroundcolor_alternate;
+
+	/**
+	 * The cached value of the '{@link #getTextcolor() <em>Textcolor</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getTextcolor()
+	 * @generated
+	 * @ordered
+	 */
+	protected Color textcolor;
+
+	/**
+	 * The default value of the '{@link #getTextalign() <em>Textalign</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getTextalign()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final TextAlignEnum TEXTALIGN_EDEFAULT = TextAlignEnum.NULL;
+
+	/**
+	 * The cached value of the '{@link #getTextalign() <em>Textalign</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getTextalign()
+	 * @generated
+	 * @ordered
+	 */
+	protected TextAlignEnum textalign = TEXTALIGN_EDEFAULT;
+
+	/**
+	 * The cached value of the '{@link #getBorderTop() <em>Border Top</em>}' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getBorderTop()
+	 * @generated
+	 * @ordered
+	 */
+	protected BorderStyle borderTop;
+
+	/**
+	 * The cached value of the '{@link #getBorderBottom() <em>Border Bottom</em>}' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getBorderBottom()
+	 * @generated
+	 * @ordered
+	 */
+	protected BorderStyle borderBottom;
+
+	/**
+	 * The cached value of the '{@link #getBorderLeft() <em>Border Left</em>}' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getBorderLeft()
+	 * @generated
+	 * @ordered
+	 */
+	protected BorderStyle borderLeft;
+
+	/**
+	 * The cached value of the '{@link #getBorderRight() <em>Border Right</em>}' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getBorderRight()
+	 * @generated
+	 * @ordered
+	 */
+	protected BorderStyle borderRight;
+
+	/**
+	 * The default value of the '{@link #getPaddingTopValue() <em>Padding Top Value</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getPaddingTopValue()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final double PADDING_TOP_VALUE_EDEFAULT = 0.0;
+
+	/**
+	 * The cached value of the '{@link #getPaddingTopValue() <em>Padding Top Value</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getPaddingTopValue()
+	 * @generated
+	 * @ordered
+	 */
+	protected double paddingTopValue = PADDING_TOP_VALUE_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getPaddingTopUnit() <em>Padding Top Unit</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getPaddingTopUnit()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final UnitEnum PADDING_TOP_UNIT_EDEFAULT = UnitEnum.NULL;
+
+	/**
+	 * The cached value of the '{@link #getPaddingTopUnit() <em>Padding Top Unit</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getPaddingTopUnit()
+	 * @generated
+	 * @ordered
+	 */
+	protected UnitEnum paddingTopUnit = PADDING_TOP_UNIT_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getPaddingBottomValue() <em>Padding Bottom Value</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getPaddingBottomValue()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final double PADDING_BOTTOM_VALUE_EDEFAULT = 0.0;
+
+	/**
+	 * The cached value of the '{@link #getPaddingBottomValue() <em>Padding Bottom Value</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getPaddingBottomValue()
+	 * @generated
+	 * @ordered
+	 */
+	protected double paddingBottomValue = PADDING_BOTTOM_VALUE_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getPaddingBottomUnit() <em>Padding Bottom Unit</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getPaddingBottomUnit()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final UnitEnum PADDING_BOTTOM_UNIT_EDEFAULT = UnitEnum.NULL;
+
+	/**
+	 * The cached value of the '{@link #getPaddingBottomUnit() <em>Padding Bottom Unit</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getPaddingBottomUnit()
+	 * @generated
+	 * @ordered
+	 */
+	protected UnitEnum paddingBottomUnit = PADDING_BOTTOM_UNIT_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getPaddingLeftValue() <em>Padding Left Value</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getPaddingLeftValue()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final double PADDING_LEFT_VALUE_EDEFAULT = 0.0;
+
+	/**
+	 * The cached value of the '{@link #getPaddingLeftValue() <em>Padding Left Value</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getPaddingLeftValue()
+	 * @generated
+	 * @ordered
+	 */
+	protected double paddingLeftValue = PADDING_LEFT_VALUE_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getPaddingLeftUnit() <em>Padding Left Unit</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getPaddingLeftUnit()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final UnitEnum PADDING_LEFT_UNIT_EDEFAULT = UnitEnum.NULL;
+
+	/**
+	 * The cached value of the '{@link #getPaddingLeftUnit() <em>Padding Left Unit</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getPaddingLeftUnit()
+	 * @generated
+	 * @ordered
+	 */
+	protected UnitEnum paddingLeftUnit = PADDING_LEFT_UNIT_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getPaddingRightValue() <em>Padding Right Value</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getPaddingRightValue()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final double PADDING_RIGHT_VALUE_EDEFAULT = 0.0;
+
+	/**
+	 * The cached value of the '{@link #getPaddingRightValue() <em>Padding Right Value</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getPaddingRightValue()
+	 * @generated
+	 * @ordered
+	 */
+	protected double paddingRightValue = PADDING_RIGHT_VALUE_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getPaddingRightUnit() <em>Padding Right Unit</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getPaddingRightUnit()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final UnitEnum PADDING_RIGHT_UNIT_EDEFAULT = UnitEnum.NULL;
+
+	/**
+	 * The cached value of the '{@link #getPaddingRightUnit() <em>Padding Right Unit</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getPaddingRightUnit()
+	 * @generated
+	 * @ordered
+	 */
+	protected UnitEnum paddingRightUnit = PADDING_RIGHT_UNIT_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getMarginTopValue() <em>Margin Top Value</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getMarginTopValue()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final double MARGIN_TOP_VALUE_EDEFAULT = 0.0;
+
+	/**
+	 * The cached value of the '{@link #getMarginTopValue() <em>Margin Top Value</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getMarginTopValue()
+	 * @generated
+	 * @ordered
+	 */
+	protected double marginTopValue = MARGIN_TOP_VALUE_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getMarginTopUnit() <em>Margin Top Unit</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getMarginTopUnit()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final UnitEnum MARGIN_TOP_UNIT_EDEFAULT = UnitEnum.NULL;
+
+	/**
+	 * The cached value of the '{@link #getMarginTopUnit() <em>Margin Top Unit</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getMarginTopUnit()
+	 * @generated
+	 * @ordered
+	 */
+	protected UnitEnum marginTopUnit = MARGIN_TOP_UNIT_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getMarginLeftValue() <em>Margin Left Value</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getMarginLeftValue()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final double MARGIN_LEFT_VALUE_EDEFAULT = 0.0;
+
+	/**
+	 * The cached value of the '{@link #getMarginLeftValue() <em>Margin Left Value</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getMarginLeftValue()
+	 * @generated
+	 * @ordered
+	 */
+	protected double marginLeftValue = MARGIN_LEFT_VALUE_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getMarginLeftUnit() <em>Margin Left Unit</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getMarginLeftUnit()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final UnitEnum MARGIN_LEFT_UNIT_EDEFAULT = UnitEnum.NULL;
+
+	/**
+	 * The cached value of the '{@link #getMarginLeftUnit() <em>Margin Left Unit</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getMarginLeftUnit()
+	 * @generated
+	 * @ordered
+	 */
+	protected UnitEnum marginLeftUnit = MARGIN_LEFT_UNIT_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getMarginBottomValue() <em>Margin Bottom Value</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getMarginBottomValue()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final double MARGIN_BOTTOM_VALUE_EDEFAULT = 0.0;
+
+	/**
+	 * The cached value of the '{@link #getMarginBottomValue() <em>Margin Bottom Value</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getMarginBottomValue()
+	 * @generated
+	 * @ordered
+	 */
+	protected double marginBottomValue = MARGIN_BOTTOM_VALUE_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getMarginBottomUnit() <em>Margin Bottom Unit</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getMarginBottomUnit()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final UnitEnum MARGIN_BOTTOM_UNIT_EDEFAULT = UnitEnum.NULL;
+
+	/**
+	 * The cached value of the '{@link #getMarginBottomUnit() <em>Margin Bottom Unit</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getMarginBottomUnit()
+	 * @generated
+	 * @ordered
+	 */
+	protected UnitEnum marginBottomUnit = MARGIN_BOTTOM_UNIT_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getMarginRightValue() <em>Margin Right Value</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getMarginRightValue()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final double MARGIN_RIGHT_VALUE_EDEFAULT = 0.0;
+
+	/**
+	 * The cached value of the '{@link #getMarginRightValue() <em>Margin Right Value</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getMarginRightValue()
+	 * @generated
+	 * @ordered
+	 */
+	protected double marginRightValue = MARGIN_RIGHT_VALUE_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getMarginRightUnit() <em>Margin Right Unit</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getMarginRightUnit()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final UnitEnum MARGIN_RIGHT_UNIT_EDEFAULT = UnitEnum.NULL;
+
+	/**
+	 * The cached value of the '{@link #getMarginRightUnit() <em>Margin Right Unit</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getMarginRightUnit()
+	 * @generated
+	 * @ordered
+	 */
+	protected UnitEnum marginRightUnit = MARGIN_RIGHT_UNIT_EDEFAULT;
+
+	/**
+	 * The cached value of the '{@link #getExtends() <em>Extends</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getExtends()
+	 * @generated
+	 * @ordered
+	 */
+	protected Style extends_;
+
+	/**
+	 * The cached value of the '{@link #getMediastyles() <em>Mediastyles</em>}' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getMediastyles()
+	 * @generated
+	 * @ordered
+	 */
+	protected EList<MediaStyle> mediastyles;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected StyleImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return ReportDSLPackage.Literals.STYLE;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public SomeFormat getFormat() {
+		if (format != null && format.eIsProxy()) {
+			InternalEObject oldFormat = (InternalEObject)format;
+			format = (SomeFormat)eResolveProxy(oldFormat);
+			if (format != oldFormat) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, ReportDSLPackage.STYLE__FORMAT, oldFormat, format));
+			}
+		}
+		return format;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public SomeFormat basicGetFormat() {
+		return format;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setFormat(SomeFormat newFormat) {
+		SomeFormat oldFormat = format;
+		format = newFormat;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ReportDSLPackage.STYLE__FORMAT, oldFormat, format));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Font getFont() {
+		if (font != null && font.eIsProxy()) {
+			InternalEObject oldFont = (InternalEObject)font;
+			font = (Font)eResolveProxy(oldFont);
+			if (font != oldFont) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, ReportDSLPackage.STYLE__FONT, oldFont, font));
+			}
+		}
+		return font;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Font basicGetFont() {
+		return font;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setFont(Font newFont) {
+		Font oldFont = font;
+		font = newFont;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ReportDSLPackage.STYLE__FONT, oldFont, font));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Color getBackgroundcolor() {
+		if (backgroundcolor != null && backgroundcolor.eIsProxy()) {
+			InternalEObject oldBackgroundcolor = (InternalEObject)backgroundcolor;
+			backgroundcolor = (Color)eResolveProxy(oldBackgroundcolor);
+			if (backgroundcolor != oldBackgroundcolor) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, ReportDSLPackage.STYLE__BACKGROUNDCOLOR, oldBackgroundcolor, backgroundcolor));
+			}
+		}
+		return backgroundcolor;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Color basicGetBackgroundcolor() {
+		return backgroundcolor;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setBackgroundcolor(Color newBackgroundcolor) {
+		Color oldBackgroundcolor = backgroundcolor;
+		backgroundcolor = newBackgroundcolor;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ReportDSLPackage.STYLE__BACKGROUNDCOLOR, oldBackgroundcolor, backgroundcolor));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Color getBackgroundcolor_alternate() {
+		if (backgroundcolor_alternate != null && backgroundcolor_alternate.eIsProxy()) {
+			InternalEObject oldBackgroundcolor_alternate = (InternalEObject)backgroundcolor_alternate;
+			backgroundcolor_alternate = (Color)eResolveProxy(oldBackgroundcolor_alternate);
+			if (backgroundcolor_alternate != oldBackgroundcolor_alternate) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, ReportDSLPackage.STYLE__BACKGROUNDCOLOR_ALTERNATE, oldBackgroundcolor_alternate, backgroundcolor_alternate));
+			}
+		}
+		return backgroundcolor_alternate;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Color basicGetBackgroundcolor_alternate() {
+		return backgroundcolor_alternate;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setBackgroundcolor_alternate(Color newBackgroundcolor_alternate) {
+		Color oldBackgroundcolor_alternate = backgroundcolor_alternate;
+		backgroundcolor_alternate = newBackgroundcolor_alternate;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ReportDSLPackage.STYLE__BACKGROUNDCOLOR_ALTERNATE, oldBackgroundcolor_alternate, backgroundcolor_alternate));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Color getTextcolor() {
+		if (textcolor != null && textcolor.eIsProxy()) {
+			InternalEObject oldTextcolor = (InternalEObject)textcolor;
+			textcolor = (Color)eResolveProxy(oldTextcolor);
+			if (textcolor != oldTextcolor) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, ReportDSLPackage.STYLE__TEXTCOLOR, oldTextcolor, textcolor));
+			}
+		}
+		return textcolor;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Color basicGetTextcolor() {
+		return textcolor;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setTextcolor(Color newTextcolor) {
+		Color oldTextcolor = textcolor;
+		textcolor = newTextcolor;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ReportDSLPackage.STYLE__TEXTCOLOR, oldTextcolor, textcolor));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public TextAlignEnum getTextalign() {
+		return textalign;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setTextalign(TextAlignEnum newTextalign) {
+		TextAlignEnum oldTextalign = textalign;
+		textalign = newTextalign == null ? TEXTALIGN_EDEFAULT : newTextalign;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ReportDSLPackage.STYLE__TEXTALIGN, oldTextalign, textalign));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public BorderStyle getBorderTop() {
+		return borderTop;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public NotificationChain basicSetBorderTop(BorderStyle newBorderTop, NotificationChain msgs) {
+		BorderStyle oldBorderTop = borderTop;
+		borderTop = newBorderTop;
+		if (eNotificationRequired()) {
+			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, ReportDSLPackage.STYLE__BORDER_TOP, oldBorderTop, newBorderTop);
+			if (msgs == null) msgs = notification; else msgs.add(notification);
+		}
+		return msgs;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setBorderTop(BorderStyle newBorderTop) {
+		if (newBorderTop != borderTop) {
+			NotificationChain msgs = null;
+			if (borderTop != null)
+				msgs = ((InternalEObject)borderTop).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - ReportDSLPackage.STYLE__BORDER_TOP, null, msgs);
+			if (newBorderTop != null)
+				msgs = ((InternalEObject)newBorderTop).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - ReportDSLPackage.STYLE__BORDER_TOP, null, msgs);
+			msgs = basicSetBorderTop(newBorderTop, msgs);
+			if (msgs != null) msgs.dispatch();
+		}
+		else if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ReportDSLPackage.STYLE__BORDER_TOP, newBorderTop, newBorderTop));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public BorderStyle getBorderBottom() {
+		return borderBottom;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public NotificationChain basicSetBorderBottom(BorderStyle newBorderBottom, NotificationChain msgs) {
+		BorderStyle oldBorderBottom = borderBottom;
+		borderBottom = newBorderBottom;
+		if (eNotificationRequired()) {
+			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, ReportDSLPackage.STYLE__BORDER_BOTTOM, oldBorderBottom, newBorderBottom);
+			if (msgs == null) msgs = notification; else msgs.add(notification);
+		}
+		return msgs;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setBorderBottom(BorderStyle newBorderBottom) {
+		if (newBorderBottom != borderBottom) {
+			NotificationChain msgs = null;
+			if (borderBottom != null)
+				msgs = ((InternalEObject)borderBottom).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - ReportDSLPackage.STYLE__BORDER_BOTTOM, null, msgs);
+			if (newBorderBottom != null)
+				msgs = ((InternalEObject)newBorderBottom).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - ReportDSLPackage.STYLE__BORDER_BOTTOM, null, msgs);
+			msgs = basicSetBorderBottom(newBorderBottom, msgs);
+			if (msgs != null) msgs.dispatch();
+		}
+		else if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ReportDSLPackage.STYLE__BORDER_BOTTOM, newBorderBottom, newBorderBottom));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public BorderStyle getBorderLeft() {
+		return borderLeft;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public NotificationChain basicSetBorderLeft(BorderStyle newBorderLeft, NotificationChain msgs) {
+		BorderStyle oldBorderLeft = borderLeft;
+		borderLeft = newBorderLeft;
+		if (eNotificationRequired()) {
+			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, ReportDSLPackage.STYLE__BORDER_LEFT, oldBorderLeft, newBorderLeft);
+			if (msgs == null) msgs = notification; else msgs.add(notification);
+		}
+		return msgs;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setBorderLeft(BorderStyle newBorderLeft) {
+		if (newBorderLeft != borderLeft) {
+			NotificationChain msgs = null;
+			if (borderLeft != null)
+				msgs = ((InternalEObject)borderLeft).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - ReportDSLPackage.STYLE__BORDER_LEFT, null, msgs);
+			if (newBorderLeft != null)
+				msgs = ((InternalEObject)newBorderLeft).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - ReportDSLPackage.STYLE__BORDER_LEFT, null, msgs);
+			msgs = basicSetBorderLeft(newBorderLeft, msgs);
+			if (msgs != null) msgs.dispatch();
+		}
+		else if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ReportDSLPackage.STYLE__BORDER_LEFT, newBorderLeft, newBorderLeft));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public BorderStyle getBorderRight() {
+		return borderRight;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public NotificationChain basicSetBorderRight(BorderStyle newBorderRight, NotificationChain msgs) {
+		BorderStyle oldBorderRight = borderRight;
+		borderRight = newBorderRight;
+		if (eNotificationRequired()) {
+			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, ReportDSLPackage.STYLE__BORDER_RIGHT, oldBorderRight, newBorderRight);
+			if (msgs == null) msgs = notification; else msgs.add(notification);
+		}
+		return msgs;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setBorderRight(BorderStyle newBorderRight) {
+		if (newBorderRight != borderRight) {
+			NotificationChain msgs = null;
+			if (borderRight != null)
+				msgs = ((InternalEObject)borderRight).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - ReportDSLPackage.STYLE__BORDER_RIGHT, null, msgs);
+			if (newBorderRight != null)
+				msgs = ((InternalEObject)newBorderRight).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - ReportDSLPackage.STYLE__BORDER_RIGHT, null, msgs);
+			msgs = basicSetBorderRight(newBorderRight, msgs);
+			if (msgs != null) msgs.dispatch();
+		}
+		else if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ReportDSLPackage.STYLE__BORDER_RIGHT, newBorderRight, newBorderRight));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public double getPaddingTopValue() {
+		return paddingTopValue;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setPaddingTopValue(double newPaddingTopValue) {
+		double oldPaddingTopValue = paddingTopValue;
+		paddingTopValue = newPaddingTopValue;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ReportDSLPackage.STYLE__PADDING_TOP_VALUE, oldPaddingTopValue, paddingTopValue));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public UnitEnum getPaddingTopUnit() {
+		return paddingTopUnit;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setPaddingTopUnit(UnitEnum newPaddingTopUnit) {
+		UnitEnum oldPaddingTopUnit = paddingTopUnit;
+		paddingTopUnit = newPaddingTopUnit == null ? PADDING_TOP_UNIT_EDEFAULT : newPaddingTopUnit;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ReportDSLPackage.STYLE__PADDING_TOP_UNIT, oldPaddingTopUnit, paddingTopUnit));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public double getPaddingBottomValue() {
+		return paddingBottomValue;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setPaddingBottomValue(double newPaddingBottomValue) {
+		double oldPaddingBottomValue = paddingBottomValue;
+		paddingBottomValue = newPaddingBottomValue;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ReportDSLPackage.STYLE__PADDING_BOTTOM_VALUE, oldPaddingBottomValue, paddingBottomValue));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public UnitEnum getPaddingBottomUnit() {
+		return paddingBottomUnit;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setPaddingBottomUnit(UnitEnum newPaddingBottomUnit) {
+		UnitEnum oldPaddingBottomUnit = paddingBottomUnit;
+		paddingBottomUnit = newPaddingBottomUnit == null ? PADDING_BOTTOM_UNIT_EDEFAULT : newPaddingBottomUnit;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ReportDSLPackage.STYLE__PADDING_BOTTOM_UNIT, oldPaddingBottomUnit, paddingBottomUnit));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public double getPaddingLeftValue() {
+		return paddingLeftValue;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setPaddingLeftValue(double newPaddingLeftValue) {
+		double oldPaddingLeftValue = paddingLeftValue;
+		paddingLeftValue = newPaddingLeftValue;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ReportDSLPackage.STYLE__PADDING_LEFT_VALUE, oldPaddingLeftValue, paddingLeftValue));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public UnitEnum getPaddingLeftUnit() {
+		return paddingLeftUnit;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setPaddingLeftUnit(UnitEnum newPaddingLeftUnit) {
+		UnitEnum oldPaddingLeftUnit = paddingLeftUnit;
+		paddingLeftUnit = newPaddingLeftUnit == null ? PADDING_LEFT_UNIT_EDEFAULT : newPaddingLeftUnit;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ReportDSLPackage.STYLE__PADDING_LEFT_UNIT, oldPaddingLeftUnit, paddingLeftUnit));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public double getPaddingRightValue() {
+		return paddingRightValue;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setPaddingRightValue(double newPaddingRightValue) {
+		double oldPaddingRightValue = paddingRightValue;
+		paddingRightValue = newPaddingRightValue;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ReportDSLPackage.STYLE__PADDING_RIGHT_VALUE, oldPaddingRightValue, paddingRightValue));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public UnitEnum getPaddingRightUnit() {
+		return paddingRightUnit;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setPaddingRightUnit(UnitEnum newPaddingRightUnit) {
+		UnitEnum oldPaddingRightUnit = paddingRightUnit;
+		paddingRightUnit = newPaddingRightUnit == null ? PADDING_RIGHT_UNIT_EDEFAULT : newPaddingRightUnit;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ReportDSLPackage.STYLE__PADDING_RIGHT_UNIT, oldPaddingRightUnit, paddingRightUnit));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public double getMarginTopValue() {
+		return marginTopValue;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setMarginTopValue(double newMarginTopValue) {
+		double oldMarginTopValue = marginTopValue;
+		marginTopValue = newMarginTopValue;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ReportDSLPackage.STYLE__MARGIN_TOP_VALUE, oldMarginTopValue, marginTopValue));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public UnitEnum getMarginTopUnit() {
+		return marginTopUnit;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setMarginTopUnit(UnitEnum newMarginTopUnit) {
+		UnitEnum oldMarginTopUnit = marginTopUnit;
+		marginTopUnit = newMarginTopUnit == null ? MARGIN_TOP_UNIT_EDEFAULT : newMarginTopUnit;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ReportDSLPackage.STYLE__MARGIN_TOP_UNIT, oldMarginTopUnit, marginTopUnit));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public double getMarginLeftValue() {
+		return marginLeftValue;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setMarginLeftValue(double newMarginLeftValue) {
+		double oldMarginLeftValue = marginLeftValue;
+		marginLeftValue = newMarginLeftValue;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ReportDSLPackage.STYLE__MARGIN_LEFT_VALUE, oldMarginLeftValue, marginLeftValue));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public UnitEnum getMarginLeftUnit() {
+		return marginLeftUnit;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setMarginLeftUnit(UnitEnum newMarginLeftUnit) {
+		UnitEnum oldMarginLeftUnit = marginLeftUnit;
+		marginLeftUnit = newMarginLeftUnit == null ? MARGIN_LEFT_UNIT_EDEFAULT : newMarginLeftUnit;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ReportDSLPackage.STYLE__MARGIN_LEFT_UNIT, oldMarginLeftUnit, marginLeftUnit));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public double getMarginBottomValue() {
+		return marginBottomValue;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setMarginBottomValue(double newMarginBottomValue) {
+		double oldMarginBottomValue = marginBottomValue;
+		marginBottomValue = newMarginBottomValue;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ReportDSLPackage.STYLE__MARGIN_BOTTOM_VALUE, oldMarginBottomValue, marginBottomValue));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public UnitEnum getMarginBottomUnit() {
+		return marginBottomUnit;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setMarginBottomUnit(UnitEnum newMarginBottomUnit) {
+		UnitEnum oldMarginBottomUnit = marginBottomUnit;
+		marginBottomUnit = newMarginBottomUnit == null ? MARGIN_BOTTOM_UNIT_EDEFAULT : newMarginBottomUnit;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ReportDSLPackage.STYLE__MARGIN_BOTTOM_UNIT, oldMarginBottomUnit, marginBottomUnit));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public double getMarginRightValue() {
+		return marginRightValue;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setMarginRightValue(double newMarginRightValue) {
+		double oldMarginRightValue = marginRightValue;
+		marginRightValue = newMarginRightValue;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ReportDSLPackage.STYLE__MARGIN_RIGHT_VALUE, oldMarginRightValue, marginRightValue));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public UnitEnum getMarginRightUnit() {
+		return marginRightUnit;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setMarginRightUnit(UnitEnum newMarginRightUnit) {
+		UnitEnum oldMarginRightUnit = marginRightUnit;
+		marginRightUnit = newMarginRightUnit == null ? MARGIN_RIGHT_UNIT_EDEFAULT : newMarginRightUnit;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ReportDSLPackage.STYLE__MARGIN_RIGHT_UNIT, oldMarginRightUnit, marginRightUnit));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Style getExtends() {
+		if (extends_ != null && extends_.eIsProxy()) {
+			InternalEObject oldExtends = (InternalEObject)extends_;
+			extends_ = (Style)eResolveProxy(oldExtends);
+			if (extends_ != oldExtends) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, ReportDSLPackage.STYLE__EXTENDS, oldExtends, extends_));
+			}
+		}
+		return extends_;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Style basicGetExtends() {
+		return extends_;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setExtends(Style newExtends) {
+		Style oldExtends = extends_;
+		extends_ = newExtends;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ReportDSLPackage.STYLE__EXTENDS, oldExtends, extends_));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EList<MediaStyle> getMediastyles() {
+		if (mediastyles == null) {
+			mediastyles = new EObjectContainmentEList<MediaStyle>(MediaStyle.class, this, ReportDSLPackage.STYLE__MEDIASTYLES);
+		}
+		return mediastyles;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+		switch (featureID) {
+			case ReportDSLPackage.STYLE__BORDER_TOP:
+				return basicSetBorderTop(null, msgs);
+			case ReportDSLPackage.STYLE__BORDER_BOTTOM:
+				return basicSetBorderBottom(null, msgs);
+			case ReportDSLPackage.STYLE__BORDER_LEFT:
+				return basicSetBorderLeft(null, msgs);
+			case ReportDSLPackage.STYLE__BORDER_RIGHT:
+				return basicSetBorderRight(null, msgs);
+			case ReportDSLPackage.STYLE__MEDIASTYLES:
+				return ((InternalEList<?>)getMediastyles()).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 ReportDSLPackage.STYLE__FORMAT:
+				if (resolve) return getFormat();
+				return basicGetFormat();
+			case ReportDSLPackage.STYLE__FONT:
+				if (resolve) return getFont();
+				return basicGetFont();
+			case ReportDSLPackage.STYLE__BACKGROUNDCOLOR:
+				if (resolve) return getBackgroundcolor();
+				return basicGetBackgroundcolor();
+			case ReportDSLPackage.STYLE__BACKGROUNDCOLOR_ALTERNATE:
+				if (resolve) return getBackgroundcolor_alternate();
+				return basicGetBackgroundcolor_alternate();
+			case ReportDSLPackage.STYLE__TEXTCOLOR:
+				if (resolve) return getTextcolor();
+				return basicGetTextcolor();
+			case ReportDSLPackage.STYLE__TEXTALIGN:
+				return getTextalign();
+			case ReportDSLPackage.STYLE__BORDER_TOP:
+				return getBorderTop();
+			case ReportDSLPackage.STYLE__BORDER_BOTTOM:
+				return getBorderBottom();
+			case ReportDSLPackage.STYLE__BORDER_LEFT:
+				return getBorderLeft();
+			case ReportDSLPackage.STYLE__BORDER_RIGHT:
+				return getBorderRight();
+			case ReportDSLPackage.STYLE__PADDING_TOP_VALUE:
+				return getPaddingTopValue();
+			case ReportDSLPackage.STYLE__PADDING_TOP_UNIT:
+				return getPaddingTopUnit();
+			case ReportDSLPackage.STYLE__PADDING_BOTTOM_VALUE:
+				return getPaddingBottomValue();
+			case ReportDSLPackage.STYLE__PADDING_BOTTOM_UNIT:
+				return getPaddingBottomUnit();
+			case ReportDSLPackage.STYLE__PADDING_LEFT_VALUE:
+				return getPaddingLeftValue();
+			case ReportDSLPackage.STYLE__PADDING_LEFT_UNIT:
+				return getPaddingLeftUnit();
+			case ReportDSLPackage.STYLE__PADDING_RIGHT_VALUE:
+				return getPaddingRightValue();
+			case ReportDSLPackage.STYLE__PADDING_RIGHT_UNIT:
+				return getPaddingRightUnit();
+			case ReportDSLPackage.STYLE__MARGIN_TOP_VALUE:
+				return getMarginTopValue();
+			case ReportDSLPackage.STYLE__MARGIN_TOP_UNIT:
+				return getMarginTopUnit();
+			case ReportDSLPackage.STYLE__MARGIN_LEFT_VALUE:
+				return getMarginLeftValue();
+			case ReportDSLPackage.STYLE__MARGIN_LEFT_UNIT:
+				return getMarginLeftUnit();
+			case ReportDSLPackage.STYLE__MARGIN_BOTTOM_VALUE:
+				return getMarginBottomValue();
+			case ReportDSLPackage.STYLE__MARGIN_BOTTOM_UNIT:
+				return getMarginBottomUnit();
+			case ReportDSLPackage.STYLE__MARGIN_RIGHT_VALUE:
+				return getMarginRightValue();
+			case ReportDSLPackage.STYLE__MARGIN_RIGHT_UNIT:
+				return getMarginRightUnit();
+			case ReportDSLPackage.STYLE__EXTENDS:
+				if (resolve) return getExtends();
+				return basicGetExtends();
+			case ReportDSLPackage.STYLE__MEDIASTYLES:
+				return getMediastyles();
+		}
+		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 ReportDSLPackage.STYLE__FORMAT:
+				setFormat((SomeFormat)newValue);
+				return;
+			case ReportDSLPackage.STYLE__FONT:
+				setFont((Font)newValue);
+				return;
+			case ReportDSLPackage.STYLE__BACKGROUNDCOLOR:
+				setBackgroundcolor((Color)newValue);
+				return;
+			case ReportDSLPackage.STYLE__BACKGROUNDCOLOR_ALTERNATE:
+				setBackgroundcolor_alternate((Color)newValue);
+				return;
+			case ReportDSLPackage.STYLE__TEXTCOLOR:
+				setTextcolor((Color)newValue);
+				return;
+			case ReportDSLPackage.STYLE__TEXTALIGN:
+				setTextalign((TextAlignEnum)newValue);
+				return;
+			case ReportDSLPackage.STYLE__BORDER_TOP:
+				setBorderTop((BorderStyle)newValue);
+				return;
+			case ReportDSLPackage.STYLE__BORDER_BOTTOM:
+				setBorderBottom((BorderStyle)newValue);
+				return;
+			case ReportDSLPackage.STYLE__BORDER_LEFT:
+				setBorderLeft((BorderStyle)newValue);
+				return;
+			case ReportDSLPackage.STYLE__BORDER_RIGHT:
+				setBorderRight((BorderStyle)newValue);
+				return;
+			case ReportDSLPackage.STYLE__PADDING_TOP_VALUE:
+				setPaddingTopValue((Double)newValue);
+				return;
+			case ReportDSLPackage.STYLE__PADDING_TOP_UNIT:
+				setPaddingTopUnit((UnitEnum)newValue);
+				return;
+			case ReportDSLPackage.STYLE__PADDING_BOTTOM_VALUE:
+				setPaddingBottomValue((Double)newValue);
+				return;
+			case ReportDSLPackage.STYLE__PADDING_BOTTOM_UNIT:
+				setPaddingBottomUnit((UnitEnum)newValue);
+				return;
+			case ReportDSLPackage.STYLE__PADDING_LEFT_VALUE:
+				setPaddingLeftValue((Double)newValue);
+				return;
+			case ReportDSLPackage.STYLE__PADDING_LEFT_UNIT:
+				setPaddingLeftUnit((UnitEnum)newValue);
+				return;
+			case ReportDSLPackage.STYLE__PADDING_RIGHT_VALUE:
+				setPaddingRightValue((Double)newValue);
+				return;
+			case ReportDSLPackage.STYLE__PADDING_RIGHT_UNIT:
+				setPaddingRightUnit((UnitEnum)newValue);
+				return;
+			case ReportDSLPackage.STYLE__MARGIN_TOP_VALUE:
+				setMarginTopValue((Double)newValue);
+				return;
+			case ReportDSLPackage.STYLE__MARGIN_TOP_UNIT:
+				setMarginTopUnit((UnitEnum)newValue);
+				return;
+			case ReportDSLPackage.STYLE__MARGIN_LEFT_VALUE:
+				setMarginLeftValue((Double)newValue);
+				return;
+			case ReportDSLPackage.STYLE__MARGIN_LEFT_UNIT:
+				setMarginLeftUnit((UnitEnum)newValue);
+				return;
+			case ReportDSLPackage.STYLE__MARGIN_BOTTOM_VALUE:
+				setMarginBottomValue((Double)newValue);
+				return;
+			case ReportDSLPackage.STYLE__MARGIN_BOTTOM_UNIT:
+				setMarginBottomUnit((UnitEnum)newValue);
+				return;
+			case ReportDSLPackage.STYLE__MARGIN_RIGHT_VALUE:
+				setMarginRightValue((Double)newValue);
+				return;
+			case ReportDSLPackage.STYLE__MARGIN_RIGHT_UNIT:
+				setMarginRightUnit((UnitEnum)newValue);
+				return;
+			case ReportDSLPackage.STYLE__EXTENDS:
+				setExtends((Style)newValue);
+				return;
+			case ReportDSLPackage.STYLE__MEDIASTYLES:
+				getMediastyles().clear();
+				getMediastyles().addAll((Collection<? extends MediaStyle>)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case ReportDSLPackage.STYLE__FORMAT:
+				setFormat((SomeFormat)null);
+				return;
+			case ReportDSLPackage.STYLE__FONT:
+				setFont((Font)null);
+				return;
+			case ReportDSLPackage.STYLE__BACKGROUNDCOLOR:
+				setBackgroundcolor((Color)null);
+				return;
+			case ReportDSLPackage.STYLE__BACKGROUNDCOLOR_ALTERNATE:
+				setBackgroundcolor_alternate((Color)null);
+				return;
+			case ReportDSLPackage.STYLE__TEXTCOLOR:
+				setTextcolor((Color)null);
+				return;
+			case ReportDSLPackage.STYLE__TEXTALIGN:
+				setTextalign(TEXTALIGN_EDEFAULT);
+				return;
+			case ReportDSLPackage.STYLE__BORDER_TOP:
+				setBorderTop((BorderStyle)null);
+				return;
+			case ReportDSLPackage.STYLE__BORDER_BOTTOM:
+				setBorderBottom((BorderStyle)null);
+				return;
+			case ReportDSLPackage.STYLE__BORDER_LEFT:
+				setBorderLeft((BorderStyle)null);
+				return;
+			case ReportDSLPackage.STYLE__BORDER_RIGHT:
+				setBorderRight((BorderStyle)null);
+				return;
+			case ReportDSLPackage.STYLE__PADDING_TOP_VALUE:
+				setPaddingTopValue(PADDING_TOP_VALUE_EDEFAULT);
+				return;
+			case ReportDSLPackage.STYLE__PADDING_TOP_UNIT:
+				setPaddingTopUnit(PADDING_TOP_UNIT_EDEFAULT);
+				return;
+			case ReportDSLPackage.STYLE__PADDING_BOTTOM_VALUE:
+				setPaddingBottomValue(PADDING_BOTTOM_VALUE_EDEFAULT);
+				return;
+			case ReportDSLPackage.STYLE__PADDING_BOTTOM_UNIT:
+				setPaddingBottomUnit(PADDING_BOTTOM_UNIT_EDEFAULT);
+				return;
+			case ReportDSLPackage.STYLE__PADDING_LEFT_VALUE:
+				setPaddingLeftValue(PADDING_LEFT_VALUE_EDEFAULT);
+				return;
+			case ReportDSLPackage.STYLE__PADDING_LEFT_UNIT:
+				setPaddingLeftUnit(PADDING_LEFT_UNIT_EDEFAULT);
+				return;
+			case ReportDSLPackage.STYLE__PADDING_RIGHT_VALUE:
+				setPaddingRightValue(PADDING_RIGHT_VALUE_EDEFAULT);
+				return;
+			case ReportDSLPackage.STYLE__PADDING_RIGHT_UNIT:
+				setPaddingRightUnit(PADDING_RIGHT_UNIT_EDEFAULT);
+				return;
+			case ReportDSLPackage.STYLE__MARGIN_TOP_VALUE:
+				setMarginTopValue(MARGIN_TOP_VALUE_EDEFAULT);
+				return;
+			case ReportDSLPackage.STYLE__MARGIN_TOP_UNIT:
+				setMarginTopUnit(MARGIN_TOP_UNIT_EDEFAULT);
+				return;
+			case ReportDSLPackage.STYLE__MARGIN_LEFT_VALUE:
+				setMarginLeftValue(MARGIN_LEFT_VALUE_EDEFAULT);
+				return;
+			case ReportDSLPackage.STYLE__MARGIN_LEFT_UNIT:
+				setMarginLeftUnit(MARGIN_LEFT_UNIT_EDEFAULT);
+				return;
+			case ReportDSLPackage.STYLE__MARGIN_BOTTOM_VALUE:
+				setMarginBottomValue(MARGIN_BOTTOM_VALUE_EDEFAULT);
+				return;
+			case ReportDSLPackage.STYLE__MARGIN_BOTTOM_UNIT:
+				setMarginBottomUnit(MARGIN_BOTTOM_UNIT_EDEFAULT);
+				return;
+			case ReportDSLPackage.STYLE__MARGIN_RIGHT_VALUE:
+				setMarginRightValue(MARGIN_RIGHT_VALUE_EDEFAULT);
+				return;
+			case ReportDSLPackage.STYLE__MARGIN_RIGHT_UNIT:
+				setMarginRightUnit(MARGIN_RIGHT_UNIT_EDEFAULT);
+				return;
+			case ReportDSLPackage.STYLE__EXTENDS:
+				setExtends((Style)null);
+				return;
+			case ReportDSLPackage.STYLE__MEDIASTYLES:
+				getMediastyles().clear();
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case ReportDSLPackage.STYLE__FORMAT:
+				return format != null;
+			case ReportDSLPackage.STYLE__FONT:
+				return font != null;
+			case ReportDSLPackage.STYLE__BACKGROUNDCOLOR:
+				return backgroundcolor != null;
+			case ReportDSLPackage.STYLE__BACKGROUNDCOLOR_ALTERNATE:
+				return backgroundcolor_alternate != null;
+			case ReportDSLPackage.STYLE__TEXTCOLOR:
+				return textcolor != null;
+			case ReportDSLPackage.STYLE__TEXTALIGN:
+				return textalign != TEXTALIGN_EDEFAULT;
+			case ReportDSLPackage.STYLE__BORDER_TOP:
+				return borderTop != null;
+			case ReportDSLPackage.STYLE__BORDER_BOTTOM:
+				return borderBottom != null;
+			case ReportDSLPackage.STYLE__BORDER_LEFT:
+				return borderLeft != null;
+			case ReportDSLPackage.STYLE__BORDER_RIGHT:
+				return borderRight != null;
+			case ReportDSLPackage.STYLE__PADDING_TOP_VALUE:
+				return paddingTopValue != PADDING_TOP_VALUE_EDEFAULT;
+			case ReportDSLPackage.STYLE__PADDING_TOP_UNIT:
+				return paddingTopUnit != PADDING_TOP_UNIT_EDEFAULT;
+			case ReportDSLPackage.STYLE__PADDING_BOTTOM_VALUE:
+				return paddingBottomValue != PADDING_BOTTOM_VALUE_EDEFAULT;
+			case ReportDSLPackage.STYLE__PADDING_BOTTOM_UNIT:
+				return paddingBottomUnit != PADDING_BOTTOM_UNIT_EDEFAULT;
+			case ReportDSLPackage.STYLE__PADDING_LEFT_VALUE:
+				return paddingLeftValue != PADDING_LEFT_VALUE_EDEFAULT;
+			case ReportDSLPackage.STYLE__PADDING_LEFT_UNIT:
+				return paddingLeftUnit != PADDING_LEFT_UNIT_EDEFAULT;
+			case ReportDSLPackage.STYLE__PADDING_RIGHT_VALUE:
+				return paddingRightValue != PADDING_RIGHT_VALUE_EDEFAULT;
+			case ReportDSLPackage.STYLE__PADDING_RIGHT_UNIT:
+				return paddingRightUnit != PADDING_RIGHT_UNIT_EDEFAULT;
+			case ReportDSLPackage.STYLE__MARGIN_TOP_VALUE:
+				return marginTopValue != MARGIN_TOP_VALUE_EDEFAULT;
+			case ReportDSLPackage.STYLE__MARGIN_TOP_UNIT:
+				return marginTopUnit != MARGIN_TOP_UNIT_EDEFAULT;
+			case ReportDSLPackage.STYLE__MARGIN_LEFT_VALUE:
+				return marginLeftValue != MARGIN_LEFT_VALUE_EDEFAULT;
+			case ReportDSLPackage.STYLE__MARGIN_LEFT_UNIT:
+				return marginLeftUnit != MARGIN_LEFT_UNIT_EDEFAULT;
+			case ReportDSLPackage.STYLE__MARGIN_BOTTOM_VALUE:
+				return marginBottomValue != MARGIN_BOTTOM_VALUE_EDEFAULT;
+			case ReportDSLPackage.STYLE__MARGIN_BOTTOM_UNIT:
+				return marginBottomUnit != MARGIN_BOTTOM_UNIT_EDEFAULT;
+			case ReportDSLPackage.STYLE__MARGIN_RIGHT_VALUE:
+				return marginRightValue != MARGIN_RIGHT_VALUE_EDEFAULT;
+			case ReportDSLPackage.STYLE__MARGIN_RIGHT_UNIT:
+				return marginRightUnit != MARGIN_RIGHT_UNIT_EDEFAULT;
+			case ReportDSLPackage.STYLE__EXTENDS:
+				return extends_ != null;
+			case ReportDSLPackage.STYLE__MEDIASTYLES:
+				return mediastyles != null && !mediastyles.isEmpty();
+		}
+		return super.eIsSet(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public int eBaseStructuralFeatureID(int derivedFeatureID, Class<?> baseClass) {
+		if (baseClass == BaseStyle.class) {
+			switch (derivedFeatureID) {
+				case ReportDSLPackage.STYLE__FORMAT: return ReportDSLPackage.BASE_STYLE__FORMAT;
+				case ReportDSLPackage.STYLE__FONT: return ReportDSLPackage.BASE_STYLE__FONT;
+				case ReportDSLPackage.STYLE__BACKGROUNDCOLOR: return ReportDSLPackage.BASE_STYLE__BACKGROUNDCOLOR;
+				case ReportDSLPackage.STYLE__BACKGROUNDCOLOR_ALTERNATE: return ReportDSLPackage.BASE_STYLE__BACKGROUNDCOLOR_ALTERNATE;
+				case ReportDSLPackage.STYLE__TEXTCOLOR: return ReportDSLPackage.BASE_STYLE__TEXTCOLOR;
+				case ReportDSLPackage.STYLE__TEXTALIGN: return ReportDSLPackage.BASE_STYLE__TEXTALIGN;
+				case ReportDSLPackage.STYLE__BORDER_TOP: return ReportDSLPackage.BASE_STYLE__BORDER_TOP;
+				case ReportDSLPackage.STYLE__BORDER_BOTTOM: return ReportDSLPackage.BASE_STYLE__BORDER_BOTTOM;
+				case ReportDSLPackage.STYLE__BORDER_LEFT: return ReportDSLPackage.BASE_STYLE__BORDER_LEFT;
+				case ReportDSLPackage.STYLE__BORDER_RIGHT: return ReportDSLPackage.BASE_STYLE__BORDER_RIGHT;
+				case ReportDSLPackage.STYLE__PADDING_TOP_VALUE: return ReportDSLPackage.BASE_STYLE__PADDING_TOP_VALUE;
+				case ReportDSLPackage.STYLE__PADDING_TOP_UNIT: return ReportDSLPackage.BASE_STYLE__PADDING_TOP_UNIT;
+				case ReportDSLPackage.STYLE__PADDING_BOTTOM_VALUE: return ReportDSLPackage.BASE_STYLE__PADDING_BOTTOM_VALUE;
+				case ReportDSLPackage.STYLE__PADDING_BOTTOM_UNIT: return ReportDSLPackage.BASE_STYLE__PADDING_BOTTOM_UNIT;
+				case ReportDSLPackage.STYLE__PADDING_LEFT_VALUE: return ReportDSLPackage.BASE_STYLE__PADDING_LEFT_VALUE;
+				case ReportDSLPackage.STYLE__PADDING_LEFT_UNIT: return ReportDSLPackage.BASE_STYLE__PADDING_LEFT_UNIT;
+				case ReportDSLPackage.STYLE__PADDING_RIGHT_VALUE: return ReportDSLPackage.BASE_STYLE__PADDING_RIGHT_VALUE;
+				case ReportDSLPackage.STYLE__PADDING_RIGHT_UNIT: return ReportDSLPackage.BASE_STYLE__PADDING_RIGHT_UNIT;
+				case ReportDSLPackage.STYLE__MARGIN_TOP_VALUE: return ReportDSLPackage.BASE_STYLE__MARGIN_TOP_VALUE;
+				case ReportDSLPackage.STYLE__MARGIN_TOP_UNIT: return ReportDSLPackage.BASE_STYLE__MARGIN_TOP_UNIT;
+				case ReportDSLPackage.STYLE__MARGIN_LEFT_VALUE: return ReportDSLPackage.BASE_STYLE__MARGIN_LEFT_VALUE;
+				case ReportDSLPackage.STYLE__MARGIN_LEFT_UNIT: return ReportDSLPackage.BASE_STYLE__MARGIN_LEFT_UNIT;
+				case ReportDSLPackage.STYLE__MARGIN_BOTTOM_VALUE: return ReportDSLPackage.BASE_STYLE__MARGIN_BOTTOM_VALUE;
+				case ReportDSLPackage.STYLE__MARGIN_BOTTOM_UNIT: return ReportDSLPackage.BASE_STYLE__MARGIN_BOTTOM_UNIT;
+				case ReportDSLPackage.STYLE__MARGIN_RIGHT_VALUE: return ReportDSLPackage.BASE_STYLE__MARGIN_RIGHT_VALUE;
+				case ReportDSLPackage.STYLE__MARGIN_RIGHT_UNIT: return ReportDSLPackage.BASE_STYLE__MARGIN_RIGHT_UNIT;
+				default: return -1;
+			}
+		}
+		return super.eBaseStructuralFeatureID(derivedFeatureID, baseClass);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public int eDerivedStructuralFeatureID(int baseFeatureID, Class<?> baseClass) {
+		if (baseClass == BaseStyle.class) {
+			switch (baseFeatureID) {
+				case ReportDSLPackage.BASE_STYLE__FORMAT: return ReportDSLPackage.STYLE__FORMAT;
+				case ReportDSLPackage.BASE_STYLE__FONT: return ReportDSLPackage.STYLE__FONT;
+				case ReportDSLPackage.BASE_STYLE__BACKGROUNDCOLOR: return ReportDSLPackage.STYLE__BACKGROUNDCOLOR;
+				case ReportDSLPackage.BASE_STYLE__BACKGROUNDCOLOR_ALTERNATE: return ReportDSLPackage.STYLE__BACKGROUNDCOLOR_ALTERNATE;
+				case ReportDSLPackage.BASE_STYLE__TEXTCOLOR: return ReportDSLPackage.STYLE__TEXTCOLOR;
+				case ReportDSLPackage.BASE_STYLE__TEXTALIGN: return ReportDSLPackage.STYLE__TEXTALIGN;
+				case ReportDSLPackage.BASE_STYLE__BORDER_TOP: return ReportDSLPackage.STYLE__BORDER_TOP;
+				case ReportDSLPackage.BASE_STYLE__BORDER_BOTTOM: return ReportDSLPackage.STYLE__BORDER_BOTTOM;
+				case ReportDSLPackage.BASE_STYLE__BORDER_LEFT: return ReportDSLPackage.STYLE__BORDER_LEFT;
+				case ReportDSLPackage.BASE_STYLE__BORDER_RIGHT: return ReportDSLPackage.STYLE__BORDER_RIGHT;
+				case ReportDSLPackage.BASE_STYLE__PADDING_TOP_VALUE: return ReportDSLPackage.STYLE__PADDING_TOP_VALUE;
+				case ReportDSLPackage.BASE_STYLE__PADDING_TOP_UNIT: return ReportDSLPackage.STYLE__PADDING_TOP_UNIT;
+				case ReportDSLPackage.BASE_STYLE__PADDING_BOTTOM_VALUE: return ReportDSLPackage.STYLE__PADDING_BOTTOM_VALUE;
+				case ReportDSLPackage.BASE_STYLE__PADDING_BOTTOM_UNIT: return ReportDSLPackage.STYLE__PADDING_BOTTOM_UNIT;
+				case ReportDSLPackage.BASE_STYLE__PADDING_LEFT_VALUE: return ReportDSLPackage.STYLE__PADDING_LEFT_VALUE;
+				case ReportDSLPackage.BASE_STYLE__PADDING_LEFT_UNIT: return ReportDSLPackage.STYLE__PADDING_LEFT_UNIT;
+				case ReportDSLPackage.BASE_STYLE__PADDING_RIGHT_VALUE: return ReportDSLPackage.STYLE__PADDING_RIGHT_VALUE;
+				case ReportDSLPackage.BASE_STYLE__PADDING_RIGHT_UNIT: return ReportDSLPackage.STYLE__PADDING_RIGHT_UNIT;
+				case ReportDSLPackage.BASE_STYLE__MARGIN_TOP_VALUE: return ReportDSLPackage.STYLE__MARGIN_TOP_VALUE;
+				case ReportDSLPackage.BASE_STYLE__MARGIN_TOP_UNIT: return ReportDSLPackage.STYLE__MARGIN_TOP_UNIT;
+				case ReportDSLPackage.BASE_STYLE__MARGIN_LEFT_VALUE: return ReportDSLPackage.STYLE__MARGIN_LEFT_VALUE;
+				case ReportDSLPackage.BASE_STYLE__MARGIN_LEFT_UNIT: return ReportDSLPackage.STYLE__MARGIN_LEFT_UNIT;
+				case ReportDSLPackage.BASE_STYLE__MARGIN_BOTTOM_VALUE: return ReportDSLPackage.STYLE__MARGIN_BOTTOM_VALUE;
+				case ReportDSLPackage.BASE_STYLE__MARGIN_BOTTOM_UNIT: return ReportDSLPackage.STYLE__MARGIN_BOTTOM_UNIT;
+				case ReportDSLPackage.BASE_STYLE__MARGIN_RIGHT_VALUE: return ReportDSLPackage.STYLE__MARGIN_RIGHT_VALUE;
+				case ReportDSLPackage.BASE_STYLE__MARGIN_RIGHT_UNIT: return ReportDSLPackage.STYLE__MARGIN_RIGHT_UNIT;
+				default: return -1;
+			}
+		}
+		return super.eDerivedStructuralFeatureID(baseFeatureID, baseClass);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String toString() {
+		if (eIsProxy()) return super.toString();
+
+		StringBuffer result = new StringBuffer(super.toString());
+		result.append(" (textalign: ");
+		result.append(textalign);
+		result.append(", paddingTopValue: ");
+		result.append(paddingTopValue);
+		result.append(", paddingTopUnit: ");
+		result.append(paddingTopUnit);
+		result.append(", paddingBottomValue: ");
+		result.append(paddingBottomValue);
+		result.append(", paddingBottomUnit: ");
+		result.append(paddingBottomUnit);
+		result.append(", paddingLeftValue: ");
+		result.append(paddingLeftValue);
+		result.append(", paddingLeftUnit: ");
+		result.append(paddingLeftUnit);
+		result.append(", paddingRightValue: ");
+		result.append(paddingRightValue);
+		result.append(", paddingRightUnit: ");
+		result.append(paddingRightUnit);
+		result.append(", marginTopValue: ");
+		result.append(marginTopValue);
+		result.append(", marginTopUnit: ");
+		result.append(marginTopUnit);
+		result.append(", marginLeftValue: ");
+		result.append(marginLeftValue);
+		result.append(", marginLeftUnit: ");
+		result.append(marginLeftUnit);
+		result.append(", marginBottomValue: ");
+		result.append(marginBottomValue);
+		result.append(", marginBottomUnit: ");
+		result.append(marginBottomUnit);
+		result.append(", marginRightValue: ");
+		result.append(marginRightValue);
+		result.append(", marginRightUnit: ");
+		result.append(marginRightUnit);
+		result.append(')');
+		return result.toString();
+	}
+
+} //StyleImpl
diff --git a/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/impl/StylesImpl.java b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/impl/StylesImpl.java
new file mode 100644
index 0000000..7b67026
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/impl/StylesImpl.java
@@ -0,0 +1,161 @@
+/**
+ * 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:  
+ *  		Christophe Loetz  (Loetz GmbH&Co.KG) - Initial implementation 
+ *  
+ */
+package org.eclipse.osbp.xtext.reportdsl.impl;
+
+import java.util.Collection;
+
+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.util.EObjectContainmentEList;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+import org.eclipse.osbp.xtext.reportdsl.ReportDSLPackage;
+import org.eclipse.osbp.xtext.reportdsl.Style;
+import org.eclipse.osbp.xtext.reportdsl.Styles;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Styles</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.impl.StylesImpl#getStyles <em>Styles</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class StylesImpl extends ReportLazyResolverImpl implements Styles {
+	/**
+	 * The cached value of the '{@link #getStyles() <em>Styles</em>}' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getStyles()
+	 * @generated
+	 * @ordered
+	 */
+	protected EList<Style> styles;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected StylesImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return ReportDSLPackage.Literals.STYLES;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EList<Style> getStyles() {
+		if (styles == null) {
+			styles = new EObjectContainmentEList<Style>(Style.class, this, ReportDSLPackage.STYLES__STYLES);
+		}
+		return styles;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+		switch (featureID) {
+			case ReportDSLPackage.STYLES__STYLES:
+				return ((InternalEList<?>)getStyles()).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 ReportDSLPackage.STYLES__STYLES:
+				return getStyles();
+		}
+		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 ReportDSLPackage.STYLES__STYLES:
+				getStyles().clear();
+				getStyles().addAll((Collection<? extends Style>)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case ReportDSLPackage.STYLES__STYLES:
+				getStyles().clear();
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case ReportDSLPackage.STYLES__STYLES:
+				return styles != null && !styles.isEmpty();
+		}
+		return super.eIsSet(featureID);
+	}
+
+} //StylesImpl
diff --git a/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/impl/SubSubTitleImpl.java b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/impl/SubSubTitleImpl.java
new file mode 100644
index 0000000..d7f6b14
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/impl/SubSubTitleImpl.java
@@ -0,0 +1,50 @@
+/**
+ * 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:  
+ *  		Christophe Loetz  (Loetz GmbH&Co.KG) - Initial implementation 
+ *  
+ */
+package org.eclipse.osbp.xtext.reportdsl.impl;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.osbp.xtext.reportdsl.ReportDSLPackage;
+import org.eclipse.osbp.xtext.reportdsl.SubSubTitle;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Sub Sub Title</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * </p>
+ *
+ * @generated
+ */
+public class SubSubTitleImpl extends TextElementImpl implements SubSubTitle {
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected SubSubTitleImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return ReportDSLPackage.Literals.SUB_SUB_TITLE;
+	}
+
+} //SubSubTitleImpl
diff --git a/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/impl/SubTitleImpl.java b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/impl/SubTitleImpl.java
new file mode 100644
index 0000000..87e9511
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/impl/SubTitleImpl.java
@@ -0,0 +1,50 @@
+/**
+ * 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:  
+ *  		Christophe Loetz  (Loetz GmbH&Co.KG) - Initial implementation 
+ *  
+ */
+package org.eclipse.osbp.xtext.reportdsl.impl;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.osbp.xtext.reportdsl.ReportDSLPackage;
+import org.eclipse.osbp.xtext.reportdsl.SubTitle;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Sub Title</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * </p>
+ *
+ * @generated
+ */
+public class SubTitleImpl extends TextElementImpl implements SubTitle {
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected SubTitleImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return ReportDSLPackage.Literals.SUB_TITLE;
+	}
+
+} //SubTitleImpl
diff --git a/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/impl/TableAggregationImpl.java b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/impl/TableAggregationImpl.java
new file mode 100644
index 0000000..3bd1abd
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/impl/TableAggregationImpl.java
@@ -0,0 +1,315 @@
+/**
+ * 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:  
+ *  		Christophe Loetz  (Loetz GmbH&Co.KG) - Initial implementation 
+ *  
+ */
+package org.eclipse.osbp.xtext.reportdsl.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.reportdsl.DatamartTableGroup;
+import org.eclipse.osbp.xtext.reportdsl.ReportDSLPackage;
+import org.eclipse.osbp.xtext.reportdsl.TableAggregation;
+import org.eclipse.osbp.xtext.reportdsl.TableBaseAggregation;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Table Aggregation</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.impl.TableAggregationImpl#getText <em>Text</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.impl.TableAggregationImpl#getAggregation <em>Aggregation</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.impl.TableAggregationImpl#getOnGroup <em>On Group</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class TableAggregationImpl extends ReportLazyResolverImpl implements TableAggregation {
+	/**
+	 * The default value of the '{@link #getText() <em>Text</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getText()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String TEXT_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getText() <em>Text</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getText()
+	 * @generated
+	 * @ordered
+	 */
+	protected String text = TEXT_EDEFAULT;
+
+	/**
+	 * The cached value of the '{@link #getAggregation() <em>Aggregation</em>}' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getAggregation()
+	 * @generated
+	 * @ordered
+	 */
+	protected TableBaseAggregation aggregation;
+
+	/**
+	 * The cached value of the '{@link #getOnGroup() <em>On Group</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getOnGroup()
+	 * @generated
+	 * @ordered
+	 */
+	protected DatamartTableGroup onGroup;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected TableAggregationImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return ReportDSLPackage.Literals.TABLE_AGGREGATION;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getText() {
+		return text;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setText(String newText) {
+		String oldText = text;
+		text = newText;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ReportDSLPackage.TABLE_AGGREGATION__TEXT, oldText, text));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public TableBaseAggregation getAggregation() {
+		return aggregation;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public NotificationChain basicSetAggregation(TableBaseAggregation newAggregation, NotificationChain msgs) {
+		TableBaseAggregation oldAggregation = aggregation;
+		aggregation = newAggregation;
+		if (eNotificationRequired()) {
+			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, ReportDSLPackage.TABLE_AGGREGATION__AGGREGATION, oldAggregation, newAggregation);
+			if (msgs == null) msgs = notification; else msgs.add(notification);
+		}
+		return msgs;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setAggregation(TableBaseAggregation newAggregation) {
+		if (newAggregation != aggregation) {
+			NotificationChain msgs = null;
+			if (aggregation != null)
+				msgs = ((InternalEObject)aggregation).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - ReportDSLPackage.TABLE_AGGREGATION__AGGREGATION, null, msgs);
+			if (newAggregation != null)
+				msgs = ((InternalEObject)newAggregation).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - ReportDSLPackage.TABLE_AGGREGATION__AGGREGATION, null, msgs);
+			msgs = basicSetAggregation(newAggregation, msgs);
+			if (msgs != null) msgs.dispatch();
+		}
+		else if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ReportDSLPackage.TABLE_AGGREGATION__AGGREGATION, newAggregation, newAggregation));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public DatamartTableGroup getOnGroup() {
+		if (onGroup != null && onGroup.eIsProxy()) {
+			InternalEObject oldOnGroup = (InternalEObject)onGroup;
+			onGroup = (DatamartTableGroup)eResolveProxy(oldOnGroup);
+			if (onGroup != oldOnGroup) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, ReportDSLPackage.TABLE_AGGREGATION__ON_GROUP, oldOnGroup, onGroup));
+			}
+		}
+		return onGroup;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public DatamartTableGroup basicGetOnGroup() {
+		return onGroup;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setOnGroup(DatamartTableGroup newOnGroup) {
+		DatamartTableGroup oldOnGroup = onGroup;
+		onGroup = newOnGroup;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ReportDSLPackage.TABLE_AGGREGATION__ON_GROUP, oldOnGroup, onGroup));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+		switch (featureID) {
+			case ReportDSLPackage.TABLE_AGGREGATION__AGGREGATION:
+				return basicSetAggregation(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 ReportDSLPackage.TABLE_AGGREGATION__TEXT:
+				return getText();
+			case ReportDSLPackage.TABLE_AGGREGATION__AGGREGATION:
+				return getAggregation();
+			case ReportDSLPackage.TABLE_AGGREGATION__ON_GROUP:
+				if (resolve) return getOnGroup();
+				return basicGetOnGroup();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case ReportDSLPackage.TABLE_AGGREGATION__TEXT:
+				setText((String)newValue);
+				return;
+			case ReportDSLPackage.TABLE_AGGREGATION__AGGREGATION:
+				setAggregation((TableBaseAggregation)newValue);
+				return;
+			case ReportDSLPackage.TABLE_AGGREGATION__ON_GROUP:
+				setOnGroup((DatamartTableGroup)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case ReportDSLPackage.TABLE_AGGREGATION__TEXT:
+				setText(TEXT_EDEFAULT);
+				return;
+			case ReportDSLPackage.TABLE_AGGREGATION__AGGREGATION:
+				setAggregation((TableBaseAggregation)null);
+				return;
+			case ReportDSLPackage.TABLE_AGGREGATION__ON_GROUP:
+				setOnGroup((DatamartTableGroup)null);
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case ReportDSLPackage.TABLE_AGGREGATION__TEXT:
+				return TEXT_EDEFAULT == null ? text != null : !TEXT_EDEFAULT.equals(text);
+			case ReportDSLPackage.TABLE_AGGREGATION__AGGREGATION:
+				return aggregation != null;
+			case ReportDSLPackage.TABLE_AGGREGATION__ON_GROUP:
+				return onGroup != 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(" (text: ");
+		result.append(text);
+		result.append(')');
+		return result.toString();
+	}
+
+} //TableAggregationImpl
diff --git a/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/impl/TableBaseAggregationImpl.java b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/impl/TableBaseAggregationImpl.java
new file mode 100644
index 0000000..43225cd
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/impl/TableBaseAggregationImpl.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:  
+ *  		Christophe Loetz  (Loetz GmbH&Co.KG) - Initial implementation 
+ *  
+ */
+package org.eclipse.osbp.xtext.reportdsl.impl;
+
+import java.util.Collection;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.util.EObjectResolvingEList;
+
+import org.eclipse.osbp.xtext.datamartdsl.DatamartProperty;
+
+import org.eclipse.osbp.xtext.reportdsl.ReportDSLPackage;
+import org.eclipse.osbp.xtext.reportdsl.TableBaseAggregation;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Table Base Aggregation</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.impl.TableBaseAggregationImpl#getValueRefs <em>Value Refs</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class TableBaseAggregationImpl extends ReportLazyResolverImpl implements TableBaseAggregation {
+	/**
+	 * The cached value of the '{@link #getValueRefs() <em>Value Refs</em>}' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getValueRefs()
+	 * @generated
+	 * @ordered
+	 */
+	protected EList<DatamartProperty> valueRefs;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected TableBaseAggregationImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return ReportDSLPackage.Literals.TABLE_BASE_AGGREGATION;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EList<DatamartProperty> getValueRefs() {
+		if (valueRefs == null) {
+			valueRefs = new EObjectResolvingEList<DatamartProperty>(DatamartProperty.class, this, ReportDSLPackage.TABLE_BASE_AGGREGATION__VALUE_REFS);
+		}
+		return valueRefs;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case ReportDSLPackage.TABLE_BASE_AGGREGATION__VALUE_REFS:
+				return getValueRefs();
+		}
+		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 ReportDSLPackage.TABLE_BASE_AGGREGATION__VALUE_REFS:
+				getValueRefs().clear();
+				getValueRefs().addAll((Collection<? extends DatamartProperty>)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case ReportDSLPackage.TABLE_BASE_AGGREGATION__VALUE_REFS:
+				getValueRefs().clear();
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case ReportDSLPackage.TABLE_BASE_AGGREGATION__VALUE_REFS:
+				return valueRefs != null && !valueRefs.isEmpty();
+		}
+		return super.eIsSet(featureID);
+	}
+
+} //TableBaseAggregationImpl
diff --git a/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/impl/TableBinaryAggregationImpl.java b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/impl/TableBinaryAggregationImpl.java
new file mode 100644
index 0000000..658ce09
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/impl/TableBinaryAggregationImpl.java
@@ -0,0 +1,174 @@
+/**
+ * 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:  
+ *  		Christophe Loetz  (Loetz GmbH&Co.KG) - Initial implementation 
+ *  
+ */
+package org.eclipse.osbp.xtext.reportdsl.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.osbp.xtext.reportdsl.BinaryAggregationTypeEnum;
+import org.eclipse.osbp.xtext.reportdsl.ReportDSLPackage;
+import org.eclipse.osbp.xtext.reportdsl.TableBinaryAggregation;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Table Binary Aggregation</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.impl.TableBinaryAggregationImpl#getAggregation <em>Aggregation</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class TableBinaryAggregationImpl extends TableBaseAggregationImpl implements TableBinaryAggregation {
+	/**
+	 * The default value of the '{@link #getAggregation() <em>Aggregation</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getAggregation()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final BinaryAggregationTypeEnum AGGREGATION_EDEFAULT = BinaryAggregationTypeEnum.DIV;
+
+	/**
+	 * The cached value of the '{@link #getAggregation() <em>Aggregation</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getAggregation()
+	 * @generated
+	 * @ordered
+	 */
+	protected BinaryAggregationTypeEnum aggregation = AGGREGATION_EDEFAULT;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected TableBinaryAggregationImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return ReportDSLPackage.Literals.TABLE_BINARY_AGGREGATION;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public BinaryAggregationTypeEnum getAggregation() {
+		return aggregation;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setAggregation(BinaryAggregationTypeEnum newAggregation) {
+		BinaryAggregationTypeEnum oldAggregation = aggregation;
+		aggregation = newAggregation == null ? AGGREGATION_EDEFAULT : newAggregation;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ReportDSLPackage.TABLE_BINARY_AGGREGATION__AGGREGATION, oldAggregation, aggregation));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case ReportDSLPackage.TABLE_BINARY_AGGREGATION__AGGREGATION:
+				return getAggregation();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case ReportDSLPackage.TABLE_BINARY_AGGREGATION__AGGREGATION:
+				setAggregation((BinaryAggregationTypeEnum)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case ReportDSLPackage.TABLE_BINARY_AGGREGATION__AGGREGATION:
+				setAggregation(AGGREGATION_EDEFAULT);
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case ReportDSLPackage.TABLE_BINARY_AGGREGATION__AGGREGATION:
+				return aggregation != AGGREGATION_EDEFAULT;
+		}
+		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(" (aggregation: ");
+		result.append(aggregation);
+		result.append(')');
+		return result.toString();
+	}
+
+} //TableBinaryAggregationImpl
diff --git a/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/impl/TableCellColorImpl.java b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/impl/TableCellColorImpl.java
new file mode 100644
index 0000000..5ab07cc
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/impl/TableCellColorImpl.java
@@ -0,0 +1,167 @@
+/**
+ * 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:  
+ *  		Christophe Loetz  (Loetz GmbH&Co.KG) - Initial implementation 
+ *  
+ */
+package org.eclipse.osbp.xtext.reportdsl.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.reportdsl.Color;
+import org.eclipse.osbp.xtext.reportdsl.ReportDSLPackage;
+import org.eclipse.osbp.xtext.reportdsl.TableCellColor;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Table Cell Color</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.impl.TableCellColorImpl#getColor <em>Color</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class TableCellColorImpl extends ReportLazyResolverImpl implements TableCellColor {
+	/**
+	 * The cached value of the '{@link #getColor() <em>Color</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getColor()
+	 * @generated
+	 * @ordered
+	 */
+	protected Color color;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected TableCellColorImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return ReportDSLPackage.Literals.TABLE_CELL_COLOR;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Color getColor() {
+		if (color != null && color.eIsProxy()) {
+			InternalEObject oldColor = (InternalEObject)color;
+			color = (Color)eResolveProxy(oldColor);
+			if (color != oldColor) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, ReportDSLPackage.TABLE_CELL_COLOR__COLOR, oldColor, color));
+			}
+		}
+		return color;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Color basicGetColor() {
+		return color;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setColor(Color newColor) {
+		Color oldColor = color;
+		color = newColor;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ReportDSLPackage.TABLE_CELL_COLOR__COLOR, oldColor, color));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case ReportDSLPackage.TABLE_CELL_COLOR__COLOR:
+				if (resolve) return getColor();
+				return basicGetColor();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case ReportDSLPackage.TABLE_CELL_COLOR__COLOR:
+				setColor((Color)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case ReportDSLPackage.TABLE_CELL_COLOR__COLOR:
+				setColor((Color)null);
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case ReportDSLPackage.TABLE_CELL_COLOR__COLOR:
+				return color != null;
+		}
+		return super.eIsSet(featureID);
+	}
+
+} //TableCellColorImpl
diff --git a/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/impl/TableDateDayIntervalImpl.java b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/impl/TableDateDayIntervalImpl.java
new file mode 100644
index 0000000..0cc619a
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/impl/TableDateDayIntervalImpl.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:  
+ *  		Christophe Loetz  (Loetz GmbH&Co.KG) - Initial implementation 
+ *  
+ */
+package org.eclipse.osbp.xtext.reportdsl.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.reportdsl.ReportDSLPackage;
+import org.eclipse.osbp.xtext.reportdsl.TableDateDayInterval;
+import org.eclipse.osbp.xtext.reportdsl.TableRangeElement;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Table Date Day Interval</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.impl.TableDateDayIntervalImpl#getDateIntervalValue <em>Date Interval Value</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.impl.TableDateDayIntervalImpl#getDateRange <em>Date Range</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class TableDateDayIntervalImpl extends ReportLazyResolverImpl implements TableDateDayInterval {
+	/**
+	 * The default value of the '{@link #getDateIntervalValue() <em>Date Interval Value</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getDateIntervalValue()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final double DATE_INTERVAL_VALUE_EDEFAULT = 0.0;
+
+	/**
+	 * The cached value of the '{@link #getDateIntervalValue() <em>Date Interval Value</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getDateIntervalValue()
+	 * @generated
+	 * @ordered
+	 */
+	protected double dateIntervalValue = DATE_INTERVAL_VALUE_EDEFAULT;
+
+	/**
+	 * The cached value of the '{@link #getDateRange() <em>Date Range</em>}' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getDateRange()
+	 * @generated
+	 * @ordered
+	 */
+	protected TableRangeElement dateRange;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected TableDateDayIntervalImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return ReportDSLPackage.Literals.TABLE_DATE_DAY_INTERVAL;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public double getDateIntervalValue() {
+		return dateIntervalValue;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setDateIntervalValue(double newDateIntervalValue) {
+		double oldDateIntervalValue = dateIntervalValue;
+		dateIntervalValue = newDateIntervalValue;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ReportDSLPackage.TABLE_DATE_DAY_INTERVAL__DATE_INTERVAL_VALUE, oldDateIntervalValue, dateIntervalValue));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public TableRangeElement getDateRange() {
+		return dateRange;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public NotificationChain basicSetDateRange(TableRangeElement newDateRange, NotificationChain msgs) {
+		TableRangeElement oldDateRange = dateRange;
+		dateRange = newDateRange;
+		if (eNotificationRequired()) {
+			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, ReportDSLPackage.TABLE_DATE_DAY_INTERVAL__DATE_RANGE, oldDateRange, newDateRange);
+			if (msgs == null) msgs = notification; else msgs.add(notification);
+		}
+		return msgs;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setDateRange(TableRangeElement newDateRange) {
+		if (newDateRange != dateRange) {
+			NotificationChain msgs = null;
+			if (dateRange != null)
+				msgs = ((InternalEObject)dateRange).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - ReportDSLPackage.TABLE_DATE_DAY_INTERVAL__DATE_RANGE, null, msgs);
+			if (newDateRange != null)
+				msgs = ((InternalEObject)newDateRange).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - ReportDSLPackage.TABLE_DATE_DAY_INTERVAL__DATE_RANGE, null, msgs);
+			msgs = basicSetDateRange(newDateRange, msgs);
+			if (msgs != null) msgs.dispatch();
+		}
+		else if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ReportDSLPackage.TABLE_DATE_DAY_INTERVAL__DATE_RANGE, newDateRange, newDateRange));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+		switch (featureID) {
+			case ReportDSLPackage.TABLE_DATE_DAY_INTERVAL__DATE_RANGE:
+				return basicSetDateRange(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 ReportDSLPackage.TABLE_DATE_DAY_INTERVAL__DATE_INTERVAL_VALUE:
+				return getDateIntervalValue();
+			case ReportDSLPackage.TABLE_DATE_DAY_INTERVAL__DATE_RANGE:
+				return getDateRange();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case ReportDSLPackage.TABLE_DATE_DAY_INTERVAL__DATE_INTERVAL_VALUE:
+				setDateIntervalValue((Double)newValue);
+				return;
+			case ReportDSLPackage.TABLE_DATE_DAY_INTERVAL__DATE_RANGE:
+				setDateRange((TableRangeElement)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case ReportDSLPackage.TABLE_DATE_DAY_INTERVAL__DATE_INTERVAL_VALUE:
+				setDateIntervalValue(DATE_INTERVAL_VALUE_EDEFAULT);
+				return;
+			case ReportDSLPackage.TABLE_DATE_DAY_INTERVAL__DATE_RANGE:
+				setDateRange((TableRangeElement)null);
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case ReportDSLPackage.TABLE_DATE_DAY_INTERVAL__DATE_INTERVAL_VALUE:
+				return dateIntervalValue != DATE_INTERVAL_VALUE_EDEFAULT;
+			case ReportDSLPackage.TABLE_DATE_DAY_INTERVAL__DATE_RANGE:
+				return dateRange != 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(" (dateIntervalValue: ");
+		result.append(dateIntervalValue);
+		result.append(')');
+		return result.toString();
+	}
+
+} //TableDateDayIntervalImpl
diff --git a/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/impl/TableDateDayLookupImpl.java b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/impl/TableDateDayLookupImpl.java
new file mode 100644
index 0000000..1fa9d9f
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/impl/TableDateDayLookupImpl.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:  
+ *  		Christophe Loetz  (Loetz GmbH&Co.KG) - Initial implementation 
+ *  
+ */
+package org.eclipse.osbp.xtext.reportdsl.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.reportdsl.ReportDSLPackage;
+import org.eclipse.osbp.xtext.reportdsl.TableDateDayLookup;
+import org.eclipse.osbp.xtext.reportdsl.TableRangeElement;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Table Date Day Lookup</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.impl.TableDateDayLookupImpl#getLookupValue <em>Lookup Value</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.impl.TableDateDayLookupImpl#getDiscrete <em>Discrete</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class TableDateDayLookupImpl extends ReportLazyResolverImpl implements TableDateDayLookup {
+	/**
+	 * 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 double LOOKUP_VALUE_EDEFAULT = 0.0;
+
+	/**
+	 * The cached value of the '{@link #getLookupValue() <em>Lookup Value</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getLookupValue()
+	 * @generated
+	 * @ordered
+	 */
+	protected double 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 TableDateDayLookupImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return ReportDSLPackage.Literals.TABLE_DATE_DAY_LOOKUP;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public double getLookupValue() {
+		return lookupValue;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setLookupValue(double newLookupValue) {
+		double oldLookupValue = lookupValue;
+		lookupValue = newLookupValue;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ReportDSLPackage.TABLE_DATE_DAY_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, ReportDSLPackage.TABLE_DATE_DAY_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 - ReportDSLPackage.TABLE_DATE_DAY_LOOKUP__DISCRETE, null, msgs);
+			if (newDiscrete != null)
+				msgs = ((InternalEObject)newDiscrete).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - ReportDSLPackage.TABLE_DATE_DAY_LOOKUP__DISCRETE, null, msgs);
+			msgs = basicSetDiscrete(newDiscrete, msgs);
+			if (msgs != null) msgs.dispatch();
+		}
+		else if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ReportDSLPackage.TABLE_DATE_DAY_LOOKUP__DISCRETE, newDiscrete, newDiscrete));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+		switch (featureID) {
+			case ReportDSLPackage.TABLE_DATE_DAY_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 ReportDSLPackage.TABLE_DATE_DAY_LOOKUP__LOOKUP_VALUE:
+				return getLookupValue();
+			case ReportDSLPackage.TABLE_DATE_DAY_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 ReportDSLPackage.TABLE_DATE_DAY_LOOKUP__LOOKUP_VALUE:
+				setLookupValue((Double)newValue);
+				return;
+			case ReportDSLPackage.TABLE_DATE_DAY_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 ReportDSLPackage.TABLE_DATE_DAY_LOOKUP__LOOKUP_VALUE:
+				setLookupValue(LOOKUP_VALUE_EDEFAULT);
+				return;
+			case ReportDSLPackage.TABLE_DATE_DAY_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 ReportDSLPackage.TABLE_DATE_DAY_LOOKUP__LOOKUP_VALUE:
+				return lookupValue != LOOKUP_VALUE_EDEFAULT;
+			case ReportDSLPackage.TABLE_DATE_DAY_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();
+	}
+
+} //TableDateDayLookupImpl
diff --git a/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/impl/TableFormatterImpl.java b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/impl/TableFormatterImpl.java
new file mode 100644
index 0000000..77df7ac
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/impl/TableFormatterImpl.java
@@ -0,0 +1,174 @@
+/**
+ * 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:  
+ *  		Christophe Loetz  (Loetz GmbH&Co.KG) - Initial implementation 
+ *  
+ */
+package org.eclipse.osbp.xtext.reportdsl.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+
+import org.eclipse.osbp.xtext.reportdsl.ReportDSLPackage;
+import org.eclipse.osbp.xtext.reportdsl.TableFormatter;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Table Formatter</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.impl.TableFormatterImpl#getFormat <em>Format</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class TableFormatterImpl extends MinimalEObjectImpl.Container implements TableFormatter {
+	/**
+	 * The default value of the '{@link #getFormat() <em>Format</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getFormat()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String FORMAT_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getFormat() <em>Format</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getFormat()
+	 * @generated
+	 * @ordered
+	 */
+	protected String format = FORMAT_EDEFAULT;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected TableFormatterImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return ReportDSLPackage.Literals.TABLE_FORMATTER;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getFormat() {
+		return format;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setFormat(String newFormat) {
+		String oldFormat = format;
+		format = newFormat;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ReportDSLPackage.TABLE_FORMATTER__FORMAT, oldFormat, format));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case ReportDSLPackage.TABLE_FORMATTER__FORMAT:
+				return getFormat();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case ReportDSLPackage.TABLE_FORMATTER__FORMAT:
+				setFormat((String)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case ReportDSLPackage.TABLE_FORMATTER__FORMAT:
+				setFormat(FORMAT_EDEFAULT);
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case ReportDSLPackage.TABLE_FORMATTER__FORMAT:
+				return FORMAT_EDEFAULT == null ? format != null : !FORMAT_EDEFAULT.equals(format);
+		}
+		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(" (format: ");
+		result.append(format);
+		result.append(')');
+		return result.toString();
+	}
+
+} //TableFormatterImpl
diff --git a/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/impl/TableIconImpl.java b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/impl/TableIconImpl.java
new file mode 100644
index 0000000..cb09488
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/impl/TableIconImpl.java
@@ -0,0 +1,173 @@
+/**
+ * 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:  
+ *  		Christophe Loetz  (Loetz GmbH&Co.KG) - Initial implementation 
+ *  
+ */
+package org.eclipse.osbp.xtext.reportdsl.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.osbp.xtext.reportdsl.ReportDSLPackage;
+import org.eclipse.osbp.xtext.reportdsl.TableIcon;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Table Icon</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.impl.TableIconImpl#getIcon <em>Icon</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class TableIconImpl extends ReportLazyResolverImpl implements TableIcon {
+	/**
+	 * The default value of the '{@link #getIcon() <em>Icon</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getIcon()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String ICON_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getIcon() <em>Icon</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getIcon()
+	 * @generated
+	 * @ordered
+	 */
+	protected String icon = ICON_EDEFAULT;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected TableIconImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return ReportDSLPackage.Literals.TABLE_ICON;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getIcon() {
+		return icon;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setIcon(String newIcon) {
+		String oldIcon = icon;
+		icon = newIcon;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ReportDSLPackage.TABLE_ICON__ICON, oldIcon, icon));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case ReportDSLPackage.TABLE_ICON__ICON:
+				return getIcon();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case ReportDSLPackage.TABLE_ICON__ICON:
+				setIcon((String)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case ReportDSLPackage.TABLE_ICON__ICON:
+				setIcon(ICON_EDEFAULT);
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case ReportDSLPackage.TABLE_ICON__ICON:
+				return ICON_EDEFAULT == null ? icon != null : !ICON_EDEFAULT.equals(icon);
+		}
+		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(" (icon: ");
+		result.append(icon);
+		result.append(')');
+		return result.toString();
+	}
+
+} //TableIconImpl
diff --git a/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/impl/TableImageImpl.java b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/impl/TableImageImpl.java
new file mode 100644
index 0000000..8e0387b
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/impl/TableImageImpl.java
@@ -0,0 +1,470 @@
+/**
+ * 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:  
+ *  		Christophe Loetz  (Loetz GmbH&Co.KG) - Initial implementation 
+ *  
+ */
+package org.eclipse.osbp.xtext.reportdsl.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.reportdsl.ReportDSLPackage;
+import org.eclipse.osbp.xtext.reportdsl.TableImage;
+import org.eclipse.osbp.xtext.reportdsl.TableValueElement;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Table Image</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.impl.TableImageImpl#getImagePathPattern <em>Image Path Pattern</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.impl.TableImageImpl#isHideImageLabel <em>Hide Image Label</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.impl.TableImageImpl#isHasParameter <em>Has Parameter</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.impl.TableImageImpl#isResize <em>Resize</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.impl.TableImageImpl#getResizeString <em>Resize String</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.impl.TableImageImpl#getImagePathParameter <em>Image Path Parameter</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class TableImageImpl extends ReportLazyResolverImpl implements TableImage {
+	/**
+	 * The default value of the '{@link #getImagePathPattern() <em>Image Path Pattern</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getImagePathPattern()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String IMAGE_PATH_PATTERN_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getImagePathPattern() <em>Image Path Pattern</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getImagePathPattern()
+	 * @generated
+	 * @ordered
+	 */
+	protected String imagePathPattern = IMAGE_PATH_PATTERN_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #isHideImageLabel() <em>Hide Image Label</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isHideImageLabel()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final boolean HIDE_IMAGE_LABEL_EDEFAULT = false;
+
+	/**
+	 * The cached value of the '{@link #isHideImageLabel() <em>Hide Image Label</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isHideImageLabel()
+	 * @generated
+	 * @ordered
+	 */
+	protected boolean hideImageLabel = HIDE_IMAGE_LABEL_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #isHasParameter() <em>Has Parameter</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isHasParameter()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final boolean HAS_PARAMETER_EDEFAULT = false;
+
+	/**
+	 * The cached value of the '{@link #isHasParameter() <em>Has Parameter</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isHasParameter()
+	 * @generated
+	 * @ordered
+	 */
+	protected boolean hasParameter = HAS_PARAMETER_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #isResize() <em>Resize</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isResize()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final boolean RESIZE_EDEFAULT = false;
+
+	/**
+	 * The cached value of the '{@link #isResize() <em>Resize</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isResize()
+	 * @generated
+	 * @ordered
+	 */
+	protected boolean resize = RESIZE_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getResizeString() <em>Resize String</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getResizeString()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String RESIZE_STRING_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getResizeString() <em>Resize String</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getResizeString()
+	 * @generated
+	 * @ordered
+	 */
+	protected String resizeString = RESIZE_STRING_EDEFAULT;
+
+	/**
+	 * The cached value of the '{@link #getImagePathParameter() <em>Image Path Parameter</em>}' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getImagePathParameter()
+	 * @generated
+	 * @ordered
+	 */
+	protected TableValueElement imagePathParameter;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected TableImageImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return ReportDSLPackage.Literals.TABLE_IMAGE;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getImagePathPattern() {
+		return imagePathPattern;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setImagePathPattern(String newImagePathPattern) {
+		String oldImagePathPattern = imagePathPattern;
+		imagePathPattern = newImagePathPattern;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ReportDSLPackage.TABLE_IMAGE__IMAGE_PATH_PATTERN, oldImagePathPattern, imagePathPattern));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public boolean isHideImageLabel() {
+		return hideImageLabel;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setHideImageLabel(boolean newHideImageLabel) {
+		boolean oldHideImageLabel = hideImageLabel;
+		hideImageLabel = newHideImageLabel;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ReportDSLPackage.TABLE_IMAGE__HIDE_IMAGE_LABEL, oldHideImageLabel, hideImageLabel));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public boolean isHasParameter() {
+		return hasParameter;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setHasParameter(boolean newHasParameter) {
+		boolean oldHasParameter = hasParameter;
+		hasParameter = newHasParameter;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ReportDSLPackage.TABLE_IMAGE__HAS_PARAMETER, oldHasParameter, hasParameter));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public boolean isResize() {
+		return resize;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setResize(boolean newResize) {
+		boolean oldResize = resize;
+		resize = newResize;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ReportDSLPackage.TABLE_IMAGE__RESIZE, oldResize, resize));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getResizeString() {
+		return resizeString;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setResizeString(String newResizeString) {
+		String oldResizeString = resizeString;
+		resizeString = newResizeString;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ReportDSLPackage.TABLE_IMAGE__RESIZE_STRING, oldResizeString, resizeString));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public TableValueElement getImagePathParameter() {
+		return imagePathParameter;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public NotificationChain basicSetImagePathParameter(TableValueElement newImagePathParameter, NotificationChain msgs) {
+		TableValueElement oldImagePathParameter = imagePathParameter;
+		imagePathParameter = newImagePathParameter;
+		if (eNotificationRequired()) {
+			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, ReportDSLPackage.TABLE_IMAGE__IMAGE_PATH_PARAMETER, oldImagePathParameter, newImagePathParameter);
+			if (msgs == null) msgs = notification; else msgs.add(notification);
+		}
+		return msgs;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setImagePathParameter(TableValueElement newImagePathParameter) {
+		if (newImagePathParameter != imagePathParameter) {
+			NotificationChain msgs = null;
+			if (imagePathParameter != null)
+				msgs = ((InternalEObject)imagePathParameter).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - ReportDSLPackage.TABLE_IMAGE__IMAGE_PATH_PARAMETER, null, msgs);
+			if (newImagePathParameter != null)
+				msgs = ((InternalEObject)newImagePathParameter).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - ReportDSLPackage.TABLE_IMAGE__IMAGE_PATH_PARAMETER, null, msgs);
+			msgs = basicSetImagePathParameter(newImagePathParameter, msgs);
+			if (msgs != null) msgs.dispatch();
+		}
+		else if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ReportDSLPackage.TABLE_IMAGE__IMAGE_PATH_PARAMETER, newImagePathParameter, newImagePathParameter));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+		switch (featureID) {
+			case ReportDSLPackage.TABLE_IMAGE__IMAGE_PATH_PARAMETER:
+				return basicSetImagePathParameter(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 ReportDSLPackage.TABLE_IMAGE__IMAGE_PATH_PATTERN:
+				return getImagePathPattern();
+			case ReportDSLPackage.TABLE_IMAGE__HIDE_IMAGE_LABEL:
+				return isHideImageLabel();
+			case ReportDSLPackage.TABLE_IMAGE__HAS_PARAMETER:
+				return isHasParameter();
+			case ReportDSLPackage.TABLE_IMAGE__RESIZE:
+				return isResize();
+			case ReportDSLPackage.TABLE_IMAGE__RESIZE_STRING:
+				return getResizeString();
+			case ReportDSLPackage.TABLE_IMAGE__IMAGE_PATH_PARAMETER:
+				return getImagePathParameter();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case ReportDSLPackage.TABLE_IMAGE__IMAGE_PATH_PATTERN:
+				setImagePathPattern((String)newValue);
+				return;
+			case ReportDSLPackage.TABLE_IMAGE__HIDE_IMAGE_LABEL:
+				setHideImageLabel((Boolean)newValue);
+				return;
+			case ReportDSLPackage.TABLE_IMAGE__HAS_PARAMETER:
+				setHasParameter((Boolean)newValue);
+				return;
+			case ReportDSLPackage.TABLE_IMAGE__RESIZE:
+				setResize((Boolean)newValue);
+				return;
+			case ReportDSLPackage.TABLE_IMAGE__RESIZE_STRING:
+				setResizeString((String)newValue);
+				return;
+			case ReportDSLPackage.TABLE_IMAGE__IMAGE_PATH_PARAMETER:
+				setImagePathParameter((TableValueElement)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case ReportDSLPackage.TABLE_IMAGE__IMAGE_PATH_PATTERN:
+				setImagePathPattern(IMAGE_PATH_PATTERN_EDEFAULT);
+				return;
+			case ReportDSLPackage.TABLE_IMAGE__HIDE_IMAGE_LABEL:
+				setHideImageLabel(HIDE_IMAGE_LABEL_EDEFAULT);
+				return;
+			case ReportDSLPackage.TABLE_IMAGE__HAS_PARAMETER:
+				setHasParameter(HAS_PARAMETER_EDEFAULT);
+				return;
+			case ReportDSLPackage.TABLE_IMAGE__RESIZE:
+				setResize(RESIZE_EDEFAULT);
+				return;
+			case ReportDSLPackage.TABLE_IMAGE__RESIZE_STRING:
+				setResizeString(RESIZE_STRING_EDEFAULT);
+				return;
+			case ReportDSLPackage.TABLE_IMAGE__IMAGE_PATH_PARAMETER:
+				setImagePathParameter((TableValueElement)null);
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case ReportDSLPackage.TABLE_IMAGE__IMAGE_PATH_PATTERN:
+				return IMAGE_PATH_PATTERN_EDEFAULT == null ? imagePathPattern != null : !IMAGE_PATH_PATTERN_EDEFAULT.equals(imagePathPattern);
+			case ReportDSLPackage.TABLE_IMAGE__HIDE_IMAGE_LABEL:
+				return hideImageLabel != HIDE_IMAGE_LABEL_EDEFAULT;
+			case ReportDSLPackage.TABLE_IMAGE__HAS_PARAMETER:
+				return hasParameter != HAS_PARAMETER_EDEFAULT;
+			case ReportDSLPackage.TABLE_IMAGE__RESIZE:
+				return resize != RESIZE_EDEFAULT;
+			case ReportDSLPackage.TABLE_IMAGE__RESIZE_STRING:
+				return RESIZE_STRING_EDEFAULT == null ? resizeString != null : !RESIZE_STRING_EDEFAULT.equals(resizeString);
+			case ReportDSLPackage.TABLE_IMAGE__IMAGE_PATH_PARAMETER:
+				return imagePathParameter != 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(" (imagePathPattern: ");
+		result.append(imagePathPattern);
+		result.append(", hideImageLabel: ");
+		result.append(hideImageLabel);
+		result.append(", hasParameter: ");
+		result.append(hasParameter);
+		result.append(", resize: ");
+		result.append(resize);
+		result.append(", resizeString: ");
+		result.append(resizeString);
+		result.append(')');
+		return result.toString();
+	}
+
+} //TableImageImpl
diff --git a/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/impl/TableMultipleAggregationImpl.java b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/impl/TableMultipleAggregationImpl.java
new file mode 100644
index 0000000..2a3128d
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/impl/TableMultipleAggregationImpl.java
@@ -0,0 +1,174 @@
+/**
+ * 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:  
+ *  		Christophe Loetz  (Loetz GmbH&Co.KG) - Initial implementation 
+ *  
+ */
+package org.eclipse.osbp.xtext.reportdsl.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.osbp.xtext.reportdsl.MultipleAggregationTypeEnum;
+import org.eclipse.osbp.xtext.reportdsl.ReportDSLPackage;
+import org.eclipse.osbp.xtext.reportdsl.TableMultipleAggregation;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Table Multiple Aggregation</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.impl.TableMultipleAggregationImpl#getAggregation <em>Aggregation</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class TableMultipleAggregationImpl extends TableBaseAggregationImpl implements TableMultipleAggregation {
+	/**
+	 * The default value of the '{@link #getAggregation() <em>Aggregation</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getAggregation()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final MultipleAggregationTypeEnum AGGREGATION_EDEFAULT = MultipleAggregationTypeEnum.CONCAT;
+
+	/**
+	 * The cached value of the '{@link #getAggregation() <em>Aggregation</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getAggregation()
+	 * @generated
+	 * @ordered
+	 */
+	protected MultipleAggregationTypeEnum aggregation = AGGREGATION_EDEFAULT;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected TableMultipleAggregationImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return ReportDSLPackage.Literals.TABLE_MULTIPLE_AGGREGATION;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public MultipleAggregationTypeEnum getAggregation() {
+		return aggregation;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setAggregation(MultipleAggregationTypeEnum newAggregation) {
+		MultipleAggregationTypeEnum oldAggregation = aggregation;
+		aggregation = newAggregation == null ? AGGREGATION_EDEFAULT : newAggregation;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ReportDSLPackage.TABLE_MULTIPLE_AGGREGATION__AGGREGATION, oldAggregation, aggregation));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case ReportDSLPackage.TABLE_MULTIPLE_AGGREGATION__AGGREGATION:
+				return getAggregation();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case ReportDSLPackage.TABLE_MULTIPLE_AGGREGATION__AGGREGATION:
+				setAggregation((MultipleAggregationTypeEnum)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case ReportDSLPackage.TABLE_MULTIPLE_AGGREGATION__AGGREGATION:
+				setAggregation(AGGREGATION_EDEFAULT);
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case ReportDSLPackage.TABLE_MULTIPLE_AGGREGATION__AGGREGATION:
+				return aggregation != AGGREGATION_EDEFAULT;
+		}
+		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(" (aggregation: ");
+		result.append(aggregation);
+		result.append(')');
+		return result.toString();
+	}
+
+} //TableMultipleAggregationImpl
diff --git a/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/impl/TableNumberIntervalImpl.java b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/impl/TableNumberIntervalImpl.java
new file mode 100644
index 0000000..a25d00f
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/impl/TableNumberIntervalImpl.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:  
+ *  		Christophe Loetz  (Loetz GmbH&Co.KG) - Initial implementation 
+ *  
+ */
+package org.eclipse.osbp.xtext.reportdsl.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.reportdsl.ReportDSLPackage;
+import org.eclipse.osbp.xtext.reportdsl.TableNumberInterval;
+import org.eclipse.osbp.xtext.reportdsl.TableRangeElement;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Table Number Interval</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.impl.TableNumberIntervalImpl#getNumberIntervalValue <em>Number Interval Value</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.impl.TableNumberIntervalImpl#getNumberRange <em>Number Range</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class TableNumberIntervalImpl extends ReportLazyResolverImpl implements TableNumberInterval {
+	/**
+	 * The default value of the '{@link #getNumberIntervalValue() <em>Number Interval Value</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getNumberIntervalValue()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final double NUMBER_INTERVAL_VALUE_EDEFAULT = 0.0;
+
+	/**
+	 * The cached value of the '{@link #getNumberIntervalValue() <em>Number Interval Value</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getNumberIntervalValue()
+	 * @generated
+	 * @ordered
+	 */
+	protected double numberIntervalValue = NUMBER_INTERVAL_VALUE_EDEFAULT;
+
+	/**
+	 * The cached value of the '{@link #getNumberRange() <em>Number Range</em>}' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getNumberRange()
+	 * @generated
+	 * @ordered
+	 */
+	protected TableRangeElement numberRange;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected TableNumberIntervalImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return ReportDSLPackage.Literals.TABLE_NUMBER_INTERVAL;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public double getNumberIntervalValue() {
+		return numberIntervalValue;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setNumberIntervalValue(double newNumberIntervalValue) {
+		double oldNumberIntervalValue = numberIntervalValue;
+		numberIntervalValue = newNumberIntervalValue;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ReportDSLPackage.TABLE_NUMBER_INTERVAL__NUMBER_INTERVAL_VALUE, oldNumberIntervalValue, numberIntervalValue));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public TableRangeElement getNumberRange() {
+		return numberRange;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public NotificationChain basicSetNumberRange(TableRangeElement newNumberRange, NotificationChain msgs) {
+		TableRangeElement oldNumberRange = numberRange;
+		numberRange = newNumberRange;
+		if (eNotificationRequired()) {
+			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, ReportDSLPackage.TABLE_NUMBER_INTERVAL__NUMBER_RANGE, oldNumberRange, newNumberRange);
+			if (msgs == null) msgs = notification; else msgs.add(notification);
+		}
+		return msgs;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setNumberRange(TableRangeElement newNumberRange) {
+		if (newNumberRange != numberRange) {
+			NotificationChain msgs = null;
+			if (numberRange != null)
+				msgs = ((InternalEObject)numberRange).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - ReportDSLPackage.TABLE_NUMBER_INTERVAL__NUMBER_RANGE, null, msgs);
+			if (newNumberRange != null)
+				msgs = ((InternalEObject)newNumberRange).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - ReportDSLPackage.TABLE_NUMBER_INTERVAL__NUMBER_RANGE, null, msgs);
+			msgs = basicSetNumberRange(newNumberRange, msgs);
+			if (msgs != null) msgs.dispatch();
+		}
+		else if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ReportDSLPackage.TABLE_NUMBER_INTERVAL__NUMBER_RANGE, newNumberRange, newNumberRange));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+		switch (featureID) {
+			case ReportDSLPackage.TABLE_NUMBER_INTERVAL__NUMBER_RANGE:
+				return basicSetNumberRange(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 ReportDSLPackage.TABLE_NUMBER_INTERVAL__NUMBER_INTERVAL_VALUE:
+				return getNumberIntervalValue();
+			case ReportDSLPackage.TABLE_NUMBER_INTERVAL__NUMBER_RANGE:
+				return getNumberRange();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case ReportDSLPackage.TABLE_NUMBER_INTERVAL__NUMBER_INTERVAL_VALUE:
+				setNumberIntervalValue((Double)newValue);
+				return;
+			case ReportDSLPackage.TABLE_NUMBER_INTERVAL__NUMBER_RANGE:
+				setNumberRange((TableRangeElement)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case ReportDSLPackage.TABLE_NUMBER_INTERVAL__NUMBER_INTERVAL_VALUE:
+				setNumberIntervalValue(NUMBER_INTERVAL_VALUE_EDEFAULT);
+				return;
+			case ReportDSLPackage.TABLE_NUMBER_INTERVAL__NUMBER_RANGE:
+				setNumberRange((TableRangeElement)null);
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case ReportDSLPackage.TABLE_NUMBER_INTERVAL__NUMBER_INTERVAL_VALUE:
+				return numberIntervalValue != NUMBER_INTERVAL_VALUE_EDEFAULT;
+			case ReportDSLPackage.TABLE_NUMBER_INTERVAL__NUMBER_RANGE:
+				return numberRange != 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(" (numberIntervalValue: ");
+		result.append(numberIntervalValue);
+		result.append(')');
+		return result.toString();
+	}
+
+} //TableNumberIntervalImpl
diff --git a/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/impl/TableNumberLookupImpl.java b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/impl/TableNumberLookupImpl.java
new file mode 100644
index 0000000..c14f461
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/impl/TableNumberLookupImpl.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:  
+ *  		Christophe Loetz  (Loetz GmbH&Co.KG) - Initial implementation 
+ *  
+ */
+package org.eclipse.osbp.xtext.reportdsl.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.reportdsl.ReportDSLPackage;
+import org.eclipse.osbp.xtext.reportdsl.TableNumberLookup;
+import org.eclipse.osbp.xtext.reportdsl.TableRangeElement;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Table Number Lookup</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.impl.TableNumberLookupImpl#getLookupValue <em>Lookup Value</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.impl.TableNumberLookupImpl#getDiscrete <em>Discrete</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class TableNumberLookupImpl extends ReportLazyResolverImpl implements TableNumberLookup {
+	/**
+	 * 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 double LOOKUP_VALUE_EDEFAULT = 0.0;
+
+	/**
+	 * The cached value of the '{@link #getLookupValue() <em>Lookup Value</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getLookupValue()
+	 * @generated
+	 * @ordered
+	 */
+	protected double 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 TableNumberLookupImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return ReportDSLPackage.Literals.TABLE_NUMBER_LOOKUP;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public double getLookupValue() {
+		return lookupValue;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setLookupValue(double newLookupValue) {
+		double oldLookupValue = lookupValue;
+		lookupValue = newLookupValue;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ReportDSLPackage.TABLE_NUMBER_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, ReportDSLPackage.TABLE_NUMBER_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 - ReportDSLPackage.TABLE_NUMBER_LOOKUP__DISCRETE, null, msgs);
+			if (newDiscrete != null)
+				msgs = ((InternalEObject)newDiscrete).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - ReportDSLPackage.TABLE_NUMBER_LOOKUP__DISCRETE, null, msgs);
+			msgs = basicSetDiscrete(newDiscrete, msgs);
+			if (msgs != null) msgs.dispatch();
+		}
+		else if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ReportDSLPackage.TABLE_NUMBER_LOOKUP__DISCRETE, newDiscrete, newDiscrete));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+		switch (featureID) {
+			case ReportDSLPackage.TABLE_NUMBER_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 ReportDSLPackage.TABLE_NUMBER_LOOKUP__LOOKUP_VALUE:
+				return getLookupValue();
+			case ReportDSLPackage.TABLE_NUMBER_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 ReportDSLPackage.TABLE_NUMBER_LOOKUP__LOOKUP_VALUE:
+				setLookupValue((Double)newValue);
+				return;
+			case ReportDSLPackage.TABLE_NUMBER_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 ReportDSLPackage.TABLE_NUMBER_LOOKUP__LOOKUP_VALUE:
+				setLookupValue(LOOKUP_VALUE_EDEFAULT);
+				return;
+			case ReportDSLPackage.TABLE_NUMBER_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 ReportDSLPackage.TABLE_NUMBER_LOOKUP__LOOKUP_VALUE:
+				return lookupValue != LOOKUP_VALUE_EDEFAULT;
+			case ReportDSLPackage.TABLE_NUMBER_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();
+	}
+
+} //TableNumberLookupImpl
diff --git a/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/impl/TablePropertyImpl.java b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/impl/TablePropertyImpl.java
new file mode 100644
index 0000000..e9db54f
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/impl/TablePropertyImpl.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:  
+ *  		Christophe Loetz  (Loetz GmbH&Co.KG) - Initial implementation 
+ *  
+ */
+package org.eclipse.osbp.xtext.reportdsl.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.DatamartProperty;
+
+import org.eclipse.osbp.xtext.reportdsl.ReportDSLPackage;
+import org.eclipse.osbp.xtext.reportdsl.TableProperty;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Table Property</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.impl.TablePropertyImpl#getValueRef <em>Value Ref</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class TablePropertyImpl extends ReportLazyResolverImpl implements TableProperty {
+	/**
+	 * The cached value of the '{@link #getValueRef() <em>Value Ref</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getValueRef()
+	 * @generated
+	 * @ordered
+	 */
+	protected DatamartProperty valueRef;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected TablePropertyImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return ReportDSLPackage.Literals.TABLE_PROPERTY;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public DatamartProperty getValueRef() {
+		if (valueRef != null && valueRef.eIsProxy()) {
+			InternalEObject oldValueRef = (InternalEObject)valueRef;
+			valueRef = (DatamartProperty)eResolveProxy(oldValueRef);
+			if (valueRef != oldValueRef) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, ReportDSLPackage.TABLE_PROPERTY__VALUE_REF, oldValueRef, valueRef));
+			}
+		}
+		return valueRef;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public DatamartProperty basicGetValueRef() {
+		return valueRef;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setValueRef(DatamartProperty newValueRef) {
+		DatamartProperty oldValueRef = valueRef;
+		valueRef = newValueRef;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ReportDSLPackage.TABLE_PROPERTY__VALUE_REF, oldValueRef, valueRef));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case ReportDSLPackage.TABLE_PROPERTY__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 ReportDSLPackage.TABLE_PROPERTY__VALUE_REF:
+				setValueRef((DatamartProperty)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case ReportDSLPackage.TABLE_PROPERTY__VALUE_REF:
+				setValueRef((DatamartProperty)null);
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case ReportDSLPackage.TABLE_PROPERTY__VALUE_REF:
+				return valueRef != null;
+		}
+		return super.eIsSet(featureID);
+	}
+
+} //TablePropertyImpl
diff --git a/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/impl/TablePureAggregationImpl.java b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/impl/TablePureAggregationImpl.java
new file mode 100644
index 0000000..1955f85
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/impl/TablePureAggregationImpl.java
@@ -0,0 +1,174 @@
+/**
+ * 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:  
+ *  		Christophe Loetz  (Loetz GmbH&Co.KG) - Initial implementation 
+ *  
+ */
+package org.eclipse.osbp.xtext.reportdsl.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.osbp.xtext.reportdsl.PureAggregationTypeEnum;
+import org.eclipse.osbp.xtext.reportdsl.ReportDSLPackage;
+import org.eclipse.osbp.xtext.reportdsl.TablePureAggregation;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Table Pure Aggregation</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.impl.TablePureAggregationImpl#getAggregation <em>Aggregation</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class TablePureAggregationImpl extends TableBaseAggregationImpl implements TablePureAggregation {
+	/**
+	 * The default value of the '{@link #getAggregation() <em>Aggregation</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getAggregation()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final PureAggregationTypeEnum AGGREGATION_EDEFAULT = PureAggregationTypeEnum.COUNT;
+
+	/**
+	 * The cached value of the '{@link #getAggregation() <em>Aggregation</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getAggregation()
+	 * @generated
+	 * @ordered
+	 */
+	protected PureAggregationTypeEnum aggregation = AGGREGATION_EDEFAULT;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected TablePureAggregationImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return ReportDSLPackage.Literals.TABLE_PURE_AGGREGATION;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public PureAggregationTypeEnum getAggregation() {
+		return aggregation;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setAggregation(PureAggregationTypeEnum newAggregation) {
+		PureAggregationTypeEnum oldAggregation = aggregation;
+		aggregation = newAggregation == null ? AGGREGATION_EDEFAULT : newAggregation;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ReportDSLPackage.TABLE_PURE_AGGREGATION__AGGREGATION, oldAggregation, aggregation));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case ReportDSLPackage.TABLE_PURE_AGGREGATION__AGGREGATION:
+				return getAggregation();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case ReportDSLPackage.TABLE_PURE_AGGREGATION__AGGREGATION:
+				setAggregation((PureAggregationTypeEnum)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case ReportDSLPackage.TABLE_PURE_AGGREGATION__AGGREGATION:
+				setAggregation(AGGREGATION_EDEFAULT);
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case ReportDSLPackage.TABLE_PURE_AGGREGATION__AGGREGATION:
+				return aggregation != AGGREGATION_EDEFAULT;
+		}
+		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(" (aggregation: ");
+		result.append(aggregation);
+		result.append(')');
+		return result.toString();
+	}
+
+} //TablePureAggregationImpl
diff --git a/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/impl/TableStringLookupImpl.java b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/impl/TableStringLookupImpl.java
new file mode 100644
index 0000000..31f7e04
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/impl/TableStringLookupImpl.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:  
+ *  		Christophe Loetz  (Loetz GmbH&Co.KG) - Initial implementation 
+ *  
+ */
+package org.eclipse.osbp.xtext.reportdsl.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.reportdsl.ReportDSLPackage;
+import org.eclipse.osbp.xtext.reportdsl.TableRangeElement;
+import org.eclipse.osbp.xtext.reportdsl.TableStringLookup;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Table String Lookup</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.impl.TableStringLookupImpl#getLookupValue <em>Lookup Value</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.impl.TableStringLookupImpl#getDiscrete <em>Discrete</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class TableStringLookupImpl extends ReportLazyResolverImpl implements TableStringLookup {
+	/**
+	 * 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 String LOOKUP_VALUE_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getLookupValue() <em>Lookup Value</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getLookupValue()
+	 * @generated
+	 * @ordered
+	 */
+	protected String 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 TableStringLookupImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return ReportDSLPackage.Literals.TABLE_STRING_LOOKUP;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getLookupValue() {
+		return lookupValue;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setLookupValue(String newLookupValue) {
+		String oldLookupValue = lookupValue;
+		lookupValue = newLookupValue;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ReportDSLPackage.TABLE_STRING_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, ReportDSLPackage.TABLE_STRING_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 - ReportDSLPackage.TABLE_STRING_LOOKUP__DISCRETE, null, msgs);
+			if (newDiscrete != null)
+				msgs = ((InternalEObject)newDiscrete).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - ReportDSLPackage.TABLE_STRING_LOOKUP__DISCRETE, null, msgs);
+			msgs = basicSetDiscrete(newDiscrete, msgs);
+			if (msgs != null) msgs.dispatch();
+		}
+		else if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ReportDSLPackage.TABLE_STRING_LOOKUP__DISCRETE, newDiscrete, newDiscrete));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+		switch (featureID) {
+			case ReportDSLPackage.TABLE_STRING_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 ReportDSLPackage.TABLE_STRING_LOOKUP__LOOKUP_VALUE:
+				return getLookupValue();
+			case ReportDSLPackage.TABLE_STRING_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 ReportDSLPackage.TABLE_STRING_LOOKUP__LOOKUP_VALUE:
+				setLookupValue((String)newValue);
+				return;
+			case ReportDSLPackage.TABLE_STRING_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 ReportDSLPackage.TABLE_STRING_LOOKUP__LOOKUP_VALUE:
+				setLookupValue(LOOKUP_VALUE_EDEFAULT);
+				return;
+			case ReportDSLPackage.TABLE_STRING_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 ReportDSLPackage.TABLE_STRING_LOOKUP__LOOKUP_VALUE:
+				return LOOKUP_VALUE_EDEFAULT == null ? lookupValue != null : !LOOKUP_VALUE_EDEFAULT.equals(lookupValue);
+			case ReportDSLPackage.TABLE_STRING_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();
+	}
+
+} //TableStringLookupImpl
diff --git a/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/impl/TableTextColorImpl.java b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/impl/TableTextColorImpl.java
new file mode 100644
index 0000000..f1cd450
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/impl/TableTextColorImpl.java
@@ -0,0 +1,167 @@
+/**
+ * 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:  
+ *  		Christophe Loetz  (Loetz GmbH&Co.KG) - Initial implementation 
+ *  
+ */
+package org.eclipse.osbp.xtext.reportdsl.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.reportdsl.Color;
+import org.eclipse.osbp.xtext.reportdsl.ReportDSLPackage;
+import org.eclipse.osbp.xtext.reportdsl.TableTextColor;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Table Text Color</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.impl.TableTextColorImpl#getColor <em>Color</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class TableTextColorImpl extends ReportLazyResolverImpl implements TableTextColor {
+	/**
+	 * The cached value of the '{@link #getColor() <em>Color</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getColor()
+	 * @generated
+	 * @ordered
+	 */
+	protected Color color;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected TableTextColorImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return ReportDSLPackage.Literals.TABLE_TEXT_COLOR;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Color getColor() {
+		if (color != null && color.eIsProxy()) {
+			InternalEObject oldColor = (InternalEObject)color;
+			color = (Color)eResolveProxy(oldColor);
+			if (color != oldColor) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, ReportDSLPackage.TABLE_TEXT_COLOR__COLOR, oldColor, color));
+			}
+		}
+		return color;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Color basicGetColor() {
+		return color;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setColor(Color newColor) {
+		Color oldColor = color;
+		color = newColor;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ReportDSLPackage.TABLE_TEXT_COLOR__COLOR, oldColor, color));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case ReportDSLPackage.TABLE_TEXT_COLOR__COLOR:
+				if (resolve) return getColor();
+				return basicGetColor();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case ReportDSLPackage.TABLE_TEXT_COLOR__COLOR:
+				setColor((Color)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case ReportDSLPackage.TABLE_TEXT_COLOR__COLOR:
+				setColor((Color)null);
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case ReportDSLPackage.TABLE_TEXT_COLOR__COLOR:
+				return color != null;
+		}
+		return super.eIsSet(featureID);
+	}
+
+} //TableTextColorImpl
diff --git a/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/impl/TableTooltipImpl.java b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/impl/TableTooltipImpl.java
new file mode 100644
index 0000000..18e5554
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/impl/TableTooltipImpl.java
@@ -0,0 +1,173 @@
+/**
+ * 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:  
+ *  		Christophe Loetz  (Loetz GmbH&Co.KG) - Initial implementation 
+ *  
+ */
+package org.eclipse.osbp.xtext.reportdsl.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.osbp.xtext.reportdsl.ReportDSLPackage;
+import org.eclipse.osbp.xtext.reportdsl.TableTooltip;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Table Tooltip</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.impl.TableTooltipImpl#getTooltip <em>Tooltip</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class TableTooltipImpl extends ReportLazyResolverImpl implements TableTooltip {
+	/**
+	 * The default value of the '{@link #getTooltip() <em>Tooltip</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getTooltip()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String TOOLTIP_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getTooltip() <em>Tooltip</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getTooltip()
+	 * @generated
+	 * @ordered
+	 */
+	protected String tooltip = TOOLTIP_EDEFAULT;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected TableTooltipImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return ReportDSLPackage.Literals.TABLE_TOOLTIP;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getTooltip() {
+		return tooltip;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setTooltip(String newTooltip) {
+		String oldTooltip = tooltip;
+		tooltip = newTooltip;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ReportDSLPackage.TABLE_TOOLTIP__TOOLTIP, oldTooltip, tooltip));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case ReportDSLPackage.TABLE_TOOLTIP__TOOLTIP:
+				return getTooltip();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case ReportDSLPackage.TABLE_TOOLTIP__TOOLTIP:
+				setTooltip((String)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case ReportDSLPackage.TABLE_TOOLTIP__TOOLTIP:
+				setTooltip(TOOLTIP_EDEFAULT);
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case ReportDSLPackage.TABLE_TOOLTIP__TOOLTIP:
+				return TOOLTIP_EDEFAULT == null ? tooltip != null : !TOOLTIP_EDEFAULT.equals(tooltip);
+		}
+		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(" (tooltip: ");
+		result.append(tooltip);
+		result.append(')');
+		return result.toString();
+	}
+
+} //TableTooltipImpl
diff --git a/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/impl/TableTrendImpl.java b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/impl/TableTrendImpl.java
new file mode 100644
index 0000000..5ac4b95
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/impl/TableTrendImpl.java
@@ -0,0 +1,174 @@
+/**
+ * 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:  
+ *  		Christophe Loetz  (Loetz GmbH&Co.KG) - Initial implementation 
+ *  
+ */
+package org.eclipse.osbp.xtext.reportdsl.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.osbp.xtext.reportdsl.ReportDSLPackage;
+import org.eclipse.osbp.xtext.reportdsl.TableTrend;
+import org.eclipse.osbp.xtext.reportdsl.TrendIconEnum;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Table Trend</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.impl.TableTrendImpl#getIcon <em>Icon</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class TableTrendImpl extends ReportLazyResolverImpl implements TableTrend {
+	/**
+	 * The default value of the '{@link #getIcon() <em>Icon</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getIcon()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final TrendIconEnum ICON_EDEFAULT = TrendIconEnum.RISING;
+
+	/**
+	 * The cached value of the '{@link #getIcon() <em>Icon</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getIcon()
+	 * @generated
+	 * @ordered
+	 */
+	protected TrendIconEnum icon = ICON_EDEFAULT;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected TableTrendImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return ReportDSLPackage.Literals.TABLE_TREND;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public TrendIconEnum getIcon() {
+		return icon;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setIcon(TrendIconEnum newIcon) {
+		TrendIconEnum oldIcon = icon;
+		icon = newIcon == null ? ICON_EDEFAULT : newIcon;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ReportDSLPackage.TABLE_TREND__ICON, oldIcon, icon));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case ReportDSLPackage.TABLE_TREND__ICON:
+				return getIcon();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case ReportDSLPackage.TABLE_TREND__ICON:
+				setIcon((TrendIconEnum)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case ReportDSLPackage.TABLE_TREND__ICON:
+				setIcon(ICON_EDEFAULT);
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case ReportDSLPackage.TABLE_TREND__ICON:
+				return icon != ICON_EDEFAULT;
+		}
+		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(" (icon: ");
+		result.append(icon);
+		result.append(')');
+		return result.toString();
+	}
+
+} //TableTrendImpl
diff --git a/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/impl/TableUnaryAggregationImpl.java b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/impl/TableUnaryAggregationImpl.java
new file mode 100644
index 0000000..e79ccd8
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/impl/TableUnaryAggregationImpl.java
@@ -0,0 +1,174 @@
+/**
+ * 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:  
+ *  		Christophe Loetz  (Loetz GmbH&Co.KG) - Initial implementation 
+ *  
+ */
+package org.eclipse.osbp.xtext.reportdsl.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.osbp.xtext.reportdsl.ReportDSLPackage;
+import org.eclipse.osbp.xtext.reportdsl.TableUnaryAggregation;
+import org.eclipse.osbp.xtext.reportdsl.UnaryAggregationTypeEnum;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Table Unary Aggregation</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.impl.TableUnaryAggregationImpl#getAggregation <em>Aggregation</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class TableUnaryAggregationImpl extends TableBaseAggregationImpl implements TableUnaryAggregation {
+	/**
+	 * The default value of the '{@link #getAggregation() <em>Aggregation</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getAggregation()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final UnaryAggregationTypeEnum AGGREGATION_EDEFAULT = UnaryAggregationTypeEnum.SUM;
+
+	/**
+	 * The cached value of the '{@link #getAggregation() <em>Aggregation</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getAggregation()
+	 * @generated
+	 * @ordered
+	 */
+	protected UnaryAggregationTypeEnum aggregation = AGGREGATION_EDEFAULT;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected TableUnaryAggregationImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return ReportDSLPackage.Literals.TABLE_UNARY_AGGREGATION;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public UnaryAggregationTypeEnum getAggregation() {
+		return aggregation;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setAggregation(UnaryAggregationTypeEnum newAggregation) {
+		UnaryAggregationTypeEnum oldAggregation = aggregation;
+		aggregation = newAggregation == null ? AGGREGATION_EDEFAULT : newAggregation;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ReportDSLPackage.TABLE_UNARY_AGGREGATION__AGGREGATION, oldAggregation, aggregation));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case ReportDSLPackage.TABLE_UNARY_AGGREGATION__AGGREGATION:
+				return getAggregation();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case ReportDSLPackage.TABLE_UNARY_AGGREGATION__AGGREGATION:
+				setAggregation((UnaryAggregationTypeEnum)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case ReportDSLPackage.TABLE_UNARY_AGGREGATION__AGGREGATION:
+				setAggregation(AGGREGATION_EDEFAULT);
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case ReportDSLPackage.TABLE_UNARY_AGGREGATION__AGGREGATION:
+				return aggregation != AGGREGATION_EDEFAULT;
+		}
+		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(" (aggregation: ");
+		result.append(aggregation);
+		result.append(')');
+		return result.toString();
+	}
+
+} //TableUnaryAggregationImpl
diff --git a/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/impl/TextElementImpl.java b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/impl/TextElementImpl.java
new file mode 100644
index 0000000..3eb6c13
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/impl/TextElementImpl.java
@@ -0,0 +1,268 @@
+/**
+ * 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:  
+ *  		Christophe Loetz  (Loetz GmbH&Co.KG) - Initial implementation 
+ *  
+ */
+package org.eclipse.osbp.xtext.reportdsl.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.reportdsl.ReportDSLPackage;
+import org.eclipse.osbp.xtext.reportdsl.Style;
+import org.eclipse.osbp.xtext.reportdsl.TextElement;
+import org.eclipse.osbp.xtext.reportdsl.WithStyle;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Text Element</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.impl.TextElementImpl#getStyle <em>Style</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.impl.TextElementImpl#getText <em>Text</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class TextElementImpl extends ReportLazyResolverImpl implements TextElement {
+	/**
+	 * The cached value of the '{@link #getStyle() <em>Style</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getStyle()
+	 * @generated
+	 * @ordered
+	 */
+	protected Style style;
+
+	/**
+	 * The default value of the '{@link #getText() <em>Text</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getText()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String TEXT_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getText() <em>Text</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getText()
+	 * @generated
+	 * @ordered
+	 */
+	protected String text = TEXT_EDEFAULT;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected TextElementImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return ReportDSLPackage.Literals.TEXT_ELEMENT;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Style getStyle() {
+		if (style != null && style.eIsProxy()) {
+			InternalEObject oldStyle = (InternalEObject)style;
+			style = (Style)eResolveProxy(oldStyle);
+			if (style != oldStyle) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, ReportDSLPackage.TEXT_ELEMENT__STYLE, oldStyle, style));
+			}
+		}
+		return style;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Style basicGetStyle() {
+		return style;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setStyle(Style newStyle) {
+		Style oldStyle = style;
+		style = newStyle;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ReportDSLPackage.TEXT_ELEMENT__STYLE, oldStyle, style));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getText() {
+		return text;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setText(String newText) {
+		String oldText = text;
+		text = newText;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ReportDSLPackage.TEXT_ELEMENT__TEXT, oldText, text));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case ReportDSLPackage.TEXT_ELEMENT__STYLE:
+				if (resolve) return getStyle();
+				return basicGetStyle();
+			case ReportDSLPackage.TEXT_ELEMENT__TEXT:
+				return getText();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case ReportDSLPackage.TEXT_ELEMENT__STYLE:
+				setStyle((Style)newValue);
+				return;
+			case ReportDSLPackage.TEXT_ELEMENT__TEXT:
+				setText((String)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case ReportDSLPackage.TEXT_ELEMENT__STYLE:
+				setStyle((Style)null);
+				return;
+			case ReportDSLPackage.TEXT_ELEMENT__TEXT:
+				setText(TEXT_EDEFAULT);
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case ReportDSLPackage.TEXT_ELEMENT__STYLE:
+				return style != null;
+			case ReportDSLPackage.TEXT_ELEMENT__TEXT:
+				return TEXT_EDEFAULT == null ? text != null : !TEXT_EDEFAULT.equals(text);
+		}
+		return super.eIsSet(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public int eBaseStructuralFeatureID(int derivedFeatureID, Class<?> baseClass) {
+		if (baseClass == WithStyle.class) {
+			switch (derivedFeatureID) {
+				case ReportDSLPackage.TEXT_ELEMENT__STYLE: return ReportDSLPackage.WITH_STYLE__STYLE;
+				default: return -1;
+			}
+		}
+		return super.eBaseStructuralFeatureID(derivedFeatureID, baseClass);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public int eDerivedStructuralFeatureID(int baseFeatureID, Class<?> baseClass) {
+		if (baseClass == WithStyle.class) {
+			switch (baseFeatureID) {
+				case ReportDSLPackage.WITH_STYLE__STYLE: return ReportDSLPackage.TEXT_ELEMENT__STYLE;
+				default: return -1;
+			}
+		}
+		return super.eDerivedStructuralFeatureID(baseFeatureID, baseClass);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String toString() {
+		if (eIsProxy()) return super.toString();
+
+		StringBuffer result = new StringBuffer(super.toString());
+		result.append(" (text: ");
+		result.append(text);
+		result.append(')');
+		return result.toString();
+	}
+
+} //TextElementImpl
diff --git a/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/impl/TextImpl.java b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/impl/TextImpl.java
new file mode 100644
index 0000000..a19dc10
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/impl/TextImpl.java
@@ -0,0 +1,50 @@
+/**
+ * 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:  
+ *  		Christophe Loetz  (Loetz GmbH&Co.KG) - Initial implementation 
+ *  
+ */
+package org.eclipse.osbp.xtext.reportdsl.impl;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.osbp.xtext.reportdsl.ReportDSLPackage;
+import org.eclipse.osbp.xtext.reportdsl.Text;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Text</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * </p>
+ *
+ * @generated
+ */
+public class TextImpl extends TextElementImpl implements Text {
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected TextImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return ReportDSLPackage.Literals.TEXT;
+	}
+
+} //TextImpl
diff --git a/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/impl/TimeFormatImpl.java b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/impl/TimeFormatImpl.java
new file mode 100644
index 0000000..d6c8c16
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/impl/TimeFormatImpl.java
@@ -0,0 +1,174 @@
+/**
+ * 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:  
+ *  		Christophe Loetz  (Loetz GmbH&Co.KG) - Initial implementation 
+ *  
+ */
+package org.eclipse.osbp.xtext.reportdsl.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.osbp.xtext.reportdsl.ReportDSLPackage;
+import org.eclipse.osbp.xtext.reportdsl.TimeFormat;
+import org.eclipse.osbp.xtext.reportdsl.TimeFormatCategoryEnum;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Time Format</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.impl.TimeFormatImpl#getReport_category <em>Report category</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class TimeFormatImpl extends SomeFormatImpl implements TimeFormat {
+	/**
+	 * The default value of the '{@link #getReport_category() <em>Report category</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getReport_category()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final TimeFormatCategoryEnum REPORT_CATEGORY_EDEFAULT = TimeFormatCategoryEnum.CUSTOM;
+
+	/**
+	 * The cached value of the '{@link #getReport_category() <em>Report category</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getReport_category()
+	 * @generated
+	 * @ordered
+	 */
+	protected TimeFormatCategoryEnum report_category = REPORT_CATEGORY_EDEFAULT;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected TimeFormatImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return ReportDSLPackage.Literals.TIME_FORMAT;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public TimeFormatCategoryEnum getReport_category() {
+		return report_category;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setReport_category(TimeFormatCategoryEnum newReport_category) {
+		TimeFormatCategoryEnum oldReport_category = report_category;
+		report_category = newReport_category == null ? REPORT_CATEGORY_EDEFAULT : newReport_category;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ReportDSLPackage.TIME_FORMAT__REPORT_CATEGORY, oldReport_category, report_category));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case ReportDSLPackage.TIME_FORMAT__REPORT_CATEGORY:
+				return getReport_category();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case ReportDSLPackage.TIME_FORMAT__REPORT_CATEGORY:
+				setReport_category((TimeFormatCategoryEnum)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case ReportDSLPackage.TIME_FORMAT__REPORT_CATEGORY:
+				setReport_category(REPORT_CATEGORY_EDEFAULT);
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case ReportDSLPackage.TIME_FORMAT__REPORT_CATEGORY:
+				return report_category != REPORT_CATEGORY_EDEFAULT;
+		}
+		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(" (report_category: ");
+		result.append(report_category);
+		result.append(')');
+		return result.toString();
+	}
+
+} //TimeFormatImpl
diff --git a/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/impl/TitleImpl.java b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/impl/TitleImpl.java
new file mode 100644
index 0000000..ac95bac
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/impl/TitleImpl.java
@@ -0,0 +1,50 @@
+/**
+ * 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:  
+ *  		Christophe Loetz  (Loetz GmbH&Co.KG) - Initial implementation 
+ *  
+ */
+package org.eclipse.osbp.xtext.reportdsl.impl;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.osbp.xtext.reportdsl.ReportDSLPackage;
+import org.eclipse.osbp.xtext.reportdsl.Title;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Title</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * </p>
+ *
+ * @generated
+ */
+public class TitleImpl extends TextElementImpl implements Title {
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected TitleImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return ReportDSLPackage.Literals.TITLE;
+	}
+
+} //TitleImpl
diff --git a/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/impl/UomoFormatImpl.java b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/impl/UomoFormatImpl.java
new file mode 100644
index 0000000..6e7ab8a
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/impl/UomoFormatImpl.java
@@ -0,0 +1,50 @@
+/**
+ * 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:  
+ *  		Christophe Loetz  (Loetz GmbH&Co.KG) - Initial implementation 
+ *  
+ */
+package org.eclipse.osbp.xtext.reportdsl.impl;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.osbp.xtext.reportdsl.ReportDSLPackage;
+import org.eclipse.osbp.xtext.reportdsl.UomoFormat;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Uomo Format</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * </p>
+ *
+ * @generated
+ */
+public class UomoFormatImpl extends SomeFormatImpl implements UomoFormat {
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected UomoFormatImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return ReportDSLPackage.Literals.UOMO_FORMAT;
+	}
+
+} //UomoFormatImpl
diff --git a/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/impl/WithHeaderFooterImpl.java b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/impl/WithHeaderFooterImpl.java
new file mode 100644
index 0000000..d057a24
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/impl/WithHeaderFooterImpl.java
@@ -0,0 +1,349 @@
+/**
+ * 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:  
+ *  		Christophe Loetz  (Loetz GmbH&Co.KG) - Initial implementation 
+ *  
+ */
+package org.eclipse.osbp.xtext.reportdsl.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.reportdsl.ReportDSLPackage;
+import org.eclipse.osbp.xtext.reportdsl.Style;
+import org.eclipse.osbp.xtext.reportdsl.WithHeaderFooter;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>With Header Footer</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.impl.WithHeaderFooterImpl#isDetailheader <em>Detailheader</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.impl.WithHeaderFooterImpl#getHeaderstyle <em>Headerstyle</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.impl.WithHeaderFooterImpl#isDetailfooter <em>Detailfooter</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.impl.WithHeaderFooterImpl#getFooterstyle <em>Footerstyle</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class WithHeaderFooterImpl extends ReportLazyResolverImpl implements WithHeaderFooter {
+	/**
+	 * The default value of the '{@link #isDetailheader() <em>Detailheader</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isDetailheader()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final boolean DETAILHEADER_EDEFAULT = false;
+
+	/**
+	 * The cached value of the '{@link #isDetailheader() <em>Detailheader</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isDetailheader()
+	 * @generated
+	 * @ordered
+	 */
+	protected boolean detailheader = DETAILHEADER_EDEFAULT;
+
+	/**
+	 * The cached value of the '{@link #getHeaderstyle() <em>Headerstyle</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getHeaderstyle()
+	 * @generated
+	 * @ordered
+	 */
+	protected Style headerstyle;
+
+	/**
+	 * The default value of the '{@link #isDetailfooter() <em>Detailfooter</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isDetailfooter()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final boolean DETAILFOOTER_EDEFAULT = false;
+
+	/**
+	 * The cached value of the '{@link #isDetailfooter() <em>Detailfooter</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isDetailfooter()
+	 * @generated
+	 * @ordered
+	 */
+	protected boolean detailfooter = DETAILFOOTER_EDEFAULT;
+
+	/**
+	 * The cached value of the '{@link #getFooterstyle() <em>Footerstyle</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getFooterstyle()
+	 * @generated
+	 * @ordered
+	 */
+	protected Style footerstyle;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected WithHeaderFooterImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return ReportDSLPackage.Literals.WITH_HEADER_FOOTER;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public boolean isDetailheader() {
+		return detailheader;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setDetailheader(boolean newDetailheader) {
+		boolean oldDetailheader = detailheader;
+		detailheader = newDetailheader;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ReportDSLPackage.WITH_HEADER_FOOTER__DETAILHEADER, oldDetailheader, detailheader));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Style getHeaderstyle() {
+		if (headerstyle != null && headerstyle.eIsProxy()) {
+			InternalEObject oldHeaderstyle = (InternalEObject)headerstyle;
+			headerstyle = (Style)eResolveProxy(oldHeaderstyle);
+			if (headerstyle != oldHeaderstyle) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, ReportDSLPackage.WITH_HEADER_FOOTER__HEADERSTYLE, oldHeaderstyle, headerstyle));
+			}
+		}
+		return headerstyle;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Style basicGetHeaderstyle() {
+		return headerstyle;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setHeaderstyle(Style newHeaderstyle) {
+		Style oldHeaderstyle = headerstyle;
+		headerstyle = newHeaderstyle;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ReportDSLPackage.WITH_HEADER_FOOTER__HEADERSTYLE, oldHeaderstyle, headerstyle));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public boolean isDetailfooter() {
+		return detailfooter;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setDetailfooter(boolean newDetailfooter) {
+		boolean oldDetailfooter = detailfooter;
+		detailfooter = newDetailfooter;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ReportDSLPackage.WITH_HEADER_FOOTER__DETAILFOOTER, oldDetailfooter, detailfooter));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Style getFooterstyle() {
+		if (footerstyle != null && footerstyle.eIsProxy()) {
+			InternalEObject oldFooterstyle = (InternalEObject)footerstyle;
+			footerstyle = (Style)eResolveProxy(oldFooterstyle);
+			if (footerstyle != oldFooterstyle) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, ReportDSLPackage.WITH_HEADER_FOOTER__FOOTERSTYLE, oldFooterstyle, footerstyle));
+			}
+		}
+		return footerstyle;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Style basicGetFooterstyle() {
+		return footerstyle;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setFooterstyle(Style newFooterstyle) {
+		Style oldFooterstyle = footerstyle;
+		footerstyle = newFooterstyle;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ReportDSLPackage.WITH_HEADER_FOOTER__FOOTERSTYLE, oldFooterstyle, footerstyle));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case ReportDSLPackage.WITH_HEADER_FOOTER__DETAILHEADER:
+				return isDetailheader();
+			case ReportDSLPackage.WITH_HEADER_FOOTER__HEADERSTYLE:
+				if (resolve) return getHeaderstyle();
+				return basicGetHeaderstyle();
+			case ReportDSLPackage.WITH_HEADER_FOOTER__DETAILFOOTER:
+				return isDetailfooter();
+			case ReportDSLPackage.WITH_HEADER_FOOTER__FOOTERSTYLE:
+				if (resolve) return getFooterstyle();
+				return basicGetFooterstyle();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case ReportDSLPackage.WITH_HEADER_FOOTER__DETAILHEADER:
+				setDetailheader((Boolean)newValue);
+				return;
+			case ReportDSLPackage.WITH_HEADER_FOOTER__HEADERSTYLE:
+				setHeaderstyle((Style)newValue);
+				return;
+			case ReportDSLPackage.WITH_HEADER_FOOTER__DETAILFOOTER:
+				setDetailfooter((Boolean)newValue);
+				return;
+			case ReportDSLPackage.WITH_HEADER_FOOTER__FOOTERSTYLE:
+				setFooterstyle((Style)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case ReportDSLPackage.WITH_HEADER_FOOTER__DETAILHEADER:
+				setDetailheader(DETAILHEADER_EDEFAULT);
+				return;
+			case ReportDSLPackage.WITH_HEADER_FOOTER__HEADERSTYLE:
+				setHeaderstyle((Style)null);
+				return;
+			case ReportDSLPackage.WITH_HEADER_FOOTER__DETAILFOOTER:
+				setDetailfooter(DETAILFOOTER_EDEFAULT);
+				return;
+			case ReportDSLPackage.WITH_HEADER_FOOTER__FOOTERSTYLE:
+				setFooterstyle((Style)null);
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case ReportDSLPackage.WITH_HEADER_FOOTER__DETAILHEADER:
+				return detailheader != DETAILHEADER_EDEFAULT;
+			case ReportDSLPackage.WITH_HEADER_FOOTER__HEADERSTYLE:
+				return headerstyle != null;
+			case ReportDSLPackage.WITH_HEADER_FOOTER__DETAILFOOTER:
+				return detailfooter != DETAILFOOTER_EDEFAULT;
+			case ReportDSLPackage.WITH_HEADER_FOOTER__FOOTERSTYLE:
+				return footerstyle != 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(" (detailheader: ");
+		result.append(detailheader);
+		result.append(", detailfooter: ");
+		result.append(detailfooter);
+		result.append(')');
+		return result.toString();
+	}
+
+} //WithHeaderFooterImpl
diff --git a/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/impl/WithStyleImpl.java b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/impl/WithStyleImpl.java
new file mode 100644
index 0000000..0ae6168
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/impl/WithStyleImpl.java
@@ -0,0 +1,167 @@
+/**
+ * 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:  
+ *  		Christophe Loetz  (Loetz GmbH&Co.KG) - Initial implementation 
+ *  
+ */
+package org.eclipse.osbp.xtext.reportdsl.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.reportdsl.ReportDSLPackage;
+import org.eclipse.osbp.xtext.reportdsl.Style;
+import org.eclipse.osbp.xtext.reportdsl.WithStyle;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>With Style</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.xtext.reportdsl.impl.WithStyleImpl#getStyle <em>Style</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class WithStyleImpl extends ReportLazyResolverImpl implements WithStyle {
+	/**
+	 * The cached value of the '{@link #getStyle() <em>Style</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getStyle()
+	 * @generated
+	 * @ordered
+	 */
+	protected Style style;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected WithStyleImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return ReportDSLPackage.Literals.WITH_STYLE;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Style getStyle() {
+		if (style != null && style.eIsProxy()) {
+			InternalEObject oldStyle = (InternalEObject)style;
+			style = (Style)eResolveProxy(oldStyle);
+			if (style != oldStyle) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, ReportDSLPackage.WITH_STYLE__STYLE, oldStyle, style));
+			}
+		}
+		return style;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Style basicGetStyle() {
+		return style;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setStyle(Style newStyle) {
+		Style oldStyle = style;
+		style = newStyle;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ReportDSLPackage.WITH_STYLE__STYLE, oldStyle, style));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case ReportDSLPackage.WITH_STYLE__STYLE:
+				if (resolve) return getStyle();
+				return basicGetStyle();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case ReportDSLPackage.WITH_STYLE__STYLE:
+				setStyle((Style)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case ReportDSLPackage.WITH_STYLE__STYLE:
+				setStyle((Style)null);
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case ReportDSLPackage.WITH_STYLE__STYLE:
+				return style != null;
+		}
+		return super.eIsSet(featureID);
+	}
+
+} //WithStyleImpl
diff --git a/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/util/ReportDSLAdapterFactory.java b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/util/ReportDSLAdapterFactory.java
new file mode 100644
index 0000000..b895494
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/util/ReportDSLAdapterFactory.java
@@ -0,0 +1,1592 @@
+/**
+ * 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:  
+ *  		Christophe Loetz  (Loetz GmbH&Co.KG) - Initial implementation 
+ *  
+ */
+package org.eclipse.osbp.xtext.reportdsl.util;
+
+import org.eclipse.emf.common.notify.Adapter;
+import org.eclipse.emf.common.notify.Notifier;
+
+import org.eclipse.emf.common.notify.impl.AdapterFactoryImpl;
+
+import org.eclipse.emf.ecore.EObject;
+
+import org.eclipse.osbp.dsl.semantic.common.types.LLazyResolver;
+import org.eclipse.osbp.dsl.semantic.common.types.LPackage;
+
+import org.eclipse.osbp.xtext.reportdsl.*;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Adapter Factory</b> for the model.
+ * It provides an adapter <code>createXXX</code> method for each class of the model.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.osbp.xtext.reportdsl.ReportDSLPackage
+ * @generated
+ */
+public class ReportDSLAdapterFactory extends AdapterFactoryImpl {
+	/**
+	 * The cached model package.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected static ReportDSLPackage modelPackage;
+
+	/**
+	 * Creates an instance of the adapter factory.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public ReportDSLAdapterFactory() {
+		if (modelPackage == null) {
+			modelPackage = ReportDSLPackage.eINSTANCE;
+		}
+	}
+
+	/**
+	 * Returns whether this factory is applicable for the type of the object.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns <code>true</code> if the object is either the model's package or is an instance object of the model.
+	 * <!-- end-user-doc -->
+	 * @return whether this factory is applicable for the type of the object.
+	 * @generated
+	 */
+	@Override
+	public boolean isFactoryForType(Object object) {
+		if (object == modelPackage) {
+			return true;
+		}
+		if (object instanceof EObject) {
+			return ((EObject)object).eClass().getEPackage() == modelPackage;
+		}
+		return false;
+	}
+
+	/**
+	 * The switch that delegates to the <code>createXXX</code> methods.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected ReportDSLSwitch<Adapter> modelSwitch =
+		new ReportDSLSwitch<Adapter>() {
+			@Override
+			public Adapter caseReportModel(ReportModel object) {
+				return createReportModelAdapter();
+			}
+			@Override
+			public Adapter caseReportLazyResolver(ReportLazyResolver object) {
+				return createReportLazyResolverAdapter();
+			}
+			@Override
+			public Adapter caseReportBase(ReportBase object) {
+				return createReportBaseAdapter();
+			}
+			@Override
+			public Adapter caseReportPackage(ReportPackage object) {
+				return createReportPackageAdapter();
+			}
+			@Override
+			public Adapter casePageTemplates(PageTemplates object) {
+				return createPageTemplatesAdapter();
+			}
+			@Override
+			public Adapter caseSomeFormats(SomeFormats object) {
+				return createSomeFormatsAdapter();
+			}
+			@Override
+			public Adapter caseColors(Colors object) {
+				return createColorsAdapter();
+			}
+			@Override
+			public Adapter caseFonts(Fonts object) {
+				return createFontsAdapter();
+			}
+			@Override
+			public Adapter caseMedias(Medias object) {
+				return createMediasAdapter();
+			}
+			@Override
+			public Adapter caseStyles(Styles object) {
+				return createStylesAdapter();
+			}
+			@Override
+			public Adapter casePageTemplate(PageTemplate object) {
+				return createPageTemplateAdapter();
+			}
+			@Override
+			public Adapter caseColor(Color object) {
+				return createColorAdapter();
+			}
+			@Override
+			public Adapter caseFont(Font object) {
+				return createFontAdapter();
+			}
+			@Override
+			public Adapter caseFontFamily(FontFamily object) {
+				return createFontFamilyAdapter();
+			}
+			@Override
+			public Adapter caseBuildInFontFamily(BuildInFontFamily object) {
+				return createBuildInFontFamilyAdapter();
+			}
+			@Override
+			public Adapter caseCustomFontFamily(CustomFontFamily object) {
+				return createCustomFontFamilyAdapter();
+			}
+			@Override
+			public Adapter caseMedia(Media object) {
+				return createMediaAdapter();
+			}
+			@Override
+			public Adapter caseBorderStyle(BorderStyle object) {
+				return createBorderStyleAdapter();
+			}
+			@Override
+			public Adapter caseBaseStyle(BaseStyle object) {
+				return createBaseStyleAdapter();
+			}
+			@Override
+			public Adapter caseMediaStyle(MediaStyle object) {
+				return createMediaStyleAdapter();
+			}
+			@Override
+			public Adapter caseStyle(Style object) {
+				return createStyleAdapter();
+			}
+			@Override
+			public Adapter caseSomeFormat(SomeFormat object) {
+				return createSomeFormatAdapter();
+			}
+			@Override
+			public Adapter caseUomoFormat(UomoFormat object) {
+				return createUomoFormatAdapter();
+			}
+			@Override
+			public Adapter caseNumberFormat(NumberFormat object) {
+				return createNumberFormatAdapter();
+			}
+			@Override
+			public Adapter caseCurrencyFormat(CurrencyFormat object) {
+				return createCurrencyFormatAdapter();
+			}
+			@Override
+			public Adapter caseDateFormat(DateFormat object) {
+				return createDateFormatAdapter();
+			}
+			@Override
+			public Adapter caseDateTimeFormat(DateTimeFormat object) {
+				return createDateTimeFormatAdapter();
+			}
+			@Override
+			public Adapter caseTimeFormat(TimeFormat object) {
+				return createTimeFormatAdapter();
+			}
+			@Override
+			public Adapter caseReport(Report object) {
+				return createReportAdapter();
+			}
+			@Override
+			public Adapter caseReportDesign(ReportDesign object) {
+				return createReportDesignAdapter();
+			}
+			@Override
+			public Adapter caseReportDesignFile(ReportDesignFile object) {
+				return createReportDesignFileAdapter();
+			}
+			@Override
+			public Adapter caseReportDesignTemplate(ReportDesignTemplate object) {
+				return createReportDesignTemplateAdapter();
+			}
+			@Override
+			public Adapter caseContainer(Container object) {
+				return createContainerAdapter();
+			}
+			@Override
+			public Adapter casePageHeader(PageHeader object) {
+				return createPageHeaderAdapter();
+			}
+			@Override
+			public Adapter casePageDetail(PageDetail object) {
+				return createPageDetailAdapter();
+			}
+			@Override
+			public Adapter casePageFooter(PageFooter object) {
+				return createPageFooterAdapter();
+			}
+			@Override
+			public Adapter caseElement(Element object) {
+				return createElementAdapter();
+			}
+			@Override
+			public Adapter caseWithStyle(WithStyle object) {
+				return createWithStyleAdapter();
+			}
+			@Override
+			public Adapter caseTextElement(TextElement object) {
+				return createTextElementAdapter();
+			}
+			@Override
+			public Adapter caseTitle(Title object) {
+				return createTitleAdapter();
+			}
+			@Override
+			public Adapter caseSubTitle(SubTitle object) {
+				return createSubTitleAdapter();
+			}
+			@Override
+			public Adapter caseSubSubTitle(SubSubTitle object) {
+				return createSubSubTitleAdapter();
+			}
+			@Override
+			public Adapter caseLabel(Label object) {
+				return createLabelAdapter();
+			}
+			@Override
+			public Adapter caseText(Text object) {
+				return createTextAdapter();
+			}
+			@Override
+			public Adapter caseAutoText(AutoText object) {
+				return createAutoTextAdapter();
+			}
+			@Override
+			public Adapter caseImage(Image object) {
+				return createImageAdapter();
+			}
+			@Override
+			public Adapter caseWithHeaderFooter(WithHeaderFooter object) {
+				return createWithHeaderFooterAdapter();
+			}
+			@Override
+			public Adapter caseDatamartTable(DatamartTable object) {
+				return createDatamartTableAdapter();
+			}
+			@Override
+			public Adapter caseDatamartTableGroup(DatamartTableGroup object) {
+				return createDatamartTableGroupAdapter();
+			}
+			@Override
+			public Adapter caseSomeGrid(SomeGrid object) {
+				return createSomeGridAdapter();
+			}
+			@Override
+			public Adapter caseDatamartTableGroupHeader(DatamartTableGroupHeader object) {
+				return createDatamartTableGroupHeaderAdapter();
+			}
+			@Override
+			public Adapter caseDatamartTableGroupFooter(DatamartTableGroupFooter object) {
+				return createDatamartTableGroupFooterAdapter();
+			}
+			@Override
+			public Adapter caseDatamartTableDetail(DatamartTableDetail object) {
+				return createDatamartTableDetailAdapter();
+			}
+			@Override
+			public Adapter caseDatamartTableProperty(DatamartTableProperty object) {
+				return createDatamartTablePropertyAdapter();
+			}
+			@Override
+			public Adapter caseTableFormatter(TableFormatter object) {
+				return createTableFormatterAdapter();
+			}
+			@Override
+			public Adapter caseTableImage(TableImage object) {
+				return createTableImageAdapter();
+			}
+			@Override
+			public Adapter caseTableValueElement(TableValueElement object) {
+				return createTableValueElementAdapter();
+			}
+			@Override
+			public Adapter caseTableProperty(TableProperty object) {
+				return createTablePropertyAdapter();
+			}
+			@Override
+			public Adapter caseTableAggregation(TableAggregation object) {
+				return createTableAggregationAdapter();
+			}
+			@Override
+			public Adapter caseTableBaseAggregation(TableBaseAggregation object) {
+				return createTableBaseAggregationAdapter();
+			}
+			@Override
+			public Adapter caseTablePureAggregation(TablePureAggregation object) {
+				return createTablePureAggregationAdapter();
+			}
+			@Override
+			public Adapter caseTableUnaryAggregation(TableUnaryAggregation object) {
+				return createTableUnaryAggregationAdapter();
+			}
+			@Override
+			public Adapter caseTableMultipleAggregation(TableMultipleAggregation object) {
+				return createTableMultipleAggregationAdapter();
+			}
+			@Override
+			public Adapter caseTableBinaryAggregation(TableBinaryAggregation object) {
+				return createTableBinaryAggregationAdapter();
+			}
+			@Override
+			public Adapter caseTableInterval(TableInterval object) {
+				return createTableIntervalAdapter();
+			}
+			@Override
+			public Adapter caseTableNumberInterval(TableNumberInterval object) {
+				return createTableNumberIntervalAdapter();
+			}
+			@Override
+			public Adapter caseTableDateDayInterval(TableDateDayInterval object) {
+				return createTableDateDayIntervalAdapter();
+			}
+			@Override
+			public Adapter caseTableLookup(TableLookup object) {
+				return createTableLookupAdapter();
+			}
+			@Override
+			public Adapter caseTableNumberLookup(TableNumberLookup object) {
+				return createTableNumberLookupAdapter();
+			}
+			@Override
+			public Adapter caseTableStringLookup(TableStringLookup object) {
+				return createTableStringLookupAdapter();
+			}
+			@Override
+			public Adapter caseTableDateDayLookup(TableDateDayLookup object) {
+				return createTableDateDayLookupAdapter();
+			}
+			@Override
+			public Adapter caseTableRangeElement(TableRangeElement object) {
+				return createTableRangeElementAdapter();
+			}
+			@Override
+			public Adapter caseTableTextColor(TableTextColor object) {
+				return createTableTextColorAdapter();
+			}
+			@Override
+			public Adapter caseTableCellColor(TableCellColor object) {
+				return createTableCellColorAdapter();
+			}
+			@Override
+			public Adapter caseTableIcon(TableIcon object) {
+				return createTableIconAdapter();
+			}
+			@Override
+			public Adapter caseTableTrend(TableTrend object) {
+				return createTableTrendAdapter();
+			}
+			@Override
+			public Adapter caseTableTooltip(TableTooltip object) {
+				return createTableTooltipAdapter();
+			}
+			@Override
+			public Adapter caseGrid(Grid object) {
+				return createGridAdapter();
+			}
+			@Override
+			public Adapter caseGridRow(GridRow object) {
+				return createGridRowAdapter();
+			}
+			@Override
+			public Adapter caseGridCell(GridCell object) {
+				return createGridCellAdapter();
+			}
+			@Override
+			public Adapter caseLLazyResolver(LLazyResolver object) {
+				return createLLazyResolverAdapter();
+			}
+			@Override
+			public Adapter caseLPackage(LPackage object) {
+				return createLPackageAdapter();
+			}
+			@Override
+			public Adapter defaultCase(EObject object) {
+				return createEObjectAdapter();
+			}
+		};
+
+	/**
+	 * Creates an adapter for the <code>target</code>.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param target the object to adapt.
+	 * @return the adapter for the <code>target</code>.
+	 * @generated
+	 */
+	@Override
+	public Adapter createAdapter(Notifier target) {
+		return modelSwitch.doSwitch((EObject)target);
+	}
+
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.osbp.xtext.reportdsl.ReportModel <em>Report Model</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.reportdsl.ReportModel
+	 * @generated
+	 */
+	public Adapter createReportModelAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.osbp.xtext.reportdsl.ReportLazyResolver <em>Report Lazy Resolver</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.reportdsl.ReportLazyResolver
+	 * @generated
+	 */
+	public Adapter createReportLazyResolverAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.osbp.xtext.reportdsl.ReportBase <em>Report Base</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.reportdsl.ReportBase
+	 * @generated
+	 */
+	public Adapter createReportBaseAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.osbp.xtext.reportdsl.ReportPackage <em>Report Package</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.reportdsl.ReportPackage
+	 * @generated
+	 */
+	public Adapter createReportPackageAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.osbp.xtext.reportdsl.PageTemplates <em>Page Templates</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.reportdsl.PageTemplates
+	 * @generated
+	 */
+	public Adapter createPageTemplatesAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.osbp.xtext.reportdsl.SomeFormats <em>Some Formats</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.reportdsl.SomeFormats
+	 * @generated
+	 */
+	public Adapter createSomeFormatsAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.osbp.xtext.reportdsl.Colors <em>Colors</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.reportdsl.Colors
+	 * @generated
+	 */
+	public Adapter createColorsAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.osbp.xtext.reportdsl.Fonts <em>Fonts</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.reportdsl.Fonts
+	 * @generated
+	 */
+	public Adapter createFontsAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.osbp.xtext.reportdsl.Medias <em>Medias</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.reportdsl.Medias
+	 * @generated
+	 */
+	public Adapter createMediasAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.osbp.xtext.reportdsl.Styles <em>Styles</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.reportdsl.Styles
+	 * @generated
+	 */
+	public Adapter createStylesAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.osbp.xtext.reportdsl.PageTemplate <em>Page Template</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.reportdsl.PageTemplate
+	 * @generated
+	 */
+	public Adapter createPageTemplateAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.osbp.xtext.reportdsl.Color <em>Color</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.osbp.xtext.reportdsl.Color
+	 * @generated
+	 */
+	public Adapter createColorAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.osbp.xtext.reportdsl.Font <em>Font</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.reportdsl.Font
+	 * @generated
+	 */
+	public Adapter createFontAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.osbp.xtext.reportdsl.FontFamily <em>Font Family</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.reportdsl.FontFamily
+	 * @generated
+	 */
+	public Adapter createFontFamilyAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.osbp.xtext.reportdsl.BuildInFontFamily <em>Build In Font Family</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.reportdsl.BuildInFontFamily
+	 * @generated
+	 */
+	public Adapter createBuildInFontFamilyAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.osbp.xtext.reportdsl.CustomFontFamily <em>Custom Font Family</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.reportdsl.CustomFontFamily
+	 * @generated
+	 */
+	public Adapter createCustomFontFamilyAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.osbp.xtext.reportdsl.Media <em>Media</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.reportdsl.Media
+	 * @generated
+	 */
+	public Adapter createMediaAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.osbp.xtext.reportdsl.BorderStyle <em>Border Style</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.reportdsl.BorderStyle
+	 * @generated
+	 */
+	public Adapter createBorderStyleAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.osbp.xtext.reportdsl.BaseStyle <em>Base Style</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.reportdsl.BaseStyle
+	 * @generated
+	 */
+	public Adapter createBaseStyleAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.osbp.xtext.reportdsl.MediaStyle <em>Media Style</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.reportdsl.MediaStyle
+	 * @generated
+	 */
+	public Adapter createMediaStyleAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.osbp.xtext.reportdsl.Style <em>Style</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.reportdsl.Style
+	 * @generated
+	 */
+	public Adapter createStyleAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.osbp.xtext.reportdsl.SomeFormat <em>Some Format</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.reportdsl.SomeFormat
+	 * @generated
+	 */
+	public Adapter createSomeFormatAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.osbp.xtext.reportdsl.UomoFormat <em>Uomo Format</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.reportdsl.UomoFormat
+	 * @generated
+	 */
+	public Adapter createUomoFormatAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.osbp.xtext.reportdsl.NumberFormat <em>Number Format</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.reportdsl.NumberFormat
+	 * @generated
+	 */
+	public Adapter createNumberFormatAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.osbp.xtext.reportdsl.CurrencyFormat <em>Currency Format</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.reportdsl.CurrencyFormat
+	 * @generated
+	 */
+	public Adapter createCurrencyFormatAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.osbp.xtext.reportdsl.DateFormat <em>Date Format</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.reportdsl.DateFormat
+	 * @generated
+	 */
+	public Adapter createDateFormatAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.osbp.xtext.reportdsl.DateTimeFormat <em>Date Time Format</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.reportdsl.DateTimeFormat
+	 * @generated
+	 */
+	public Adapter createDateTimeFormatAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.osbp.xtext.reportdsl.TimeFormat <em>Time Format</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.reportdsl.TimeFormat
+	 * @generated
+	 */
+	public Adapter createTimeFormatAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.osbp.xtext.reportdsl.Report <em>Report</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.reportdsl.Report
+	 * @generated
+	 */
+	public Adapter createReportAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.osbp.xtext.reportdsl.ReportDesign <em>Report Design</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.reportdsl.ReportDesign
+	 * @generated
+	 */
+	public Adapter createReportDesignAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.osbp.xtext.reportdsl.ReportDesignFile <em>Report Design File</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.reportdsl.ReportDesignFile
+	 * @generated
+	 */
+	public Adapter createReportDesignFileAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.osbp.xtext.reportdsl.ReportDesignTemplate <em>Report Design Template</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.reportdsl.ReportDesignTemplate
+	 * @generated
+	 */
+	public Adapter createReportDesignTemplateAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.osbp.xtext.reportdsl.Container <em>Container</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.reportdsl.Container
+	 * @generated
+	 */
+	public Adapter createContainerAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.osbp.xtext.reportdsl.PageHeader <em>Page Header</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.reportdsl.PageHeader
+	 * @generated
+	 */
+	public Adapter createPageHeaderAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.osbp.xtext.reportdsl.PageDetail <em>Page Detail</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.reportdsl.PageDetail
+	 * @generated
+	 */
+	public Adapter createPageDetailAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.osbp.xtext.reportdsl.PageFooter <em>Page Footer</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.reportdsl.PageFooter
+	 * @generated
+	 */
+	public Adapter createPageFooterAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.osbp.xtext.reportdsl.Element <em>Element</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.reportdsl.Element
+	 * @generated
+	 */
+	public Adapter createElementAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.osbp.xtext.reportdsl.WithStyle <em>With Style</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.reportdsl.WithStyle
+	 * @generated
+	 */
+	public Adapter createWithStyleAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.osbp.xtext.reportdsl.TextElement <em>Text Element</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.reportdsl.TextElement
+	 * @generated
+	 */
+	public Adapter createTextElementAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.osbp.xtext.reportdsl.Title <em>Title</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.reportdsl.Title
+	 * @generated
+	 */
+	public Adapter createTitleAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.osbp.xtext.reportdsl.SubTitle <em>Sub Title</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.reportdsl.SubTitle
+	 * @generated
+	 */
+	public Adapter createSubTitleAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.osbp.xtext.reportdsl.SubSubTitle <em>Sub Sub Title</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.reportdsl.SubSubTitle
+	 * @generated
+	 */
+	public Adapter createSubSubTitleAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.osbp.xtext.reportdsl.Label <em>Label</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.reportdsl.Label
+	 * @generated
+	 */
+	public Adapter createLabelAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.osbp.xtext.reportdsl.Text <em>Text</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.reportdsl.Text
+	 * @generated
+	 */
+	public Adapter createTextAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.osbp.xtext.reportdsl.AutoText <em>Auto Text</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.reportdsl.AutoText
+	 * @generated
+	 */
+	public Adapter createAutoTextAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.osbp.xtext.reportdsl.Image <em>Image</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.reportdsl.Image
+	 * @generated
+	 */
+	public Adapter createImageAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.osbp.xtext.reportdsl.WithHeaderFooter <em>With Header Footer</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.reportdsl.WithHeaderFooter
+	 * @generated
+	 */
+	public Adapter createWithHeaderFooterAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.osbp.xtext.reportdsl.DatamartTable <em>Datamart Table</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.reportdsl.DatamartTable
+	 * @generated
+	 */
+	public Adapter createDatamartTableAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.osbp.xtext.reportdsl.DatamartTableGroup <em>Datamart Table Group</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.reportdsl.DatamartTableGroup
+	 * @generated
+	 */
+	public Adapter createDatamartTableGroupAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.osbp.xtext.reportdsl.SomeGrid <em>Some Grid</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.reportdsl.SomeGrid
+	 * @generated
+	 */
+	public Adapter createSomeGridAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.osbp.xtext.reportdsl.DatamartTableGroupHeader <em>Datamart Table Group Header</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.reportdsl.DatamartTableGroupHeader
+	 * @generated
+	 */
+	public Adapter createDatamartTableGroupHeaderAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.osbp.xtext.reportdsl.DatamartTableGroupFooter <em>Datamart Table Group Footer</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.reportdsl.DatamartTableGroupFooter
+	 * @generated
+	 */
+	public Adapter createDatamartTableGroupFooterAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.osbp.xtext.reportdsl.DatamartTableDetail <em>Datamart Table Detail</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.reportdsl.DatamartTableDetail
+	 * @generated
+	 */
+	public Adapter createDatamartTableDetailAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.osbp.xtext.reportdsl.DatamartTableProperty <em>Datamart Table Property</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.reportdsl.DatamartTableProperty
+	 * @generated
+	 */
+	public Adapter createDatamartTablePropertyAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.osbp.xtext.reportdsl.TableFormatter <em>Table Formatter</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.reportdsl.TableFormatter
+	 * @generated
+	 */
+	public Adapter createTableFormatterAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.osbp.xtext.reportdsl.TableImage <em>Table Image</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.reportdsl.TableImage
+	 * @generated
+	 */
+	public Adapter createTableImageAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.osbp.xtext.reportdsl.TableValueElement <em>Table Value Element</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.reportdsl.TableValueElement
+	 * @generated
+	 */
+	public Adapter createTableValueElementAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.osbp.xtext.reportdsl.TableProperty <em>Table Property</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.reportdsl.TableProperty
+	 * @generated
+	 */
+	public Adapter createTablePropertyAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.osbp.xtext.reportdsl.TableAggregation <em>Table Aggregation</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.reportdsl.TableAggregation
+	 * @generated
+	 */
+	public Adapter createTableAggregationAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.osbp.xtext.reportdsl.TableBaseAggregation <em>Table Base Aggregation</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.reportdsl.TableBaseAggregation
+	 * @generated
+	 */
+	public Adapter createTableBaseAggregationAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.osbp.xtext.reportdsl.TablePureAggregation <em>Table Pure Aggregation</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.reportdsl.TablePureAggregation
+	 * @generated
+	 */
+	public Adapter createTablePureAggregationAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.osbp.xtext.reportdsl.TableUnaryAggregation <em>Table Unary Aggregation</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.reportdsl.TableUnaryAggregation
+	 * @generated
+	 */
+	public Adapter createTableUnaryAggregationAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.osbp.xtext.reportdsl.TableMultipleAggregation <em>Table Multiple Aggregation</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.reportdsl.TableMultipleAggregation
+	 * @generated
+	 */
+	public Adapter createTableMultipleAggregationAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.osbp.xtext.reportdsl.TableBinaryAggregation <em>Table Binary Aggregation</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.reportdsl.TableBinaryAggregation
+	 * @generated
+	 */
+	public Adapter createTableBinaryAggregationAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.osbp.xtext.reportdsl.TableInterval <em>Table 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.reportdsl.TableInterval
+	 * @generated
+	 */
+	public Adapter createTableIntervalAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.osbp.xtext.reportdsl.TableNumberInterval <em>Table Number 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.reportdsl.TableNumberInterval
+	 * @generated
+	 */
+	public Adapter createTableNumberIntervalAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.osbp.xtext.reportdsl.TableDateDayInterval <em>Table Date Day 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.reportdsl.TableDateDayInterval
+	 * @generated
+	 */
+	public Adapter createTableDateDayIntervalAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.osbp.xtext.reportdsl.TableLookup <em>Table 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.reportdsl.TableLookup
+	 * @generated
+	 */
+	public Adapter createTableLookupAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.osbp.xtext.reportdsl.TableNumberLookup <em>Table Number 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.reportdsl.TableNumberLookup
+	 * @generated
+	 */
+	public Adapter createTableNumberLookupAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.osbp.xtext.reportdsl.TableStringLookup <em>Table String 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.reportdsl.TableStringLookup
+	 * @generated
+	 */
+	public Adapter createTableStringLookupAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.osbp.xtext.reportdsl.TableDateDayLookup <em>Table Date Day 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.reportdsl.TableDateDayLookup
+	 * @generated
+	 */
+	public Adapter createTableDateDayLookupAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.osbp.xtext.reportdsl.TableRangeElement <em>Table Range Element</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.reportdsl.TableRangeElement
+	 * @generated
+	 */
+	public Adapter createTableRangeElementAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.osbp.xtext.reportdsl.TableTextColor <em>Table Text Color</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.osbp.xtext.reportdsl.TableTextColor
+	 * @generated
+	 */
+	public Adapter createTableTextColorAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.osbp.xtext.reportdsl.TableCellColor <em>Table Cell Color</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.osbp.xtext.reportdsl.TableCellColor
+	 * @generated
+	 */
+	public Adapter createTableCellColorAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.osbp.xtext.reportdsl.TableIcon <em>Table Icon</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.reportdsl.TableIcon
+	 * @generated
+	 */
+	public Adapter createTableIconAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.osbp.xtext.reportdsl.TableTrend <em>Table Trend</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.reportdsl.TableTrend
+	 * @generated
+	 */
+	public Adapter createTableTrendAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.osbp.xtext.reportdsl.TableTooltip <em>Table Tooltip</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.reportdsl.TableTooltip
+	 * @generated
+	 */
+	public Adapter createTableTooltipAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.osbp.xtext.reportdsl.Grid <em>Grid</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.reportdsl.Grid
+	 * @generated
+	 */
+	public Adapter createGridAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.osbp.xtext.reportdsl.GridRow <em>Grid Row</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.reportdsl.GridRow
+	 * @generated
+	 */
+	public Adapter createGridRowAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.osbp.xtext.reportdsl.GridCell <em>Grid Cell</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.reportdsl.GridCell
+	 * @generated
+	 */
+	public Adapter createGridCellAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.osbp.dsl.semantic.common.types.LLazyResolver <em>LLazy Resolver</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.dsl.semantic.common.types.LLazyResolver
+	 * @generated
+	 */
+	public Adapter createLLazyResolverAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.osbp.dsl.semantic.common.types.LPackage <em>LPackage</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.dsl.semantic.common.types.LPackage
+	 * @generated
+	 */
+	public Adapter createLPackageAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for the default case.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @generated
+	 */
+	public Adapter createEObjectAdapter() {
+		return null;
+	}
+
+} //ReportDSLAdapterFactory
diff --git a/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/util/ReportDSLSwitch.java b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/util/ReportDSLSwitch.java
new file mode 100644
index 0000000..588639f
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl/emf-gen/org/eclipse/osbp/xtext/reportdsl/util/ReportDSLSwitch.java
@@ -0,0 +1,1978 @@
+/**
+ * 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:  
+ *  		Christophe Loetz  (Loetz GmbH&Co.KG) - Initial implementation 
+ *  
+ */
+package org.eclipse.osbp.xtext.reportdsl.util;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EPackage;
+
+import org.eclipse.emf.ecore.util.Switch;
+
+import org.eclipse.osbp.dsl.semantic.common.types.LLazyResolver;
+import org.eclipse.osbp.dsl.semantic.common.types.LPackage;
+
+import org.eclipse.osbp.xtext.reportdsl.*;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Switch</b> for the model's inheritance hierarchy.
+ * It supports the call {@link #doSwitch(EObject) doSwitch(object)}
+ * to invoke the <code>caseXXX</code> method for each class of the model,
+ * starting with the actual class of the object
+ * and proceeding up the inheritance hierarchy
+ * until a non-null result is returned,
+ * which is the result of the switch.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.osbp.xtext.reportdsl.ReportDSLPackage
+ * @generated
+ */
+public class ReportDSLSwitch<T> extends Switch<T> {
+	/**
+	 * The cached model package
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected static ReportDSLPackage modelPackage;
+
+	/**
+	 * Creates an instance of the switch.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public ReportDSLSwitch() {
+		if (modelPackage == null) {
+			modelPackage = ReportDSLPackage.eINSTANCE;
+		}
+	}
+
+	/**
+	 * Checks whether this is a switch for the given package.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @parameter ePackage the package in question.
+	 * @return whether this is a switch for the given package.
+	 * @generated
+	 */
+	@Override
+	protected boolean isSwitchFor(EPackage ePackage) {
+		return ePackage == modelPackage;
+	}
+
+	/**
+	 * Calls <code>caseXXX</code> for each class of the model until one returns a non null result; it yields that result.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the first non-null result returned by a <code>caseXXX</code> call.
+	 * @generated
+	 */
+	@Override
+	protected T doSwitch(int classifierID, EObject theEObject) {
+		switch (classifierID) {
+			case ReportDSLPackage.REPORT_MODEL: {
+				ReportModel reportModel = (ReportModel)theEObject;
+				T result = caseReportModel(reportModel);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case ReportDSLPackage.REPORT_LAZY_RESOLVER: {
+				ReportLazyResolver reportLazyResolver = (ReportLazyResolver)theEObject;
+				T result = caseReportLazyResolver(reportLazyResolver);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case ReportDSLPackage.REPORT_BASE: {
+				ReportBase reportBase = (ReportBase)theEObject;
+				T result = caseReportBase(reportBase);
+				if (result == null) result = caseReportLazyResolver(reportBase);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case ReportDSLPackage.REPORT_PACKAGE: {
+				ReportPackage reportPackage = (ReportPackage)theEObject;
+				T result = caseReportPackage(reportPackage);
+				if (result == null) result = caseLPackage(reportPackage);
+				if (result == null) result = caseLLazyResolver(reportPackage);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case ReportDSLPackage.PAGE_TEMPLATES: {
+				PageTemplates pageTemplates = (PageTemplates)theEObject;
+				T result = casePageTemplates(pageTemplates);
+				if (result == null) result = caseReportLazyResolver(pageTemplates);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case ReportDSLPackage.SOME_FORMATS: {
+				SomeFormats someFormats = (SomeFormats)theEObject;
+				T result = caseSomeFormats(someFormats);
+				if (result == null) result = caseReportLazyResolver(someFormats);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case ReportDSLPackage.COLORS: {
+				Colors colors = (Colors)theEObject;
+				T result = caseColors(colors);
+				if (result == null) result = caseReportLazyResolver(colors);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case ReportDSLPackage.FONTS: {
+				Fonts fonts = (Fonts)theEObject;
+				T result = caseFonts(fonts);
+				if (result == null) result = caseReportLazyResolver(fonts);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case ReportDSLPackage.MEDIAS: {
+				Medias medias = (Medias)theEObject;
+				T result = caseMedias(medias);
+				if (result == null) result = caseReportLazyResolver(medias);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case ReportDSLPackage.STYLES: {
+				Styles styles = (Styles)theEObject;
+				T result = caseStyles(styles);
+				if (result == null) result = caseReportLazyResolver(styles);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case ReportDSLPackage.PAGE_TEMPLATE: {
+				PageTemplate pageTemplate = (PageTemplate)theEObject;
+				T result = casePageTemplate(pageTemplate);
+				if (result == null) result = caseReportBase(pageTemplate);
+				if (result == null) result = caseReportLazyResolver(pageTemplate);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case ReportDSLPackage.COLOR: {
+				Color color = (Color)theEObject;
+				T result = caseColor(color);
+				if (result == null) result = caseReportBase(color);
+				if (result == null) result = caseReportLazyResolver(color);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case ReportDSLPackage.FONT: {
+				Font font = (Font)theEObject;
+				T result = caseFont(font);
+				if (result == null) result = caseReportBase(font);
+				if (result == null) result = caseReportLazyResolver(font);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case ReportDSLPackage.FONT_FAMILY: {
+				FontFamily fontFamily = (FontFamily)theEObject;
+				T result = caseFontFamily(fontFamily);
+				if (result == null) result = caseReportLazyResolver(fontFamily);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case ReportDSLPackage.BUILD_IN_FONT_FAMILY: {
+				BuildInFontFamily buildInFontFamily = (BuildInFontFamily)theEObject;
+				T result = caseBuildInFontFamily(buildInFontFamily);
+				if (result == null) result = caseFontFamily(buildInFontFamily);
+				if (result == null) result = caseReportLazyResolver(buildInFontFamily);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case ReportDSLPackage.CUSTOM_FONT_FAMILY: {
+				CustomFontFamily customFontFamily = (CustomFontFamily)theEObject;
+				T result = caseCustomFontFamily(customFontFamily);
+				if (result == null) result = caseFontFamily(customFontFamily);
+				if (result == null) result = caseReportLazyResolver(customFontFamily);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case ReportDSLPackage.MEDIA: {
+				Media media = (Media)theEObject;
+				T result = caseMedia(media);
+				if (result == null) result = caseReportBase(media);
+				if (result == null) result = caseReportLazyResolver(media);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case ReportDSLPackage.BORDER_STYLE: {
+				BorderStyle borderStyle = (BorderStyle)theEObject;
+				T result = caseBorderStyle(borderStyle);
+				if (result == null) result = caseReportLazyResolver(borderStyle);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case ReportDSLPackage.BASE_STYLE: {
+				BaseStyle baseStyle = (BaseStyle)theEObject;
+				T result = caseBaseStyle(baseStyle);
+				if (result == null) result = caseReportLazyResolver(baseStyle);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case ReportDSLPackage.MEDIA_STYLE: {
+				MediaStyle mediaStyle = (MediaStyle)theEObject;
+				T result = caseMediaStyle(mediaStyle);
+				if (result == null) result = caseBaseStyle(mediaStyle);
+				if (result == null) result = caseReportLazyResolver(mediaStyle);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case ReportDSLPackage.STYLE: {
+				Style style = (Style)theEObject;
+				T result = caseStyle(style);
+				if (result == null) result = caseReportBase(style);
+				if (result == null) result = caseBaseStyle(style);
+				if (result == null) result = caseReportLazyResolver(style);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case ReportDSLPackage.SOME_FORMAT: {
+				SomeFormat someFormat = (SomeFormat)theEObject;
+				T result = caseSomeFormat(someFormat);
+				if (result == null) result = caseReportBase(someFormat);
+				if (result == null) result = caseReportLazyResolver(someFormat);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case ReportDSLPackage.UOMO_FORMAT: {
+				UomoFormat uomoFormat = (UomoFormat)theEObject;
+				T result = caseUomoFormat(uomoFormat);
+				if (result == null) result = caseSomeFormat(uomoFormat);
+				if (result == null) result = caseReportBase(uomoFormat);
+				if (result == null) result = caseReportLazyResolver(uomoFormat);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case ReportDSLPackage.NUMBER_FORMAT: {
+				NumberFormat numberFormat = (NumberFormat)theEObject;
+				T result = caseNumberFormat(numberFormat);
+				if (result == null) result = caseSomeFormat(numberFormat);
+				if (result == null) result = caseReportBase(numberFormat);
+				if (result == null) result = caseReportLazyResolver(numberFormat);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case ReportDSLPackage.CURRENCY_FORMAT: {
+				CurrencyFormat currencyFormat = (CurrencyFormat)theEObject;
+				T result = caseCurrencyFormat(currencyFormat);
+				if (result == null) result = caseSomeFormat(currencyFormat);
+				if (result == null) result = caseReportBase(currencyFormat);
+				if (result == null) result = caseReportLazyResolver(currencyFormat);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case ReportDSLPackage.DATE_FORMAT: {
+				DateFormat dateFormat = (DateFormat)theEObject;
+				T result = caseDateFormat(dateFormat);
+				if (result == null) result = caseSomeFormat(dateFormat);
+				if (result == null) result = caseReportBase(dateFormat);
+				if (result == null) result = caseReportLazyResolver(dateFormat);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case ReportDSLPackage.DATE_TIME_FORMAT: {
+				DateTimeFormat dateTimeFormat = (DateTimeFormat)theEObject;
+				T result = caseDateTimeFormat(dateTimeFormat);
+				if (result == null) result = caseSomeFormat(dateTimeFormat);
+				if (result == null) result = caseReportBase(dateTimeFormat);
+				if (result == null) result = caseReportLazyResolver(dateTimeFormat);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case ReportDSLPackage.TIME_FORMAT: {
+				TimeFormat timeFormat = (TimeFormat)theEObject;
+				T result = caseTimeFormat(timeFormat);
+				if (result == null) result = caseSomeFormat(timeFormat);
+				if (result == null) result = caseReportBase(timeFormat);
+				if (result == null) result = caseReportLazyResolver(timeFormat);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case ReportDSLPackage.REPORT: {
+				Report report = (Report)theEObject;
+				T result = caseReport(report);
+				if (result == null) result = caseReportBase(report);
+				if (result == null) result = caseReportLazyResolver(report);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case ReportDSLPackage.REPORT_DESIGN: {
+				ReportDesign reportDesign = (ReportDesign)theEObject;
+				T result = caseReportDesign(reportDesign);
+				if (result == null) result = caseReportLazyResolver(reportDesign);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case ReportDSLPackage.REPORT_DESIGN_FILE: {
+				ReportDesignFile reportDesignFile = (ReportDesignFile)theEObject;
+				T result = caseReportDesignFile(reportDesignFile);
+				if (result == null) result = caseReportDesign(reportDesignFile);
+				if (result == null) result = caseReportLazyResolver(reportDesignFile);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case ReportDSLPackage.REPORT_DESIGN_TEMPLATE: {
+				ReportDesignTemplate reportDesignTemplate = (ReportDesignTemplate)theEObject;
+				T result = caseReportDesignTemplate(reportDesignTemplate);
+				if (result == null) result = caseReportDesign(reportDesignTemplate);
+				if (result == null) result = caseReportLazyResolver(reportDesignTemplate);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case ReportDSLPackage.CONTAINER: {
+				Container container = (Container)theEObject;
+				T result = caseContainer(container);
+				if (result == null) result = caseReportLazyResolver(container);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case ReportDSLPackage.PAGE_HEADER: {
+				PageHeader pageHeader = (PageHeader)theEObject;
+				T result = casePageHeader(pageHeader);
+				if (result == null) result = caseContainer(pageHeader);
+				if (result == null) result = caseReportLazyResolver(pageHeader);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case ReportDSLPackage.PAGE_DETAIL: {
+				PageDetail pageDetail = (PageDetail)theEObject;
+				T result = casePageDetail(pageDetail);
+				if (result == null) result = caseContainer(pageDetail);
+				if (result == null) result = caseReportLazyResolver(pageDetail);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case ReportDSLPackage.PAGE_FOOTER: {
+				PageFooter pageFooter = (PageFooter)theEObject;
+				T result = casePageFooter(pageFooter);
+				if (result == null) result = caseContainer(pageFooter);
+				if (result == null) result = caseReportLazyResolver(pageFooter);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case ReportDSLPackage.ELEMENT: {
+				Element element = (Element)theEObject;
+				T result = caseElement(element);
+				if (result == null) result = caseReportLazyResolver(element);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case ReportDSLPackage.WITH_STYLE: {
+				WithStyle withStyle = (WithStyle)theEObject;
+				T result = caseWithStyle(withStyle);
+				if (result == null) result = caseReportLazyResolver(withStyle);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case ReportDSLPackage.TEXT_ELEMENT: {
+				TextElement textElement = (TextElement)theEObject;
+				T result = caseTextElement(textElement);
+				if (result == null) result = caseElement(textElement);
+				if (result == null) result = caseWithStyle(textElement);
+				if (result == null) result = caseReportLazyResolver(textElement);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case ReportDSLPackage.TITLE: {
+				Title title = (Title)theEObject;
+				T result = caseTitle(title);
+				if (result == null) result = caseTextElement(title);
+				if (result == null) result = caseElement(title);
+				if (result == null) result = caseWithStyle(title);
+				if (result == null) result = caseReportLazyResolver(title);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case ReportDSLPackage.SUB_TITLE: {
+				SubTitle subTitle = (SubTitle)theEObject;
+				T result = caseSubTitle(subTitle);
+				if (result == null) result = caseTextElement(subTitle);
+				if (result == null) result = caseElement(subTitle);
+				if (result == null) result = caseWithStyle(subTitle);
+				if (result == null) result = caseReportLazyResolver(subTitle);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case ReportDSLPackage.SUB_SUB_TITLE: {
+				SubSubTitle subSubTitle = (SubSubTitle)theEObject;
+				T result = caseSubSubTitle(subSubTitle);
+				if (result == null) result = caseTextElement(subSubTitle);
+				if (result == null) result = caseElement(subSubTitle);
+				if (result == null) result = caseWithStyle(subSubTitle);
+				if (result == null) result = caseReportLazyResolver(subSubTitle);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case ReportDSLPackage.LABEL: {
+				Label label = (Label)theEObject;
+				T result = caseLabel(label);
+				if (result == null) result = caseTextElement(label);
+				if (result == null) result = caseElement(label);
+				if (result == null) result = caseWithStyle(label);
+				if (result == null) result = caseReportLazyResolver(label);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case ReportDSLPackage.TEXT: {
+				Text text = (Text)theEObject;
+				T result = caseText(text);
+				if (result == null) result = caseTextElement(text);
+				if (result == null) result = caseElement(text);
+				if (result == null) result = caseWithStyle(text);
+				if (result == null) result = caseReportLazyResolver(text);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case ReportDSLPackage.AUTO_TEXT: {
+				AutoText autoText = (AutoText)theEObject;
+				T result = caseAutoText(autoText);
+				if (result == null) result = caseElement(autoText);
+				if (result == null) result = caseWithStyle(autoText);
+				if (result == null) result = caseReportLazyResolver(autoText);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case ReportDSLPackage.IMAGE: {
+				Image image = (Image)theEObject;
+				T result = caseImage(image);
+				if (result == null) result = caseElement(image);
+				if (result == null) result = caseWithStyle(image);
+				if (result == null) result = caseReportLazyResolver(image);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case ReportDSLPackage.WITH_HEADER_FOOTER: {
+				WithHeaderFooter withHeaderFooter = (WithHeaderFooter)theEObject;
+				T result = caseWithHeaderFooter(withHeaderFooter);
+				if (result == null) result = caseReportLazyResolver(withHeaderFooter);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case ReportDSLPackage.DATAMART_TABLE: {
+				DatamartTable datamartTable = (DatamartTable)theEObject;
+				T result = caseDatamartTable(datamartTable);
+				if (result == null) result = caseReportBase(datamartTable);
+				if (result == null) result = caseElement(datamartTable);
+				if (result == null) result = caseWithStyle(datamartTable);
+				if (result == null) result = caseWithHeaderFooter(datamartTable);
+				if (result == null) result = caseReportLazyResolver(datamartTable);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case ReportDSLPackage.DATAMART_TABLE_GROUP: {
+				DatamartTableGroup datamartTableGroup = (DatamartTableGroup)theEObject;
+				T result = caseDatamartTableGroup(datamartTableGroup);
+				if (result == null) result = caseReportBase(datamartTableGroup);
+				if (result == null) result = caseWithHeaderFooter(datamartTableGroup);
+				if (result == null) result = caseReportLazyResolver(datamartTableGroup);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case ReportDSLPackage.SOME_GRID: {
+				SomeGrid someGrid = (SomeGrid)theEObject;
+				T result = caseSomeGrid(someGrid);
+				if (result == null) result = caseReportLazyResolver(someGrid);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case ReportDSLPackage.DATAMART_TABLE_GROUP_HEADER: {
+				DatamartTableGroupHeader datamartTableGroupHeader = (DatamartTableGroupHeader)theEObject;
+				T result = caseDatamartTableGroupHeader(datamartTableGroupHeader);
+				if (result == null) result = caseElement(datamartTableGroupHeader);
+				if (result == null) result = caseSomeGrid(datamartTableGroupHeader);
+				if (result == null) result = caseWithStyle(datamartTableGroupHeader);
+				if (result == null) result = caseReportLazyResolver(datamartTableGroupHeader);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case ReportDSLPackage.DATAMART_TABLE_GROUP_FOOTER: {
+				DatamartTableGroupFooter datamartTableGroupFooter = (DatamartTableGroupFooter)theEObject;
+				T result = caseDatamartTableGroupFooter(datamartTableGroupFooter);
+				if (result == null) result = caseElement(datamartTableGroupFooter);
+				if (result == null) result = caseSomeGrid(datamartTableGroupFooter);
+				if (result == null) result = caseWithStyle(datamartTableGroupFooter);
+				if (result == null) result = caseReportLazyResolver(datamartTableGroupFooter);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case ReportDSLPackage.DATAMART_TABLE_DETAIL: {
+				DatamartTableDetail datamartTableDetail = (DatamartTableDetail)theEObject;
+				T result = caseDatamartTableDetail(datamartTableDetail);
+				if (result == null) result = caseWithStyle(datamartTableDetail);
+				if (result == null) result = caseReportLazyResolver(datamartTableDetail);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case ReportDSLPackage.DATAMART_TABLE_PROPERTY: {
+				DatamartTableProperty datamartTableProperty = (DatamartTableProperty)theEObject;
+				T result = caseDatamartTableProperty(datamartTableProperty);
+				if (result == null) result = caseElement(datamartTableProperty);
+				if (result == null) result = caseWithStyle(datamartTableProperty);
+				if (result == null) result = caseReportLazyResolver(datamartTableProperty);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case ReportDSLPackage.TABLE_FORMATTER: {
+				TableFormatter tableFormatter = (TableFormatter)theEObject;
+				T result = caseTableFormatter(tableFormatter);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case ReportDSLPackage.TABLE_IMAGE: {
+				TableImage tableImage = (TableImage)theEObject;
+				T result = caseTableImage(tableImage);
+				if (result == null) result = caseReportLazyResolver(tableImage);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case ReportDSLPackage.TABLE_VALUE_ELEMENT: {
+				TableValueElement tableValueElement = (TableValueElement)theEObject;
+				T result = caseTableValueElement(tableValueElement);
+				if (result == null) result = caseReportLazyResolver(tableValueElement);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case ReportDSLPackage.TABLE_PROPERTY: {
+				TableProperty tableProperty = (TableProperty)theEObject;
+				T result = caseTableProperty(tableProperty);
+				if (result == null) result = caseTableValueElement(tableProperty);
+				if (result == null) result = caseReportLazyResolver(tableProperty);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case ReportDSLPackage.TABLE_AGGREGATION: {
+				TableAggregation tableAggregation = (TableAggregation)theEObject;
+				T result = caseTableAggregation(tableAggregation);
+				if (result == null) result = caseTableValueElement(tableAggregation);
+				if (result == null) result = caseReportLazyResolver(tableAggregation);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case ReportDSLPackage.TABLE_BASE_AGGREGATION: {
+				TableBaseAggregation tableBaseAggregation = (TableBaseAggregation)theEObject;
+				T result = caseTableBaseAggregation(tableBaseAggregation);
+				if (result == null) result = caseReportLazyResolver(tableBaseAggregation);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case ReportDSLPackage.TABLE_PURE_AGGREGATION: {
+				TablePureAggregation tablePureAggregation = (TablePureAggregation)theEObject;
+				T result = caseTablePureAggregation(tablePureAggregation);
+				if (result == null) result = caseTableBaseAggregation(tablePureAggregation);
+				if (result == null) result = caseReportLazyResolver(tablePureAggregation);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case ReportDSLPackage.TABLE_UNARY_AGGREGATION: {
+				TableUnaryAggregation tableUnaryAggregation = (TableUnaryAggregation)theEObject;
+				T result = caseTableUnaryAggregation(tableUnaryAggregation);
+				if (result == null) result = caseTableBaseAggregation(tableUnaryAggregation);
+				if (result == null) result = caseReportLazyResolver(tableUnaryAggregation);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case ReportDSLPackage.TABLE_MULTIPLE_AGGREGATION: {
+				TableMultipleAggregation tableMultipleAggregation = (TableMultipleAggregation)theEObject;
+				T result = caseTableMultipleAggregation(tableMultipleAggregation);
+				if (result == null) result = caseTableBaseAggregation(tableMultipleAggregation);
+				if (result == null) result = caseReportLazyResolver(tableMultipleAggregation);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case ReportDSLPackage.TABLE_BINARY_AGGREGATION: {
+				TableBinaryAggregation tableBinaryAggregation = (TableBinaryAggregation)theEObject;
+				T result = caseTableBinaryAggregation(tableBinaryAggregation);
+				if (result == null) result = caseTableBaseAggregation(tableBinaryAggregation);
+				if (result == null) result = caseReportLazyResolver(tableBinaryAggregation);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case ReportDSLPackage.TABLE_INTERVAL: {
+				TableInterval tableInterval = (TableInterval)theEObject;
+				T result = caseTableInterval(tableInterval);
+				if (result == null) result = caseReportLazyResolver(tableInterval);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case ReportDSLPackage.TABLE_NUMBER_INTERVAL: {
+				TableNumberInterval tableNumberInterval = (TableNumberInterval)theEObject;
+				T result = caseTableNumberInterval(tableNumberInterval);
+				if (result == null) result = caseTableInterval(tableNumberInterval);
+				if (result == null) result = caseReportLazyResolver(tableNumberInterval);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case ReportDSLPackage.TABLE_DATE_DAY_INTERVAL: {
+				TableDateDayInterval tableDateDayInterval = (TableDateDayInterval)theEObject;
+				T result = caseTableDateDayInterval(tableDateDayInterval);
+				if (result == null) result = caseTableInterval(tableDateDayInterval);
+				if (result == null) result = caseReportLazyResolver(tableDateDayInterval);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case ReportDSLPackage.TABLE_LOOKUP: {
+				TableLookup tableLookup = (TableLookup)theEObject;
+				T result = caseTableLookup(tableLookup);
+				if (result == null) result = caseReportLazyResolver(tableLookup);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case ReportDSLPackage.TABLE_NUMBER_LOOKUP: {
+				TableNumberLookup tableNumberLookup = (TableNumberLookup)theEObject;
+				T result = caseTableNumberLookup(tableNumberLookup);
+				if (result == null) result = caseTableLookup(tableNumberLookup);
+				if (result == null) result = caseReportLazyResolver(tableNumberLookup);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case ReportDSLPackage.TABLE_STRING_LOOKUP: {
+				TableStringLookup tableStringLookup = (TableStringLookup)theEObject;
+				T result = caseTableStringLookup(tableStringLookup);
+				if (result == null) result = caseTableLookup(tableStringLookup);
+				if (result == null) result = caseReportLazyResolver(tableStringLookup);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case ReportDSLPackage.TABLE_DATE_DAY_LOOKUP: {
+				TableDateDayLookup tableDateDayLookup = (TableDateDayLookup)theEObject;
+				T result = caseTableDateDayLookup(tableDateDayLookup);
+				if (result == null) result = caseTableLookup(tableDateDayLookup);
+				if (result == null) result = caseReportLazyResolver(tableDateDayLookup);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case ReportDSLPackage.TABLE_RANGE_ELEMENT: {
+				TableRangeElement tableRangeElement = (TableRangeElement)theEObject;
+				T result = caseTableRangeElement(tableRangeElement);
+				if (result == null) result = caseReportLazyResolver(tableRangeElement);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case ReportDSLPackage.TABLE_TEXT_COLOR: {
+				TableTextColor tableTextColor = (TableTextColor)theEObject;
+				T result = caseTableTextColor(tableTextColor);
+				if (result == null) result = caseTableRangeElement(tableTextColor);
+				if (result == null) result = caseReportLazyResolver(tableTextColor);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case ReportDSLPackage.TABLE_CELL_COLOR: {
+				TableCellColor tableCellColor = (TableCellColor)theEObject;
+				T result = caseTableCellColor(tableCellColor);
+				if (result == null) result = caseTableRangeElement(tableCellColor);
+				if (result == null) result = caseReportLazyResolver(tableCellColor);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case ReportDSLPackage.TABLE_ICON: {
+				TableIcon tableIcon = (TableIcon)theEObject;
+				T result = caseTableIcon(tableIcon);
+				if (result == null) result = caseTableRangeElement(tableIcon);
+				if (result == null) result = caseReportLazyResolver(tableIcon);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case ReportDSLPackage.TABLE_TREND: {
+				TableTrend tableTrend = (TableTrend)theEObject;
+				T result = caseTableTrend(tableTrend);
+				if (result == null) result = caseTableRangeElement(tableTrend);
+				if (result == null) result = caseReportLazyResolver(tableTrend);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case ReportDSLPackage.TABLE_TOOLTIP: {
+				TableTooltip tableTooltip = (TableTooltip)theEObject;
+				T result = caseTableTooltip(tableTooltip);
+				if (result == null) result = caseTableRangeElement(tableTooltip);
+				if (result == null) result = caseReportLazyResolver(tableTooltip);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case ReportDSLPackage.GRID: {
+				Grid grid = (Grid)theEObject;
+				T result = caseGrid(grid);
+				if (result == null) result = caseReportBase(grid);
+				if (result == null) result = caseElement(grid);
+				if (result == null) result = caseSomeGrid(grid);
+				if (result == null) result = caseReportLazyResolver(grid);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case ReportDSLPackage.GRID_ROW: {
+				GridRow gridRow = (GridRow)theEObject;
+				T result = caseGridRow(gridRow);
+				if (result == null) result = caseReportBase(gridRow);
+				if (result == null) result = caseWithStyle(gridRow);
+				if (result == null) result = caseReportLazyResolver(gridRow);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case ReportDSLPackage.GRID_CELL: {
+				GridCell gridCell = (GridCell)theEObject;
+				T result = caseGridCell(gridCell);
+				if (result == null) result = caseReportBase(gridCell);
+				if (result == null) result = caseContainer(gridCell);
+				if (result == null) result = caseReportLazyResolver(gridCell);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			default: return defaultCase(theEObject);
+		}
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Report Model</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>Report Model</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseReportModel(ReportModel object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Report Lazy Resolver</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>Report Lazy Resolver</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseReportLazyResolver(ReportLazyResolver object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Report Base</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>Report Base</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseReportBase(ReportBase object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Report Package</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>Report Package</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseReportPackage(ReportPackage object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Page Templates</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>Page Templates</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T casePageTemplates(PageTemplates object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Some Formats</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>Some Formats</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseSomeFormats(SomeFormats object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Colors</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>Colors</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseColors(Colors object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Fonts</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>Fonts</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseFonts(Fonts object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Medias</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>Medias</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseMedias(Medias object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Styles</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>Styles</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseStyles(Styles object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Page Template</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>Page Template</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T casePageTemplate(PageTemplate object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Color</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>Color</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseColor(Color object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Font</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>Font</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseFont(Font object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Font Family</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>Font Family</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseFontFamily(FontFamily object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Build In Font Family</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>Build In Font Family</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseBuildInFontFamily(BuildInFontFamily object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Custom Font Family</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>Custom Font Family</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseCustomFontFamily(CustomFontFamily object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Media</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>Media</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseMedia(Media object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Border Style</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>Border Style</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseBorderStyle(BorderStyle object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Base Style</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>Base Style</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseBaseStyle(BaseStyle object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Media Style</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>Media Style</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseMediaStyle(MediaStyle object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Style</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>Style</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseStyle(Style object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Some Format</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>Some Format</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseSomeFormat(SomeFormat object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Uomo Format</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>Uomo Format</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseUomoFormat(UomoFormat object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Number Format</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>Number Format</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseNumberFormat(NumberFormat object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Currency Format</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>Currency Format</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseCurrencyFormat(CurrencyFormat object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Date Format</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>Date Format</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseDateFormat(DateFormat object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Date Time Format</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>Date Time Format</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseDateTimeFormat(DateTimeFormat object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Time Format</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>Time Format</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseTimeFormat(TimeFormat object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Report</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>Report</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseReport(Report object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Report Design</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>Report Design</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseReportDesign(ReportDesign object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Report Design File</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>Report Design File</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseReportDesignFile(ReportDesignFile object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Report Design Template</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>Report Design Template</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseReportDesignTemplate(ReportDesignTemplate object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Container</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>Container</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseContainer(Container object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Page Header</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>Page Header</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T casePageHeader(PageHeader object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Page Detail</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>Page Detail</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T casePageDetail(PageDetail object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Page Footer</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>Page Footer</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T casePageFooter(PageFooter object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Element</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>Element</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseElement(Element object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>With Style</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>With Style</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseWithStyle(WithStyle object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Text Element</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>Text Element</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseTextElement(TextElement object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Title</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>Title</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseTitle(Title object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Sub Title</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>Sub Title</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseSubTitle(SubTitle object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Sub Sub Title</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>Sub Sub Title</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseSubSubTitle(SubSubTitle object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Label</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>Label</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseLabel(Label object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Text</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>Text</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseText(Text object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Auto Text</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>Auto Text</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseAutoText(AutoText object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Image</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>Image</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseImage(Image object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>With Header Footer</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>With Header Footer</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseWithHeaderFooter(WithHeaderFooter object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Datamart Table</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>Datamart Table</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseDatamartTable(DatamartTable object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Datamart Table Group</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>Datamart Table Group</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseDatamartTableGroup(DatamartTableGroup object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Some Grid</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>Some Grid</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseSomeGrid(SomeGrid object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Datamart Table Group Header</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>Datamart Table Group Header</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseDatamartTableGroupHeader(DatamartTableGroupHeader object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Datamart Table Group Footer</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>Datamart Table Group Footer</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseDatamartTableGroupFooter(DatamartTableGroupFooter object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Datamart Table Detail</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>Datamart Table Detail</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseDatamartTableDetail(DatamartTableDetail object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Datamart Table Property</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>Datamart Table Property</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseDatamartTableProperty(DatamartTableProperty object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Table Formatter</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 Formatter</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseTableFormatter(TableFormatter object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Table Image</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 Image</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseTableImage(TableImage object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Table Value Element</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 Value Element</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseTableValueElement(TableValueElement object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Table Property</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>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseTableProperty(TableProperty object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Table Aggregation</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 Aggregation</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseTableAggregation(TableAggregation object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Table Base Aggregation</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 Base Aggregation</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseTableBaseAggregation(TableBaseAggregation object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Table Pure Aggregation</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 Pure Aggregation</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseTablePureAggregation(TablePureAggregation object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Table Unary Aggregation</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 Unary Aggregation</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseTableUnaryAggregation(TableUnaryAggregation object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Table Multiple Aggregation</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 Multiple Aggregation</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseTableMultipleAggregation(TableMultipleAggregation object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Table Binary Aggregation</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 Binary Aggregation</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseTableBinaryAggregation(TableBinaryAggregation object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Table 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 Interval</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseTableInterval(TableInterval object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Table Number 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 Number Interval</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseTableNumberInterval(TableNumberInterval 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;
+	 * 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 Date Day Interval</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseTableDateDayInterval(TableDateDayInterval object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Table 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 Lookup</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseTableLookup(TableLookup object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Table Number 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 Number Lookup</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseTableNumberLookup(TableNumberLookup 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;
+	 * 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 String Lookup</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseTableStringLookup(TableStringLookup object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Table Date Day 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 Date Day Lookup</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseTableDateDayLookup(TableDateDayLookup 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;
+	 * 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 Range Element</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseTableRangeElement(TableRangeElement object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Table Text Color</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>Table Text Color</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseTableTextColor(TableTextColor object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Table Cell Color</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>Table Cell Color</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseTableCellColor(TableCellColor object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Table Icon</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 Icon</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseTableIcon(TableIcon object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Table Trend</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 Trend</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseTableTrend(TableTrend object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Table Tooltip</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 Tooltip</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseTableTooltip(TableTooltip object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Grid</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>Grid</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseGrid(Grid object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Grid Row</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>Grid Row</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseGridRow(GridRow object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Grid Cell</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>Grid Cell</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseGridCell(GridCell object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>LLazy Resolver</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>LLazy Resolver</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseLLazyResolver(LLazyResolver object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>LPackage</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>LPackage</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseLPackage(LPackage object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>EObject</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch, but this is the last case anyway.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>EObject</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject)
+	 * @generated
+	 */
+	@Override
+	public T defaultCase(EObject object) {
+		return null;
+	}
+
+} //ReportDSLSwitch
diff --git a/org.eclipse.osbp.xtext.reportdsl/epl-v10.html b/org.eclipse.osbp.xtext.reportdsl/epl-v10.html
new file mode 100644
index 0000000..b398acc
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl/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.reportdsl/license.html b/org.eclipse.osbp.xtext.reportdsl/license.html
new file mode 100644
index 0000000..6e579a5
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl/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.reportdsl/model/ReportDSL.xcore b/org.eclipse.osbp.xtext.reportdsl/model/ReportDSL.xcore
new file mode 100644
index 0000000..904fce6
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl/model/ReportDSL.xcore
@@ -0,0 +1,581 @@
+/**
+ *                                                                            
+ *  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
+ * 
+ */
+
+@GenModel(fileExtensions="report")
+@GenModel(modelName="ReportDSL")
+@GenModel(prefix="ReportDSL")
+@GenModel(updateClasspath="false")
+@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 
+ which accompanies this distribution, and is available at 
+ http://www.eclipse.org/legal/epl-v10.html 
+
+ Based on ideas from Xtext, Xtend, Xcore
+  
+ Contributors:  
+ 		Christophe Loetz  (Loetz GmbH&Co.KG) - Initial implementation 
+ ")
+@Ecore(nsURI="http://osbp.eclipse.org/xtext/reportdsl/ReportDSL")
+@Ecore(nsPrefix="reportdsl")
+@Ecore(rootPackage="reportdsl")
+package org.eclipse.osbp.xtext.reportdsl
+
+import org.eclipse.osbp.xtext.datamartdsl.DatamartDefinition
+import org.eclipse.osbp.xtext.datamartdsl.DatamartProperty
+import org.eclipse.emf.ecore.EObject
+import org.eclipse.xtext.xtype.XImportSection
+import org.eclipse.emf.ecore.InternalEObject
+import org.eclipse.osbp.dsl.semantic.common.types.LPackage
+import org.eclipse.osbp.dsl.xtext.lazyresolver.api.EcoreUtil3
+import org.eclipse.osbp.xtext.action.ActionToolbar
+
+class ReportModel {
+	contains ReportPackage[] pckg
+}
+
+type InternalEObject wraps InternalEObject
+
+class ReportLazyResolver {
+	op EObject eResolveProxy(InternalEObject proxy) {
+		return EcoreUtil3.resolve(proxy, this.eResource().resourceSet);
+	}
+}
+
+class ReportBase extends ReportLazyResolver {
+	String name
+}
+
+class ReportPackage extends LPackage {
+	contains XImportSection importSection
+	String externalCssURI
+	String externalCssURIBundle
+	contains PageTemplates pagetemplates
+	contains SomeFormats formatters
+	contains Colors colors
+	contains Fonts fonts
+    contains Medias medias
+	contains Styles styles
+	contains Report[] reports
+}
+
+class PageTemplates extends ReportLazyResolver {
+	contains PageTemplate[] pagetemplates
+}
+
+class SomeFormats extends ReportLazyResolver {
+	contains SomeFormat[] formatters
+}
+
+class Colors extends ReportLazyResolver {
+	contains Color[] colors
+}
+
+class Fonts extends ReportLazyResolver {
+	contains Font[] fonts
+}
+
+class Medias extends ReportLazyResolver {
+	contains Media[] medias
+}
+
+class Styles extends ReportLazyResolver {
+	contains Style[] styles
+}
+
+class PageTemplate extends ReportBase {
+	PageSizeEnum size
+	OrientationEnum orientation
+	double topMarginValue
+	UnitEnum topMarginUnit
+	double leftMarginValue
+	UnitEnum leftMarginUnit
+	double bottomMarginValue
+	UnitEnum bottomMarginUnit
+	double rightMarginValue
+	UnitEnum rightMarginUnit
+	contains PageHeader header
+	contains PageFooter footer
+}
+
+enum UnitEnum{
+	NULL as ''
+	MM as 'mm'
+	CM as 'cm'
+	PT as 'pt'
+	IN as 'inch'
+	PC as 'pc'
+	EM as 'em'
+	EX as 'ex'
+	PX as 'px'
+	PERCENTAGE as '%'
+}
+
+enum PageSizeEnum{
+	A4 as 'a4'
+	A3 as 'a3'
+	A5 as 'a5'
+	US_LETTER as 'us-letter'
+	US_LEGAL as 'us-legal'
+	US_LEDGER as 'us-ledger'
+	US_SUPER_B as 'us-super-b'
+}
+
+enum OrientationEnum{
+	PORTRAIT as 'portrait'
+	LANDSCAPE as 'landscape'
+}
+
+class Color extends ReportBase {
+	String color
+	refers Color basecolor
+	Integer darkensby
+	Integer lightensby
+	Integer transformsby
+	refers Color targetcolor
+}
+
+class Font extends ReportBase {
+	refers Font ^extends
+	contains FontFamily family
+	FontStyleEnum style
+	boolean bold
+	double sizevalue
+	UnitEnum sizeunit
+}
+
+enum FontStyleEnum {
+	NORMAL as 'normal'
+	ITALIC as 'italic'
+	OBLIQUE as 'oblique'
+}
+
+interface FontFamily extends ReportLazyResolver{}
+
+class BuildInFontFamily extends FontFamily {
+	BuildInFontFamilyEnum custom
+}
+
+enum BuildInFontFamilyEnum {
+	MONOSPACE as 'monospace'
+	SANS_SERIF as 'sans-serif'
+	SERIF as 'serif'
+}
+
+class CustomFontFamily extends FontFamily {
+	String custom
+}
+
+class Media extends ReportBase {
+}
+
+class BorderStyle extends ReportLazyResolver {
+    BorderTypeEnum ^type
+	double widthvalue
+	UnitEnum widthunit
+    refers Color color
+}
+
+enum BorderTypeEnum {
+    NONE as 'none'
+    SOLID as 'solid'
+    DOTTED as 'dotted'
+    DASHED as 'dashed'
+    DOUBLE as 'double'
+    GROOVE as 'groove'
+    RIDGE as 'ridge'
+    INSET as 'inset'
+    OUTSET as 'outset'
+}
+
+class BaseStyle extends ReportLazyResolver {
+	refers SomeFormat format
+	refers Font font
+	refers Color backgroundcolor
+	refers Color backgroundcolor_alternate
+	refers Color textcolor
+	TextAlignEnum textalign
+    contains BorderStyle borderTop
+    contains BorderStyle borderBottom
+    contains BorderStyle borderLeft
+    contains BorderStyle borderRight
+	double paddingTopValue
+	UnitEnum paddingTopUnit
+	double paddingBottomValue
+	UnitEnum paddingBottomUnit
+	double paddingLeftValue
+	UnitEnum paddingLeftUnit
+	double paddingRightValue
+	UnitEnum paddingRightUnit
+	double marginTopValue
+	UnitEnum marginTopUnit
+	double marginLeftValue
+	UnitEnum marginLeftUnit
+	double marginBottomValue
+	UnitEnum marginBottomUnit
+	double marginRightValue
+	UnitEnum marginRightUnit
+}
+
+class MediaStyle extends BaseStyle {
+    refers Media media
+}
+
+class Style extends ReportBase, BaseStyle {
+	refers Style ^extends
+	contains MediaStyle[] mediastyles
+}
+
+enum TextAlignEnum {
+	NULL as ''
+	LEFT as 'left'
+	CENTER as 'center'
+	RIGHT as 'right'
+}
+
+class SomeFormat extends ReportBase {
+	String ui_pattern
+	String report_pattern
+	TextAlignEnum textalign
+}
+
+class UomoFormat extends SomeFormat {
+}
+
+class NumberFormat extends SomeFormat {
+	NumberFormatCategoryEnum report_category
+}
+
+enum NumberFormatCategoryEnum {
+	UNFORMATTED as 'unformatted'
+	GENERAL_NUMBER as 'general-number'
+	FIXED as 'fixed'
+	PERCENT as 'percent'
+	SCIENTIFIC as 'scientific'
+	CUSTOM as 'custom'
+}
+
+class CurrencyFormat extends SomeFormat {
+	CurrencyFormatCategoryEnum report_category
+}
+
+enum CurrencyFormatCategoryEnum {
+	UNFORMATTED as 'unformatted'
+	CURRENCY as 'currency'
+	CUSTOM as 'custom'
+}
+
+class DateFormat extends SomeFormat {
+	DateFormatCategoryEnum report_category
+}
+
+enum DateFormatCategoryEnum {
+	CUSTOM as 'custom'
+}
+
+class DateTimeFormat extends SomeFormat {
+	DateTimeFormatCategoryEnum report_category
+}
+
+enum DateTimeFormatCategoryEnum {
+	CUSTOM as 'custom'
+}
+
+class TimeFormat extends SomeFormat {
+	TimeFormatCategoryEnum report_category
+}
+
+enum TimeFormatCategoryEnum {
+	CUSTOM as 'custom'
+}
+
+class Report extends ReportBase {
+	boolean description
+	String descriptionValue
+	refers DatamartDefinition datamartRef
+	RenderingEnum rendering
+	String externalCssURI
+	String externalCssURIBundle
+	refers PageTemplate pageTemplate
+    refers Media media
+	refers ActionToolbar toolbar
+	contains ReportDesign design
+}
+
+interface ReportDesign extends ReportLazyResolver {}
+
+class ReportDesignFile extends ReportDesign {	
+	String name
+}
+
+class ReportDesignTemplate extends ReportDesign {
+	String description
+	contains PageHeader header
+	contains PageDetail detail
+	contains PageFooter footer
+}
+
+class Container extends ReportLazyResolver {
+	contains Element[] elements
+}
+
+class PageHeader extends Container {
+	boolean showOnFirst
+	double heightValue
+	UnitEnum heightUnit
+}
+
+class PageDetail extends Container {}
+
+class PageFooter extends Container {
+	boolean showOnLast
+	double heightValue
+	UnitEnum heightUnit
+}
+
+interface Element extends ReportLazyResolver {}
+
+class WithStyle extends ReportLazyResolver {
+	refers Style style
+}
+
+class TextElement extends Element, WithStyle {
+	String text
+}
+
+class Title extends TextElement {}
+
+class SubTitle extends TextElement {}
+
+class SubSubTitle extends TextElement {}
+
+class Label extends TextElement {}
+
+class Text extends TextElement {}
+
+class AutoText extends Element, WithStyle {
+	AutoTextEnum ^type
+}
+
+enum AutoTextEnum {
+	PAGE_NUMBER as "page-number"
+	TOTAL_PAGE as "total-page"
+	PAGE_NUMBER_UNFILTERED as "page-number-unfiltered"
+	TOTAL_PAGE_UNFILTERED as "total-page-unfiltered"
+	PAGE_VARIABLE as "page-variable"
+}
+
+class Image extends Element, WithStyle {
+	ImageSizeEnum size
+	double scale
+	ImageSourceEnum sourceType
+	String filename
+}
+
+enum ImageSizeEnum {
+	SIZE_TO_IMAGE as 'size-to-image'
+	SCALE_TO_ITEM as 'scale-to-item'
+	CLIP as 'clip'
+}
+
+enum ImageSourceEnum {
+	FILE as 'file'
+	URL as 'url'
+	EMBED as 'embed'
+}
+
+class WithHeaderFooter extends ReportLazyResolver {
+	boolean detailheader
+	refers Style headerstyle
+	boolean detailfooter
+	refers Style footerstyle
+}
+
+class DatamartTable extends ReportBase, Element, WithStyle, WithHeaderFooter {
+//	refers DatamartDefinition datamartRef
+	contains DatamartTableGroup[] groups
+	contains DatamartTableDetail detail
+}
+
+class DatamartTableGroup extends ReportBase, WithHeaderFooter {
+	refers DatamartProperty groupingRef
+	contains DatamartTableGroupHeader header
+	contains DatamartTableGroupFooter footer
+}
+
+class SomeGrid extends ReportLazyResolver {
+	contains GridRow[] rows
+}
+
+class DatamartTableGroupHeader extends Element, SomeGrid, WithStyle {
+}
+
+class DatamartTableGroupFooter extends Element, SomeGrid, WithStyle {
+}
+
+class DatamartTableDetail extends WithStyle {
+	contains DatamartTableProperty[] columnFormatters
+}
+
+/* !!! copy from tabledsl ... */
+class DatamartTableProperty extends Element, WithStyle {
+	contains TableValueElement column
+	contains TableInterval[] intervals
+	boolean hideLabelInterval
+	contains TableLookup[] lookups
+	boolean hideLabelLookup
+	boolean hasImage
+	contains TableImage image
+}
+
+enum PureAggregationTypeEnum {
+    COUNT as 'count'
+    RUNNINGCOUNT as 'running-count'
+}
+
+enum UnaryAggregationTypeEnum {
+	SUM as 'sum'
+	AVE as 'average'
+    MIN as 'minimum'
+    MAX as 'maximum'
+    RUNNINGSUM as 'running-sum'
+}
+
+enum BinaryAggregationTypeEnum {
+	DIV as 'divide'
+}
+
+enum MultipleAggregationTypeEnum {
+	CONCAT as 'concat'
+}
+
+class TableFormatter{
+	String format
+}
+	
+class TableImage extends ReportLazyResolver{
+	String imagePathPattern
+	boolean hideImageLabel
+	boolean hasParameter
+	boolean resize
+	String resizeString
+	contains TableValueElement imagePathParameter
+}
+	
+interface TableValueElement extends ReportLazyResolver{}
+
+class TableProperty extends TableValueElement{
+	refers DatamartProperty valueRef
+}
+
+class TableAggregation extends TableValueElement {
+	String text
+	contains TableBaseAggregation aggregation
+	refers DatamartTableGroup onGroup
+}
+
+class TableBaseAggregation extends ReportLazyResolver {
+	refers DatamartProperty[] valueRefs
+}
+
+class TablePureAggregation extends TableBaseAggregation {
+	PureAggregationTypeEnum aggregation
+}
+
+class TableUnaryAggregation extends TableBaseAggregation {
+	UnaryAggregationTypeEnum aggregation
+}
+
+class TableMultipleAggregation extends TableBaseAggregation {
+	MultipleAggregationTypeEnum aggregation
+}
+
+class TableBinaryAggregation extends TableBaseAggregation {
+	BinaryAggregationTypeEnum aggregation
+}
+
+interface TableInterval extends ReportLazyResolver{}
+	
+class TableNumberInterval extends TableInterval{
+	double numberIntervalValue
+	contains TableRangeElement numberRange
+}
+	
+class TableDateDayInterval extends TableInterval{
+	double dateIntervalValue
+	contains TableRangeElement dateRange
+}
+
+interface TableLookup extends ReportLazyResolver{}
+	
+class TableNumberLookup extends TableLookup{
+	double lookupValue
+	contains TableRangeElement discrete
+}
+
+class TableStringLookup extends TableLookup{
+	String lookupValue
+	contains TableRangeElement discrete
+}
+	
+class TableDateDayLookup extends TableLookup{
+	double lookupValue
+	contains TableRangeElement discrete
+}
+		
+interface TableRangeElement extends ReportLazyResolver{}
+	
+class TableTextColor extends TableRangeElement{ 
+	refers Color color
+}
+	
+class TableCellColor extends TableRangeElement{ 
+	refers Color color
+}
+
+class TableIcon extends TableRangeElement{
+	String icon
+}
+
+class TableTrend extends TableRangeElement{
+	TrendIconEnum icon
+}
+
+class TableTooltip extends TableRangeElement{
+	String tooltip
+}
+	
+enum TrendIconEnum{
+	RISING as 'rising'
+	BADRISING as 'bad-rising'
+	SLOPING as 'sloping'
+	GOODSLOPING as 'good-sloping'
+	STAGNATING as 'stagnating'
+}
+/* ... copy from tabledsl !!! */
+
+class Grid extends ReportBase, Element, SomeGrid {}
+
+class GridRow extends ReportBase, WithStyle {
+	contains GridCell[] cells
+}
+
+class GridCell extends ReportBase, Container {
+	int columnspan
+}
+
+enum RenderingEnum{
+	HTML as 'html'
+	PDF as 'pdf'
+}
diff --git a/org.eclipse.osbp.xtext.reportdsl/plugin.properties b/org.eclipse.osbp.xtext.reportdsl/plugin.properties
new file mode 100644
index 0000000..ea158c2
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl/plugin.properties
@@ -0,0 +1,14 @@
+# 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 
+#  
+
+pluginName = ReportDSL Model
+providerName = Loetz GmbH&Co.KG, 69115 Heidelberg, Germany
diff --git a/org.eclipse.osbp.xtext.reportdsl/plugin.xml b/org.eclipse.osbp.xtext.reportdsl/plugin.xml
new file mode 100644
index 0000000..10c2743
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl/plugin.xml
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.0"?>
+
+<plugin>
+
+<!--
+  <extension point="org.eclipse.emf.ecore.generated_package">
+    <package 
+       uri = "http://www.osbp.de/xtext/reportdsl/ReportDSL" 
+       class = "org.eclipse.osbp.xtext.reportdsl.reportDSL.ReportDSLPackage"
+       genModel = "model/generated/ReportDSL.genmodel" /> 
+	
+  </extension>
+-->
+
+
+
+   <extension point="org.eclipse.emf.ecore.generated_package">
+      <!-- @generated ReportDSL -->
+      <package
+            uri="http://osbp.eclipse.org/xtext/reportdsl/ReportDSL"
+            class="org.eclipse.osbp.xtext.reportdsl.ReportDSLPackage"
+            genModel="model/ReportDSL.xcore"/>
+   </extension>
+
+</plugin>
diff --git a/org.eclipse.osbp.xtext.reportdsl/pom.xml b/org.eclipse.osbp.xtext.reportdsl/pom.xml
new file mode 100644
index 0000000..a4847c9
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl/pom.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--#======================================================================= -->
+<!--# Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) -->
+<!--# All rights reserved. This program and the accompanying materials -->
+<!--# are made available under the terms of the Eclipse Public License v1.0 -->
+<!--# which accompanies this distribution, and is available at -->
+<!--# http://www.eclipse.org/legal/epl-v10.html -->
+<!--# -->
+<!--# Contributors: -->
+<!--#     Christophe Loetz (Loetz GmbH&Co.KG) - initial API and implementation -->
+<!--#======================================================================= -->
+
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+    <parent>
+        <groupId>org.eclipse.osbp.xtext.reportdsl</groupId>
+        <artifactId>org.eclipse.osbp.xtext.reportdsl.aggregator</artifactId>
+        <version>0.9.0-SNAPSHOT</version>
+        <relativePath>..</relativePath>
+    </parent>
+    <artifactId>org.eclipse.osbp.xtext.reportdsl</artifactId>
+    <packaging>eclipse-plugin</packaging>
+    <dependencies>
+    </dependencies>
+</project>
diff --git a/org.eclipse.osbp.xtext.reportdsl/src-gen/README.txt b/org.eclipse.osbp.xtext.reportdsl/src-gen/README.txt
new file mode 100644
index 0000000..bbbe557
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl/src-gen/README.txt
@@ -0,0 +1 @@
+dummy file needed for git for necessary but empty directories!
\ No newline at end of file
diff --git a/org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/AbstractReportDSLRuntimeModule.java b/org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/AbstractReportDSLRuntimeModule.java
new file mode 100644
index 0000000..70f122c
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/AbstractReportDSLRuntimeModule.java
@@ -0,0 +1,353 @@
+/**
+ *                                                                            
+ *  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.reportdsl;
+
+import java.util.Properties;
+
+import org.eclipse.xtext.Constants;
+import org.eclipse.xtext.service.DefaultRuntimeModule;
+
+import com.google.inject.Binder;
+import com.google.inject.name.Names;
+
+/**
+ * Manual modifications go to {org.eclipse.osbp.xtext.reportdsl.ReportDSLRuntimeModule}
+ */
+ @SuppressWarnings("all")
+public abstract class AbstractReportDSLRuntimeModule extends DefaultRuntimeModule {
+
+	protected Properties properties = null;
+
+	@Override
+	public void configure(Binder binder) {
+		properties = tryBindProperties(binder, "org/eclipse/osbp/xtext/reportdsl/ReportDSL.properties");
+		super.configure(binder);
+	}
+	
+	public void configureLanguageName(Binder binder) {
+		binder.bind(String.class).annotatedWith(Names.named(Constants.LANGUAGE_NAME)).toInstance("org.eclipse.osbp.xtext.reportdsl.ReportDSL");
+	}
+	
+	public void configureFileExtensions(Binder binder) {
+		if (properties == null || properties.getProperty(Constants.FILE_EXTENSIONS) == null)
+			binder.bind(String.class).annotatedWith(Names.named(Constants.FILE_EXTENSIONS)).toInstance("report");
+	}
+	
+	// contributed by org.eclipse.xtext.generator.serializer.SerializerFragment
+	public Class<? extends org.eclipse.xtext.serializer.sequencer.ISemanticSequencer> bindISemanticSequencer() {
+		return org.eclipse.osbp.xtext.reportdsl.serializer.ReportDSLSemanticSequencer.class;
+	}
+
+	// contributed by org.eclipse.xtext.generator.serializer.SerializerFragment
+	public Class<? extends org.eclipse.xtext.serializer.sequencer.ISyntacticSequencer> bindISyntacticSequencer() {
+		return org.eclipse.osbp.xtext.reportdsl.serializer.ReportDSLSyntacticSequencer.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.reportdsl.parser.antlr.ReportDSLParser.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.reportdsl.parser.antlr.ReportDSLAntlrTokenFileProvider.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.reportdsl.parser.antlr.internal.InternalReportDSLLexer.class;
+	}
+
+	// contributed by org.eclipse.xtext.generator.parser.antlr.XtextAntlrGeneratorFragment
+	public com.google.inject.Provider<org.eclipse.osbp.xtext.reportdsl.parser.antlr.internal.InternalReportDSLLexer> provideInternalReportDSLLexer() {
+		return org.eclipse.xtext.parser.antlr.LexerProvider.create(org.eclipse.osbp.xtext.reportdsl.parser.antlr.internal.InternalReportDSLLexer.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.reportdsl.parser.antlr.internal.InternalReportDSLLexer.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.reportdsl.validation.ReportDSLValidator> bindReportDSLValidator() {
+		return org.eclipse.osbp.xtext.reportdsl.validation.ReportDSLValidator.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.reportdsl.formatting.ReportDSLFormatter.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.reportdsl.jvmmodel.ReportDSLJvmModelInferrer.class;
+	}
+
+	// contributed by org.eclipse.xtext.generator.grammarAccess.GrammarAccessFragment
+	public java.lang.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.reportdsl.services.ReportDSLGrammarAccess.class;
+	}
+
+}
diff --git a/org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/ReportDSLStandaloneSetupGenerated.java b/org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/ReportDSLStandaloneSetupGenerated.java
new file mode 100644
index 0000000..7241980
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/ReportDSLStandaloneSetupGenerated.java
@@ -0,0 +1,53 @@
+/**
+ *                                                                            
+ *  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.reportdsl;
+
+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;
+
+/**
+ * Generated from StandaloneSetup.xpt!
+ */
+@SuppressWarnings("all")
+public class ReportDSLStandaloneSetupGenerated implements ISetup {
+
+	public Injector createInjectorAndDoEMFRegistration() {
+		org.eclipse.xtext.xbase.annotations.XbaseWithAnnotationsStandaloneSetup.doSetup();
+
+		Injector injector = createInjector();
+		register(injector);
+		return injector;
+	}
+	
+	public Injector createInjector() {
+		return Guice.createInjector(new org.eclipse.osbp.xtext.reportdsl.ReportDSLRuntimeModule());
+	}
+	
+	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("report", resourceFactory);
+		org.eclipse.xtext.resource.IResourceServiceProvider.Registry.INSTANCE.getExtensionToFactoryMap().put("report", serviceProvider);
+		
+
+
+
+	}
+}
diff --git a/org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/ReportDSLAntlrTokenFileProvider.java b/org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/ReportDSLAntlrTokenFileProvider.java
new file mode 100644
index 0000000..ff81dbd
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/ReportDSLAntlrTokenFileProvider.java
@@ -0,0 +1,26 @@
+/**
+ *                                                                            
+ *  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.reportdsl.parser.antlr;
+
+import java.io.InputStream;
+import org.eclipse.xtext.parser.antlr.IAntlrTokenFileProvider;
+
+public class ReportDSLAntlrTokenFileProvider implements IAntlrTokenFileProvider {
+	
+	public InputStream getAntlrTokenFile() {
+		ClassLoader classLoader = getClass().getClassLoader();
+    	return classLoader.getResourceAsStream("org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.tokens");
+	}
+}
diff --git a/org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/ReportDSLParser.java b/org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/ReportDSLParser.java
new file mode 100644
index 0000000..c02ed73
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/ReportDSLParser.java
@@ -0,0 +1,50 @@
+/**
+ *                                                                            
+ *  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.reportdsl.parser.antlr;
+
+import com.google.inject.Inject;
+
+import org.eclipse.xtext.parser.antlr.XtextTokenStream;
+import org.eclipse.osbp.xtext.reportdsl.services.ReportDSLGrammarAccess;
+
+public class ReportDSLParser extends org.eclipse.xtext.parser.antlr.AbstractAntlrParser {
+	
+	@Inject
+	private ReportDSLGrammarAccess grammarAccess;
+	
+	@Override
+	protected void setInitialHiddenTokens(XtextTokenStream tokenStream) {
+		tokenStream.setInitialHiddenTokens("RULE_WS", "RULE_ML_COMMENT", "RULE_SL_COMMENT");
+	}
+	
+	@Override
+	protected org.eclipse.osbp.xtext.reportdsl.parser.antlr.internal.InternalReportDSLParser createParser(XtextTokenStream stream) {
+		return new org.eclipse.osbp.xtext.reportdsl.parser.antlr.internal.InternalReportDSLParser(stream, getGrammarAccess());
+	}
+	
+	@Override 
+	protected String getDefaultRuleName() {
+		return "ReportModel";
+	}
+	
+	public ReportDSLGrammarAccess getGrammarAccess() {
+		return this.grammarAccess;
+	}
+	
+	public void setGrammarAccess(ReportDSLGrammarAccess grammarAccess) {
+		this.grammarAccess = grammarAccess;
+	}
+	
+}
diff --git a/org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g b/org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g
new file mode 100644
index 0000000..fbace77
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g
@@ -0,0 +1,10015 @@
+/**
+ *                                                                            
+ *  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
+ * 
+ */
+
+grammar InternalReportDSL;
+
+options {
+	superClass=AbstractInternalAntlrParser;
+	
+}
+
+@lexer::header {
+package org.eclipse.osbp.xtext.reportdsl.parser.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.parser.antlr.Lexer;
+}
+
+@parser::header {
+package org.eclipse.osbp.xtext.reportdsl.parser.antlr.internal; 
+
+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.emf.common.util.Enumerator;
+import org.eclipse.xtext.parser.antlr.AbstractInternalAntlrParser;
+import org.eclipse.xtext.parser.antlr.XtextTokenStream;
+import org.eclipse.xtext.parser.antlr.XtextTokenStream.HiddenTokens;
+import org.eclipse.xtext.parser.antlr.AntlrDatatypeRuleToken;
+import org.eclipse.osbp.xtext.reportdsl.services.ReportDSLGrammarAccess;
+
+}
+
+@parser::members {
+
+ 	private ReportDSLGrammarAccess grammarAccess;
+ 	
+    public InternalReportDSLParser(TokenStream input, ReportDSLGrammarAccess grammarAccess) {
+        this(input);
+        this.grammarAccess = grammarAccess;
+        registerRules(grammarAccess.getGrammar());
+    }
+    
+    @Override
+    protected String getFirstRuleName() {
+    	return "ReportModel";	
+   	}
+   	
+   	@Override
+   	protected ReportDSLGrammarAccess getGrammarAccess() {
+   		return grammarAccess;
+   	}
+}
+
+@rulecatch { 
+    catch (RecognitionException re) { 
+        recover(input,re); 
+        appendSkippedTokens();
+    } 
+}
+
+
+
+
+// Entry rule entryRuleReportModel
+entryRuleReportModel returns [EObject current=null] 
+	:
+	{ newCompositeNode(grammarAccess.getReportModelRule()); }
+	 iv_ruleReportModel=ruleReportModel 
+	 { $current=$iv_ruleReportModel.current; } 
+	 EOF 
+;
+
+// Rule ReportModel
+ruleReportModel returns [EObject current=null] 
+    @init { enterRule(); 
+    }
+    @after { leaveRule(); }:
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getReportModelAccess().getPckgReportPackageParserRuleCall_0()); 
+	    }
+		lv_pckg_0_0=ruleReportPackage		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getReportModelRule());
+	        }
+       		add(
+       			$current, 
+       			"pckg",
+        		lv_pckg_0_0, 
+        		"ReportPackage");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)*
+;
+
+
+
+
+
+// Entry rule entryRuleReportPackage
+entryRuleReportPackage returns [EObject current=null] 
+	:
+	{ newCompositeNode(grammarAccess.getReportPackageRule()); }
+	 iv_ruleReportPackage=ruleReportPackage 
+	 { $current=$iv_ruleReportPackage.current; } 
+	 EOF 
+;
+
+// Rule ReportPackage
+ruleReportPackage returns [EObject current=null] 
+    @init { enterRule(); 
+    }
+    @after { leaveRule(); }:
+((
+    {
+        $current = forceCreateModelElement(
+            grammarAccess.getReportPackageAccess().getReportPackageAction_0(),
+            $current);
+    }
+)	otherlv_1='package' 
+    {
+    	newLeafNode(otherlv_1, grammarAccess.getReportPackageAccess().getPackageKeyword_1());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getReportPackageAccess().getNameQualifiedNameParserRuleCall_2_0()); 
+	    }
+		lv_name_2_0=ruleQualifiedName		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getReportPackageRule());
+	        }
+       		set(
+       			$current, 
+       			"name",
+        		lv_name_2_0, 
+        		"QualifiedName");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)	otherlv_3='{' 
+    {
+    	newLeafNode(otherlv_3, grammarAccess.getReportPackageAccess().getLeftCurlyBracketKeyword_3());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getReportPackageAccess().getImportsReportImportParserRuleCall_4_0()); 
+	    }
+		lv_imports_4_0=ruleReportImport		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getReportPackageRule());
+	        }
+       		add(
+       			$current, 
+       			"imports",
+        		lv_imports_4_0, 
+        		"ReportImport");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)*(	otherlv_5='layout-data' 
+    {
+    	newLeafNode(otherlv_5, grammarAccess.getReportPackageAccess().getLayoutDataKeyword_5_0());
+    }
+	otherlv_6='{' 
+    {
+    	newLeafNode(otherlv_6, grammarAccess.getReportPackageAccess().getLeftCurlyBracketKeyword_5_1());
+    }
+(	otherlv_7='externalCssURI' 
+    {
+    	newLeafNode(otherlv_7, grammarAccess.getReportPackageAccess().getExternalCssURIKeyword_5_2_0());
+    }
+(
+(
+		lv_externalCssURI_8_0=RULE_STRING
+		{
+			newLeafNode(lv_externalCssURI_8_0, grammarAccess.getReportPackageAccess().getExternalCssURISTRINGTerminalRuleCall_5_2_1_0()); 
+		}
+		{
+	        if ($current==null) {
+	            $current = createModelElement(grammarAccess.getReportPackageRule());
+	        }
+       		setWithLastConsumed(
+       			$current, 
+       			"externalCssURI",
+        		lv_externalCssURI_8_0, 
+        		"STRING");
+	    }
+
+)
+)(	otherlv_9='from bundle' 
+    {
+    	newLeafNode(otherlv_9, grammarAccess.getReportPackageAccess().getFromBundleKeyword_5_2_2_0());
+    }
+(
+(
+		lv_externalCssURIBundle_10_0=RULE_STRING
+		{
+			newLeafNode(lv_externalCssURIBundle_10_0, grammarAccess.getReportPackageAccess().getExternalCssURIBundleSTRINGTerminalRuleCall_5_2_2_1_0()); 
+		}
+		{
+	        if ($current==null) {
+	            $current = createModelElement(grammarAccess.getReportPackageRule());
+	        }
+       		setWithLastConsumed(
+       			$current, 
+       			"externalCssURIBundle",
+        		lv_externalCssURIBundle_10_0, 
+        		"STRING");
+	    }
+
+)
+))?)?(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getReportPackageAccess().getPagetemplatesPageTemplatesParserRuleCall_5_3_0()); 
+	    }
+		lv_pagetemplates_11_0=rulePageTemplates		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getReportPackageRule());
+	        }
+       		set(
+       			$current, 
+       			"pagetemplates",
+        		lv_pagetemplates_11_0, 
+        		"PageTemplates");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getReportPackageAccess().getFormattersSomeFormatsParserRuleCall_5_4_0()); 
+	    }
+		lv_formatters_12_0=ruleSomeFormats		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getReportPackageRule());
+	        }
+       		set(
+       			$current, 
+       			"formatters",
+        		lv_formatters_12_0, 
+        		"SomeFormats");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getReportPackageAccess().getColorsColorsParserRuleCall_5_5_0()); 
+	    }
+		lv_colors_13_0=ruleColors		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getReportPackageRule());
+	        }
+       		set(
+       			$current, 
+       			"colors",
+        		lv_colors_13_0, 
+        		"Colors");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getReportPackageAccess().getFontsFontsParserRuleCall_5_6_0()); 
+	    }
+		lv_fonts_14_0=ruleFonts		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getReportPackageRule());
+	        }
+       		set(
+       			$current, 
+       			"fonts",
+        		lv_fonts_14_0, 
+        		"Fonts");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getReportPackageAccess().getMediasMediasParserRuleCall_5_7_0()); 
+	    }
+		lv_medias_15_0=ruleMedias		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getReportPackageRule());
+	        }
+       		set(
+       			$current, 
+       			"medias",
+        		lv_medias_15_0, 
+        		"Medias");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getReportPackageAccess().getStylesStylesParserRuleCall_5_8_0()); 
+	    }
+		lv_styles_16_0=ruleStyles		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getReportPackageRule());
+	        }
+       		set(
+       			$current, 
+       			"styles",
+        		lv_styles_16_0, 
+        		"Styles");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)	otherlv_17='}' 
+    {
+    	newLeafNode(otherlv_17, grammarAccess.getReportPackageAccess().getRightCurlyBracketKeyword_5_9());
+    }
+)?(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getReportPackageAccess().getReportsReportParserRuleCall_6_0()); 
+	    }
+		lv_reports_18_0=ruleReport		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getReportPackageRule());
+	        }
+       		add(
+       			$current, 
+       			"reports",
+        		lv_reports_18_0, 
+        		"Report");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)*	otherlv_19='}' 
+    {
+    	newLeafNode(otherlv_19, grammarAccess.getReportPackageAccess().getRightCurlyBracketKeyword_7());
+    }
+)
+;
+
+
+
+
+
+// Entry rule entryRulePageTemplates
+entryRulePageTemplates returns [EObject current=null] 
+	:
+	{ newCompositeNode(grammarAccess.getPageTemplatesRule()); }
+	 iv_rulePageTemplates=rulePageTemplates 
+	 { $current=$iv_rulePageTemplates.current; } 
+	 EOF 
+;
+
+// Rule PageTemplates
+rulePageTemplates returns [EObject current=null] 
+    @init { enterRule(); 
+    }
+    @after { leaveRule(); }:
+((
+    {
+        $current = forceCreateModelElement(
+            grammarAccess.getPageTemplatesAccess().getPageTemplatesAction_0(),
+            $current);
+    }
+)(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getPageTemplatesAccess().getPagetemplatesPageTemplateParserRuleCall_1_0()); 
+	    }
+		lv_pagetemplates_1_0=rulePageTemplate		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getPageTemplatesRule());
+	        }
+       		add(
+       			$current, 
+       			"pagetemplates",
+        		lv_pagetemplates_1_0, 
+        		"PageTemplate");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)*)
+;
+
+
+
+
+
+// Entry rule entryRuleSomeFormats
+entryRuleSomeFormats returns [EObject current=null] 
+	:
+	{ newCompositeNode(grammarAccess.getSomeFormatsRule()); }
+	 iv_ruleSomeFormats=ruleSomeFormats 
+	 { $current=$iv_ruleSomeFormats.current; } 
+	 EOF 
+;
+
+// Rule SomeFormats
+ruleSomeFormats returns [EObject current=null] 
+    @init { enterRule(); 
+    }
+    @after { leaveRule(); }:
+((
+    {
+        $current = forceCreateModelElement(
+            grammarAccess.getSomeFormatsAccess().getSomeFormatsAction_0(),
+            $current);
+    }
+)	otherlv_1='formatters' 
+    {
+    	newLeafNode(otherlv_1, grammarAccess.getSomeFormatsAccess().getFormattersKeyword_1());
+    }
+	otherlv_2='{' 
+    {
+    	newLeafNode(otherlv_2, grammarAccess.getSomeFormatsAccess().getLeftCurlyBracketKeyword_2());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getSomeFormatsAccess().getFormattersSomeFormatParserRuleCall_3_0()); 
+	    }
+		lv_formatters_3_0=ruleSomeFormat		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getSomeFormatsRule());
+	        }
+       		add(
+       			$current, 
+       			"formatters",
+        		lv_formatters_3_0, 
+        		"SomeFormat");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)*	otherlv_4='}' 
+    {
+    	newLeafNode(otherlv_4, grammarAccess.getSomeFormatsAccess().getRightCurlyBracketKeyword_4());
+    }
+)
+;
+
+
+
+
+
+// Entry rule entryRuleColors
+entryRuleColors returns [EObject current=null] 
+	:
+	{ newCompositeNode(grammarAccess.getColorsRule()); }
+	 iv_ruleColors=ruleColors 
+	 { $current=$iv_ruleColors.current; } 
+	 EOF 
+;
+
+// Rule Colors
+ruleColors returns [EObject current=null] 
+    @init { enterRule(); 
+    }
+    @after { leaveRule(); }:
+((
+    {
+        $current = forceCreateModelElement(
+            grammarAccess.getColorsAccess().getColorsAction_0(),
+            $current);
+    }
+)	otherlv_1='colors' 
+    {
+    	newLeafNode(otherlv_1, grammarAccess.getColorsAccess().getColorsKeyword_1());
+    }
+	otherlv_2='{' 
+    {
+    	newLeafNode(otherlv_2, grammarAccess.getColorsAccess().getLeftCurlyBracketKeyword_2());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getColorsAccess().getColorsColorParserRuleCall_3_0()); 
+	    }
+		lv_colors_3_0=ruleColor		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getColorsRule());
+	        }
+       		add(
+       			$current, 
+       			"colors",
+        		lv_colors_3_0, 
+        		"Color");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)*	otherlv_4='}' 
+    {
+    	newLeafNode(otherlv_4, grammarAccess.getColorsAccess().getRightCurlyBracketKeyword_4());
+    }
+)
+;
+
+
+
+
+
+// Entry rule entryRuleFonts
+entryRuleFonts returns [EObject current=null] 
+	:
+	{ newCompositeNode(grammarAccess.getFontsRule()); }
+	 iv_ruleFonts=ruleFonts 
+	 { $current=$iv_ruleFonts.current; } 
+	 EOF 
+;
+
+// Rule Fonts
+ruleFonts returns [EObject current=null] 
+    @init { enterRule(); 
+    }
+    @after { leaveRule(); }:
+((
+    {
+        $current = forceCreateModelElement(
+            grammarAccess.getFontsAccess().getFontsAction_0(),
+            $current);
+    }
+)	otherlv_1='fonts' 
+    {
+    	newLeafNode(otherlv_1, grammarAccess.getFontsAccess().getFontsKeyword_1());
+    }
+	otherlv_2='{' 
+    {
+    	newLeafNode(otherlv_2, grammarAccess.getFontsAccess().getLeftCurlyBracketKeyword_2());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getFontsAccess().getFontsFontParserRuleCall_3_0()); 
+	    }
+		lv_fonts_3_0=ruleFont		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getFontsRule());
+	        }
+       		add(
+       			$current, 
+       			"fonts",
+        		lv_fonts_3_0, 
+        		"Font");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)*	otherlv_4='}' 
+    {
+    	newLeafNode(otherlv_4, grammarAccess.getFontsAccess().getRightCurlyBracketKeyword_4());
+    }
+)
+;
+
+
+
+
+
+// Entry rule entryRuleMedias
+entryRuleMedias returns [EObject current=null] 
+	:
+	{ newCompositeNode(grammarAccess.getMediasRule()); }
+	 iv_ruleMedias=ruleMedias 
+	 { $current=$iv_ruleMedias.current; } 
+	 EOF 
+;
+
+// Rule Medias
+ruleMedias returns [EObject current=null] 
+    @init { enterRule(); 
+    }
+    @after { leaveRule(); }:
+((
+    {
+        $current = forceCreateModelElement(
+            grammarAccess.getMediasAccess().getMediasAction_0(),
+            $current);
+    }
+)	otherlv_1='medias' 
+    {
+    	newLeafNode(otherlv_1, grammarAccess.getMediasAccess().getMediasKeyword_1());
+    }
+	otherlv_2='{' 
+    {
+    	newLeafNode(otherlv_2, grammarAccess.getMediasAccess().getLeftCurlyBracketKeyword_2());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getMediasAccess().getMediasMediaParserRuleCall_3_0()); 
+	    }
+		lv_medias_3_0=ruleMedia		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getMediasRule());
+	        }
+       		add(
+       			$current, 
+       			"medias",
+        		lv_medias_3_0, 
+        		"Media");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)*	otherlv_4='}' 
+    {
+    	newLeafNode(otherlv_4, grammarAccess.getMediasAccess().getRightCurlyBracketKeyword_4());
+    }
+)
+;
+
+
+
+
+
+// Entry rule entryRuleMedia
+entryRuleMedia returns [EObject current=null] 
+	:
+	{ newCompositeNode(grammarAccess.getMediaRule()); }
+	 iv_ruleMedia=ruleMedia 
+	 { $current=$iv_ruleMedia.current; } 
+	 EOF 
+;
+
+// Rule Media
+ruleMedia returns [EObject current=null] 
+    @init { enterRule(); 
+    }
+    @after { leaveRule(); }:
+(	otherlv_0='media' 
+    {
+    	newLeafNode(otherlv_0, grammarAccess.getMediaAccess().getMediaKeyword_0());
+    }
+(
+(
+		lv_name_1_0=RULE_ID
+		{
+			newLeafNode(lv_name_1_0, grammarAccess.getMediaAccess().getNameIDTerminalRuleCall_1_0()); 
+		}
+		{
+	        if ($current==null) {
+	            $current = createModelElement(grammarAccess.getMediaRule());
+	        }
+       		setWithLastConsumed(
+       			$current, 
+       			"name",
+        		lv_name_1_0, 
+        		"ID");
+	    }
+
+)
+))
+;
+
+
+
+
+
+// Entry rule entryRuleStyles
+entryRuleStyles returns [EObject current=null] 
+	:
+	{ newCompositeNode(grammarAccess.getStylesRule()); }
+	 iv_ruleStyles=ruleStyles 
+	 { $current=$iv_ruleStyles.current; } 
+	 EOF 
+;
+
+// Rule Styles
+ruleStyles returns [EObject current=null] 
+    @init { enterRule(); 
+    }
+    @after { leaveRule(); }:
+((
+    {
+        $current = forceCreateModelElement(
+            grammarAccess.getStylesAccess().getStylesAction_0(),
+            $current);
+    }
+)	otherlv_1='styles' 
+    {
+    	newLeafNode(otherlv_1, grammarAccess.getStylesAccess().getStylesKeyword_1());
+    }
+	otherlv_2='{' 
+    {
+    	newLeafNode(otherlv_2, grammarAccess.getStylesAccess().getLeftCurlyBracketKeyword_2());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getStylesAccess().getStylesStyleParserRuleCall_3_0()); 
+	    }
+		lv_styles_3_0=ruleStyle		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getStylesRule());
+	        }
+       		add(
+       			$current, 
+       			"styles",
+        		lv_styles_3_0, 
+        		"Style");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)*	otherlv_4='}' 
+    {
+    	newLeafNode(otherlv_4, grammarAccess.getStylesAccess().getRightCurlyBracketKeyword_4());
+    }
+)
+;
+
+
+
+
+
+// Entry rule entryRulePageTemplate
+entryRulePageTemplate returns [EObject current=null] 
+	:
+	{ newCompositeNode(grammarAccess.getPageTemplateRule()); }
+	 iv_rulePageTemplate=rulePageTemplate 
+	 { $current=$iv_rulePageTemplate.current; } 
+	 EOF 
+;
+
+// Rule PageTemplate
+rulePageTemplate returns [EObject current=null] 
+    @init { enterRule(); 
+    }
+    @after { leaveRule(); }:
+(	otherlv_0='pagetemplate' 
+    {
+    	newLeafNode(otherlv_0, grammarAccess.getPageTemplateAccess().getPagetemplateKeyword_0());
+    }
+(
+(
+		lv_name_1_0=RULE_ID
+		{
+			newLeafNode(lv_name_1_0, grammarAccess.getPageTemplateAccess().getNameIDTerminalRuleCall_1_0()); 
+		}
+		{
+	        if ($current==null) {
+	            $current = createModelElement(grammarAccess.getPageTemplateRule());
+	        }
+       		setWithLastConsumed(
+       			$current, 
+       			"name",
+        		lv_name_1_0, 
+        		"ID");
+	    }
+
+)
+)	otherlv_2='{' 
+    {
+    	newLeafNode(otherlv_2, grammarAccess.getPageTemplateAccess().getLeftCurlyBracketKeyword_2());
+    }
+	otherlv_3='type' 
+    {
+    	newLeafNode(otherlv_3, grammarAccess.getPageTemplateAccess().getTypeKeyword_3());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getPageTemplateAccess().getSizePageSizeEnumEnumRuleCall_4_0()); 
+	    }
+		lv_size_4_0=rulePageSizeEnum		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getPageTemplateRule());
+	        }
+       		set(
+       			$current, 
+       			"size",
+        		lv_size_4_0, 
+        		"PageSizeEnum");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)	otherlv_5='orientation' 
+    {
+    	newLeafNode(otherlv_5, grammarAccess.getPageTemplateAccess().getOrientationKeyword_5());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getPageTemplateAccess().getOrientationOrientationEnumEnumRuleCall_6_0()); 
+	    }
+		lv_orientation_6_0=ruleOrientationEnum		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getPageTemplateRule());
+	        }
+       		set(
+       			$current, 
+       			"orientation",
+        		lv_orientation_6_0, 
+        		"OrientationEnum");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)	otherlv_7='topmargin' 
+    {
+    	newLeafNode(otherlv_7, grammarAccess.getPageTemplateAccess().getTopmarginKeyword_7());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getPageTemplateAccess().getTopMarginValueUnsignedNumberParserRuleCall_8_0()); 
+	    }
+		lv_topMarginValue_8_0=ruleUnsignedNumber		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getPageTemplateRule());
+	        }
+       		set(
+       			$current, 
+       			"topMarginValue",
+        		lv_topMarginValue_8_0, 
+        		"UnsignedNumber");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getPageTemplateAccess().getTopMarginUnitUnitEnumEnumRuleCall_9_0()); 
+	    }
+		lv_topMarginUnit_9_0=ruleUnitEnum		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getPageTemplateRule());
+	        }
+       		set(
+       			$current, 
+       			"topMarginUnit",
+        		lv_topMarginUnit_9_0, 
+        		"UnitEnum");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)	otherlv_10='leftmargin' 
+    {
+    	newLeafNode(otherlv_10, grammarAccess.getPageTemplateAccess().getLeftmarginKeyword_10());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getPageTemplateAccess().getLeftMarginValueUnsignedNumberParserRuleCall_11_0()); 
+	    }
+		lv_leftMarginValue_11_0=ruleUnsignedNumber		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getPageTemplateRule());
+	        }
+       		set(
+       			$current, 
+       			"leftMarginValue",
+        		lv_leftMarginValue_11_0, 
+        		"UnsignedNumber");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getPageTemplateAccess().getLeftMarginUnitUnitEnumEnumRuleCall_12_0()); 
+	    }
+		lv_leftMarginUnit_12_0=ruleUnitEnum		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getPageTemplateRule());
+	        }
+       		set(
+       			$current, 
+       			"leftMarginUnit",
+        		lv_leftMarginUnit_12_0, 
+        		"UnitEnum");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)	otherlv_13='bottommargin' 
+    {
+    	newLeafNode(otherlv_13, grammarAccess.getPageTemplateAccess().getBottommarginKeyword_13());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getPageTemplateAccess().getBottomMarginValueUnsignedNumberParserRuleCall_14_0()); 
+	    }
+		lv_bottomMarginValue_14_0=ruleUnsignedNumber		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getPageTemplateRule());
+	        }
+       		set(
+       			$current, 
+       			"bottomMarginValue",
+        		lv_bottomMarginValue_14_0, 
+        		"UnsignedNumber");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getPageTemplateAccess().getBottomMarginUnitUnitEnumEnumRuleCall_15_0()); 
+	    }
+		lv_bottomMarginUnit_15_0=ruleUnitEnum		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getPageTemplateRule());
+	        }
+       		set(
+       			$current, 
+       			"bottomMarginUnit",
+        		lv_bottomMarginUnit_15_0, 
+        		"UnitEnum");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)	otherlv_16='rightmargin' 
+    {
+    	newLeafNode(otherlv_16, grammarAccess.getPageTemplateAccess().getRightmarginKeyword_16());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getPageTemplateAccess().getRightMarginValueUnsignedNumberParserRuleCall_17_0()); 
+	    }
+		lv_rightMarginValue_17_0=ruleUnsignedNumber		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getPageTemplateRule());
+	        }
+       		set(
+       			$current, 
+       			"rightMarginValue",
+        		lv_rightMarginValue_17_0, 
+        		"UnsignedNumber");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getPageTemplateAccess().getRightMarginUnitUnitEnumEnumRuleCall_18_0()); 
+	    }
+		lv_rightMarginUnit_18_0=ruleUnitEnum		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getPageTemplateRule());
+	        }
+       		set(
+       			$current, 
+       			"rightMarginUnit",
+        		lv_rightMarginUnit_18_0, 
+        		"UnitEnum");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getPageTemplateAccess().getHeaderPageHeaderParserRuleCall_19_0()); 
+	    }
+		lv_header_19_0=rulePageHeader		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getPageTemplateRule());
+	        }
+       		set(
+       			$current, 
+       			"header",
+        		lv_header_19_0, 
+        		"PageHeader");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)?(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getPageTemplateAccess().getFooterPageFooterParserRuleCall_20_0()); 
+	    }
+		lv_footer_20_0=rulePageFooter		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getPageTemplateRule());
+	        }
+       		set(
+       			$current, 
+       			"footer",
+        		lv_footer_20_0, 
+        		"PageFooter");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)?	otherlv_21='}' 
+    {
+    	newLeafNode(otherlv_21, grammarAccess.getPageTemplateAccess().getRightCurlyBracketKeyword_21());
+    }
+)
+;
+
+
+
+
+
+// Entry rule entryRuleUnsignedNumber
+entryRuleUnsignedNumber returns [String current=null] 
+	:
+	{ newCompositeNode(grammarAccess.getUnsignedNumberRule()); } 
+	 iv_ruleUnsignedNumber=ruleUnsignedNumber 
+	 { $current=$iv_ruleUnsignedNumber.current.getText(); }  
+	 EOF 
+;
+
+// Rule UnsignedNumber
+ruleUnsignedNumber returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] 
+    @init { enterRule(); 
+    }
+    @after { leaveRule(); }:
+
+    { 
+        newCompositeNode(grammarAccess.getUnsignedNumberAccess().getNumberParserRuleCall()); 
+    }
+    this_Number_0=ruleNumber    {
+		$current.merge(this_Number_0);
+    }
+
+    { 
+        afterParserOrEnumRuleCall();
+    }
+
+    ;
+
+
+
+
+
+// Entry rule entryRuleColor
+entryRuleColor returns [EObject current=null] 
+	:
+	{ newCompositeNode(grammarAccess.getColorRule()); }
+	 iv_ruleColor=ruleColor 
+	 { $current=$iv_ruleColor.current; } 
+	 EOF 
+;
+
+// Rule Color
+ruleColor returns [EObject current=null] 
+    @init { enterRule(); 
+    }
+    @after { leaveRule(); }:
+(	otherlv_0='color' 
+    {
+    	newLeafNode(otherlv_0, grammarAccess.getColorAccess().getColorKeyword_0());
+    }
+(
+(
+		lv_name_1_0=RULE_ID
+		{
+			newLeafNode(lv_name_1_0, grammarAccess.getColorAccess().getNameIDTerminalRuleCall_1_0()); 
+		}
+		{
+	        if ($current==null) {
+	            $current = createModelElement(grammarAccess.getColorRule());
+	        }
+       		setWithLastConsumed(
+       			$current, 
+       			"name",
+        		lv_name_1_0, 
+        		"ID");
+	    }
+
+)
+)((
+(
+		lv_color_2_0=RULE_STRING
+		{
+			newLeafNode(lv_color_2_0, grammarAccess.getColorAccess().getColorSTRINGTerminalRuleCall_2_0_0()); 
+		}
+		{
+	        if ($current==null) {
+	            $current = createModelElement(grammarAccess.getColorRule());
+	        }
+       		setWithLastConsumed(
+       			$current, 
+       			"color",
+        		lv_color_2_0, 
+        		"STRING");
+	    }
+
+)
+)
+    |(	otherlv_3='darkens' 
+    {
+    	newLeafNode(otherlv_3, grammarAccess.getColorAccess().getDarkensKeyword_2_1_0());
+    }
+(
+(
+		{
+			if ($current==null) {
+	            $current = createModelElement(grammarAccess.getColorRule());
+	        }
+        }
+	otherlv_4=RULE_ID
+	{
+		newLeafNode(otherlv_4, grammarAccess.getColorAccess().getBasecolorColorCrossReference_2_1_1_0()); 
+	}
+
+)
+)	otherlv_5='by-percent' 
+    {
+    	newLeafNode(otherlv_5, grammarAccess.getColorAccess().getByPercentKeyword_2_1_2());
+    }
+(
+(
+		lv_darkensby_6_0=RULE_INT
+		{
+			newLeafNode(lv_darkensby_6_0, grammarAccess.getColorAccess().getDarkensbyINTTerminalRuleCall_2_1_3_0()); 
+		}
+		{
+	        if ($current==null) {
+	            $current = createModelElement(grammarAccess.getColorRule());
+	        }
+       		setWithLastConsumed(
+       			$current, 
+       			"darkensby",
+        		lv_darkensby_6_0, 
+        		"INT");
+	    }
+
+)
+))
+    |(	otherlv_7='lightens' 
+    {
+    	newLeafNode(otherlv_7, grammarAccess.getColorAccess().getLightensKeyword_2_2_0());
+    }
+(
+(
+		{
+			if ($current==null) {
+	            $current = createModelElement(grammarAccess.getColorRule());
+	        }
+        }
+	otherlv_8=RULE_ID
+	{
+		newLeafNode(otherlv_8, grammarAccess.getColorAccess().getBasecolorColorCrossReference_2_2_1_0()); 
+	}
+
+)
+)	otherlv_9='by-percent' 
+    {
+    	newLeafNode(otherlv_9, grammarAccess.getColorAccess().getByPercentKeyword_2_2_2());
+    }
+(
+(
+		lv_lightensby_10_0=RULE_INT
+		{
+			newLeafNode(lv_lightensby_10_0, grammarAccess.getColorAccess().getLightensbyINTTerminalRuleCall_2_2_3_0()); 
+		}
+		{
+	        if ($current==null) {
+	            $current = createModelElement(grammarAccess.getColorRule());
+	        }
+       		setWithLastConsumed(
+       			$current, 
+       			"lightensby",
+        		lv_lightensby_10_0, 
+        		"INT");
+	    }
+
+)
+))
+    |(	otherlv_11='transforms' 
+    {
+    	newLeafNode(otherlv_11, grammarAccess.getColorAccess().getTransformsKeyword_2_3_0());
+    }
+(
+(
+		{
+			if ($current==null) {
+	            $current = createModelElement(grammarAccess.getColorRule());
+	        }
+        }
+	otherlv_12=RULE_ID
+	{
+		newLeafNode(otherlv_12, grammarAccess.getColorAccess().getBasecolorColorCrossReference_2_3_1_0()); 
+	}
+
+)
+)	otherlv_13='by-percent' 
+    {
+    	newLeafNode(otherlv_13, grammarAccess.getColorAccess().getByPercentKeyword_2_3_2());
+    }
+(
+(
+		lv_transformsby_14_0=RULE_INT
+		{
+			newLeafNode(lv_transformsby_14_0, grammarAccess.getColorAccess().getTransformsbyINTTerminalRuleCall_2_3_3_0()); 
+		}
+		{
+	        if ($current==null) {
+	            $current = createModelElement(grammarAccess.getColorRule());
+	        }
+       		setWithLastConsumed(
+       			$current, 
+       			"transformsby",
+        		lv_transformsby_14_0, 
+        		"INT");
+	    }
+
+)
+)	otherlv_15='towards' 
+    {
+    	newLeafNode(otherlv_15, grammarAccess.getColorAccess().getTowardsKeyword_2_3_4());
+    }
+(
+(
+		{
+			if ($current==null) {
+	            $current = createModelElement(grammarAccess.getColorRule());
+	        }
+        }
+	otherlv_16=RULE_ID
+	{
+		newLeafNode(otherlv_16, grammarAccess.getColorAccess().getTargetcolorColorCrossReference_2_3_5_0()); 
+	}
+
+)
+))))
+;
+
+
+
+
+
+// Entry rule entryRuleFont
+entryRuleFont returns [EObject current=null] 
+	:
+	{ newCompositeNode(grammarAccess.getFontRule()); }
+	 iv_ruleFont=ruleFont 
+	 { $current=$iv_ruleFont.current; } 
+	 EOF 
+;
+
+// Rule Font
+ruleFont returns [EObject current=null] 
+    @init { enterRule(); 
+    }
+    @after { leaveRule(); }:
+(
+
+(
+	{ 
+	  getUnorderedGroupHelper().enter(grammarAccess.getFontAccess().getUnorderedGroup());
+	}
+	(
+		(
+
+			( 
+				{getUnorderedGroupHelper().canSelect(grammarAccess.getFontAccess().getUnorderedGroup(), 0)}?=>(
+					{ 
+	 				  getUnorderedGroupHelper().select(grammarAccess.getFontAccess().getUnorderedGroup(), 0);
+	 				}
+					({true}?=>(	otherlv_1='font' 
+    {
+    	newLeafNode(otherlv_1, grammarAccess.getFontAccess().getFontKeyword_0_0());
+    }
+(
+(
+		lv_name_2_0=RULE_ID
+		{
+			newLeafNode(lv_name_2_0, grammarAccess.getFontAccess().getNameIDTerminalRuleCall_0_1_0()); 
+		}
+		{
+	        if ($current==null) {
+	            $current = createModelElement(grammarAccess.getFontRule());
+	        }
+       		setWithLastConsumed(
+       			$current, 
+       			"name",
+        		lv_name_2_0, 
+        		"ID");
+	    }
+
+)
+)	otherlv_3='{' 
+    {
+    	newLeafNode(otherlv_3, grammarAccess.getFontAccess().getLeftCurlyBracketKeyword_0_2());
+    }
+(	otherlv_4='extends' 
+    {
+    	newLeafNode(otherlv_4, grammarAccess.getFontAccess().getExtendsKeyword_0_3_0());
+    }
+(
+(
+		{
+			if ($current==null) {
+	            $current = createModelElement(grammarAccess.getFontRule());
+	        }
+        }
+	otherlv_5=RULE_ID
+	{
+		newLeafNode(otherlv_5, grammarAccess.getFontAccess().getExtendsFontCrossReference_0_3_1_0()); 
+	}
+
+)
+))?(	otherlv_6='family' 
+    {
+    	newLeafNode(otherlv_6, grammarAccess.getFontAccess().getFamilyKeyword_0_4_0());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getFontAccess().getFamilyFontFamilyParserRuleCall_0_4_1_0()); 
+	    }
+		lv_family_7_0=ruleFontFamily		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getFontRule());
+	        }
+       		set(
+       			$current, 
+       			"family",
+        		lv_family_7_0, 
+        		"FontFamily");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+))?))
+					{ 
+	 				  getUnorderedGroupHelper().returnFromSelection(grammarAccess.getFontAccess().getUnorderedGroup());
+	 				}
+ 				)
+			)  |
+
+			( 
+				{getUnorderedGroupHelper().canSelect(grammarAccess.getFontAccess().getUnorderedGroup(), 1)}?=>(
+					{ 
+	 				  getUnorderedGroupHelper().select(grammarAccess.getFontAccess().getUnorderedGroup(), 1);
+	 				}
+					({true}?=>(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getFontAccess().getStyleFontStyleEnumEnumRuleCall_1_0()); 
+	    }
+		lv_style_8_0=ruleFontStyleEnum		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getFontRule());
+	        }
+       		set(
+       			$current, 
+       			"style",
+        		lv_style_8_0, 
+        		"FontStyleEnum");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+))
+					{ 
+	 				  getUnorderedGroupHelper().returnFromSelection(grammarAccess.getFontAccess().getUnorderedGroup());
+	 				}
+ 				)
+			)  |
+
+			( 
+				{getUnorderedGroupHelper().canSelect(grammarAccess.getFontAccess().getUnorderedGroup(), 2)}?=>(
+					{ 
+	 				  getUnorderedGroupHelper().select(grammarAccess.getFontAccess().getUnorderedGroup(), 2);
+	 				}
+					({true}?=>(
+(
+		lv_bold_9_0=	'bold' 
+    {
+        newLeafNode(lv_bold_9_0, grammarAccess.getFontAccess().getBoldBoldKeyword_2_0());
+    }
+ 
+	    {
+	        if ($current==null) {
+	            $current = createModelElement(grammarAccess.getFontRule());
+	        }
+       		setWithLastConsumed($current, "bold", true, "bold");
+	    }
+
+)
+))
+					{ 
+	 				  getUnorderedGroupHelper().returnFromSelection(grammarAccess.getFontAccess().getUnorderedGroup());
+	 				}
+ 				)
+			)  |
+
+			( 
+				{getUnorderedGroupHelper().canSelect(grammarAccess.getFontAccess().getUnorderedGroup(), 3)}?=>(
+					{ 
+	 				  getUnorderedGroupHelper().select(grammarAccess.getFontAccess().getUnorderedGroup(), 3);
+	 				}
+					({true}?=>((	otherlv_10='size' 
+    {
+    	newLeafNode(otherlv_10, grammarAccess.getFontAccess().getSizeKeyword_3_0_0());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getFontAccess().getSizevalueUnsignedNumberParserRuleCall_3_0_1_0()); 
+	    }
+		lv_sizevalue_11_0=ruleUnsignedNumber		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getFontRule());
+	        }
+       		set(
+       			$current, 
+       			"sizevalue",
+        		lv_sizevalue_11_0, 
+        		"UnsignedNumber");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getFontAccess().getSizeunitUnitEnumEnumRuleCall_3_0_2_0()); 
+	    }
+		lv_sizeunit_12_0=ruleUnitEnum		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getFontRule());
+	        }
+       		set(
+       			$current, 
+       			"sizeunit",
+        		lv_sizeunit_12_0, 
+        		"UnitEnum");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+))?	otherlv_13='}' 
+    {
+    	newLeafNode(otherlv_13, grammarAccess.getFontAccess().getRightCurlyBracketKeyword_3_1());
+    }
+))
+					{ 
+	 				  getUnorderedGroupHelper().returnFromSelection(grammarAccess.getFontAccess().getUnorderedGroup());
+	 				}
+ 				)
+			)  
+
+		)+
+	  	{getUnorderedGroupHelper().canLeave(grammarAccess.getFontAccess().getUnorderedGroup())}?	
+	)
+)
+	{ 
+	  getUnorderedGroupHelper().leave(grammarAccess.getFontAccess().getUnorderedGroup());
+	}
+
+)
+;
+
+
+
+
+
+// Entry rule entryRuleFontFamily
+entryRuleFontFamily returns [EObject current=null] 
+	:
+	{ newCompositeNode(grammarAccess.getFontFamilyRule()); }
+	 iv_ruleFontFamily=ruleFontFamily 
+	 { $current=$iv_ruleFontFamily.current; } 
+	 EOF 
+;
+
+// Rule FontFamily
+ruleFontFamily returns [EObject current=null] 
+    @init { enterRule(); 
+    }
+    @after { leaveRule(); }:
+(
+    { 
+        newCompositeNode(grammarAccess.getFontFamilyAccess().getBuildInFontFamilyParserRuleCall_0()); 
+    }
+    this_BuildInFontFamily_0=ruleBuildInFontFamily
+    { 
+        $current = $this_BuildInFontFamily_0.current; 
+        afterParserOrEnumRuleCall();
+    }
+
+    |
+    { 
+        newCompositeNode(grammarAccess.getFontFamilyAccess().getCustomFontFamilyParserRuleCall_1()); 
+    }
+    this_CustomFontFamily_1=ruleCustomFontFamily
+    { 
+        $current = $this_CustomFontFamily_1.current; 
+        afterParserOrEnumRuleCall();
+    }
+)
+;
+
+
+
+
+
+// Entry rule entryRuleBuildInFontFamily
+entryRuleBuildInFontFamily returns [EObject current=null] 
+	:
+	{ newCompositeNode(grammarAccess.getBuildInFontFamilyRule()); }
+	 iv_ruleBuildInFontFamily=ruleBuildInFontFamily 
+	 { $current=$iv_ruleBuildInFontFamily.current; } 
+	 EOF 
+;
+
+// Rule BuildInFontFamily
+ruleBuildInFontFamily returns [EObject current=null] 
+    @init { enterRule(); 
+    }
+    @after { leaveRule(); }:
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getBuildInFontFamilyAccess().getCustomBuildInFontFamilyEnumEnumRuleCall_0()); 
+	    }
+		lv_custom_0_0=ruleBuildInFontFamilyEnum		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getBuildInFontFamilyRule());
+	        }
+       		set(
+       			$current, 
+       			"custom",
+        		lv_custom_0_0, 
+        		"BuildInFontFamilyEnum");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)
+;
+
+
+
+
+
+// Entry rule entryRuleCustomFontFamily
+entryRuleCustomFontFamily returns [EObject current=null] 
+	:
+	{ newCompositeNode(grammarAccess.getCustomFontFamilyRule()); }
+	 iv_ruleCustomFontFamily=ruleCustomFontFamily 
+	 { $current=$iv_ruleCustomFontFamily.current; } 
+	 EOF 
+;
+
+// Rule CustomFontFamily
+ruleCustomFontFamily returns [EObject current=null] 
+    @init { enterRule(); 
+    }
+    @after { leaveRule(); }:
+(
+(
+		lv_custom_0_0=RULE_STRING
+		{
+			newLeafNode(lv_custom_0_0, grammarAccess.getCustomFontFamilyAccess().getCustomSTRINGTerminalRuleCall_0()); 
+		}
+		{
+	        if ($current==null) {
+	            $current = createModelElement(grammarAccess.getCustomFontFamilyRule());
+	        }
+       		setWithLastConsumed(
+       			$current, 
+       			"custom",
+        		lv_custom_0_0, 
+        		"STRING");
+	    }
+
+)
+)
+;
+
+
+
+
+
+// Entry rule entryRuleBorderStyle
+entryRuleBorderStyle returns [EObject current=null] 
+	:
+	{ newCompositeNode(grammarAccess.getBorderStyleRule()); }
+	 iv_ruleBorderStyle=ruleBorderStyle 
+	 { $current=$iv_ruleBorderStyle.current; } 
+	 EOF 
+;
+
+// Rule BorderStyle
+ruleBorderStyle returns [EObject current=null] 
+    @init { enterRule(); 
+    }
+    @after { leaveRule(); }:
+((
+(
+		{ 
+	        newCompositeNode(grammarAccess.getBorderStyleAccess().getTypeBorderTypeEnumEnumRuleCall_0_0()); 
+	    }
+		lv_type_0_0=ruleBorderTypeEnum		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getBorderStyleRule());
+	        }
+       		set(
+       			$current, 
+       			"type",
+        		lv_type_0_0, 
+        		"BorderTypeEnum");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getBorderStyleAccess().getWidthvalueUnsignedNumberParserRuleCall_1_0()); 
+	    }
+		lv_widthvalue_1_0=ruleUnsignedNumber		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getBorderStyleRule());
+	        }
+       		set(
+       			$current, 
+       			"widthvalue",
+        		lv_widthvalue_1_0, 
+        		"UnsignedNumber");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getBorderStyleAccess().getWidthunitUnitEnumEnumRuleCall_2_0()); 
+	    }
+		lv_widthunit_2_0=ruleUnitEnum		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getBorderStyleRule());
+	        }
+       		set(
+       			$current, 
+       			"widthunit",
+        		lv_widthunit_2_0, 
+        		"UnitEnum");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)(
+(
+		{
+			if ($current==null) {
+	            $current = createModelElement(grammarAccess.getBorderStyleRule());
+	        }
+        }
+	otherlv_3=RULE_ID
+	{
+		newLeafNode(otherlv_3, grammarAccess.getBorderStyleAccess().getColorColorCrossReference_3_0()); 
+	}
+
+)
+))
+;
+
+
+
+
+
+// Entry rule entryRuleStyle
+entryRuleStyle returns [EObject current=null] 
+	:
+	{ newCompositeNode(grammarAccess.getStyleRule()); }
+	 iv_ruleStyle=ruleStyle 
+	 { $current=$iv_ruleStyle.current; } 
+	 EOF 
+;
+
+// Rule Style
+ruleStyle returns [EObject current=null] 
+    @init { enterRule(); 
+    }
+    @after { leaveRule(); }:
+(	otherlv_0='style' 
+    {
+    	newLeafNode(otherlv_0, grammarAccess.getStyleAccess().getStyleKeyword_0());
+    }
+(
+(
+		lv_name_1_0=RULE_ID
+		{
+			newLeafNode(lv_name_1_0, grammarAccess.getStyleAccess().getNameIDTerminalRuleCall_1_0()); 
+		}
+		{
+	        if ($current==null) {
+	            $current = createModelElement(grammarAccess.getStyleRule());
+	        }
+       		setWithLastConsumed(
+       			$current, 
+       			"name",
+        		lv_name_1_0, 
+        		"ID");
+	    }
+
+)
+)	otherlv_2='{' 
+    {
+    	newLeafNode(otherlv_2, grammarAccess.getStyleAccess().getLeftCurlyBracketKeyword_2());
+    }
+(	otherlv_3='extends' 
+    {
+    	newLeafNode(otherlv_3, grammarAccess.getStyleAccess().getExtendsKeyword_3_0());
+    }
+(
+(
+		{
+			if ($current==null) {
+	            $current = createModelElement(grammarAccess.getStyleRule());
+	        }
+        }
+	otherlv_4=RULE_ID
+	{
+		newLeafNode(otherlv_4, grammarAccess.getStyleAccess().getExtendsStyleCrossReference_3_1_0()); 
+	}
+
+)
+))?(
+
+(
+	{ 
+	  getUnorderedGroupHelper().enter(grammarAccess.getStyleAccess().getUnorderedGroup_4());
+	}
+	(
+		(
+
+			( 
+				{getUnorderedGroupHelper().canSelect(grammarAccess.getStyleAccess().getUnorderedGroup_4(), 0)}?=>(
+					{ 
+	 				  getUnorderedGroupHelper().select(grammarAccess.getStyleAccess().getUnorderedGroup_4(), 0);
+	 				}
+					({true}?=>(	otherlv_6='formatter' 
+    {
+    	newLeafNode(otherlv_6, grammarAccess.getStyleAccess().getFormatterKeyword_4_0_0());
+    }
+(
+(
+		{
+			if ($current==null) {
+	            $current = createModelElement(grammarAccess.getStyleRule());
+	        }
+        }
+	otherlv_7=RULE_ID
+	{
+		newLeafNode(otherlv_7, grammarAccess.getStyleAccess().getFormatSomeFormatCrossReference_4_0_1_0()); 
+	}
+
+)
+)))
+					{ 
+	 				  getUnorderedGroupHelper().returnFromSelection(grammarAccess.getStyleAccess().getUnorderedGroup_4());
+	 				}
+ 				)
+			)  |
+
+			( 
+				{getUnorderedGroupHelper().canSelect(grammarAccess.getStyleAccess().getUnorderedGroup_4(), 1)}?=>(
+					{ 
+	 				  getUnorderedGroupHelper().select(grammarAccess.getStyleAccess().getUnorderedGroup_4(), 1);
+	 				}
+					({true}?=>(	otherlv_8='font' 
+    {
+    	newLeafNode(otherlv_8, grammarAccess.getStyleAccess().getFontKeyword_4_1_0());
+    }
+(
+(
+		{
+			if ($current==null) {
+	            $current = createModelElement(grammarAccess.getStyleRule());
+	        }
+        }
+	otherlv_9=RULE_ID
+	{
+		newLeafNode(otherlv_9, grammarAccess.getStyleAccess().getFontFontCrossReference_4_1_1_0()); 
+	}
+
+)
+)))
+					{ 
+	 				  getUnorderedGroupHelper().returnFromSelection(grammarAccess.getStyleAccess().getUnorderedGroup_4());
+	 				}
+ 				)
+			)  |
+
+			( 
+				{getUnorderedGroupHelper().canSelect(grammarAccess.getStyleAccess().getUnorderedGroup_4(), 2)}?=>(
+					{ 
+	 				  getUnorderedGroupHelper().select(grammarAccess.getStyleAccess().getUnorderedGroup_4(), 2);
+	 				}
+					({true}?=>(	otherlv_10='backgroundcolor' 
+    {
+    	newLeafNode(otherlv_10, grammarAccess.getStyleAccess().getBackgroundcolorKeyword_4_2_0());
+    }
+(
+(
+		{
+			if ($current==null) {
+	            $current = createModelElement(grammarAccess.getStyleRule());
+	        }
+        }
+	otherlv_11=RULE_ID
+	{
+		newLeafNode(otherlv_11, grammarAccess.getStyleAccess().getBackgroundcolorColorCrossReference_4_2_1_0()); 
+	}
+
+)
+)(	otherlv_12='alternate' 
+    {
+    	newLeafNode(otherlv_12, grammarAccess.getStyleAccess().getAlternateKeyword_4_2_2_0());
+    }
+(
+(
+		{
+			if ($current==null) {
+	            $current = createModelElement(grammarAccess.getStyleRule());
+	        }
+        }
+	otherlv_13=RULE_ID
+	{
+		newLeafNode(otherlv_13, grammarAccess.getStyleAccess().getBackgroundcolor_alternateColorCrossReference_4_2_2_1_0()); 
+	}
+
+)
+))?))
+					{ 
+	 				  getUnorderedGroupHelper().returnFromSelection(grammarAccess.getStyleAccess().getUnorderedGroup_4());
+	 				}
+ 				)
+			)  |
+
+			( 
+				{getUnorderedGroupHelper().canSelect(grammarAccess.getStyleAccess().getUnorderedGroup_4(), 3)}?=>(
+					{ 
+	 				  getUnorderedGroupHelper().select(grammarAccess.getStyleAccess().getUnorderedGroup_4(), 3);
+	 				}
+					({true}?=>(	otherlv_14='textcolor' 
+    {
+    	newLeafNode(otherlv_14, grammarAccess.getStyleAccess().getTextcolorKeyword_4_3_0());
+    }
+(
+(
+		{
+			if ($current==null) {
+	            $current = createModelElement(grammarAccess.getStyleRule());
+	        }
+        }
+	otherlv_15=RULE_ID
+	{
+		newLeafNode(otherlv_15, grammarAccess.getStyleAccess().getTextcolorColorCrossReference_4_3_1_0()); 
+	}
+
+)
+)))
+					{ 
+	 				  getUnorderedGroupHelper().returnFromSelection(grammarAccess.getStyleAccess().getUnorderedGroup_4());
+	 				}
+ 				)
+			)  |
+
+			( 
+				{getUnorderedGroupHelper().canSelect(grammarAccess.getStyleAccess().getUnorderedGroup_4(), 4)}?=>(
+					{ 
+	 				  getUnorderedGroupHelper().select(grammarAccess.getStyleAccess().getUnorderedGroup_4(), 4);
+	 				}
+					({true}?=>(	otherlv_16='textalign' 
+    {
+    	newLeafNode(otherlv_16, grammarAccess.getStyleAccess().getTextalignKeyword_4_4_0());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getStyleAccess().getTextalignTextAlignEnumEnumRuleCall_4_4_1_0()); 
+	    }
+		lv_textalign_17_0=ruleTextAlignEnum		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getStyleRule());
+	        }
+       		set(
+       			$current, 
+       			"textalign",
+        		lv_textalign_17_0, 
+        		"TextAlignEnum");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)))
+					{ 
+	 				  getUnorderedGroupHelper().returnFromSelection(grammarAccess.getStyleAccess().getUnorderedGroup_4());
+	 				}
+ 				)
+			)  |
+
+			( 
+				{getUnorderedGroupHelper().canSelect(grammarAccess.getStyleAccess().getUnorderedGroup_4(), 5)}?=>(
+					{ 
+	 				  getUnorderedGroupHelper().select(grammarAccess.getStyleAccess().getUnorderedGroup_4(), 5);
+	 				}
+					({true}?=>(	otherlv_18='border-top' 
+    {
+    	newLeafNode(otherlv_18, grammarAccess.getStyleAccess().getBorderTopKeyword_4_5_0());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getStyleAccess().getBorderTopBorderStyleParserRuleCall_4_5_1_0()); 
+	    }
+		lv_borderTop_19_0=ruleBorderStyle		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getStyleRule());
+	        }
+       		set(
+       			$current, 
+       			"borderTop",
+        		lv_borderTop_19_0, 
+        		"BorderStyle");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)))
+					{ 
+	 				  getUnorderedGroupHelper().returnFromSelection(grammarAccess.getStyleAccess().getUnorderedGroup_4());
+	 				}
+ 				)
+			)  |
+
+			( 
+				{getUnorderedGroupHelper().canSelect(grammarAccess.getStyleAccess().getUnorderedGroup_4(), 6)}?=>(
+					{ 
+	 				  getUnorderedGroupHelper().select(grammarAccess.getStyleAccess().getUnorderedGroup_4(), 6);
+	 				}
+					({true}?=>(	otherlv_20='border-bottom' 
+    {
+    	newLeafNode(otherlv_20, grammarAccess.getStyleAccess().getBorderBottomKeyword_4_6_0());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getStyleAccess().getBorderBottomBorderStyleParserRuleCall_4_6_1_0()); 
+	    }
+		lv_borderBottom_21_0=ruleBorderStyle		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getStyleRule());
+	        }
+       		set(
+       			$current, 
+       			"borderBottom",
+        		lv_borderBottom_21_0, 
+        		"BorderStyle");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)))
+					{ 
+	 				  getUnorderedGroupHelper().returnFromSelection(grammarAccess.getStyleAccess().getUnorderedGroup_4());
+	 				}
+ 				)
+			)  |
+
+			( 
+				{getUnorderedGroupHelper().canSelect(grammarAccess.getStyleAccess().getUnorderedGroup_4(), 7)}?=>(
+					{ 
+	 				  getUnorderedGroupHelper().select(grammarAccess.getStyleAccess().getUnorderedGroup_4(), 7);
+	 				}
+					({true}?=>(	otherlv_22='border-left' 
+    {
+    	newLeafNode(otherlv_22, grammarAccess.getStyleAccess().getBorderLeftKeyword_4_7_0());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getStyleAccess().getBorderLeftBorderStyleParserRuleCall_4_7_1_0()); 
+	    }
+		lv_borderLeft_23_0=ruleBorderStyle		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getStyleRule());
+	        }
+       		set(
+       			$current, 
+       			"borderLeft",
+        		lv_borderLeft_23_0, 
+        		"BorderStyle");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)))
+					{ 
+	 				  getUnorderedGroupHelper().returnFromSelection(grammarAccess.getStyleAccess().getUnorderedGroup_4());
+	 				}
+ 				)
+			)  |
+
+			( 
+				{getUnorderedGroupHelper().canSelect(grammarAccess.getStyleAccess().getUnorderedGroup_4(), 8)}?=>(
+					{ 
+	 				  getUnorderedGroupHelper().select(grammarAccess.getStyleAccess().getUnorderedGroup_4(), 8);
+	 				}
+					({true}?=>(	otherlv_24='border-right' 
+    {
+    	newLeafNode(otherlv_24, grammarAccess.getStyleAccess().getBorderRightKeyword_4_8_0());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getStyleAccess().getBorderRightBorderStyleParserRuleCall_4_8_1_0()); 
+	    }
+		lv_borderRight_25_0=ruleBorderStyle		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getStyleRule());
+	        }
+       		set(
+       			$current, 
+       			"borderRight",
+        		lv_borderRight_25_0, 
+        		"BorderStyle");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)))
+					{ 
+	 				  getUnorderedGroupHelper().returnFromSelection(grammarAccess.getStyleAccess().getUnorderedGroup_4());
+	 				}
+ 				)
+			)  |
+
+			( 
+				{getUnorderedGroupHelper().canSelect(grammarAccess.getStyleAccess().getUnorderedGroup_4(), 9)}?=>(
+					{ 
+	 				  getUnorderedGroupHelper().select(grammarAccess.getStyleAccess().getUnorderedGroup_4(), 9);
+	 				}
+					({true}?=>(	otherlv_26='padding-top' 
+    {
+    	newLeafNode(otherlv_26, grammarAccess.getStyleAccess().getPaddingTopKeyword_4_9_0());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getStyleAccess().getPaddingTopValueUnsignedNumberParserRuleCall_4_9_1_0()); 
+	    }
+		lv_paddingTopValue_27_0=ruleUnsignedNumber		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getStyleRule());
+	        }
+       		set(
+       			$current, 
+       			"paddingTopValue",
+        		lv_paddingTopValue_27_0, 
+        		"UnsignedNumber");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getStyleAccess().getPaddingTopUnitUnitEnumEnumRuleCall_4_9_2_0()); 
+	    }
+		lv_paddingTopUnit_28_0=ruleUnitEnum		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getStyleRule());
+	        }
+       		set(
+       			$current, 
+       			"paddingTopUnit",
+        		lv_paddingTopUnit_28_0, 
+        		"UnitEnum");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)))
+					{ 
+	 				  getUnorderedGroupHelper().returnFromSelection(grammarAccess.getStyleAccess().getUnorderedGroup_4());
+	 				}
+ 				)
+			)  |
+
+			( 
+				{getUnorderedGroupHelper().canSelect(grammarAccess.getStyleAccess().getUnorderedGroup_4(), 10)}?=>(
+					{ 
+	 				  getUnorderedGroupHelper().select(grammarAccess.getStyleAccess().getUnorderedGroup_4(), 10);
+	 				}
+					({true}?=>(	otherlv_29='padding-bottom' 
+    {
+    	newLeafNode(otherlv_29, grammarAccess.getStyleAccess().getPaddingBottomKeyword_4_10_0());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getStyleAccess().getPaddingBottomValueUnsignedNumberParserRuleCall_4_10_1_0()); 
+	    }
+		lv_paddingBottomValue_30_0=ruleUnsignedNumber		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getStyleRule());
+	        }
+       		set(
+       			$current, 
+       			"paddingBottomValue",
+        		lv_paddingBottomValue_30_0, 
+        		"UnsignedNumber");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getStyleAccess().getPaddingBottomUnitUnitEnumEnumRuleCall_4_10_2_0()); 
+	    }
+		lv_paddingBottomUnit_31_0=ruleUnitEnum		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getStyleRule());
+	        }
+       		set(
+       			$current, 
+       			"paddingBottomUnit",
+        		lv_paddingBottomUnit_31_0, 
+        		"UnitEnum");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)))
+					{ 
+	 				  getUnorderedGroupHelper().returnFromSelection(grammarAccess.getStyleAccess().getUnorderedGroup_4());
+	 				}
+ 				)
+			)  |
+
+			( 
+				{getUnorderedGroupHelper().canSelect(grammarAccess.getStyleAccess().getUnorderedGroup_4(), 11)}?=>(
+					{ 
+	 				  getUnorderedGroupHelper().select(grammarAccess.getStyleAccess().getUnorderedGroup_4(), 11);
+	 				}
+					({true}?=>(	otherlv_32='padding-left' 
+    {
+    	newLeafNode(otherlv_32, grammarAccess.getStyleAccess().getPaddingLeftKeyword_4_11_0());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getStyleAccess().getPaddingLeftValueUnsignedNumberParserRuleCall_4_11_1_0()); 
+	    }
+		lv_paddingLeftValue_33_0=ruleUnsignedNumber		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getStyleRule());
+	        }
+       		set(
+       			$current, 
+       			"paddingLeftValue",
+        		lv_paddingLeftValue_33_0, 
+        		"UnsignedNumber");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getStyleAccess().getPaddingLeftUnitUnitEnumEnumRuleCall_4_11_2_0()); 
+	    }
+		lv_paddingLeftUnit_34_0=ruleUnitEnum		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getStyleRule());
+	        }
+       		set(
+       			$current, 
+       			"paddingLeftUnit",
+        		lv_paddingLeftUnit_34_0, 
+        		"UnitEnum");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)))
+					{ 
+	 				  getUnorderedGroupHelper().returnFromSelection(grammarAccess.getStyleAccess().getUnorderedGroup_4());
+	 				}
+ 				)
+			)  |
+
+			( 
+				{getUnorderedGroupHelper().canSelect(grammarAccess.getStyleAccess().getUnorderedGroup_4(), 12)}?=>(
+					{ 
+	 				  getUnorderedGroupHelper().select(grammarAccess.getStyleAccess().getUnorderedGroup_4(), 12);
+	 				}
+					({true}?=>(	otherlv_35='padding-right' 
+    {
+    	newLeafNode(otherlv_35, grammarAccess.getStyleAccess().getPaddingRightKeyword_4_12_0());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getStyleAccess().getPaddingRightValueUnsignedNumberParserRuleCall_4_12_1_0()); 
+	    }
+		lv_paddingRightValue_36_0=ruleUnsignedNumber		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getStyleRule());
+	        }
+       		set(
+       			$current, 
+       			"paddingRightValue",
+        		lv_paddingRightValue_36_0, 
+        		"UnsignedNumber");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getStyleAccess().getPaddingRightUnitUnitEnumEnumRuleCall_4_12_2_0()); 
+	    }
+		lv_paddingRightUnit_37_0=ruleUnitEnum		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getStyleRule());
+	        }
+       		set(
+       			$current, 
+       			"paddingRightUnit",
+        		lv_paddingRightUnit_37_0, 
+        		"UnitEnum");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)))
+					{ 
+	 				  getUnorderedGroupHelper().returnFromSelection(grammarAccess.getStyleAccess().getUnorderedGroup_4());
+	 				}
+ 				)
+			)  |
+
+			( 
+				{getUnorderedGroupHelper().canSelect(grammarAccess.getStyleAccess().getUnorderedGroup_4(), 13)}?=>(
+					{ 
+	 				  getUnorderedGroupHelper().select(grammarAccess.getStyleAccess().getUnorderedGroup_4(), 13);
+	 				}
+					({true}?=>(	otherlv_38='margin-top' 
+    {
+    	newLeafNode(otherlv_38, grammarAccess.getStyleAccess().getMarginTopKeyword_4_13_0());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getStyleAccess().getMarginTopValueUnsignedNumberParserRuleCall_4_13_1_0()); 
+	    }
+		lv_marginTopValue_39_0=ruleUnsignedNumber		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getStyleRule());
+	        }
+       		set(
+       			$current, 
+       			"marginTopValue",
+        		lv_marginTopValue_39_0, 
+        		"UnsignedNumber");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getStyleAccess().getMarginTopUnitUnitEnumEnumRuleCall_4_13_2_0()); 
+	    }
+		lv_marginTopUnit_40_0=ruleUnitEnum		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getStyleRule());
+	        }
+       		set(
+       			$current, 
+       			"marginTopUnit",
+        		lv_marginTopUnit_40_0, 
+        		"UnitEnum");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)))
+					{ 
+	 				  getUnorderedGroupHelper().returnFromSelection(grammarAccess.getStyleAccess().getUnorderedGroup_4());
+	 				}
+ 				)
+			)  |
+
+			( 
+				{getUnorderedGroupHelper().canSelect(grammarAccess.getStyleAccess().getUnorderedGroup_4(), 14)}?=>(
+					{ 
+	 				  getUnorderedGroupHelper().select(grammarAccess.getStyleAccess().getUnorderedGroup_4(), 14);
+	 				}
+					({true}?=>(	otherlv_41='margin-bottom' 
+    {
+    	newLeafNode(otherlv_41, grammarAccess.getStyleAccess().getMarginBottomKeyword_4_14_0());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getStyleAccess().getMarginBottomValueUnsignedNumberParserRuleCall_4_14_1_0()); 
+	    }
+		lv_marginBottomValue_42_0=ruleUnsignedNumber		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getStyleRule());
+	        }
+       		set(
+       			$current, 
+       			"marginBottomValue",
+        		lv_marginBottomValue_42_0, 
+        		"UnsignedNumber");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getStyleAccess().getMarginBottomUnitUnitEnumEnumRuleCall_4_14_2_0()); 
+	    }
+		lv_marginBottomUnit_43_0=ruleUnitEnum		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getStyleRule());
+	        }
+       		set(
+       			$current, 
+       			"marginBottomUnit",
+        		lv_marginBottomUnit_43_0, 
+        		"UnitEnum");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)))
+					{ 
+	 				  getUnorderedGroupHelper().returnFromSelection(grammarAccess.getStyleAccess().getUnorderedGroup_4());
+	 				}
+ 				)
+			)  |
+
+			( 
+				{getUnorderedGroupHelper().canSelect(grammarAccess.getStyleAccess().getUnorderedGroup_4(), 15)}?=>(
+					{ 
+	 				  getUnorderedGroupHelper().select(grammarAccess.getStyleAccess().getUnorderedGroup_4(), 15);
+	 				}
+					({true}?=>(	otherlv_44='margin-left' 
+    {
+    	newLeafNode(otherlv_44, grammarAccess.getStyleAccess().getMarginLeftKeyword_4_15_0());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getStyleAccess().getMarginLeftValueUnsignedNumberParserRuleCall_4_15_1_0()); 
+	    }
+		lv_marginLeftValue_45_0=ruleUnsignedNumber		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getStyleRule());
+	        }
+       		set(
+       			$current, 
+       			"marginLeftValue",
+        		lv_marginLeftValue_45_0, 
+        		"UnsignedNumber");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getStyleAccess().getMarginLeftUnitUnitEnumEnumRuleCall_4_15_2_0()); 
+	    }
+		lv_marginLeftUnit_46_0=ruleUnitEnum		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getStyleRule());
+	        }
+       		set(
+       			$current, 
+       			"marginLeftUnit",
+        		lv_marginLeftUnit_46_0, 
+        		"UnitEnum");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)))
+					{ 
+	 				  getUnorderedGroupHelper().returnFromSelection(grammarAccess.getStyleAccess().getUnorderedGroup_4());
+	 				}
+ 				)
+			)  |
+
+			( 
+				{getUnorderedGroupHelper().canSelect(grammarAccess.getStyleAccess().getUnorderedGroup_4(), 16)}?=>(
+					{ 
+	 				  getUnorderedGroupHelper().select(grammarAccess.getStyleAccess().getUnorderedGroup_4(), 16);
+	 				}
+					({true}?=>(	otherlv_47='margin-right' 
+    {
+    	newLeafNode(otherlv_47, grammarAccess.getStyleAccess().getMarginRightKeyword_4_16_0());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getStyleAccess().getMarginRightValueUnsignedNumberParserRuleCall_4_16_1_0()); 
+	    }
+		lv_marginRightValue_48_0=ruleUnsignedNumber		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getStyleRule());
+	        }
+       		set(
+       			$current, 
+       			"marginRightValue",
+        		lv_marginRightValue_48_0, 
+        		"UnsignedNumber");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getStyleAccess().getMarginRightUnitUnitEnumEnumRuleCall_4_16_2_0()); 
+	    }
+		lv_marginRightUnit_49_0=ruleUnitEnum		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getStyleRule());
+	        }
+       		set(
+       			$current, 
+       			"marginRightUnit",
+        		lv_marginRightUnit_49_0, 
+        		"UnitEnum");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)))
+					{ 
+	 				  getUnorderedGroupHelper().returnFromSelection(grammarAccess.getStyleAccess().getUnorderedGroup_4());
+	 				}
+ 				)
+			)  
+
+		)*	
+	)
+)
+	{ 
+	  getUnorderedGroupHelper().leave(grammarAccess.getStyleAccess().getUnorderedGroup_4());
+	}
+
+)(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getStyleAccess().getMediastylesMediaStyleParserRuleCall_5_0()); 
+	    }
+		lv_mediastyles_50_0=ruleMediaStyle		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getStyleRule());
+	        }
+       		add(
+       			$current, 
+       			"mediastyles",
+        		lv_mediastyles_50_0, 
+        		"MediaStyle");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)*	otherlv_51='}' 
+    {
+    	newLeafNode(otherlv_51, grammarAccess.getStyleAccess().getRightCurlyBracketKeyword_6());
+    }
+)
+;
+
+
+
+
+
+// Entry rule entryRuleMediaStyle
+entryRuleMediaStyle returns [EObject current=null] 
+	:
+	{ newCompositeNode(grammarAccess.getMediaStyleRule()); }
+	 iv_ruleMediaStyle=ruleMediaStyle 
+	 { $current=$iv_ruleMediaStyle.current; } 
+	 EOF 
+;
+
+// Rule MediaStyle
+ruleMediaStyle returns [EObject current=null] 
+    @init { enterRule(); 
+    }
+    @after { leaveRule(); }:
+(	otherlv_0='media' 
+    {
+    	newLeafNode(otherlv_0, grammarAccess.getMediaStyleAccess().getMediaKeyword_0());
+    }
+(
+(
+		{
+			if ($current==null) {
+	            $current = createModelElement(grammarAccess.getMediaStyleRule());
+	        }
+        }
+	otherlv_1=RULE_ID
+	{
+		newLeafNode(otherlv_1, grammarAccess.getMediaStyleAccess().getMediaMediaCrossReference_1_0()); 
+	}
+
+)
+)	otherlv_2='{' 
+    {
+    	newLeafNode(otherlv_2, grammarAccess.getMediaStyleAccess().getLeftCurlyBracketKeyword_2());
+    }
+(
+
+(
+	{ 
+	  getUnorderedGroupHelper().enter(grammarAccess.getMediaStyleAccess().getUnorderedGroup_3());
+	}
+	(
+		(
+
+			( 
+				{getUnorderedGroupHelper().canSelect(grammarAccess.getMediaStyleAccess().getUnorderedGroup_3(), 0)}?=>(
+					{ 
+	 				  getUnorderedGroupHelper().select(grammarAccess.getMediaStyleAccess().getUnorderedGroup_3(), 0);
+	 				}
+					({true}?=>(	otherlv_4='formatter' 
+    {
+    	newLeafNode(otherlv_4, grammarAccess.getMediaStyleAccess().getFormatterKeyword_3_0_0());
+    }
+(
+(
+		{
+			if ($current==null) {
+	            $current = createModelElement(grammarAccess.getMediaStyleRule());
+	        }
+        }
+	otherlv_5=RULE_ID
+	{
+		newLeafNode(otherlv_5, grammarAccess.getMediaStyleAccess().getFormatSomeFormatCrossReference_3_0_1_0()); 
+	}
+
+)
+)))
+					{ 
+	 				  getUnorderedGroupHelper().returnFromSelection(grammarAccess.getMediaStyleAccess().getUnorderedGroup_3());
+	 				}
+ 				)
+			)  |
+
+			( 
+				{getUnorderedGroupHelper().canSelect(grammarAccess.getMediaStyleAccess().getUnorderedGroup_3(), 1)}?=>(
+					{ 
+	 				  getUnorderedGroupHelper().select(grammarAccess.getMediaStyleAccess().getUnorderedGroup_3(), 1);
+	 				}
+					({true}?=>(	otherlv_6='font' 
+    {
+    	newLeafNode(otherlv_6, grammarAccess.getMediaStyleAccess().getFontKeyword_3_1_0());
+    }
+(
+(
+		{
+			if ($current==null) {
+	            $current = createModelElement(grammarAccess.getMediaStyleRule());
+	        }
+        }
+	otherlv_7=RULE_ID
+	{
+		newLeafNode(otherlv_7, grammarAccess.getMediaStyleAccess().getFontFontCrossReference_3_1_1_0()); 
+	}
+
+)
+)))
+					{ 
+	 				  getUnorderedGroupHelper().returnFromSelection(grammarAccess.getMediaStyleAccess().getUnorderedGroup_3());
+	 				}
+ 				)
+			)  |
+
+			( 
+				{getUnorderedGroupHelper().canSelect(grammarAccess.getMediaStyleAccess().getUnorderedGroup_3(), 2)}?=>(
+					{ 
+	 				  getUnorderedGroupHelper().select(grammarAccess.getMediaStyleAccess().getUnorderedGroup_3(), 2);
+	 				}
+					({true}?=>(	otherlv_8='backgroundcolor' 
+    {
+    	newLeafNode(otherlv_8, grammarAccess.getMediaStyleAccess().getBackgroundcolorKeyword_3_2_0());
+    }
+(
+(
+		{
+			if ($current==null) {
+	            $current = createModelElement(grammarAccess.getMediaStyleRule());
+	        }
+        }
+	otherlv_9=RULE_ID
+	{
+		newLeafNode(otherlv_9, grammarAccess.getMediaStyleAccess().getBackgroundcolorColorCrossReference_3_2_1_0()); 
+	}
+
+)
+)(	otherlv_10='alternate' 
+    {
+    	newLeafNode(otherlv_10, grammarAccess.getMediaStyleAccess().getAlternateKeyword_3_2_2_0());
+    }
+(
+(
+		{
+			if ($current==null) {
+	            $current = createModelElement(grammarAccess.getMediaStyleRule());
+	        }
+        }
+	otherlv_11=RULE_ID
+	{
+		newLeafNode(otherlv_11, grammarAccess.getMediaStyleAccess().getBackgroundcolor_alternateColorCrossReference_3_2_2_1_0()); 
+	}
+
+)
+))?))
+					{ 
+	 				  getUnorderedGroupHelper().returnFromSelection(grammarAccess.getMediaStyleAccess().getUnorderedGroup_3());
+	 				}
+ 				)
+			)  |
+
+			( 
+				{getUnorderedGroupHelper().canSelect(grammarAccess.getMediaStyleAccess().getUnorderedGroup_3(), 3)}?=>(
+					{ 
+	 				  getUnorderedGroupHelper().select(grammarAccess.getMediaStyleAccess().getUnorderedGroup_3(), 3);
+	 				}
+					({true}?=>(	otherlv_12='textcolor' 
+    {
+    	newLeafNode(otherlv_12, grammarAccess.getMediaStyleAccess().getTextcolorKeyword_3_3_0());
+    }
+(
+(
+		{
+			if ($current==null) {
+	            $current = createModelElement(grammarAccess.getMediaStyleRule());
+	        }
+        }
+	otherlv_13=RULE_ID
+	{
+		newLeafNode(otherlv_13, grammarAccess.getMediaStyleAccess().getTextcolorColorCrossReference_3_3_1_0()); 
+	}
+
+)
+)))
+					{ 
+	 				  getUnorderedGroupHelper().returnFromSelection(grammarAccess.getMediaStyleAccess().getUnorderedGroup_3());
+	 				}
+ 				)
+			)  |
+
+			( 
+				{getUnorderedGroupHelper().canSelect(grammarAccess.getMediaStyleAccess().getUnorderedGroup_3(), 4)}?=>(
+					{ 
+	 				  getUnorderedGroupHelper().select(grammarAccess.getMediaStyleAccess().getUnorderedGroup_3(), 4);
+	 				}
+					({true}?=>(	otherlv_14='textalign' 
+    {
+    	newLeafNode(otherlv_14, grammarAccess.getMediaStyleAccess().getTextalignKeyword_3_4_0());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getMediaStyleAccess().getTextalignTextAlignEnumEnumRuleCall_3_4_1_0()); 
+	    }
+		lv_textalign_15_0=ruleTextAlignEnum		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getMediaStyleRule());
+	        }
+       		set(
+       			$current, 
+       			"textalign",
+        		lv_textalign_15_0, 
+        		"TextAlignEnum");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)))
+					{ 
+	 				  getUnorderedGroupHelper().returnFromSelection(grammarAccess.getMediaStyleAccess().getUnorderedGroup_3());
+	 				}
+ 				)
+			)  |
+
+			( 
+				{getUnorderedGroupHelper().canSelect(grammarAccess.getMediaStyleAccess().getUnorderedGroup_3(), 5)}?=>(
+					{ 
+	 				  getUnorderedGroupHelper().select(grammarAccess.getMediaStyleAccess().getUnorderedGroup_3(), 5);
+	 				}
+					({true}?=>(	otherlv_16='border-top' 
+    {
+    	newLeafNode(otherlv_16, grammarAccess.getMediaStyleAccess().getBorderTopKeyword_3_5_0());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getMediaStyleAccess().getBorderTopBorderStyleParserRuleCall_3_5_1_0()); 
+	    }
+		lv_borderTop_17_0=ruleBorderStyle		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getMediaStyleRule());
+	        }
+       		set(
+       			$current, 
+       			"borderTop",
+        		lv_borderTop_17_0, 
+        		"BorderStyle");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)))
+					{ 
+	 				  getUnorderedGroupHelper().returnFromSelection(grammarAccess.getMediaStyleAccess().getUnorderedGroup_3());
+	 				}
+ 				)
+			)  |
+
+			( 
+				{getUnorderedGroupHelper().canSelect(grammarAccess.getMediaStyleAccess().getUnorderedGroup_3(), 6)}?=>(
+					{ 
+	 				  getUnorderedGroupHelper().select(grammarAccess.getMediaStyleAccess().getUnorderedGroup_3(), 6);
+	 				}
+					({true}?=>(	otherlv_18='border-bottom' 
+    {
+    	newLeafNode(otherlv_18, grammarAccess.getMediaStyleAccess().getBorderBottomKeyword_3_6_0());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getMediaStyleAccess().getBorderBottomBorderStyleParserRuleCall_3_6_1_0()); 
+	    }
+		lv_borderBottom_19_0=ruleBorderStyle		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getMediaStyleRule());
+	        }
+       		set(
+       			$current, 
+       			"borderBottom",
+        		lv_borderBottom_19_0, 
+        		"BorderStyle");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)))
+					{ 
+	 				  getUnorderedGroupHelper().returnFromSelection(grammarAccess.getMediaStyleAccess().getUnorderedGroup_3());
+	 				}
+ 				)
+			)  |
+
+			( 
+				{getUnorderedGroupHelper().canSelect(grammarAccess.getMediaStyleAccess().getUnorderedGroup_3(), 7)}?=>(
+					{ 
+	 				  getUnorderedGroupHelper().select(grammarAccess.getMediaStyleAccess().getUnorderedGroup_3(), 7);
+	 				}
+					({true}?=>(	otherlv_20='border-left' 
+    {
+    	newLeafNode(otherlv_20, grammarAccess.getMediaStyleAccess().getBorderLeftKeyword_3_7_0());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getMediaStyleAccess().getBorderLeftBorderStyleParserRuleCall_3_7_1_0()); 
+	    }
+		lv_borderLeft_21_0=ruleBorderStyle		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getMediaStyleRule());
+	        }
+       		set(
+       			$current, 
+       			"borderLeft",
+        		lv_borderLeft_21_0, 
+        		"BorderStyle");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)))
+					{ 
+	 				  getUnorderedGroupHelper().returnFromSelection(grammarAccess.getMediaStyleAccess().getUnorderedGroup_3());
+	 				}
+ 				)
+			)  |
+
+			( 
+				{getUnorderedGroupHelper().canSelect(grammarAccess.getMediaStyleAccess().getUnorderedGroup_3(), 8)}?=>(
+					{ 
+	 				  getUnorderedGroupHelper().select(grammarAccess.getMediaStyleAccess().getUnorderedGroup_3(), 8);
+	 				}
+					({true}?=>(	otherlv_22='border-right' 
+    {
+    	newLeafNode(otherlv_22, grammarAccess.getMediaStyleAccess().getBorderRightKeyword_3_8_0());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getMediaStyleAccess().getBorderRightBorderStyleParserRuleCall_3_8_1_0()); 
+	    }
+		lv_borderRight_23_0=ruleBorderStyle		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getMediaStyleRule());
+	        }
+       		set(
+       			$current, 
+       			"borderRight",
+        		lv_borderRight_23_0, 
+        		"BorderStyle");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)))
+					{ 
+	 				  getUnorderedGroupHelper().returnFromSelection(grammarAccess.getMediaStyleAccess().getUnorderedGroup_3());
+	 				}
+ 				)
+			)  |
+
+			( 
+				{getUnorderedGroupHelper().canSelect(grammarAccess.getMediaStyleAccess().getUnorderedGroup_3(), 9)}?=>(
+					{ 
+	 				  getUnorderedGroupHelper().select(grammarAccess.getMediaStyleAccess().getUnorderedGroup_3(), 9);
+	 				}
+					({true}?=>(	otherlv_24='padding-top' 
+    {
+    	newLeafNode(otherlv_24, grammarAccess.getMediaStyleAccess().getPaddingTopKeyword_3_9_0());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getMediaStyleAccess().getPaddingTopValueUnsignedNumberParserRuleCall_3_9_1_0()); 
+	    }
+		lv_paddingTopValue_25_0=ruleUnsignedNumber		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getMediaStyleRule());
+	        }
+       		set(
+       			$current, 
+       			"paddingTopValue",
+        		lv_paddingTopValue_25_0, 
+        		"UnsignedNumber");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getMediaStyleAccess().getPaddingTopUnitUnitEnumEnumRuleCall_3_9_2_0()); 
+	    }
+		lv_paddingTopUnit_26_0=ruleUnitEnum		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getMediaStyleRule());
+	        }
+       		set(
+       			$current, 
+       			"paddingTopUnit",
+        		lv_paddingTopUnit_26_0, 
+        		"UnitEnum");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)))
+					{ 
+	 				  getUnorderedGroupHelper().returnFromSelection(grammarAccess.getMediaStyleAccess().getUnorderedGroup_3());
+	 				}
+ 				)
+			)  |
+
+			( 
+				{getUnorderedGroupHelper().canSelect(grammarAccess.getMediaStyleAccess().getUnorderedGroup_3(), 10)}?=>(
+					{ 
+	 				  getUnorderedGroupHelper().select(grammarAccess.getMediaStyleAccess().getUnorderedGroup_3(), 10);
+	 				}
+					({true}?=>(	otherlv_27='padding-bottom' 
+    {
+    	newLeafNode(otherlv_27, grammarAccess.getMediaStyleAccess().getPaddingBottomKeyword_3_10_0());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getMediaStyleAccess().getPaddingBottomValueUnsignedNumberParserRuleCall_3_10_1_0()); 
+	    }
+		lv_paddingBottomValue_28_0=ruleUnsignedNumber		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getMediaStyleRule());
+	        }
+       		set(
+       			$current, 
+       			"paddingBottomValue",
+        		lv_paddingBottomValue_28_0, 
+        		"UnsignedNumber");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getMediaStyleAccess().getPaddingBottomUnitUnitEnumEnumRuleCall_3_10_2_0()); 
+	    }
+		lv_paddingBottomUnit_29_0=ruleUnitEnum		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getMediaStyleRule());
+	        }
+       		set(
+       			$current, 
+       			"paddingBottomUnit",
+        		lv_paddingBottomUnit_29_0, 
+        		"UnitEnum");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)))
+					{ 
+	 				  getUnorderedGroupHelper().returnFromSelection(grammarAccess.getMediaStyleAccess().getUnorderedGroup_3());
+	 				}
+ 				)
+			)  |
+
+			( 
+				{getUnorderedGroupHelper().canSelect(grammarAccess.getMediaStyleAccess().getUnorderedGroup_3(), 11)}?=>(
+					{ 
+	 				  getUnorderedGroupHelper().select(grammarAccess.getMediaStyleAccess().getUnorderedGroup_3(), 11);
+	 				}
+					({true}?=>(	otherlv_30='padding-left' 
+    {
+    	newLeafNode(otherlv_30, grammarAccess.getMediaStyleAccess().getPaddingLeftKeyword_3_11_0());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getMediaStyleAccess().getPaddingLeftValueUnsignedNumberParserRuleCall_3_11_1_0()); 
+	    }
+		lv_paddingLeftValue_31_0=ruleUnsignedNumber		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getMediaStyleRule());
+	        }
+       		set(
+       			$current, 
+       			"paddingLeftValue",
+        		lv_paddingLeftValue_31_0, 
+        		"UnsignedNumber");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getMediaStyleAccess().getPaddingLeftUnitUnitEnumEnumRuleCall_3_11_2_0()); 
+	    }
+		lv_paddingLeftUnit_32_0=ruleUnitEnum		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getMediaStyleRule());
+	        }
+       		set(
+       			$current, 
+       			"paddingLeftUnit",
+        		lv_paddingLeftUnit_32_0, 
+        		"UnitEnum");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)))
+					{ 
+	 				  getUnorderedGroupHelper().returnFromSelection(grammarAccess.getMediaStyleAccess().getUnorderedGroup_3());
+	 				}
+ 				)
+			)  |
+
+			( 
+				{getUnorderedGroupHelper().canSelect(grammarAccess.getMediaStyleAccess().getUnorderedGroup_3(), 12)}?=>(
+					{ 
+	 				  getUnorderedGroupHelper().select(grammarAccess.getMediaStyleAccess().getUnorderedGroup_3(), 12);
+	 				}
+					({true}?=>(	otherlv_33='padding-right' 
+    {
+    	newLeafNode(otherlv_33, grammarAccess.getMediaStyleAccess().getPaddingRightKeyword_3_12_0());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getMediaStyleAccess().getPaddingRightValueUnsignedNumberParserRuleCall_3_12_1_0()); 
+	    }
+		lv_paddingRightValue_34_0=ruleUnsignedNumber		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getMediaStyleRule());
+	        }
+       		set(
+       			$current, 
+       			"paddingRightValue",
+        		lv_paddingRightValue_34_0, 
+        		"UnsignedNumber");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getMediaStyleAccess().getPaddingRightUnitUnitEnumEnumRuleCall_3_12_2_0()); 
+	    }
+		lv_paddingRightUnit_35_0=ruleUnitEnum		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getMediaStyleRule());
+	        }
+       		set(
+       			$current, 
+       			"paddingRightUnit",
+        		lv_paddingRightUnit_35_0, 
+        		"UnitEnum");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)))
+					{ 
+	 				  getUnorderedGroupHelper().returnFromSelection(grammarAccess.getMediaStyleAccess().getUnorderedGroup_3());
+	 				}
+ 				)
+			)  |
+
+			( 
+				{getUnorderedGroupHelper().canSelect(grammarAccess.getMediaStyleAccess().getUnorderedGroup_3(), 13)}?=>(
+					{ 
+	 				  getUnorderedGroupHelper().select(grammarAccess.getMediaStyleAccess().getUnorderedGroup_3(), 13);
+	 				}
+					({true}?=>(	otherlv_36='margin-top' 
+    {
+    	newLeafNode(otherlv_36, grammarAccess.getMediaStyleAccess().getMarginTopKeyword_3_13_0());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getMediaStyleAccess().getMarginTopValueUnsignedNumberParserRuleCall_3_13_1_0()); 
+	    }
+		lv_marginTopValue_37_0=ruleUnsignedNumber		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getMediaStyleRule());
+	        }
+       		set(
+       			$current, 
+       			"marginTopValue",
+        		lv_marginTopValue_37_0, 
+        		"UnsignedNumber");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getMediaStyleAccess().getMarginTopUnitUnitEnumEnumRuleCall_3_13_2_0()); 
+	    }
+		lv_marginTopUnit_38_0=ruleUnitEnum		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getMediaStyleRule());
+	        }
+       		set(
+       			$current, 
+       			"marginTopUnit",
+        		lv_marginTopUnit_38_0, 
+        		"UnitEnum");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)))
+					{ 
+	 				  getUnorderedGroupHelper().returnFromSelection(grammarAccess.getMediaStyleAccess().getUnorderedGroup_3());
+	 				}
+ 				)
+			)  |
+
+			( 
+				{getUnorderedGroupHelper().canSelect(grammarAccess.getMediaStyleAccess().getUnorderedGroup_3(), 14)}?=>(
+					{ 
+	 				  getUnorderedGroupHelper().select(grammarAccess.getMediaStyleAccess().getUnorderedGroup_3(), 14);
+	 				}
+					({true}?=>(	otherlv_39='margin-bottom' 
+    {
+    	newLeafNode(otherlv_39, grammarAccess.getMediaStyleAccess().getMarginBottomKeyword_3_14_0());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getMediaStyleAccess().getMarginBottomValueUnsignedNumberParserRuleCall_3_14_1_0()); 
+	    }
+		lv_marginBottomValue_40_0=ruleUnsignedNumber		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getMediaStyleRule());
+	        }
+       		set(
+       			$current, 
+       			"marginBottomValue",
+        		lv_marginBottomValue_40_0, 
+        		"UnsignedNumber");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getMediaStyleAccess().getMarginBottomUnitUnitEnumEnumRuleCall_3_14_2_0()); 
+	    }
+		lv_marginBottomUnit_41_0=ruleUnitEnum		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getMediaStyleRule());
+	        }
+       		set(
+       			$current, 
+       			"marginBottomUnit",
+        		lv_marginBottomUnit_41_0, 
+        		"UnitEnum");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)))
+					{ 
+	 				  getUnorderedGroupHelper().returnFromSelection(grammarAccess.getMediaStyleAccess().getUnorderedGroup_3());
+	 				}
+ 				)
+			)  |
+
+			( 
+				{getUnorderedGroupHelper().canSelect(grammarAccess.getMediaStyleAccess().getUnorderedGroup_3(), 15)}?=>(
+					{ 
+	 				  getUnorderedGroupHelper().select(grammarAccess.getMediaStyleAccess().getUnorderedGroup_3(), 15);
+	 				}
+					({true}?=>(	otherlv_42='margin-left' 
+    {
+    	newLeafNode(otherlv_42, grammarAccess.getMediaStyleAccess().getMarginLeftKeyword_3_15_0());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getMediaStyleAccess().getMarginLeftValueUnsignedNumberParserRuleCall_3_15_1_0()); 
+	    }
+		lv_marginLeftValue_43_0=ruleUnsignedNumber		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getMediaStyleRule());
+	        }
+       		set(
+       			$current, 
+       			"marginLeftValue",
+        		lv_marginLeftValue_43_0, 
+        		"UnsignedNumber");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getMediaStyleAccess().getMarginLeftUnitUnitEnumEnumRuleCall_3_15_2_0()); 
+	    }
+		lv_marginLeftUnit_44_0=ruleUnitEnum		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getMediaStyleRule());
+	        }
+       		set(
+       			$current, 
+       			"marginLeftUnit",
+        		lv_marginLeftUnit_44_0, 
+        		"UnitEnum");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)))
+					{ 
+	 				  getUnorderedGroupHelper().returnFromSelection(grammarAccess.getMediaStyleAccess().getUnorderedGroup_3());
+	 				}
+ 				)
+			)  |
+
+			( 
+				{getUnorderedGroupHelper().canSelect(grammarAccess.getMediaStyleAccess().getUnorderedGroup_3(), 16)}?=>(
+					{ 
+	 				  getUnorderedGroupHelper().select(grammarAccess.getMediaStyleAccess().getUnorderedGroup_3(), 16);
+	 				}
+					({true}?=>(	otherlv_45='margin-right' 
+    {
+    	newLeafNode(otherlv_45, grammarAccess.getMediaStyleAccess().getMarginRightKeyword_3_16_0());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getMediaStyleAccess().getMarginRightValueUnsignedNumberParserRuleCall_3_16_1_0()); 
+	    }
+		lv_marginRightValue_46_0=ruleUnsignedNumber		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getMediaStyleRule());
+	        }
+       		set(
+       			$current, 
+       			"marginRightValue",
+        		lv_marginRightValue_46_0, 
+        		"UnsignedNumber");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getMediaStyleAccess().getMarginRightUnitUnitEnumEnumRuleCall_3_16_2_0()); 
+	    }
+		lv_marginRightUnit_47_0=ruleUnitEnum		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getMediaStyleRule());
+	        }
+       		set(
+       			$current, 
+       			"marginRightUnit",
+        		lv_marginRightUnit_47_0, 
+        		"UnitEnum");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)))
+					{ 
+	 				  getUnorderedGroupHelper().returnFromSelection(grammarAccess.getMediaStyleAccess().getUnorderedGroup_3());
+	 				}
+ 				)
+			)  
+
+		)*	
+	)
+)
+	{ 
+	  getUnorderedGroupHelper().leave(grammarAccess.getMediaStyleAccess().getUnorderedGroup_3());
+	}
+
+)	otherlv_48='}' 
+    {
+    	newLeafNode(otherlv_48, grammarAccess.getMediaStyleAccess().getRightCurlyBracketKeyword_4());
+    }
+)
+;
+
+
+
+
+
+// Entry rule entryRuleSomeFormat
+entryRuleSomeFormat returns [EObject current=null] 
+	:
+	{ newCompositeNode(grammarAccess.getSomeFormatRule()); }
+	 iv_ruleSomeFormat=ruleSomeFormat 
+	 { $current=$iv_ruleSomeFormat.current; } 
+	 EOF 
+;
+
+// Rule SomeFormat
+ruleSomeFormat returns [EObject current=null] 
+    @init { enterRule(); 
+    }
+    @after { leaveRule(); }:
+(
+    { 
+        newCompositeNode(grammarAccess.getSomeFormatAccess().getUomoFormatParserRuleCall_0()); 
+    }
+    this_UomoFormat_0=ruleUomoFormat
+    { 
+        $current = $this_UomoFormat_0.current; 
+        afterParserOrEnumRuleCall();
+    }
+
+    |
+    { 
+        newCompositeNode(grammarAccess.getSomeFormatAccess().getNumberFormatParserRuleCall_1()); 
+    }
+    this_NumberFormat_1=ruleNumberFormat
+    { 
+        $current = $this_NumberFormat_1.current; 
+        afterParserOrEnumRuleCall();
+    }
+
+    |
+    { 
+        newCompositeNode(grammarAccess.getSomeFormatAccess().getCurrencyFormatParserRuleCall_2()); 
+    }
+    this_CurrencyFormat_2=ruleCurrencyFormat
+    { 
+        $current = $this_CurrencyFormat_2.current; 
+        afterParserOrEnumRuleCall();
+    }
+
+    |
+    { 
+        newCompositeNode(grammarAccess.getSomeFormatAccess().getDateFormatParserRuleCall_3()); 
+    }
+    this_DateFormat_3=ruleDateFormat
+    { 
+        $current = $this_DateFormat_3.current; 
+        afterParserOrEnumRuleCall();
+    }
+
+    |
+    { 
+        newCompositeNode(grammarAccess.getSomeFormatAccess().getDateTimeFormatParserRuleCall_4()); 
+    }
+    this_DateTimeFormat_4=ruleDateTimeFormat
+    { 
+        $current = $this_DateTimeFormat_4.current; 
+        afterParserOrEnumRuleCall();
+    }
+
+    |
+    { 
+        newCompositeNode(grammarAccess.getSomeFormatAccess().getTimeFormatParserRuleCall_5()); 
+    }
+    this_TimeFormat_5=ruleTimeFormat
+    { 
+        $current = $this_TimeFormat_5.current; 
+        afterParserOrEnumRuleCall();
+    }
+)
+;
+
+
+
+
+
+// Entry rule entryRuleUomoFormat
+entryRuleUomoFormat returns [EObject current=null] 
+	:
+	{ newCompositeNode(grammarAccess.getUomoFormatRule()); }
+	 iv_ruleUomoFormat=ruleUomoFormat 
+	 { $current=$iv_ruleUomoFormat.current; } 
+	 EOF 
+;
+
+// Rule UomoFormat
+ruleUomoFormat returns [EObject current=null] 
+    @init { enterRule(); 
+    }
+    @after { leaveRule(); }:
+(	otherlv_0='uomo' 
+    {
+    	newLeafNode(otherlv_0, grammarAccess.getUomoFormatAccess().getUomoKeyword_0());
+    }
+(
+(
+		lv_name_1_0=RULE_ID
+		{
+			newLeafNode(lv_name_1_0, grammarAccess.getUomoFormatAccess().getNameIDTerminalRuleCall_1_0()); 
+		}
+		{
+	        if ($current==null) {
+	            $current = createModelElement(grammarAccess.getUomoFormatRule());
+	        }
+       		setWithLastConsumed(
+       			$current, 
+       			"name",
+        		lv_name_1_0, 
+        		"ID");
+	    }
+
+)
+)	otherlv_2='{' 
+    {
+    	newLeafNode(otherlv_2, grammarAccess.getUomoFormatAccess().getLeftCurlyBracketKeyword_2());
+    }
+	otherlv_3='ui' 
+    {
+    	newLeafNode(otherlv_3, grammarAccess.getUomoFormatAccess().getUiKeyword_3());
+    }
+(
+(
+		lv_ui_pattern_4_0=RULE_STRING
+		{
+			newLeafNode(lv_ui_pattern_4_0, grammarAccess.getUomoFormatAccess().getUi_patternSTRINGTerminalRuleCall_4_0()); 
+		}
+		{
+	        if ($current==null) {
+	            $current = createModelElement(grammarAccess.getUomoFormatRule());
+	        }
+       		setWithLastConsumed(
+       			$current, 
+       			"ui_pattern",
+        		lv_ui_pattern_4_0, 
+        		"STRING");
+	    }
+
+)
+)	otherlv_5='report' 
+    {
+    	newLeafNode(otherlv_5, grammarAccess.getUomoFormatAccess().getReportKeyword_5());
+    }
+(
+(
+		lv_report_pattern_6_0=RULE_STRING
+		{
+			newLeafNode(lv_report_pattern_6_0, grammarAccess.getUomoFormatAccess().getReport_patternSTRINGTerminalRuleCall_6_0()); 
+		}
+		{
+	        if ($current==null) {
+	            $current = createModelElement(grammarAccess.getUomoFormatRule());
+	        }
+       		setWithLastConsumed(
+       			$current, 
+       			"report_pattern",
+        		lv_report_pattern_6_0, 
+        		"STRING");
+	    }
+
+)
+)	otherlv_7='textalign' 
+    {
+    	newLeafNode(otherlv_7, grammarAccess.getUomoFormatAccess().getTextalignKeyword_7());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getUomoFormatAccess().getTextalignTextAlignEnumEnumRuleCall_8_0()); 
+	    }
+		lv_textalign_8_0=ruleTextAlignEnum		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getUomoFormatRule());
+	        }
+       		set(
+       			$current, 
+       			"textalign",
+        		lv_textalign_8_0, 
+        		"TextAlignEnum");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)	otherlv_9='}' 
+    {
+    	newLeafNode(otherlv_9, grammarAccess.getUomoFormatAccess().getRightCurlyBracketKeyword_9());
+    }
+)
+;
+
+
+
+
+
+// Entry rule entryRuleNumberFormat
+entryRuleNumberFormat returns [EObject current=null] 
+	:
+	{ newCompositeNode(grammarAccess.getNumberFormatRule()); }
+	 iv_ruleNumberFormat=ruleNumberFormat 
+	 { $current=$iv_ruleNumberFormat.current; } 
+	 EOF 
+;
+
+// Rule NumberFormat
+ruleNumberFormat returns [EObject current=null] 
+    @init { enterRule(); 
+    }
+    @after { leaveRule(); }:
+(	otherlv_0='number' 
+    {
+    	newLeafNode(otherlv_0, grammarAccess.getNumberFormatAccess().getNumberKeyword_0());
+    }
+(
+(
+		lv_name_1_0=RULE_ID
+		{
+			newLeafNode(lv_name_1_0, grammarAccess.getNumberFormatAccess().getNameIDTerminalRuleCall_1_0()); 
+		}
+		{
+	        if ($current==null) {
+	            $current = createModelElement(grammarAccess.getNumberFormatRule());
+	        }
+       		setWithLastConsumed(
+       			$current, 
+       			"name",
+        		lv_name_1_0, 
+        		"ID");
+	    }
+
+)
+)	otherlv_2='{' 
+    {
+    	newLeafNode(otherlv_2, grammarAccess.getNumberFormatAccess().getLeftCurlyBracketKeyword_2());
+    }
+	otherlv_3='ui' 
+    {
+    	newLeafNode(otherlv_3, grammarAccess.getNumberFormatAccess().getUiKeyword_3());
+    }
+(
+(
+		lv_ui_pattern_4_0=RULE_STRING
+		{
+			newLeafNode(lv_ui_pattern_4_0, grammarAccess.getNumberFormatAccess().getUi_patternSTRINGTerminalRuleCall_4_0()); 
+		}
+		{
+	        if ($current==null) {
+	            $current = createModelElement(grammarAccess.getNumberFormatRule());
+	        }
+       		setWithLastConsumed(
+       			$current, 
+       			"ui_pattern",
+        		lv_ui_pattern_4_0, 
+        		"STRING");
+	    }
+
+)
+)	otherlv_5='report' 
+    {
+    	newLeafNode(otherlv_5, grammarAccess.getNumberFormatAccess().getReportKeyword_5());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getNumberFormatAccess().getReport_categoryNumberFormatCategoryEnumEnumRuleCall_6_0()); 
+	    }
+		lv_report_category_6_0=ruleNumberFormatCategoryEnum		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getNumberFormatRule());
+	        }
+       		set(
+       			$current, 
+       			"report_category",
+        		lv_report_category_6_0, 
+        		"NumberFormatCategoryEnum");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)(
+(
+		lv_report_pattern_7_0=RULE_STRING
+		{
+			newLeafNode(lv_report_pattern_7_0, grammarAccess.getNumberFormatAccess().getReport_patternSTRINGTerminalRuleCall_7_0()); 
+		}
+		{
+	        if ($current==null) {
+	            $current = createModelElement(grammarAccess.getNumberFormatRule());
+	        }
+       		setWithLastConsumed(
+       			$current, 
+       			"report_pattern",
+        		lv_report_pattern_7_0, 
+        		"STRING");
+	    }
+
+)
+)	otherlv_8='textalign' 
+    {
+    	newLeafNode(otherlv_8, grammarAccess.getNumberFormatAccess().getTextalignKeyword_8());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getNumberFormatAccess().getTextalignTextAlignEnumEnumRuleCall_9_0()); 
+	    }
+		lv_textalign_9_0=ruleTextAlignEnum		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getNumberFormatRule());
+	        }
+       		set(
+       			$current, 
+       			"textalign",
+        		lv_textalign_9_0, 
+        		"TextAlignEnum");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)	otherlv_10='}' 
+    {
+    	newLeafNode(otherlv_10, grammarAccess.getNumberFormatAccess().getRightCurlyBracketKeyword_10());
+    }
+)
+;
+
+
+
+
+
+// Entry rule entryRuleCurrencyFormat
+entryRuleCurrencyFormat returns [EObject current=null] 
+	:
+	{ newCompositeNode(grammarAccess.getCurrencyFormatRule()); }
+	 iv_ruleCurrencyFormat=ruleCurrencyFormat 
+	 { $current=$iv_ruleCurrencyFormat.current; } 
+	 EOF 
+;
+
+// Rule CurrencyFormat
+ruleCurrencyFormat returns [EObject current=null] 
+    @init { enterRule(); 
+    }
+    @after { leaveRule(); }:
+(	otherlv_0='currency' 
+    {
+    	newLeafNode(otherlv_0, grammarAccess.getCurrencyFormatAccess().getCurrencyKeyword_0());
+    }
+(
+(
+		lv_name_1_0=RULE_ID
+		{
+			newLeafNode(lv_name_1_0, grammarAccess.getCurrencyFormatAccess().getNameIDTerminalRuleCall_1_0()); 
+		}
+		{
+	        if ($current==null) {
+	            $current = createModelElement(grammarAccess.getCurrencyFormatRule());
+	        }
+       		setWithLastConsumed(
+       			$current, 
+       			"name",
+        		lv_name_1_0, 
+        		"ID");
+	    }
+
+)
+)	otherlv_2='{' 
+    {
+    	newLeafNode(otherlv_2, grammarAccess.getCurrencyFormatAccess().getLeftCurlyBracketKeyword_2());
+    }
+	otherlv_3='ui' 
+    {
+    	newLeafNode(otherlv_3, grammarAccess.getCurrencyFormatAccess().getUiKeyword_3());
+    }
+(
+(
+		lv_ui_pattern_4_0=RULE_STRING
+		{
+			newLeafNode(lv_ui_pattern_4_0, grammarAccess.getCurrencyFormatAccess().getUi_patternSTRINGTerminalRuleCall_4_0()); 
+		}
+		{
+	        if ($current==null) {
+	            $current = createModelElement(grammarAccess.getCurrencyFormatRule());
+	        }
+       		setWithLastConsumed(
+       			$current, 
+       			"ui_pattern",
+        		lv_ui_pattern_4_0, 
+        		"STRING");
+	    }
+
+)
+)	otherlv_5='report' 
+    {
+    	newLeafNode(otherlv_5, grammarAccess.getCurrencyFormatAccess().getReportKeyword_5());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getCurrencyFormatAccess().getReport_categoryCurrencyFormatCategoryEnumEnumRuleCall_6_0()); 
+	    }
+		lv_report_category_6_0=ruleCurrencyFormatCategoryEnum		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getCurrencyFormatRule());
+	        }
+       		set(
+       			$current, 
+       			"report_category",
+        		lv_report_category_6_0, 
+        		"CurrencyFormatCategoryEnum");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)(
+(
+		lv_report_pattern_7_0=RULE_STRING
+		{
+			newLeafNode(lv_report_pattern_7_0, grammarAccess.getCurrencyFormatAccess().getReport_patternSTRINGTerminalRuleCall_7_0()); 
+		}
+		{
+	        if ($current==null) {
+	            $current = createModelElement(grammarAccess.getCurrencyFormatRule());
+	        }
+       		setWithLastConsumed(
+       			$current, 
+       			"report_pattern",
+        		lv_report_pattern_7_0, 
+        		"STRING");
+	    }
+
+)
+)	otherlv_8='textalign' 
+    {
+    	newLeafNode(otherlv_8, grammarAccess.getCurrencyFormatAccess().getTextalignKeyword_8());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getCurrencyFormatAccess().getTextalignTextAlignEnumEnumRuleCall_9_0()); 
+	    }
+		lv_textalign_9_0=ruleTextAlignEnum		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getCurrencyFormatRule());
+	        }
+       		set(
+       			$current, 
+       			"textalign",
+        		lv_textalign_9_0, 
+        		"TextAlignEnum");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)	otherlv_10='}' 
+    {
+    	newLeafNode(otherlv_10, grammarAccess.getCurrencyFormatAccess().getRightCurlyBracketKeyword_10());
+    }
+)
+;
+
+
+
+
+
+// Entry rule entryRuleDateFormat
+entryRuleDateFormat returns [EObject current=null] 
+	:
+	{ newCompositeNode(grammarAccess.getDateFormatRule()); }
+	 iv_ruleDateFormat=ruleDateFormat 
+	 { $current=$iv_ruleDateFormat.current; } 
+	 EOF 
+;
+
+// Rule DateFormat
+ruleDateFormat returns [EObject current=null] 
+    @init { enterRule(); 
+    }
+    @after { leaveRule(); }:
+(	otherlv_0='date' 
+    {
+    	newLeafNode(otherlv_0, grammarAccess.getDateFormatAccess().getDateKeyword_0());
+    }
+(
+(
+		lv_name_1_0=RULE_ID
+		{
+			newLeafNode(lv_name_1_0, grammarAccess.getDateFormatAccess().getNameIDTerminalRuleCall_1_0()); 
+		}
+		{
+	        if ($current==null) {
+	            $current = createModelElement(grammarAccess.getDateFormatRule());
+	        }
+       		setWithLastConsumed(
+       			$current, 
+       			"name",
+        		lv_name_1_0, 
+        		"ID");
+	    }
+
+)
+)	otherlv_2='{' 
+    {
+    	newLeafNode(otherlv_2, grammarAccess.getDateFormatAccess().getLeftCurlyBracketKeyword_2());
+    }
+	otherlv_3='ui' 
+    {
+    	newLeafNode(otherlv_3, grammarAccess.getDateFormatAccess().getUiKeyword_3());
+    }
+(
+(
+		lv_ui_pattern_4_0=RULE_STRING
+		{
+			newLeafNode(lv_ui_pattern_4_0, grammarAccess.getDateFormatAccess().getUi_patternSTRINGTerminalRuleCall_4_0()); 
+		}
+		{
+	        if ($current==null) {
+	            $current = createModelElement(grammarAccess.getDateFormatRule());
+	        }
+       		setWithLastConsumed(
+       			$current, 
+       			"ui_pattern",
+        		lv_ui_pattern_4_0, 
+        		"STRING");
+	    }
+
+)
+)	otherlv_5='report' 
+    {
+    	newLeafNode(otherlv_5, grammarAccess.getDateFormatAccess().getReportKeyword_5());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getDateFormatAccess().getReport_categoryDateFormatCategoryEnumEnumRuleCall_6_0()); 
+	    }
+		lv_report_category_6_0=ruleDateFormatCategoryEnum		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getDateFormatRule());
+	        }
+       		set(
+       			$current, 
+       			"report_category",
+        		lv_report_category_6_0, 
+        		"DateFormatCategoryEnum");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)(
+(
+		lv_report_pattern_7_0=RULE_STRING
+		{
+			newLeafNode(lv_report_pattern_7_0, grammarAccess.getDateFormatAccess().getReport_patternSTRINGTerminalRuleCall_7_0()); 
+		}
+		{
+	        if ($current==null) {
+	            $current = createModelElement(grammarAccess.getDateFormatRule());
+	        }
+       		setWithLastConsumed(
+       			$current, 
+       			"report_pattern",
+        		lv_report_pattern_7_0, 
+        		"STRING");
+	    }
+
+)
+)	otherlv_8='textalign' 
+    {
+    	newLeafNode(otherlv_8, grammarAccess.getDateFormatAccess().getTextalignKeyword_8());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getDateFormatAccess().getTextalignTextAlignEnumEnumRuleCall_9_0()); 
+	    }
+		lv_textalign_9_0=ruleTextAlignEnum		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getDateFormatRule());
+	        }
+       		set(
+       			$current, 
+       			"textalign",
+        		lv_textalign_9_0, 
+        		"TextAlignEnum");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)	otherlv_10='}' 
+    {
+    	newLeafNode(otherlv_10, grammarAccess.getDateFormatAccess().getRightCurlyBracketKeyword_10());
+    }
+)
+;
+
+
+
+
+
+// Entry rule entryRuleDateTimeFormat
+entryRuleDateTimeFormat returns [EObject current=null] 
+	:
+	{ newCompositeNode(grammarAccess.getDateTimeFormatRule()); }
+	 iv_ruleDateTimeFormat=ruleDateTimeFormat 
+	 { $current=$iv_ruleDateTimeFormat.current; } 
+	 EOF 
+;
+
+// Rule DateTimeFormat
+ruleDateTimeFormat returns [EObject current=null] 
+    @init { enterRule(); 
+    }
+    @after { leaveRule(); }:
+(	otherlv_0='date+time' 
+    {
+    	newLeafNode(otherlv_0, grammarAccess.getDateTimeFormatAccess().getDateTimeKeyword_0());
+    }
+(
+(
+		lv_name_1_0=RULE_ID
+		{
+			newLeafNode(lv_name_1_0, grammarAccess.getDateTimeFormatAccess().getNameIDTerminalRuleCall_1_0()); 
+		}
+		{
+	        if ($current==null) {
+	            $current = createModelElement(grammarAccess.getDateTimeFormatRule());
+	        }
+       		setWithLastConsumed(
+       			$current, 
+       			"name",
+        		lv_name_1_0, 
+        		"ID");
+	    }
+
+)
+)	otherlv_2='{' 
+    {
+    	newLeafNode(otherlv_2, grammarAccess.getDateTimeFormatAccess().getLeftCurlyBracketKeyword_2());
+    }
+	otherlv_3='ui' 
+    {
+    	newLeafNode(otherlv_3, grammarAccess.getDateTimeFormatAccess().getUiKeyword_3());
+    }
+(
+(
+		lv_ui_pattern_4_0=RULE_STRING
+		{
+			newLeafNode(lv_ui_pattern_4_0, grammarAccess.getDateTimeFormatAccess().getUi_patternSTRINGTerminalRuleCall_4_0()); 
+		}
+		{
+	        if ($current==null) {
+	            $current = createModelElement(grammarAccess.getDateTimeFormatRule());
+	        }
+       		setWithLastConsumed(
+       			$current, 
+       			"ui_pattern",
+        		lv_ui_pattern_4_0, 
+        		"STRING");
+	    }
+
+)
+)	otherlv_5='report' 
+    {
+    	newLeafNode(otherlv_5, grammarAccess.getDateTimeFormatAccess().getReportKeyword_5());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getDateTimeFormatAccess().getReport_categoryDateTimeFormatCategoryEnumEnumRuleCall_6_0()); 
+	    }
+		lv_report_category_6_0=ruleDateTimeFormatCategoryEnum		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getDateTimeFormatRule());
+	        }
+       		set(
+       			$current, 
+       			"report_category",
+        		lv_report_category_6_0, 
+        		"DateTimeFormatCategoryEnum");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)(
+(
+		lv_report_pattern_7_0=RULE_STRING
+		{
+			newLeafNode(lv_report_pattern_7_0, grammarAccess.getDateTimeFormatAccess().getReport_patternSTRINGTerminalRuleCall_7_0()); 
+		}
+		{
+	        if ($current==null) {
+	            $current = createModelElement(grammarAccess.getDateTimeFormatRule());
+	        }
+       		setWithLastConsumed(
+       			$current, 
+       			"report_pattern",
+        		lv_report_pattern_7_0, 
+        		"STRING");
+	    }
+
+)
+)	otherlv_8='textalign' 
+    {
+    	newLeafNode(otherlv_8, grammarAccess.getDateTimeFormatAccess().getTextalignKeyword_8());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getDateTimeFormatAccess().getTextalignTextAlignEnumEnumRuleCall_9_0()); 
+	    }
+		lv_textalign_9_0=ruleTextAlignEnum		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getDateTimeFormatRule());
+	        }
+       		set(
+       			$current, 
+       			"textalign",
+        		lv_textalign_9_0, 
+        		"TextAlignEnum");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)	otherlv_10='}' 
+    {
+    	newLeafNode(otherlv_10, grammarAccess.getDateTimeFormatAccess().getRightCurlyBracketKeyword_10());
+    }
+)
+;
+
+
+
+
+
+// Entry rule entryRuleTimeFormat
+entryRuleTimeFormat returns [EObject current=null] 
+	:
+	{ newCompositeNode(grammarAccess.getTimeFormatRule()); }
+	 iv_ruleTimeFormat=ruleTimeFormat 
+	 { $current=$iv_ruleTimeFormat.current; } 
+	 EOF 
+;
+
+// Rule TimeFormat
+ruleTimeFormat returns [EObject current=null] 
+    @init { enterRule(); 
+    }
+    @after { leaveRule(); }:
+(	otherlv_0='time' 
+    {
+    	newLeafNode(otherlv_0, grammarAccess.getTimeFormatAccess().getTimeKeyword_0());
+    }
+(
+(
+		lv_name_1_0=RULE_ID
+		{
+			newLeafNode(lv_name_1_0, grammarAccess.getTimeFormatAccess().getNameIDTerminalRuleCall_1_0()); 
+		}
+		{
+	        if ($current==null) {
+	            $current = createModelElement(grammarAccess.getTimeFormatRule());
+	        }
+       		setWithLastConsumed(
+       			$current, 
+       			"name",
+        		lv_name_1_0, 
+        		"ID");
+	    }
+
+)
+)	otherlv_2='{' 
+    {
+    	newLeafNode(otherlv_2, grammarAccess.getTimeFormatAccess().getLeftCurlyBracketKeyword_2());
+    }
+	otherlv_3='ui' 
+    {
+    	newLeafNode(otherlv_3, grammarAccess.getTimeFormatAccess().getUiKeyword_3());
+    }
+(
+(
+		lv_ui_pattern_4_0=RULE_STRING
+		{
+			newLeafNode(lv_ui_pattern_4_0, grammarAccess.getTimeFormatAccess().getUi_patternSTRINGTerminalRuleCall_4_0()); 
+		}
+		{
+	        if ($current==null) {
+	            $current = createModelElement(grammarAccess.getTimeFormatRule());
+	        }
+       		setWithLastConsumed(
+       			$current, 
+       			"ui_pattern",
+        		lv_ui_pattern_4_0, 
+        		"STRING");
+	    }
+
+)
+)	otherlv_5='report' 
+    {
+    	newLeafNode(otherlv_5, grammarAccess.getTimeFormatAccess().getReportKeyword_5());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getTimeFormatAccess().getReport_categoryTimeFormatCategoryEnumEnumRuleCall_6_0()); 
+	    }
+		lv_report_category_6_0=ruleTimeFormatCategoryEnum		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getTimeFormatRule());
+	        }
+       		set(
+       			$current, 
+       			"report_category",
+        		lv_report_category_6_0, 
+        		"TimeFormatCategoryEnum");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)(
+(
+		lv_report_pattern_7_0=RULE_STRING
+		{
+			newLeafNode(lv_report_pattern_7_0, grammarAccess.getTimeFormatAccess().getReport_patternSTRINGTerminalRuleCall_7_0()); 
+		}
+		{
+	        if ($current==null) {
+	            $current = createModelElement(grammarAccess.getTimeFormatRule());
+	        }
+       		setWithLastConsumed(
+       			$current, 
+       			"report_pattern",
+        		lv_report_pattern_7_0, 
+        		"STRING");
+	    }
+
+)
+)	otherlv_8='textalign' 
+    {
+    	newLeafNode(otherlv_8, grammarAccess.getTimeFormatAccess().getTextalignKeyword_8());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getTimeFormatAccess().getTextalignTextAlignEnumEnumRuleCall_9_0()); 
+	    }
+		lv_textalign_9_0=ruleTextAlignEnum		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getTimeFormatRule());
+	        }
+       		set(
+       			$current, 
+       			"textalign",
+        		lv_textalign_9_0, 
+        		"TextAlignEnum");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)	otherlv_10='}' 
+    {
+    	newLeafNode(otherlv_10, grammarAccess.getTimeFormatAccess().getRightCurlyBracketKeyword_10());
+    }
+)
+;
+
+
+
+
+
+// Entry rule entryRuleReport
+entryRuleReport returns [EObject current=null] 
+	:
+	{ newCompositeNode(grammarAccess.getReportRule()); }
+	 iv_ruleReport=ruleReport 
+	 { $current=$iv_ruleReport.current; } 
+	 EOF 
+;
+
+// Rule Report
+ruleReport returns [EObject current=null] 
+    @init { enterRule(); 
+    }
+    @after { leaveRule(); }:
+(	otherlv_0='report' 
+    {
+    	newLeafNode(otherlv_0, grammarAccess.getReportAccess().getReportKeyword_0());
+    }
+(
+(
+		lv_name_1_0=RULE_ID
+		{
+			newLeafNode(lv_name_1_0, grammarAccess.getReportAccess().getNameIDTerminalRuleCall_1_0()); 
+		}
+		{
+	        if ($current==null) {
+	            $current = createModelElement(grammarAccess.getReportRule());
+	        }
+       		setWithLastConsumed(
+       			$current, 
+       			"name",
+        		lv_name_1_0, 
+        		"ID");
+	    }
+
+)
+)((
+(
+		lv_description_2_0=	'described by' 
+    {
+        newLeafNode(lv_description_2_0, grammarAccess.getReportAccess().getDescriptionDescribedByKeyword_2_0_0());
+    }
+ 
+	    {
+	        if ($current==null) {
+	            $current = createModelElement(grammarAccess.getReportRule());
+	        }
+       		setWithLastConsumed($current, "description", true, "described by");
+	    }
+
+)
+)(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getReportAccess().getDescriptionValueTRANSLATABLESTRINGParserRuleCall_2_1_0()); 
+	    }
+		lv_descriptionValue_3_0=ruleTRANSLATABLESTRING		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getReportRule());
+	        }
+       		set(
+       			$current, 
+       			"descriptionValue",
+        		lv_descriptionValue_3_0, 
+        		"TRANSLATABLESTRING");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+))?(	otherlv_4='toolbar' 
+    {
+    	newLeafNode(otherlv_4, grammarAccess.getReportAccess().getToolbarKeyword_3_0());
+    }
+(
+(
+		{
+			if ($current==null) {
+	            $current = createModelElement(grammarAccess.getReportRule());
+	        }
+        }
+	otherlv_5=RULE_ID
+	{
+		newLeafNode(otherlv_5, grammarAccess.getReportAccess().getToolbarActionToolbarCrossReference_3_1_0()); 
+	}
+
+)
+))?	otherlv_6='{' 
+    {
+    	newLeafNode(otherlv_6, grammarAccess.getReportAccess().getLeftCurlyBracketKeyword_4());
+    }
+	otherlv_7='datamart' 
+    {
+    	newLeafNode(otherlv_7, grammarAccess.getReportAccess().getDatamartKeyword_5());
+    }
+(
+(
+		{
+			if ($current==null) {
+	            $current = createModelElement(grammarAccess.getReportRule());
+	        }
+        }
+	otherlv_8=RULE_ID
+	{
+		newLeafNode(otherlv_8, grammarAccess.getReportAccess().getDatamartRefDatamartDefinitionCrossReference_6_0()); 
+	}
+
+)
+)	otherlv_9='rendering' 
+    {
+    	newLeafNode(otherlv_9, grammarAccess.getReportAccess().getRenderingKeyword_7());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getReportAccess().getRenderingRenderingEnumEnumRuleCall_8_0()); 
+	    }
+		lv_rendering_10_0=ruleRenderingEnum		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getReportRule());
+	        }
+       		set(
+       			$current, 
+       			"rendering",
+        		lv_rendering_10_0, 
+        		"RenderingEnum");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)(	otherlv_11='externalCssURI' 
+    {
+    	newLeafNode(otherlv_11, grammarAccess.getReportAccess().getExternalCssURIKeyword_9_0());
+    }
+(
+(
+		lv_externalCssURI_12_0=RULE_STRING
+		{
+			newLeafNode(lv_externalCssURI_12_0, grammarAccess.getReportAccess().getExternalCssURISTRINGTerminalRuleCall_9_1_0()); 
+		}
+		{
+	        if ($current==null) {
+	            $current = createModelElement(grammarAccess.getReportRule());
+	        }
+       		setWithLastConsumed(
+       			$current, 
+       			"externalCssURI",
+        		lv_externalCssURI_12_0, 
+        		"STRING");
+	    }
+
+)
+)(	otherlv_13='from bundle' 
+    {
+    	newLeafNode(otherlv_13, grammarAccess.getReportAccess().getFromBundleKeyword_9_2_0());
+    }
+(
+(
+		lv_externalCssURIBundle_14_0=RULE_STRING
+		{
+			newLeafNode(lv_externalCssURIBundle_14_0, grammarAccess.getReportAccess().getExternalCssURIBundleSTRINGTerminalRuleCall_9_2_1_0()); 
+		}
+		{
+	        if ($current==null) {
+	            $current = createModelElement(grammarAccess.getReportRule());
+	        }
+       		setWithLastConsumed(
+       			$current, 
+       			"externalCssURIBundle",
+        		lv_externalCssURIBundle_14_0, 
+        		"STRING");
+	    }
+
+)
+))?)?	otherlv_15='pagetemplate' 
+    {
+    	newLeafNode(otherlv_15, grammarAccess.getReportAccess().getPagetemplateKeyword_10());
+    }
+(
+(
+		{
+			if ($current==null) {
+	            $current = createModelElement(grammarAccess.getReportRule());
+	        }
+        }
+	otherlv_16=RULE_ID
+	{
+		newLeafNode(otherlv_16, grammarAccess.getReportAccess().getPageTemplatePageTemplateCrossReference_11_0()); 
+	}
+
+)
+)	otherlv_17='media' 
+    {
+    	newLeafNode(otherlv_17, grammarAccess.getReportAccess().getMediaKeyword_12());
+    }
+(
+(
+		{
+			if ($current==null) {
+	            $current = createModelElement(grammarAccess.getReportRule());
+	        }
+        }
+	otherlv_18=RULE_ID
+	{
+		newLeafNode(otherlv_18, grammarAccess.getReportAccess().getMediaMediaCrossReference_13_0()); 
+	}
+
+)
+)(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getReportAccess().getDesignReportDesignParserRuleCall_14_0()); 
+	    }
+		lv_design_19_0=ruleReportDesign		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getReportRule());
+	        }
+       		set(
+       			$current, 
+       			"design",
+        		lv_design_19_0, 
+        		"ReportDesign");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)	otherlv_20='}' 
+    {
+    	newLeafNode(otherlv_20, grammarAccess.getReportAccess().getRightCurlyBracketKeyword_15());
+    }
+)
+;
+
+
+
+
+
+// Entry rule entryRuleReportDesign
+entryRuleReportDesign returns [EObject current=null] 
+	:
+	{ newCompositeNode(grammarAccess.getReportDesignRule()); }
+	 iv_ruleReportDesign=ruleReportDesign 
+	 { $current=$iv_ruleReportDesign.current; } 
+	 EOF 
+;
+
+// Rule ReportDesign
+ruleReportDesign returns [EObject current=null] 
+    @init { enterRule(); 
+    }
+    @after { leaveRule(); }:
+(
+    { 
+        newCompositeNode(grammarAccess.getReportDesignAccess().getReportDesignFileParserRuleCall_0()); 
+    }
+    this_ReportDesignFile_0=ruleReportDesignFile
+    { 
+        $current = $this_ReportDesignFile_0.current; 
+        afterParserOrEnumRuleCall();
+    }
+
+    |
+    { 
+        newCompositeNode(grammarAccess.getReportDesignAccess().getReportDesignTemplateParserRuleCall_1()); 
+    }
+    this_ReportDesignTemplate_1=ruleReportDesignTemplate
+    { 
+        $current = $this_ReportDesignTemplate_1.current; 
+        afterParserOrEnumRuleCall();
+    }
+)
+;
+
+
+
+
+
+// Entry rule entryRuleReportDesignFile
+entryRuleReportDesignFile returns [EObject current=null] 
+	:
+	{ newCompositeNode(grammarAccess.getReportDesignFileRule()); }
+	 iv_ruleReportDesignFile=ruleReportDesignFile 
+	 { $current=$iv_ruleReportDesignFile.current; } 
+	 EOF 
+;
+
+// Rule ReportDesignFile
+ruleReportDesignFile returns [EObject current=null] 
+    @init { enterRule(); 
+    }
+    @after { leaveRule(); }:
+(	otherlv_0='file' 
+    {
+    	newLeafNode(otherlv_0, grammarAccess.getReportDesignFileAccess().getFileKeyword_0());
+    }
+(
+(
+		lv_name_1_0=RULE_STRING
+		{
+			newLeafNode(lv_name_1_0, grammarAccess.getReportDesignFileAccess().getNameSTRINGTerminalRuleCall_1_0()); 
+		}
+		{
+	        if ($current==null) {
+	            $current = createModelElement(grammarAccess.getReportDesignFileRule());
+	        }
+       		setWithLastConsumed(
+       			$current, 
+       			"name",
+        		lv_name_1_0, 
+        		"STRING");
+	    }
+
+)
+))
+;
+
+
+
+
+
+// Entry rule entryRuleReportDesignTemplate
+entryRuleReportDesignTemplate returns [EObject current=null] 
+	:
+	{ newCompositeNode(grammarAccess.getReportDesignTemplateRule()); }
+	 iv_ruleReportDesignTemplate=ruleReportDesignTemplate 
+	 { $current=$iv_ruleReportDesignTemplate.current; } 
+	 EOF 
+;
+
+// Rule ReportDesignTemplate
+ruleReportDesignTemplate returns [EObject current=null] 
+    @init { enterRule(); 
+    }
+    @after { leaveRule(); }:
+(	otherlv_0='template' 
+    {
+    	newLeafNode(otherlv_0, grammarAccess.getReportDesignTemplateAccess().getTemplateKeyword_0());
+    }
+	otherlv_1='{' 
+    {
+    	newLeafNode(otherlv_1, grammarAccess.getReportDesignTemplateAccess().getLeftCurlyBracketKeyword_1());
+    }
+(	otherlv_2='described by' 
+    {
+    	newLeafNode(otherlv_2, grammarAccess.getReportDesignTemplateAccess().getDescribedByKeyword_2_0());
+    }
+(
+(
+		lv_description_3_0=RULE_STRING
+		{
+			newLeafNode(lv_description_3_0, grammarAccess.getReportDesignTemplateAccess().getDescriptionSTRINGTerminalRuleCall_2_1_0()); 
+		}
+		{
+	        if ($current==null) {
+	            $current = createModelElement(grammarAccess.getReportDesignTemplateRule());
+	        }
+       		setWithLastConsumed(
+       			$current, 
+       			"description",
+        		lv_description_3_0, 
+        		"STRING");
+	    }
+
+)
+))?(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getReportDesignTemplateAccess().getHeaderPageHeaderParserRuleCall_3_0()); 
+	    }
+		lv_header_4_0=rulePageHeader		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getReportDesignTemplateRule());
+	        }
+       		set(
+       			$current, 
+       			"header",
+        		lv_header_4_0, 
+        		"PageHeader");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)?(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getReportDesignTemplateAccess().getDetailPageDetailParserRuleCall_4_0()); 
+	    }
+		lv_detail_5_0=rulePageDetail		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getReportDesignTemplateRule());
+	        }
+       		set(
+       			$current, 
+       			"detail",
+        		lv_detail_5_0, 
+        		"PageDetail");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getReportDesignTemplateAccess().getFooterPageFooterParserRuleCall_5_0()); 
+	    }
+		lv_footer_6_0=rulePageFooter		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getReportDesignTemplateRule());
+	        }
+       		set(
+       			$current, 
+       			"footer",
+        		lv_footer_6_0, 
+        		"PageFooter");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)?	otherlv_7='}' 
+    {
+    	newLeafNode(otherlv_7, grammarAccess.getReportDesignTemplateAccess().getRightCurlyBracketKeyword_6());
+    }
+)
+;
+
+
+
+
+
+
+
+// Entry rule entryRulePageHeader
+entryRulePageHeader returns [EObject current=null] 
+	:
+	{ newCompositeNode(grammarAccess.getPageHeaderRule()); }
+	 iv_rulePageHeader=rulePageHeader 
+	 { $current=$iv_rulePageHeader.current; } 
+	 EOF 
+;
+
+// Rule PageHeader
+rulePageHeader returns [EObject current=null] 
+    @init { enterRule(); 
+    }
+    @after { leaveRule(); }:
+((
+    {
+        $current = forceCreateModelElement(
+            grammarAccess.getPageHeaderAccess().getPageHeaderAction_0(),
+            $current);
+    }
+)	otherlv_1='header' 
+    {
+    	newLeafNode(otherlv_1, grammarAccess.getPageHeaderAccess().getHeaderKeyword_1());
+    }
+	otherlv_2='{' 
+    {
+    	newLeafNode(otherlv_2, grammarAccess.getPageHeaderAccess().getLeftCurlyBracketKeyword_2());
+    }
+(
+(
+		lv_showOnFirst_3_0=	'showOnFirst' 
+    {
+        newLeafNode(lv_showOnFirst_3_0, grammarAccess.getPageHeaderAccess().getShowOnFirstShowOnFirstKeyword_3_0());
+    }
+ 
+	    {
+	        if ($current==null) {
+	            $current = createModelElement(grammarAccess.getPageHeaderRule());
+	        }
+       		setWithLastConsumed($current, "showOnFirst", true, "showOnFirst");
+	    }
+
+)
+)?	otherlv_4='height' 
+    {
+    	newLeafNode(otherlv_4, grammarAccess.getPageHeaderAccess().getHeightKeyword_4());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getPageHeaderAccess().getHeightValueUnsignedNumberParserRuleCall_5_0()); 
+	    }
+		lv_heightValue_5_0=ruleUnsignedNumber		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getPageHeaderRule());
+	        }
+       		set(
+       			$current, 
+       			"heightValue",
+        		lv_heightValue_5_0, 
+        		"UnsignedNumber");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getPageHeaderAccess().getHeightUnitUnitEnumEnumRuleCall_6_0()); 
+	    }
+		lv_heightUnit_6_0=ruleUnitEnum		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getPageHeaderRule());
+	        }
+       		set(
+       			$current, 
+       			"heightUnit",
+        		lv_heightUnit_6_0, 
+        		"UnitEnum");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getPageHeaderAccess().getElementsElementParserRuleCall_7_0()); 
+	    }
+		lv_elements_7_0=ruleElement		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getPageHeaderRule());
+	        }
+       		add(
+       			$current, 
+       			"elements",
+        		lv_elements_7_0, 
+        		"Element");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)	otherlv_8='}' 
+    {
+    	newLeafNode(otherlv_8, grammarAccess.getPageHeaderAccess().getRightCurlyBracketKeyword_8());
+    }
+)
+;
+
+
+
+
+
+// Entry rule entryRulePageDetail
+entryRulePageDetail returns [EObject current=null] 
+	:
+	{ newCompositeNode(grammarAccess.getPageDetailRule()); }
+	 iv_rulePageDetail=rulePageDetail 
+	 { $current=$iv_rulePageDetail.current; } 
+	 EOF 
+;
+
+// Rule PageDetail
+rulePageDetail returns [EObject current=null] 
+    @init { enterRule(); 
+    }
+    @after { leaveRule(); }:
+((
+    {
+        $current = forceCreateModelElement(
+            grammarAccess.getPageDetailAccess().getPageDetailAction_0(),
+            $current);
+    }
+)	otherlv_1='detail' 
+    {
+    	newLeafNode(otherlv_1, grammarAccess.getPageDetailAccess().getDetailKeyword_1());
+    }
+	otherlv_2='{' 
+    {
+    	newLeafNode(otherlv_2, grammarAccess.getPageDetailAccess().getLeftCurlyBracketKeyword_2());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getPageDetailAccess().getElementsElementParserRuleCall_3_0()); 
+	    }
+		lv_elements_3_0=ruleElement		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getPageDetailRule());
+	        }
+       		add(
+       			$current, 
+       			"elements",
+        		lv_elements_3_0, 
+        		"Element");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)*	otherlv_4='}' 
+    {
+    	newLeafNode(otherlv_4, grammarAccess.getPageDetailAccess().getRightCurlyBracketKeyword_4());
+    }
+)
+;
+
+
+
+
+
+// Entry rule entryRulePageFooter
+entryRulePageFooter returns [EObject current=null] 
+	:
+	{ newCompositeNode(grammarAccess.getPageFooterRule()); }
+	 iv_rulePageFooter=rulePageFooter 
+	 { $current=$iv_rulePageFooter.current; } 
+	 EOF 
+;
+
+// Rule PageFooter
+rulePageFooter returns [EObject current=null] 
+    @init { enterRule(); 
+    }
+    @after { leaveRule(); }:
+((
+    {
+        $current = forceCreateModelElement(
+            grammarAccess.getPageFooterAccess().getPageFooterAction_0(),
+            $current);
+    }
+)	otherlv_1='footer' 
+    {
+    	newLeafNode(otherlv_1, grammarAccess.getPageFooterAccess().getFooterKeyword_1());
+    }
+	otherlv_2='{' 
+    {
+    	newLeafNode(otherlv_2, grammarAccess.getPageFooterAccess().getLeftCurlyBracketKeyword_2());
+    }
+(
+(
+		lv_showOnLast_3_0=	'showOnLast' 
+    {
+        newLeafNode(lv_showOnLast_3_0, grammarAccess.getPageFooterAccess().getShowOnLastShowOnLastKeyword_3_0());
+    }
+ 
+	    {
+	        if ($current==null) {
+	            $current = createModelElement(grammarAccess.getPageFooterRule());
+	        }
+       		setWithLastConsumed($current, "showOnLast", true, "showOnLast");
+	    }
+
+)
+)?	otherlv_4='height' 
+    {
+    	newLeafNode(otherlv_4, grammarAccess.getPageFooterAccess().getHeightKeyword_4());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getPageFooterAccess().getHeightValueUnsignedNumberParserRuleCall_5_0()); 
+	    }
+		lv_heightValue_5_0=ruleUnsignedNumber		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getPageFooterRule());
+	        }
+       		set(
+       			$current, 
+       			"heightValue",
+        		lv_heightValue_5_0, 
+        		"UnsignedNumber");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getPageFooterAccess().getHeightUnitUnitEnumEnumRuleCall_6_0()); 
+	    }
+		lv_heightUnit_6_0=ruleUnitEnum		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getPageFooterRule());
+	        }
+       		set(
+       			$current, 
+       			"heightUnit",
+        		lv_heightUnit_6_0, 
+        		"UnitEnum");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getPageFooterAccess().getElementsElementParserRuleCall_7_0()); 
+	    }
+		lv_elements_7_0=ruleElement		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getPageFooterRule());
+	        }
+       		add(
+       			$current, 
+       			"elements",
+        		lv_elements_7_0, 
+        		"Element");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)	otherlv_8='}' 
+    {
+    	newLeafNode(otherlv_8, grammarAccess.getPageFooterAccess().getRightCurlyBracketKeyword_8());
+    }
+)
+;
+
+
+
+
+
+// Entry rule entryRuleElement
+entryRuleElement returns [EObject current=null] 
+	:
+	{ newCompositeNode(grammarAccess.getElementRule()); }
+	 iv_ruleElement=ruleElement 
+	 { $current=$iv_ruleElement.current; } 
+	 EOF 
+;
+
+// Rule Element
+ruleElement returns [EObject current=null] 
+    @init { enterRule(); 
+    }
+    @after { leaveRule(); }:
+(
+    { 
+        newCompositeNode(grammarAccess.getElementAccess().getTitleParserRuleCall_0()); 
+    }
+    this_Title_0=ruleTitle
+    { 
+        $current = $this_Title_0.current; 
+        afterParserOrEnumRuleCall();
+    }
+
+    |
+    { 
+        newCompositeNode(grammarAccess.getElementAccess().getSubTitleParserRuleCall_1()); 
+    }
+    this_SubTitle_1=ruleSubTitle
+    { 
+        $current = $this_SubTitle_1.current; 
+        afterParserOrEnumRuleCall();
+    }
+
+    |
+    { 
+        newCompositeNode(grammarAccess.getElementAccess().getSubSubTitleParserRuleCall_2()); 
+    }
+    this_SubSubTitle_2=ruleSubSubTitle
+    { 
+        $current = $this_SubSubTitle_2.current; 
+        afterParserOrEnumRuleCall();
+    }
+
+    |
+    { 
+        newCompositeNode(grammarAccess.getElementAccess().getLabelParserRuleCall_3()); 
+    }
+    this_Label_3=ruleLabel
+    { 
+        $current = $this_Label_3.current; 
+        afterParserOrEnumRuleCall();
+    }
+
+    |
+    { 
+        newCompositeNode(grammarAccess.getElementAccess().getTextParserRuleCall_4()); 
+    }
+    this_Text_4=ruleText
+    { 
+        $current = $this_Text_4.current; 
+        afterParserOrEnumRuleCall();
+    }
+
+    |
+    { 
+        newCompositeNode(grammarAccess.getElementAccess().getAutoTextParserRuleCall_5()); 
+    }
+    this_AutoText_5=ruleAutoText
+    { 
+        $current = $this_AutoText_5.current; 
+        afterParserOrEnumRuleCall();
+    }
+
+    |
+    { 
+        newCompositeNode(grammarAccess.getElementAccess().getImageParserRuleCall_6()); 
+    }
+    this_Image_6=ruleImage
+    { 
+        $current = $this_Image_6.current; 
+        afterParserOrEnumRuleCall();
+    }
+
+    |
+    { 
+        newCompositeNode(grammarAccess.getElementAccess().getDatamartTableParserRuleCall_7()); 
+    }
+    this_DatamartTable_7=ruleDatamartTable
+    { 
+        $current = $this_DatamartTable_7.current; 
+        afterParserOrEnumRuleCall();
+    }
+
+    |
+    { 
+        newCompositeNode(grammarAccess.getElementAccess().getDatamartTablePropertyParserRuleCall_8()); 
+    }
+    this_DatamartTableProperty_8=ruleDatamartTableProperty
+    { 
+        $current = $this_DatamartTableProperty_8.current; 
+        afterParserOrEnumRuleCall();
+    }
+
+    |
+    { 
+        newCompositeNode(grammarAccess.getElementAccess().getGridParserRuleCall_9()); 
+    }
+    this_Grid_9=ruleGrid
+    { 
+        $current = $this_Grid_9.current; 
+        afterParserOrEnumRuleCall();
+    }
+)
+;
+
+
+
+
+
+// Entry rule entryRuleGrid
+entryRuleGrid returns [EObject current=null] 
+	:
+	{ newCompositeNode(grammarAccess.getGridRule()); }
+	 iv_ruleGrid=ruleGrid 
+	 { $current=$iv_ruleGrid.current; } 
+	 EOF 
+;
+
+// Rule Grid
+ruleGrid returns [EObject current=null] 
+    @init { enterRule(); 
+    }
+    @after { leaveRule(); }:
+((
+    {
+        $current = forceCreateModelElement(
+            grammarAccess.getGridAccess().getGridAction_0(),
+            $current);
+    }
+)	otherlv_1='grid' 
+    {
+    	newLeafNode(otherlv_1, grammarAccess.getGridAccess().getGridKeyword_1());
+    }
+(	otherlv_2='as' 
+    {
+    	newLeafNode(otherlv_2, grammarAccess.getGridAccess().getAsKeyword_2_0());
+    }
+(
+(
+		lv_name_3_0=RULE_ID
+		{
+			newLeafNode(lv_name_3_0, grammarAccess.getGridAccess().getNameIDTerminalRuleCall_2_1_0()); 
+		}
+		{
+	        if ($current==null) {
+	            $current = createModelElement(grammarAccess.getGridRule());
+	        }
+       		setWithLastConsumed(
+       			$current, 
+       			"name",
+        		lv_name_3_0, 
+        		"ID");
+	    }
+
+)
+))?	otherlv_4='{' 
+    {
+    	newLeafNode(otherlv_4, grammarAccess.getGridAccess().getLeftCurlyBracketKeyword_3());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getGridAccess().getRowsGridRowParserRuleCall_4_0()); 
+	    }
+		lv_rows_5_0=ruleGridRow		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getGridRule());
+	        }
+       		add(
+       			$current, 
+       			"rows",
+        		lv_rows_5_0, 
+        		"GridRow");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)*	otherlv_6='}' 
+    {
+    	newLeafNode(otherlv_6, grammarAccess.getGridAccess().getRightCurlyBracketKeyword_5());
+    }
+)
+;
+
+
+
+
+
+// Entry rule entryRuleGridRow
+entryRuleGridRow returns [EObject current=null] 
+	:
+	{ newCompositeNode(grammarAccess.getGridRowRule()); }
+	 iv_ruleGridRow=ruleGridRow 
+	 { $current=$iv_ruleGridRow.current; } 
+	 EOF 
+;
+
+// Rule GridRow
+ruleGridRow returns [EObject current=null] 
+    @init { enterRule(); 
+    }
+    @after { leaveRule(); }:
+((
+    {
+        $current = forceCreateModelElement(
+            grammarAccess.getGridRowAccess().getGridRowAction_0(),
+            $current);
+    }
+)	otherlv_1='row' 
+    {
+    	newLeafNode(otherlv_1, grammarAccess.getGridRowAccess().getRowKeyword_1());
+    }
+(	otherlv_2='as' 
+    {
+    	newLeafNode(otherlv_2, grammarAccess.getGridRowAccess().getAsKeyword_2_0());
+    }
+(
+(
+		lv_name_3_0=RULE_ID
+		{
+			newLeafNode(lv_name_3_0, grammarAccess.getGridRowAccess().getNameIDTerminalRuleCall_2_1_0()); 
+		}
+		{
+	        if ($current==null) {
+	            $current = createModelElement(grammarAccess.getGridRowRule());
+	        }
+       		setWithLastConsumed(
+       			$current, 
+       			"name",
+        		lv_name_3_0, 
+        		"ID");
+	    }
+
+)
+))?(	otherlv_4='style' 
+    {
+    	newLeafNode(otherlv_4, grammarAccess.getGridRowAccess().getStyleKeyword_3_0());
+    }
+(
+(
+		{
+			if ($current==null) {
+	            $current = createModelElement(grammarAccess.getGridRowRule());
+	        }
+        }
+	otherlv_5=RULE_ID
+	{
+		newLeafNode(otherlv_5, grammarAccess.getGridRowAccess().getStyleStyleCrossReference_3_1_0()); 
+	}
+
+)
+))?	otherlv_6='{' 
+    {
+    	newLeafNode(otherlv_6, grammarAccess.getGridRowAccess().getLeftCurlyBracketKeyword_4());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getGridRowAccess().getCellsGridCellParserRuleCall_5_0()); 
+	    }
+		lv_cells_7_0=ruleGridCell		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getGridRowRule());
+	        }
+       		add(
+       			$current, 
+       			"cells",
+        		lv_cells_7_0, 
+        		"GridCell");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)*	otherlv_8='}' 
+    {
+    	newLeafNode(otherlv_8, grammarAccess.getGridRowAccess().getRightCurlyBracketKeyword_6());
+    }
+)
+;
+
+
+
+
+
+// Entry rule entryRuleGridCell
+entryRuleGridCell returns [EObject current=null] 
+	:
+	{ newCompositeNode(grammarAccess.getGridCellRule()); }
+	 iv_ruleGridCell=ruleGridCell 
+	 { $current=$iv_ruleGridCell.current; } 
+	 EOF 
+;
+
+// Rule GridCell
+ruleGridCell returns [EObject current=null] 
+    @init { enterRule(); 
+    }
+    @after { leaveRule(); }:
+((
+    {
+        $current = forceCreateModelElement(
+            grammarAccess.getGridCellAccess().getGridCellAction_0(),
+            $current);
+    }
+)	otherlv_1='cell' 
+    {
+    	newLeafNode(otherlv_1, grammarAccess.getGridCellAccess().getCellKeyword_1());
+    }
+(	otherlv_2='as' 
+    {
+    	newLeafNode(otherlv_2, grammarAccess.getGridCellAccess().getAsKeyword_2_0());
+    }
+(
+(
+		lv_name_3_0=RULE_ID
+		{
+			newLeafNode(lv_name_3_0, grammarAccess.getGridCellAccess().getNameIDTerminalRuleCall_2_1_0()); 
+		}
+		{
+	        if ($current==null) {
+	            $current = createModelElement(grammarAccess.getGridCellRule());
+	        }
+       		setWithLastConsumed(
+       			$current, 
+       			"name",
+        		lv_name_3_0, 
+        		"ID");
+	    }
+
+)
+))?(	otherlv_4='columnspan' 
+    {
+    	newLeafNode(otherlv_4, grammarAccess.getGridCellAccess().getColumnspanKeyword_3_0());
+    }
+(
+(
+		lv_columnspan_5_0=RULE_INT
+		{
+			newLeafNode(lv_columnspan_5_0, grammarAccess.getGridCellAccess().getColumnspanINTTerminalRuleCall_3_1_0()); 
+		}
+		{
+	        if ($current==null) {
+	            $current = createModelElement(grammarAccess.getGridCellRule());
+	        }
+       		setWithLastConsumed(
+       			$current, 
+       			"columnspan",
+        		lv_columnspan_5_0, 
+        		"INT");
+	    }
+
+)
+))?	otherlv_6='{' 
+    {
+    	newLeafNode(otherlv_6, grammarAccess.getGridCellAccess().getLeftCurlyBracketKeyword_4());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getGridCellAccess().getElementsElementParserRuleCall_5_0()); 
+	    }
+		lv_elements_7_0=ruleElement		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getGridCellRule());
+	        }
+       		add(
+       			$current, 
+       			"elements",
+        		lv_elements_7_0, 
+        		"Element");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)*	otherlv_8='}' 
+    {
+    	newLeafNode(otherlv_8, grammarAccess.getGridCellAccess().getRightCurlyBracketKeyword_6());
+    }
+)
+;
+
+
+
+
+
+// Entry rule entryRuleDatamartTable
+entryRuleDatamartTable returns [EObject current=null] 
+	:
+	{ newCompositeNode(grammarAccess.getDatamartTableRule()); }
+	 iv_ruleDatamartTable=ruleDatamartTable 
+	 { $current=$iv_ruleDatamartTable.current; } 
+	 EOF 
+;
+
+// Rule DatamartTable
+ruleDatamartTable returns [EObject current=null] 
+    @init { enterRule(); 
+    }
+    @after { leaveRule(); }:
+(	otherlv_0='table' 
+    {
+    	newLeafNode(otherlv_0, grammarAccess.getDatamartTableAccess().getTableKeyword_0());
+    }
+(	otherlv_1='style' 
+    {
+    	newLeafNode(otherlv_1, grammarAccess.getDatamartTableAccess().getStyleKeyword_1_0());
+    }
+(
+(
+		{
+			if ($current==null) {
+	            $current = createModelElement(grammarAccess.getDatamartTableRule());
+	        }
+        }
+	otherlv_2=RULE_ID
+	{
+		newLeafNode(otherlv_2, grammarAccess.getDatamartTableAccess().getStyleStyleCrossReference_1_1_0()); 
+	}
+
+)
+))?	otherlv_3='{' 
+    {
+    	newLeafNode(otherlv_3, grammarAccess.getDatamartTableAccess().getLeftCurlyBracketKeyword_2());
+    }
+((
+(
+		lv_detailheader_4_0=	'detailheader' 
+    {
+        newLeafNode(lv_detailheader_4_0, grammarAccess.getDatamartTableAccess().getDetailheaderDetailheaderKeyword_3_0_0());
+    }
+ 
+	    {
+	        if ($current==null) {
+	            $current = createModelElement(grammarAccess.getDatamartTableRule());
+	        }
+       		setWithLastConsumed($current, "detailheader", true, "detailheader");
+	    }
+
+)
+)(	otherlv_5='style' 
+    {
+    	newLeafNode(otherlv_5, grammarAccess.getDatamartTableAccess().getStyleKeyword_3_1_0());
+    }
+(
+(
+		{
+			if ($current==null) {
+	            $current = createModelElement(grammarAccess.getDatamartTableRule());
+	        }
+        }
+	otherlv_6=RULE_ID
+	{
+		newLeafNode(otherlv_6, grammarAccess.getDatamartTableAccess().getHeaderstyleStyleCrossReference_3_1_1_0()); 
+	}
+
+)
+))?)?((
+(
+		lv_detailfooter_7_0=	'detailfooter' 
+    {
+        newLeafNode(lv_detailfooter_7_0, grammarAccess.getDatamartTableAccess().getDetailfooterDetailfooterKeyword_4_0_0());
+    }
+ 
+	    {
+	        if ($current==null) {
+	            $current = createModelElement(grammarAccess.getDatamartTableRule());
+	        }
+       		setWithLastConsumed($current, "detailfooter", true, "detailfooter");
+	    }
+
+)
+)(	otherlv_8='style' 
+    {
+    	newLeafNode(otherlv_8, grammarAccess.getDatamartTableAccess().getStyleKeyword_4_1_0());
+    }
+(
+(
+		{
+			if ($current==null) {
+	            $current = createModelElement(grammarAccess.getDatamartTableRule());
+	        }
+        }
+	otherlv_9=RULE_ID
+	{
+		newLeafNode(otherlv_9, grammarAccess.getDatamartTableAccess().getFooterstyleStyleCrossReference_4_1_1_0()); 
+	}
+
+)
+))?)?(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getDatamartTableAccess().getGroupsDatamartTableGroupParserRuleCall_5_0()); 
+	    }
+		lv_groups_10_0=ruleDatamartTableGroup		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getDatamartTableRule());
+	        }
+       		add(
+       			$current, 
+       			"groups",
+        		lv_groups_10_0, 
+        		"DatamartTableGroup");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)*(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getDatamartTableAccess().getDetailDatamartTableDetailParserRuleCall_6_0()); 
+	    }
+		lv_detail_11_0=ruleDatamartTableDetail		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getDatamartTableRule());
+	        }
+       		set(
+       			$current, 
+       			"detail",
+        		lv_detail_11_0, 
+        		"DatamartTableDetail");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)	otherlv_12='}' 
+    {
+    	newLeafNode(otherlv_12, grammarAccess.getDatamartTableAccess().getRightCurlyBracketKeyword_7());
+    }
+)
+;
+
+
+
+
+
+// Entry rule entryRuleDatamartTableGroup
+entryRuleDatamartTableGroup returns [EObject current=null] 
+	:
+	{ newCompositeNode(grammarAccess.getDatamartTableGroupRule()); }
+	 iv_ruleDatamartTableGroup=ruleDatamartTableGroup 
+	 { $current=$iv_ruleDatamartTableGroup.current; } 
+	 EOF 
+;
+
+// Rule DatamartTableGroup
+ruleDatamartTableGroup returns [EObject current=null] 
+    @init { enterRule(); 
+    }
+    @after { leaveRule(); }:
+(	otherlv_0='group' 
+    {
+    	newLeafNode(otherlv_0, grammarAccess.getDatamartTableGroupAccess().getGroupKeyword_0());
+    }
+(
+(
+		lv_name_1_0=RULE_ID
+		{
+			newLeafNode(lv_name_1_0, grammarAccess.getDatamartTableGroupAccess().getNameIDTerminalRuleCall_1_0()); 
+		}
+		{
+	        if ($current==null) {
+	            $current = createModelElement(grammarAccess.getDatamartTableGroupRule());
+	        }
+       		setWithLastConsumed(
+       			$current, 
+       			"name",
+        		lv_name_1_0, 
+        		"ID");
+	    }
+
+)
+)	otherlv_2='by' 
+    {
+    	newLeafNode(otherlv_2, grammarAccess.getDatamartTableGroupAccess().getByKeyword_2());
+    }
+(
+(
+		{
+			if ($current==null) {
+	            $current = createModelElement(grammarAccess.getDatamartTableGroupRule());
+	        }
+        }
+	otherlv_3=RULE_ID
+	{
+		newLeafNode(otherlv_3, grammarAccess.getDatamartTableGroupAccess().getGroupingRefDatamartPropertyCrossReference_3_0()); 
+	}
+
+)
+)	otherlv_4='{' 
+    {
+    	newLeafNode(otherlv_4, grammarAccess.getDatamartTableGroupAccess().getLeftCurlyBracketKeyword_4());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getDatamartTableGroupAccess().getHeaderDatamartTableGroupHeaderParserRuleCall_5_0()); 
+	    }
+		lv_header_5_0=ruleDatamartTableGroupHeader		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getDatamartTableGroupRule());
+	        }
+       		set(
+       			$current, 
+       			"header",
+        		lv_header_5_0, 
+        		"DatamartTableGroupHeader");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)?((
+(
+		lv_detailheader_6_0=	'detailheader' 
+    {
+        newLeafNode(lv_detailheader_6_0, grammarAccess.getDatamartTableGroupAccess().getDetailheaderDetailheaderKeyword_6_0_0());
+    }
+ 
+	    {
+	        if ($current==null) {
+	            $current = createModelElement(grammarAccess.getDatamartTableGroupRule());
+	        }
+       		setWithLastConsumed($current, "detailheader", true, "detailheader");
+	    }
+
+)
+)(	otherlv_7='style' 
+    {
+    	newLeafNode(otherlv_7, grammarAccess.getDatamartTableGroupAccess().getStyleKeyword_6_1_0());
+    }
+(
+(
+		{
+			if ($current==null) {
+	            $current = createModelElement(grammarAccess.getDatamartTableGroupRule());
+	        }
+        }
+	otherlv_8=RULE_ID
+	{
+		newLeafNode(otherlv_8, grammarAccess.getDatamartTableGroupAccess().getHeaderstyleStyleCrossReference_6_1_1_0()); 
+	}
+
+)
+))?)?((
+(
+		lv_detailfooter_9_0=	'detailfooter' 
+    {
+        newLeafNode(lv_detailfooter_9_0, grammarAccess.getDatamartTableGroupAccess().getDetailfooterDetailfooterKeyword_7_0_0());
+    }
+ 
+	    {
+	        if ($current==null) {
+	            $current = createModelElement(grammarAccess.getDatamartTableGroupRule());
+	        }
+       		setWithLastConsumed($current, "detailfooter", true, "detailfooter");
+	    }
+
+)
+)(	otherlv_10='style' 
+    {
+    	newLeafNode(otherlv_10, grammarAccess.getDatamartTableGroupAccess().getStyleKeyword_7_1_0());
+    }
+(
+(
+		{
+			if ($current==null) {
+	            $current = createModelElement(grammarAccess.getDatamartTableGroupRule());
+	        }
+        }
+	otherlv_11=RULE_ID
+	{
+		newLeafNode(otherlv_11, grammarAccess.getDatamartTableGroupAccess().getFooterstyleStyleCrossReference_7_1_1_0()); 
+	}
+
+)
+))?)?(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getDatamartTableGroupAccess().getFooterDatamartTableGroupFooterParserRuleCall_8_0()); 
+	    }
+		lv_footer_12_0=ruleDatamartTableGroupFooter		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getDatamartTableGroupRule());
+	        }
+       		set(
+       			$current, 
+       			"footer",
+        		lv_footer_12_0, 
+        		"DatamartTableGroupFooter");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)?	otherlv_13='}' 
+    {
+    	newLeafNode(otherlv_13, grammarAccess.getDatamartTableGroupAccess().getRightCurlyBracketKeyword_9());
+    }
+)
+;
+
+
+
+
+
+// Entry rule entryRuleDatamartTableGroupHeader
+entryRuleDatamartTableGroupHeader returns [EObject current=null] 
+	:
+	{ newCompositeNode(grammarAccess.getDatamartTableGroupHeaderRule()); }
+	 iv_ruleDatamartTableGroupHeader=ruleDatamartTableGroupHeader 
+	 { $current=$iv_ruleDatamartTableGroupHeader.current; } 
+	 EOF 
+;
+
+// Rule DatamartTableGroupHeader
+ruleDatamartTableGroupHeader returns [EObject current=null] 
+    @init { enterRule(); 
+    }
+    @after { leaveRule(); }:
+((
+    {
+        $current = forceCreateModelElement(
+            grammarAccess.getDatamartTableGroupHeaderAccess().getDatamartTableGroupHeaderAction_0(),
+            $current);
+    }
+)	otherlv_1='header' 
+    {
+    	newLeafNode(otherlv_1, grammarAccess.getDatamartTableGroupHeaderAccess().getHeaderKeyword_1());
+    }
+(	otherlv_2='style' 
+    {
+    	newLeafNode(otherlv_2, grammarAccess.getDatamartTableGroupHeaderAccess().getStyleKeyword_2_0());
+    }
+(
+(
+		{
+			if ($current==null) {
+	            $current = createModelElement(grammarAccess.getDatamartTableGroupHeaderRule());
+	        }
+        }
+	otherlv_3=RULE_ID
+	{
+		newLeafNode(otherlv_3, grammarAccess.getDatamartTableGroupHeaderAccess().getStyleStyleCrossReference_2_1_0()); 
+	}
+
+)
+))?	otherlv_4='{' 
+    {
+    	newLeafNode(otherlv_4, grammarAccess.getDatamartTableGroupHeaderAccess().getLeftCurlyBracketKeyword_3());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getDatamartTableGroupHeaderAccess().getRowsGridRowParserRuleCall_4_0()); 
+	    }
+		lv_rows_5_0=ruleGridRow		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getDatamartTableGroupHeaderRule());
+	        }
+       		add(
+       			$current, 
+       			"rows",
+        		lv_rows_5_0, 
+        		"GridRow");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)*	otherlv_6='}' 
+    {
+    	newLeafNode(otherlv_6, grammarAccess.getDatamartTableGroupHeaderAccess().getRightCurlyBracketKeyword_5());
+    }
+)
+;
+
+
+
+
+
+// Entry rule entryRuleDatamartTableGroupFooter
+entryRuleDatamartTableGroupFooter returns [EObject current=null] 
+	:
+	{ newCompositeNode(grammarAccess.getDatamartTableGroupFooterRule()); }
+	 iv_ruleDatamartTableGroupFooter=ruleDatamartTableGroupFooter 
+	 { $current=$iv_ruleDatamartTableGroupFooter.current; } 
+	 EOF 
+;
+
+// Rule DatamartTableGroupFooter
+ruleDatamartTableGroupFooter returns [EObject current=null] 
+    @init { enterRule(); 
+    }
+    @after { leaveRule(); }:
+((
+    {
+        $current = forceCreateModelElement(
+            grammarAccess.getDatamartTableGroupFooterAccess().getDatamartTableGroupFooterAction_0(),
+            $current);
+    }
+)	otherlv_1='footer' 
+    {
+    	newLeafNode(otherlv_1, grammarAccess.getDatamartTableGroupFooterAccess().getFooterKeyword_1());
+    }
+(	otherlv_2='style' 
+    {
+    	newLeafNode(otherlv_2, grammarAccess.getDatamartTableGroupFooterAccess().getStyleKeyword_2_0());
+    }
+(
+(
+		{
+			if ($current==null) {
+	            $current = createModelElement(grammarAccess.getDatamartTableGroupFooterRule());
+	        }
+        }
+	otherlv_3=RULE_ID
+	{
+		newLeafNode(otherlv_3, grammarAccess.getDatamartTableGroupFooterAccess().getStyleStyleCrossReference_2_1_0()); 
+	}
+
+)
+))?	otherlv_4='{' 
+    {
+    	newLeafNode(otherlv_4, grammarAccess.getDatamartTableGroupFooterAccess().getLeftCurlyBracketKeyword_3());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getDatamartTableGroupFooterAccess().getRowsGridRowParserRuleCall_4_0()); 
+	    }
+		lv_rows_5_0=ruleGridRow		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getDatamartTableGroupFooterRule());
+	        }
+       		add(
+       			$current, 
+       			"rows",
+        		lv_rows_5_0, 
+        		"GridRow");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)*	otherlv_6='}' 
+    {
+    	newLeafNode(otherlv_6, grammarAccess.getDatamartTableGroupFooterAccess().getRightCurlyBracketKeyword_5());
+    }
+)
+;
+
+
+
+
+
+// Entry rule entryRuleDatamartTableDetail
+entryRuleDatamartTableDetail returns [EObject current=null] 
+	:
+	{ newCompositeNode(grammarAccess.getDatamartTableDetailRule()); }
+	 iv_ruleDatamartTableDetail=ruleDatamartTableDetail 
+	 { $current=$iv_ruleDatamartTableDetail.current; } 
+	 EOF 
+;
+
+// Rule DatamartTableDetail
+ruleDatamartTableDetail returns [EObject current=null] 
+    @init { enterRule(); 
+    }
+    @after { leaveRule(); }:
+((
+    {
+        $current = forceCreateModelElement(
+            grammarAccess.getDatamartTableDetailAccess().getDatamartTableDetailAction_0(),
+            $current);
+    }
+)	otherlv_1='details' 
+    {
+    	newLeafNode(otherlv_1, grammarAccess.getDatamartTableDetailAccess().getDetailsKeyword_1());
+    }
+(	otherlv_2='style' 
+    {
+    	newLeafNode(otherlv_2, grammarAccess.getDatamartTableDetailAccess().getStyleKeyword_2_0());
+    }
+(
+(
+		{
+			if ($current==null) {
+	            $current = createModelElement(grammarAccess.getDatamartTableDetailRule());
+	        }
+        }
+	otherlv_3=RULE_ID
+	{
+		newLeafNode(otherlv_3, grammarAccess.getDatamartTableDetailAccess().getStyleStyleCrossReference_2_1_0()); 
+	}
+
+)
+))?(	otherlv_4='all' 
+    {
+    	newLeafNode(otherlv_4, grammarAccess.getDatamartTableDetailAccess().getAllKeyword_3_0());
+    }
+
+    |(	otherlv_5='{' 
+    {
+    	newLeafNode(otherlv_5, grammarAccess.getDatamartTableDetailAccess().getLeftCurlyBracketKeyword_3_1_0());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getDatamartTableDetailAccess().getColumnFormattersDatamartTablePropertyParserRuleCall_3_1_1_0()); 
+	    }
+		lv_columnFormatters_6_0=ruleDatamartTableProperty		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getDatamartTableDetailRule());
+	        }
+       		add(
+       			$current, 
+       			"columnFormatters",
+        		lv_columnFormatters_6_0, 
+        		"DatamartTableProperty");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)*	otherlv_7='}' 
+    {
+    	newLeafNode(otherlv_7, grammarAccess.getDatamartTableDetailAccess().getRightCurlyBracketKeyword_3_1_2());
+    }
+)))
+;
+
+
+
+
+
+// Entry rule entryRuleDatamartTableProperty
+entryRuleDatamartTableProperty returns [EObject current=null] 
+	:
+	{ newCompositeNode(grammarAccess.getDatamartTablePropertyRule()); }
+	 iv_ruleDatamartTableProperty=ruleDatamartTableProperty 
+	 { $current=$iv_ruleDatamartTableProperty.current; } 
+	 EOF 
+;
+
+// Rule DatamartTableProperty
+ruleDatamartTableProperty returns [EObject current=null] 
+    @init { enterRule(); 
+    }
+    @after { leaveRule(); }:
+((
+(
+		{ 
+	        newCompositeNode(grammarAccess.getDatamartTablePropertyAccess().getColumnTableValueElementParserRuleCall_0_0()); 
+	    }
+		lv_column_0_0=ruleTableValueElement		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getDatamartTablePropertyRule());
+	        }
+       		set(
+       			$current, 
+       			"column",
+        		lv_column_0_0, 
+        		"TableValueElement");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)(
+
+(
+	{ 
+	  getUnorderedGroupHelper().enter(grammarAccess.getDatamartTablePropertyAccess().getUnorderedGroup_1());
+	}
+	(
+		(
+
+			( 
+				{getUnorderedGroupHelper().canSelect(grammarAccess.getDatamartTablePropertyAccess().getUnorderedGroup_1(), 0)}?=>(
+					{ 
+	 				  getUnorderedGroupHelper().select(grammarAccess.getDatamartTablePropertyAccess().getUnorderedGroup_1(), 0);
+	 				}
+					({true}?=>(	otherlv_2='style' 
+    {
+    	newLeafNode(otherlv_2, grammarAccess.getDatamartTablePropertyAccess().getStyleKeyword_1_0_0());
+    }
+(
+(
+		{
+			if ($current==null) {
+	            $current = createModelElement(grammarAccess.getDatamartTablePropertyRule());
+	        }
+        }
+	otherlv_3=RULE_ID
+	{
+		newLeafNode(otherlv_3, grammarAccess.getDatamartTablePropertyAccess().getStyleStyleCrossReference_1_0_1_0()); 
+	}
+
+)
+)))
+					{ 
+	 				  getUnorderedGroupHelper().returnFromSelection(grammarAccess.getDatamartTablePropertyAccess().getUnorderedGroup_1());
+	 				}
+ 				)
+			)  |
+
+			( 
+				{getUnorderedGroupHelper().canSelect(grammarAccess.getDatamartTablePropertyAccess().getUnorderedGroup_1(), 1)}?=>(
+					{ 
+	 				  getUnorderedGroupHelper().select(grammarAccess.getDatamartTablePropertyAccess().getUnorderedGroup_1(), 1);
+	 				}
+					({true}?=>((
+(
+		lv_hasImage_4_0=	'image' 
+    {
+        newLeafNode(lv_hasImage_4_0, grammarAccess.getDatamartTablePropertyAccess().getHasImageImageKeyword_1_1_0_0());
+    }
+ 
+	    {
+	        if ($current==null) {
+	            $current = createModelElement(grammarAccess.getDatamartTablePropertyRule());
+	        }
+       		setWithLastConsumed($current, "hasImage", true, "image");
+	    }
+
+)
+)(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getDatamartTablePropertyAccess().getImageTableImageParserRuleCall_1_1_1_0()); 
+	    }
+		lv_image_5_0=ruleTableImage		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getDatamartTablePropertyRule());
+	        }
+       		set(
+       			$current, 
+       			"image",
+        		lv_image_5_0, 
+        		"TableImage");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)))
+					{ 
+	 				  getUnorderedGroupHelper().returnFromSelection(grammarAccess.getDatamartTablePropertyAccess().getUnorderedGroup_1());
+	 				}
+ 				)
+			)  |
+
+			( 
+				{getUnorderedGroupHelper().canSelect(grammarAccess.getDatamartTablePropertyAccess().getUnorderedGroup_1(), 2)}?=>(
+					{ 
+	 				  getUnorderedGroupHelper().select(grammarAccess.getDatamartTablePropertyAccess().getUnorderedGroup_1(), 2);
+	 				}
+					({true}?=>(	otherlv_6='intervals' 
+    {
+    	newLeafNode(otherlv_6, grammarAccess.getDatamartTablePropertyAccess().getIntervalsKeyword_1_2_0());
+    }
+(
+(
+		lv_hideLabelInterval_7_0=	'hidelabel' 
+    {
+        newLeafNode(lv_hideLabelInterval_7_0, grammarAccess.getDatamartTablePropertyAccess().getHideLabelIntervalHidelabelKeyword_1_2_1_0());
+    }
+ 
+	    {
+	        if ($current==null) {
+	            $current = createModelElement(grammarAccess.getDatamartTablePropertyRule());
+	        }
+       		setWithLastConsumed($current, "hideLabelInterval", true, "hidelabel");
+	    }
+
+)
+)?	otherlv_8='{' 
+    {
+    	newLeafNode(otherlv_8, grammarAccess.getDatamartTablePropertyAccess().getLeftCurlyBracketKeyword_1_2_2());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getDatamartTablePropertyAccess().getIntervalsTableIntervalParserRuleCall_1_2_3_0()); 
+	    }
+		lv_intervals_9_0=ruleTableInterval		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getDatamartTablePropertyRule());
+	        }
+       		add(
+       			$current, 
+       			"intervals",
+        		lv_intervals_9_0, 
+        		"TableInterval");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)*	otherlv_10='}' 
+    {
+    	newLeafNode(otherlv_10, grammarAccess.getDatamartTablePropertyAccess().getRightCurlyBracketKeyword_1_2_4());
+    }
+))
+					{ 
+	 				  getUnorderedGroupHelper().returnFromSelection(grammarAccess.getDatamartTablePropertyAccess().getUnorderedGroup_1());
+	 				}
+ 				)
+			)  |
+
+			( 
+				{getUnorderedGroupHelper().canSelect(grammarAccess.getDatamartTablePropertyAccess().getUnorderedGroup_1(), 3)}?=>(
+					{ 
+	 				  getUnorderedGroupHelper().select(grammarAccess.getDatamartTablePropertyAccess().getUnorderedGroup_1(), 3);
+	 				}
+					({true}?=>(	otherlv_11='lookups' 
+    {
+    	newLeafNode(otherlv_11, grammarAccess.getDatamartTablePropertyAccess().getLookupsKeyword_1_3_0());
+    }
+(
+(
+		lv_hideLabelLookup_12_0=	'hidelabel' 
+    {
+        newLeafNode(lv_hideLabelLookup_12_0, grammarAccess.getDatamartTablePropertyAccess().getHideLabelLookupHidelabelKeyword_1_3_1_0());
+    }
+ 
+	    {
+	        if ($current==null) {
+	            $current = createModelElement(grammarAccess.getDatamartTablePropertyRule());
+	        }
+       		setWithLastConsumed($current, "hideLabelLookup", true, "hidelabel");
+	    }
+
+)
+)?	otherlv_13='{' 
+    {
+    	newLeafNode(otherlv_13, grammarAccess.getDatamartTablePropertyAccess().getLeftCurlyBracketKeyword_1_3_2());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getDatamartTablePropertyAccess().getLookupsTableLookupParserRuleCall_1_3_3_0()); 
+	    }
+		lv_lookups_14_0=ruleTableLookup		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getDatamartTablePropertyRule());
+	        }
+       		add(
+       			$current, 
+       			"lookups",
+        		lv_lookups_14_0, 
+        		"TableLookup");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)*	otherlv_15='}' 
+    {
+    	newLeafNode(otherlv_15, grammarAccess.getDatamartTablePropertyAccess().getRightCurlyBracketKeyword_1_3_4());
+    }
+))
+					{ 
+	 				  getUnorderedGroupHelper().returnFromSelection(grammarAccess.getDatamartTablePropertyAccess().getUnorderedGroup_1());
+	 				}
+ 				)
+			)  
+
+		)*	
+	)
+)
+	{ 
+	  getUnorderedGroupHelper().leave(grammarAccess.getDatamartTablePropertyAccess().getUnorderedGroup_1());
+	}
+
+))
+;
+
+
+
+
+
+
+
+// Entry rule entryRuleTableImage
+entryRuleTableImage returns [EObject current=null] 
+	:
+	{ newCompositeNode(grammarAccess.getTableImageRule()); }
+	 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());
+	}
+	(
+		(
+
+			( 
+				{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
+		{
+			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, 
+        		"STRING");
+	    }
+
+)
+)))
+					{ 
+	 				  getUnorderedGroupHelper().returnFromSelection(grammarAccess.getTableImageAccess().getUnorderedGroup_3());
+	 				}
+ 				)
+			)  
+
+		)*	
+	)
+)
+	{ 
+	  getUnorderedGroupHelper().leave(grammarAccess.getTableImageAccess().getUnorderedGroup_3());
+	}
+
+))
+;
+
+
+
+
+
+// Entry rule entryRuleTableValueElement
+entryRuleTableValueElement returns [EObject current=null] 
+	:
+	{ newCompositeNode(grammarAccess.getTableValueElementRule()); }
+	 iv_ruleTableValueElement=ruleTableValueElement 
+	 { $current=$iv_ruleTableValueElement.current; } 
+	 EOF 
+;
+
+// Rule TableValueElement
+ruleTableValueElement returns [EObject current=null] 
+    @init { enterRule(); 
+    }
+    @after { leaveRule(); }:
+(
+    { 
+        newCompositeNode(grammarAccess.getTableValueElementAccess().getTablePropertyParserRuleCall_0()); 
+    }
+    this_TableProperty_0=ruleTableProperty
+    { 
+        $current = $this_TableProperty_0.current; 
+        afterParserOrEnumRuleCall();
+    }
+
+    |
+    { 
+        newCompositeNode(grammarAccess.getTableValueElementAccess().getTableAggregationParserRuleCall_1()); 
+    }
+    this_TableAggregation_1=ruleTableAggregation
+    { 
+        $current = $this_TableAggregation_1.current; 
+        afterParserOrEnumRuleCall();
+    }
+)
+;
+
+
+
+
+
+// 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(); }:
+(	otherlv_0='property' 
+    {
+    	newLeafNode(otherlv_0, grammarAccess.getTablePropertyAccess().getPropertyKeyword_0());
+    }
+(
+(
+		{
+			if ($current==null) {
+	            $current = createModelElement(grammarAccess.getTablePropertyRule());
+	        }
+        }
+	otherlv_1=RULE_ID
+	{
+		newLeafNode(otherlv_1, grammarAccess.getTablePropertyAccess().getValueRefDatamartPropertyCrossReference_1_0()); 
+	}
+
+)
+))
+;
+
+
+
+
+
+// Entry rule entryRuleTableAggregation
+entryRuleTableAggregation returns [EObject current=null] 
+	:
+	{ newCompositeNode(grammarAccess.getTableAggregationRule()); }
+	 iv_ruleTableAggregation=ruleTableAggregation 
+	 { $current=$iv_ruleTableAggregation.current; } 
+	 EOF 
+;
+
+// Rule TableAggregation
+ruleTableAggregation returns [EObject current=null] 
+    @init { enterRule(); 
+    }
+    @after { leaveRule(); }:
+(	otherlv_0='aggregate' 
+    {
+    	newLeafNode(otherlv_0, grammarAccess.getTableAggregationAccess().getAggregateKeyword_0());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getTableAggregationAccess().getAggregationTableBaseAggregationParserRuleCall_1_0()); 
+	    }
+		lv_aggregation_1_0=ruleTableBaseAggregation		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getTableAggregationRule());
+	        }
+       		set(
+       			$current, 
+       			"aggregation",
+        		lv_aggregation_1_0, 
+        		"TableBaseAggregation");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)(
+
+(
+	{ 
+	  getUnorderedGroupHelper().enter(grammarAccess.getTableAggregationAccess().getUnorderedGroup_2());
+	}
+	(
+		(
+
+			( 
+				{getUnorderedGroupHelper().canSelect(grammarAccess.getTableAggregationAccess().getUnorderedGroup_2(), 0)}?=>(
+					{ 
+	 				  getUnorderedGroupHelper().select(grammarAccess.getTableAggregationAccess().getUnorderedGroup_2(), 0);
+	 				}
+					({true}?=>(	otherlv_3='on-group' 
+    {
+    	newLeafNode(otherlv_3, grammarAccess.getTableAggregationAccess().getOnGroupKeyword_2_0_0());
+    }
+(
+(
+		{
+			if ($current==null) {
+	            $current = createModelElement(grammarAccess.getTableAggregationRule());
+	        }
+        }
+	otherlv_4=RULE_ID
+	{
+		newLeafNode(otherlv_4, grammarAccess.getTableAggregationAccess().getOnGroupDatamartTableGroupCrossReference_2_0_1_0()); 
+	}
+
+)
+)))
+					{ 
+	 				  getUnorderedGroupHelper().returnFromSelection(grammarAccess.getTableAggregationAccess().getUnorderedGroup_2());
+	 				}
+ 				)
+			)  |
+
+			( 
+				{getUnorderedGroupHelper().canSelect(grammarAccess.getTableAggregationAccess().getUnorderedGroup_2(), 1)}?=>(
+					{ 
+	 				  getUnorderedGroupHelper().select(grammarAccess.getTableAggregationAccess().getUnorderedGroup_2(), 1);
+	 				}
+					({true}?=>(	otherlv_5='title' 
+    {
+    	newLeafNode(otherlv_5, grammarAccess.getTableAggregationAccess().getTitleKeyword_2_1_0());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getTableAggregationAccess().getTextTRANSLATABLESTRINGParserRuleCall_2_1_1_0()); 
+	    }
+		lv_text_6_0=ruleTRANSLATABLESTRING		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getTableAggregationRule());
+	        }
+       		set(
+       			$current, 
+       			"text",
+        		lv_text_6_0, 
+        		"TRANSLATABLESTRING");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)))
+					{ 
+	 				  getUnorderedGroupHelper().returnFromSelection(grammarAccess.getTableAggregationAccess().getUnorderedGroup_2());
+	 				}
+ 				)
+			)  
+
+		)*	
+	)
+)
+	{ 
+	  getUnorderedGroupHelper().leave(grammarAccess.getTableAggregationAccess().getUnorderedGroup_2());
+	}
+
+))
+;
+
+
+
+
+
+// Entry rule entryRuleTableBaseAggregation
+entryRuleTableBaseAggregation returns [EObject current=null] 
+	:
+	{ newCompositeNode(grammarAccess.getTableBaseAggregationRule()); }
+	 iv_ruleTableBaseAggregation=ruleTableBaseAggregation 
+	 { $current=$iv_ruleTableBaseAggregation.current; } 
+	 EOF 
+;
+
+// Rule TableBaseAggregation
+ruleTableBaseAggregation returns [EObject current=null] 
+    @init { enterRule(); 
+    }
+    @after { leaveRule(); }:
+(
+    { 
+        newCompositeNode(grammarAccess.getTableBaseAggregationAccess().getTablePureAggregationParserRuleCall_0()); 
+    }
+    this_TablePureAggregation_0=ruleTablePureAggregation
+    { 
+        $current = $this_TablePureAggregation_0.current; 
+        afterParserOrEnumRuleCall();
+    }
+
+    |
+    { 
+        newCompositeNode(grammarAccess.getTableBaseAggregationAccess().getTableUnaryAggregationParserRuleCall_1()); 
+    }
+    this_TableUnaryAggregation_1=ruleTableUnaryAggregation
+    { 
+        $current = $this_TableUnaryAggregation_1.current; 
+        afterParserOrEnumRuleCall();
+    }
+
+    |
+    { 
+        newCompositeNode(grammarAccess.getTableBaseAggregationAccess().getTableMultipleAggregationParserRuleCall_2()); 
+    }
+    this_TableMultipleAggregation_2=ruleTableMultipleAggregation
+    { 
+        $current = $this_TableMultipleAggregation_2.current; 
+        afterParserOrEnumRuleCall();
+    }
+
+    |
+    { 
+        newCompositeNode(grammarAccess.getTableBaseAggregationAccess().getTableBinaryAggregationParserRuleCall_3()); 
+    }
+    this_TableBinaryAggregation_3=ruleTableBinaryAggregation
+    { 
+        $current = $this_TableBinaryAggregation_3.current; 
+        afterParserOrEnumRuleCall();
+    }
+)
+;
+
+
+
+
+
+// Entry rule entryRuleTablePureAggregation
+entryRuleTablePureAggregation returns [EObject current=null] 
+	:
+	{ newCompositeNode(grammarAccess.getTablePureAggregationRule()); }
+	 iv_ruleTablePureAggregation=ruleTablePureAggregation 
+	 { $current=$iv_ruleTablePureAggregation.current; } 
+	 EOF 
+;
+
+// Rule TablePureAggregation
+ruleTablePureAggregation returns [EObject current=null] 
+    @init { enterRule(); 
+    }
+    @after { leaveRule(); }:
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getTablePureAggregationAccess().getAggregationPureAggregationTypeEnumEnumRuleCall_0()); 
+	    }
+		lv_aggregation_0_0=rulePureAggregationTypeEnum		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getTablePureAggregationRule());
+	        }
+       		set(
+       			$current, 
+       			"aggregation",
+        		lv_aggregation_0_0, 
+        		"PureAggregationTypeEnum");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)
+;
+
+
+
+
+
+// Entry rule entryRuleTableUnaryAggregation
+entryRuleTableUnaryAggregation returns [EObject current=null] 
+	:
+	{ newCompositeNode(grammarAccess.getTableUnaryAggregationRule()); }
+	 iv_ruleTableUnaryAggregation=ruleTableUnaryAggregation 
+	 { $current=$iv_ruleTableUnaryAggregation.current; } 
+	 EOF 
+;
+
+// Rule TableUnaryAggregation
+ruleTableUnaryAggregation returns [EObject current=null] 
+    @init { enterRule(); 
+    }
+    @after { leaveRule(); }:
+((
+(
+		{ 
+	        newCompositeNode(grammarAccess.getTableUnaryAggregationAccess().getAggregationUnaryAggregationTypeEnumEnumRuleCall_0_0()); 
+	    }
+		lv_aggregation_0_0=ruleUnaryAggregationTypeEnum		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getTableUnaryAggregationRule());
+	        }
+       		set(
+       			$current, 
+       			"aggregation",
+        		lv_aggregation_0_0, 
+        		"UnaryAggregationTypeEnum");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)	otherlv_1='of' 
+    {
+    	newLeafNode(otherlv_1, grammarAccess.getTableUnaryAggregationAccess().getOfKeyword_1());
+    }
+(
+(
+		{
+			if ($current==null) {
+	            $current = createModelElement(grammarAccess.getTableUnaryAggregationRule());
+	        }
+        }
+	otherlv_2=RULE_ID
+	{
+		newLeafNode(otherlv_2, grammarAccess.getTableUnaryAggregationAccess().getValueRefsDatamartPropertyCrossReference_2_0()); 
+	}
+
+)
+))
+;
+
+
+
+
+
+// Entry rule entryRuleTableMultipleAggregation
+entryRuleTableMultipleAggregation returns [EObject current=null] 
+	:
+	{ newCompositeNode(grammarAccess.getTableMultipleAggregationRule()); }
+	 iv_ruleTableMultipleAggregation=ruleTableMultipleAggregation 
+	 { $current=$iv_ruleTableMultipleAggregation.current; } 
+	 EOF 
+;
+
+// Rule TableMultipleAggregation
+ruleTableMultipleAggregation returns [EObject current=null] 
+    @init { enterRule(); 
+    }
+    @after { leaveRule(); }:
+((
+(
+		{ 
+	        newCompositeNode(grammarAccess.getTableMultipleAggregationAccess().getAggregationMultipleAggregationTypeEnumEnumRuleCall_0_0()); 
+	    }
+		lv_aggregation_0_0=ruleMultipleAggregationTypeEnum		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getTableMultipleAggregationRule());
+	        }
+       		set(
+       			$current, 
+       			"aggregation",
+        		lv_aggregation_0_0, 
+        		"MultipleAggregationTypeEnum");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)	otherlv_1='of' 
+    {
+    	newLeafNode(otherlv_1, grammarAccess.getTableMultipleAggregationAccess().getOfKeyword_1());
+    }
+	otherlv_2='(' 
+    {
+    	newLeafNode(otherlv_2, grammarAccess.getTableMultipleAggregationAccess().getLeftParenthesisKeyword_2());
+    }
+(
+(
+		{
+			if ($current==null) {
+	            $current = createModelElement(grammarAccess.getTableMultipleAggregationRule());
+	        }
+        }
+	otherlv_3=RULE_ID
+	{
+		newLeafNode(otherlv_3, grammarAccess.getTableMultipleAggregationAccess().getValueRefsDatamartPropertyCrossReference_3_0()); 
+	}
+
+)
+)*	otherlv_4=')' 
+    {
+    	newLeafNode(otherlv_4, grammarAccess.getTableMultipleAggregationAccess().getRightParenthesisKeyword_4());
+    }
+)
+;
+
+
+
+
+
+// Entry rule entryRuleTableBinaryAggregation
+entryRuleTableBinaryAggregation returns [EObject current=null] 
+	:
+	{ newCompositeNode(grammarAccess.getTableBinaryAggregationRule()); }
+	 iv_ruleTableBinaryAggregation=ruleTableBinaryAggregation 
+	 { $current=$iv_ruleTableBinaryAggregation.current; } 
+	 EOF 
+;
+
+// Rule TableBinaryAggregation
+ruleTableBinaryAggregation returns [EObject current=null] 
+    @init { enterRule(); 
+    }
+    @after { leaveRule(); }:
+((
+(
+		{ 
+	        newCompositeNode(grammarAccess.getTableBinaryAggregationAccess().getAggregationBinaryAggregationTypeEnumEnumRuleCall_0_0()); 
+	    }
+		lv_aggregation_0_0=ruleBinaryAggregationTypeEnum		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getTableBinaryAggregationRule());
+	        }
+       		set(
+       			$current, 
+       			"aggregation",
+        		lv_aggregation_0_0, 
+        		"BinaryAggregationTypeEnum");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)	otherlv_1='of' 
+    {
+    	newLeafNode(otherlv_1, grammarAccess.getTableBinaryAggregationAccess().getOfKeyword_1());
+    }
+	otherlv_2='(' 
+    {
+    	newLeafNode(otherlv_2, grammarAccess.getTableBinaryAggregationAccess().getLeftParenthesisKeyword_2());
+    }
+(
+(
+		{
+			if ($current==null) {
+	            $current = createModelElement(grammarAccess.getTableBinaryAggregationRule());
+	        }
+        }
+	otherlv_3=RULE_ID
+	{
+		newLeafNode(otherlv_3, grammarAccess.getTableBinaryAggregationAccess().getValueRefsDatamartPropertyCrossReference_3_0()); 
+	}
+
+)
+)(
+(
+		{
+			if ($current==null) {
+	            $current = createModelElement(grammarAccess.getTableBinaryAggregationRule());
+	        }
+        }
+	otherlv_4=RULE_ID
+	{
+		newLeafNode(otherlv_4, grammarAccess.getTableBinaryAggregationAccess().getValueRefsDatamartPropertyCrossReference_4_0()); 
+	}
+
+)
+)	otherlv_5=')' 
+    {
+    	newLeafNode(otherlv_5, grammarAccess.getTableBinaryAggregationAccess().getRightParenthesisKeyword_5());
+    }
+)
+;
+
+
+
+
+
+// Entry rule entryRuleTableInterval
+entryRuleTableInterval returns [EObject current=null] 
+	:
+	{ newCompositeNode(grammarAccess.getTableIntervalRule()); }
+	 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();
+    }
+)
+;
+
+
+
+
+
+// Entry rule entryRuleTableNumberInterval
+entryRuleTableNumberInterval returns [EObject current=null] 
+	:
+	{ newCompositeNode(grammarAccess.getTableNumberIntervalRule()); }
+	 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();
+	    }
+
+)
+))
+;
+
+
+
+
+
+// Entry rule entryRuleTableDateDayInterval
+entryRuleTableDateDayInterval returns [EObject current=null] 
+	:
+	{ newCompositeNode(grammarAccess.getTableDateDayIntervalRule()); }
+	 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();
+	    }
+
+)
+))
+;
+
+
+
+
+
+// Entry rule entryRuleTableLookup
+entryRuleTableLookup returns [EObject current=null] 
+	:
+	{ newCompositeNode(grammarAccess.getTableLookupRule()); }
+	 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();
+    }
+)
+;
+
+
+
+
+
+// Entry rule entryRuleTableNumberLookup
+entryRuleTableNumberLookup returns [EObject current=null] 
+	:
+	{ newCompositeNode(grammarAccess.getTableNumberLookupRule()); }
+	 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();
+	    }
+
+)
+))
+;
+
+
+
+
+
+// Entry rule entryRuleTableStringLookup
+entryRuleTableStringLookup returns [EObject current=null] 
+	:
+	{ newCompositeNode(grammarAccess.getTableStringLookupRule()); }
+	 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
+		{
+			newLeafNode(lv_lookupValue_2_0, grammarAccess.getTableStringLookupAccess().getLookupValueSTRINGTerminalRuleCall_2_0()); 
+		}
+		{
+	        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();
+	    }
+
+)
+))
+;
+
+
+
+
+
+// Entry rule entryRuleTableDateDayLookup
+entryRuleTableDateDayLookup returns [EObject current=null] 
+	:
+	{ newCompositeNode(grammarAccess.getTableDateDayLookupRule()); }
+	 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();
+	    }
+
+)
+))
+;
+
+
+
+
+
+// Entry rule entryRuleTableRangeElement
+entryRuleTableRangeElement returns [EObject current=null] 
+	:
+	{ newCompositeNode(grammarAccess.getTableRangeElementRule()); }
+	 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();
+    }
+)
+;
+
+
+
+
+
+// Entry rule entryRuleSignedNumber
+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 entryRuleTableTextColor
+entryRuleTableTextColor returns [EObject current=null] 
+	:
+	{ newCompositeNode(grammarAccess.getTableTextColorRule()); }
+	 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());
+    }
+(
+(
+		{
+			if ($current==null) {
+	            $current = createModelElement(grammarAccess.getTableTextColorRule());
+	        }
+        }
+	otherlv_1=RULE_ID
+	{
+		newLeafNode(otherlv_1, grammarAccess.getTableTextColorAccess().getColorColorCrossReference_1_0()); 
+	}
+
+)
+))
+;
+
+
+
+
+
+// Entry rule entryRuleTableCellColor
+entryRuleTableCellColor returns [EObject current=null] 
+	:
+	{ newCompositeNode(grammarAccess.getTableCellColorRule()); }
+	 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());
+    }
+(
+(
+		{
+			if ($current==null) {
+	            $current = createModelElement(grammarAccess.getTableCellColorRule());
+	        }
+        }
+	otherlv_1=RULE_ID
+	{
+		newLeafNode(otherlv_1, grammarAccess.getTableCellColorAccess().getColorColorCrossReference_1_0()); 
+	}
+
+)
+))
+;
+
+
+
+
+
+// Entry rule entryRuleTableIcon
+entryRuleTableIcon returns [EObject current=null] 
+	:
+	{ newCompositeNode(grammarAccess.getTableIconRule()); }
+	 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
+		{
+			newLeafNode(lv_icon_1_0, grammarAccess.getTableIconAccess().getIconSTRINGTerminalRuleCall_1_0()); 
+		}
+		{
+	        if ($current==null) {
+	            $current = createModelElement(grammarAccess.getTableIconRule());
+	        }
+       		setWithLastConsumed(
+       			$current, 
+       			"icon",
+        		lv_icon_1_0, 
+        		"STRING");
+	    }
+
+)
+))
+;
+
+
+
+
+
+// Entry rule entryRuleTableTrend
+entryRuleTableTrend returns [EObject current=null] 
+	:
+	{ newCompositeNode(grammarAccess.getTableTrendRule()); }
+	 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();
+	    }
+
+)
+))
+;
+
+
+
+
+
+// Entry rule entryRuleTitle
+entryRuleTitle returns [EObject current=null] 
+	:
+	{ newCompositeNode(grammarAccess.getTitleRule()); }
+	 iv_ruleTitle=ruleTitle 
+	 { $current=$iv_ruleTitle.current; } 
+	 EOF 
+;
+
+// Rule Title
+ruleTitle returns [EObject current=null] 
+    @init { enterRule(); 
+    }
+    @after { leaveRule(); }:
+((
+    {
+        $current = forceCreateModelElement(
+            grammarAccess.getTitleAccess().getTitleAction_0(),
+            $current);
+    }
+)	otherlv_1='title' 
+    {
+    	newLeafNode(otherlv_1, grammarAccess.getTitleAccess().getTitleKeyword_1());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getTitleAccess().getTextTRANSLATABLESTRINGParserRuleCall_2_0()); 
+	    }
+		lv_text_2_0=ruleTRANSLATABLESTRING		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getTitleRule());
+	        }
+       		set(
+       			$current, 
+       			"text",
+        		lv_text_2_0, 
+        		"TRANSLATABLESTRING");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)(	otherlv_3='style' 
+    {
+    	newLeafNode(otherlv_3, grammarAccess.getTitleAccess().getStyleKeyword_3_0());
+    }
+(
+(
+		{
+			if ($current==null) {
+	            $current = createModelElement(grammarAccess.getTitleRule());
+	        }
+        }
+	otherlv_4=RULE_ID
+	{
+		newLeafNode(otherlv_4, grammarAccess.getTitleAccess().getStyleStyleCrossReference_3_1_0()); 
+	}
+
+)
+))?)
+;
+
+
+
+
+
+// Entry rule entryRuleSubTitle
+entryRuleSubTitle returns [EObject current=null] 
+	:
+	{ newCompositeNode(grammarAccess.getSubTitleRule()); }
+	 iv_ruleSubTitle=ruleSubTitle 
+	 { $current=$iv_ruleSubTitle.current; } 
+	 EOF 
+;
+
+// Rule SubTitle
+ruleSubTitle returns [EObject current=null] 
+    @init { enterRule(); 
+    }
+    @after { leaveRule(); }:
+((
+    {
+        $current = forceCreateModelElement(
+            grammarAccess.getSubTitleAccess().getSubTitleAction_0(),
+            $current);
+    }
+)	otherlv_1='subtitle' 
+    {
+    	newLeafNode(otherlv_1, grammarAccess.getSubTitleAccess().getSubtitleKeyword_1());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getSubTitleAccess().getTextTRANSLATABLESTRINGParserRuleCall_2_0()); 
+	    }
+		lv_text_2_0=ruleTRANSLATABLESTRING		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getSubTitleRule());
+	        }
+       		set(
+       			$current, 
+       			"text",
+        		lv_text_2_0, 
+        		"TRANSLATABLESTRING");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)(	otherlv_3='style' 
+    {
+    	newLeafNode(otherlv_3, grammarAccess.getSubTitleAccess().getStyleKeyword_3_0());
+    }
+(
+(
+		{
+			if ($current==null) {
+	            $current = createModelElement(grammarAccess.getSubTitleRule());
+	        }
+        }
+	otherlv_4=RULE_ID
+	{
+		newLeafNode(otherlv_4, grammarAccess.getSubTitleAccess().getStyleStyleCrossReference_3_1_0()); 
+	}
+
+)
+))?)
+;
+
+
+
+
+
+// Entry rule entryRuleSubSubTitle
+entryRuleSubSubTitle returns [EObject current=null] 
+	:
+	{ newCompositeNode(grammarAccess.getSubSubTitleRule()); }
+	 iv_ruleSubSubTitle=ruleSubSubTitle 
+	 { $current=$iv_ruleSubSubTitle.current; } 
+	 EOF 
+;
+
+// Rule SubSubTitle
+ruleSubSubTitle returns [EObject current=null] 
+    @init { enterRule(); 
+    }
+    @after { leaveRule(); }:
+((
+    {
+        $current = forceCreateModelElement(
+            grammarAccess.getSubSubTitleAccess().getSubSubTitleAction_0(),
+            $current);
+    }
+)	otherlv_1='subsubtitle' 
+    {
+    	newLeafNode(otherlv_1, grammarAccess.getSubSubTitleAccess().getSubsubtitleKeyword_1());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getSubSubTitleAccess().getTextTRANSLATABLESTRINGParserRuleCall_2_0()); 
+	    }
+		lv_text_2_0=ruleTRANSLATABLESTRING		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getSubSubTitleRule());
+	        }
+       		set(
+       			$current, 
+       			"text",
+        		lv_text_2_0, 
+        		"TRANSLATABLESTRING");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)(	otherlv_3='style' 
+    {
+    	newLeafNode(otherlv_3, grammarAccess.getSubSubTitleAccess().getStyleKeyword_3_0());
+    }
+(
+(
+		{
+			if ($current==null) {
+	            $current = createModelElement(grammarAccess.getSubSubTitleRule());
+	        }
+        }
+	otherlv_4=RULE_ID
+	{
+		newLeafNode(otherlv_4, grammarAccess.getSubSubTitleAccess().getStyleStyleCrossReference_3_1_0()); 
+	}
+
+)
+))?)
+;
+
+
+
+
+
+// Entry rule entryRuleLabel
+entryRuleLabel returns [EObject current=null] 
+	:
+	{ newCompositeNode(grammarAccess.getLabelRule()); }
+	 iv_ruleLabel=ruleLabel 
+	 { $current=$iv_ruleLabel.current; } 
+	 EOF 
+;
+
+// Rule Label
+ruleLabel returns [EObject current=null] 
+    @init { enterRule(); 
+    }
+    @after { leaveRule(); }:
+((
+    {
+        $current = forceCreateModelElement(
+            grammarAccess.getLabelAccess().getLabelAction_0(),
+            $current);
+    }
+)	otherlv_1='label' 
+    {
+    	newLeafNode(otherlv_1, grammarAccess.getLabelAccess().getLabelKeyword_1());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getLabelAccess().getTextTRANSLATABLESTRINGParserRuleCall_2_0()); 
+	    }
+		lv_text_2_0=ruleTRANSLATABLESTRING		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getLabelRule());
+	        }
+       		set(
+       			$current, 
+       			"text",
+        		lv_text_2_0, 
+        		"TRANSLATABLESTRING");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)(	otherlv_3='style' 
+    {
+    	newLeafNode(otherlv_3, grammarAccess.getLabelAccess().getStyleKeyword_3_0());
+    }
+(
+(
+		{
+			if ($current==null) {
+	            $current = createModelElement(grammarAccess.getLabelRule());
+	        }
+        }
+	otherlv_4=RULE_ID
+	{
+		newLeafNode(otherlv_4, grammarAccess.getLabelAccess().getStyleStyleCrossReference_3_1_0()); 
+	}
+
+)
+))?)
+;
+
+
+
+
+
+// Entry rule entryRuleText
+entryRuleText returns [EObject current=null] 
+	:
+	{ newCompositeNode(grammarAccess.getTextRule()); }
+	 iv_ruleText=ruleText 
+	 { $current=$iv_ruleText.current; } 
+	 EOF 
+;
+
+// Rule Text
+ruleText returns [EObject current=null] 
+    @init { enterRule(); 
+    }
+    @after { leaveRule(); }:
+((
+    {
+        $current = forceCreateModelElement(
+            grammarAccess.getTextAccess().getTextAction_0(),
+            $current);
+    }
+)	otherlv_1='text' 
+    {
+    	newLeafNode(otherlv_1, grammarAccess.getTextAccess().getTextKeyword_1());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getTextAccess().getTextTRANSLATABLESTRINGParserRuleCall_2_0()); 
+	    }
+		lv_text_2_0=ruleTRANSLATABLESTRING		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getTextRule());
+	        }
+       		set(
+       			$current, 
+       			"text",
+        		lv_text_2_0, 
+        		"TRANSLATABLESTRING");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)(	otherlv_3='style' 
+    {
+    	newLeafNode(otherlv_3, grammarAccess.getTextAccess().getStyleKeyword_3_0());
+    }
+(
+(
+		{
+			if ($current==null) {
+	            $current = createModelElement(grammarAccess.getTextRule());
+	        }
+        }
+	otherlv_4=RULE_ID
+	{
+		newLeafNode(otherlv_4, grammarAccess.getTextAccess().getStyleStyleCrossReference_3_1_0()); 
+	}
+
+)
+))?)
+;
+
+
+
+
+
+// Entry rule entryRuleAutoText
+entryRuleAutoText returns [EObject current=null] 
+	:
+	{ newCompositeNode(grammarAccess.getAutoTextRule()); }
+	 iv_ruleAutoText=ruleAutoText 
+	 { $current=$iv_ruleAutoText.current; } 
+	 EOF 
+;
+
+// Rule AutoText
+ruleAutoText returns [EObject current=null] 
+    @init { enterRule(); 
+    }
+    @after { leaveRule(); }:
+(	otherlv_0='autotext' 
+    {
+    	newLeafNode(otherlv_0, grammarAccess.getAutoTextAccess().getAutotextKeyword_0());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getAutoTextAccess().getTypeAutoTextEnumEnumRuleCall_1_0()); 
+	    }
+		lv_type_1_0=ruleAutoTextEnum		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getAutoTextRule());
+	        }
+       		set(
+       			$current, 
+       			"type",
+        		lv_type_1_0, 
+        		"AutoTextEnum");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)(	otherlv_2='style' 
+    {
+    	newLeafNode(otherlv_2, grammarAccess.getAutoTextAccess().getStyleKeyword_2_0());
+    }
+(
+(
+		{
+			if ($current==null) {
+	            $current = createModelElement(grammarAccess.getAutoTextRule());
+	        }
+        }
+	otherlv_3=RULE_ID
+	{
+		newLeafNode(otherlv_3, grammarAccess.getAutoTextAccess().getStyleStyleCrossReference_2_1_0()); 
+	}
+
+)
+))?)
+;
+
+
+
+
+
+// Entry rule entryRuleImage
+entryRuleImage returns [EObject current=null] 
+	:
+	{ newCompositeNode(grammarAccess.getImageRule()); }
+	 iv_ruleImage=ruleImage 
+	 { $current=$iv_ruleImage.current; } 
+	 EOF 
+;
+
+// Rule Image
+ruleImage returns [EObject current=null] 
+    @init { enterRule(); 
+    }
+    @after { leaveRule(); }:
+(	otherlv_0='image' 
+    {
+    	newLeafNode(otherlv_0, grammarAccess.getImageAccess().getImageKeyword_0());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getImageAccess().getSizeImageSizeEnumEnumRuleCall_1_0()); 
+	    }
+		lv_size_1_0=ruleImageSizeEnum		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getImageRule());
+	        }
+       		set(
+       			$current, 
+       			"size",
+        		lv_size_1_0, 
+        		"ImageSizeEnum");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)(	otherlv_2='scale' 
+    {
+    	newLeafNode(otherlv_2, grammarAccess.getImageAccess().getScaleKeyword_2_0());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getImageAccess().getScaleUnsignedNumberParserRuleCall_2_1_0()); 
+	    }
+		lv_scale_3_0=ruleUnsignedNumber		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getImageRule());
+	        }
+       		set(
+       			$current, 
+       			"scale",
+        		lv_scale_3_0, 
+        		"UnsignedNumber");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+))?(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getImageAccess().getSourceTypeImageSourceEnumEnumRuleCall_3_0()); 
+	    }
+		lv_sourceType_4_0=ruleImageSourceEnum		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getImageRule());
+	        }
+       		set(
+       			$current, 
+       			"sourceType",
+        		lv_sourceType_4_0, 
+        		"ImageSourceEnum");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)(
+(
+		lv_filename_5_0=RULE_STRING
+		{
+			newLeafNode(lv_filename_5_0, grammarAccess.getImageAccess().getFilenameSTRINGTerminalRuleCall_4_0()); 
+		}
+		{
+	        if ($current==null) {
+	            $current = createModelElement(grammarAccess.getImageRule());
+	        }
+       		setWithLastConsumed(
+       			$current, 
+       			"filename",
+        		lv_filename_5_0, 
+        		"STRING");
+	    }
+
+)
+))
+;
+
+
+
+
+
+// Entry rule entryRuleReportImport
+entryRuleReportImport returns [EObject current=null] 
+	:
+	{ newCompositeNode(grammarAccess.getReportImportRule()); }
+	 iv_ruleReportImport=ruleReportImport 
+	 { $current=$iv_ruleReportImport.current; } 
+	 EOF 
+;
+
+// Rule ReportImport
+ruleReportImport returns [EObject current=null] 
+    @init { enterRule(); 
+    }
+    @after { leaveRule(); }:
+(	otherlv_0='import' 
+    {
+    	newLeafNode(otherlv_0, grammarAccess.getReportImportAccess().getImportKeyword_0());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getReportImportAccess().getImportedNamespaceReportQualifiedNameWithWildCardParserRuleCall_1_0()); 
+	    }
+		lv_importedNamespace_1_0=ruleReportQualifiedNameWithWildCard		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getReportImportRule());
+	        }
+       		set(
+       			$current, 
+       			"importedNamespace",
+        		lv_importedNamespace_1_0, 
+        		"ReportQualifiedNameWithWildCard");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+))
+;
+
+
+
+
+
+// Entry rule entryRuleReportQualifiedNameWithWildCard
+entryRuleReportQualifiedNameWithWildCard returns [String current=null] 
+	:
+	{ newCompositeNode(grammarAccess.getReportQualifiedNameWithWildCardRule()); } 
+	 iv_ruleReportQualifiedNameWithWildCard=ruleReportQualifiedNameWithWildCard 
+	 { $current=$iv_ruleReportQualifiedNameWithWildCard.current.getText(); }  
+	 EOF 
+;
+
+// Rule ReportQualifiedNameWithWildCard
+ruleReportQualifiedNameWithWildCard returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] 
+    @init { enterRule(); 
+    }
+    @after { leaveRule(); }:
+(
+    { 
+        newCompositeNode(grammarAccess.getReportQualifiedNameWithWildCardAccess().getQualifiedNameParserRuleCall_0()); 
+    }
+    this_QualifiedName_0=ruleQualifiedName    {
+		$current.merge(this_QualifiedName_0);
+    }
+
+    { 
+        afterParserOrEnumRuleCall();
+    }
+(
+	kw='.' 
+    {
+        $current.merge(kw);
+        newLeafNode(kw, grammarAccess.getReportQualifiedNameWithWildCardAccess().getFullStopKeyword_1_0()); 
+    }
+
+	kw='*' 
+    {
+        $current.merge(kw);
+        newLeafNode(kw, grammarAccess.getReportQualifiedNameWithWildCardAccess().getAsteriskKeyword_1_1()); 
+    }
+)?)
+    ;
+
+
+
+
+
+// Entry rule entryRuleTRANSLATABLESTRING
+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    {
+		$current.merge(this_STRING_0);
+    }
+
+    { 
+    newLeafNode(this_STRING_0, grammarAccess.getTRANSLATABLESTRINGAccess().getSTRINGTerminalRuleCall()); 
+    }
+
+    ;
+
+
+
+
+
+// Entry rule entryRuleXAnnotation
+entryRuleXAnnotation returns [EObject current=null] 
+	:
+	{ newCompositeNode(grammarAccess.getXAnnotationRule()); }
+	 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());
+    }
+(
+(
+		{
+			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());
+    }
+)?)
+;
+
+
+
+
+
+// Entry rule entryRuleXAnnotationElementValuePair
+entryRuleXAnnotationElementValuePair returns [EObject current=null] 
+	:
+	{ newCompositeNode(grammarAccess.getXAnnotationElementValuePairRule()); }
+	 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();
+	    }
+
+)
+))
+;
+
+
+
+
+
+// Entry rule entryRuleXAnnotationElementValueOrCommaList
+entryRuleXAnnotationElementValueOrCommaList returns [EObject current=null] 
+	:
+	{ newCompositeNode(grammarAccess.getXAnnotationElementValueOrCommaListRule()); }
+	 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();
+	    }
+
+)
+))+)?))
+;
+
+
+
+
+
+// Entry rule entryRuleXAnnotationElementValue
+entryRuleXAnnotationElementValue returns [EObject current=null] 
+	:
+	{ newCompositeNode(grammarAccess.getXAnnotationElementValueRule()); }
+	 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();
+    }
+)
+;
+
+
+
+
+
+// Entry rule entryRuleXAnnotationOrExpression
+entryRuleXAnnotationOrExpression returns [EObject current=null] 
+	:
+	{ newCompositeNode(grammarAccess.getXAnnotationOrExpressionRule()); }
+	 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();
+    }
+)
+;
+
+
+
+
+
+// Entry rule entryRuleXExpression
+entryRuleXExpression returns [EObject current=null] 
+	:
+	{ newCompositeNode(grammarAccess.getXExpressionRule()); }
+	 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();
+    }
+
+;
+
+
+
+
+
+// Entry rule entryRuleXAssignment
+entryRuleXAssignment returns [EObject current=null] 
+	:
+	{ newCompositeNode(grammarAccess.getXAssignmentRule()); }
+	 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();
+	    }
+
+)
+))?))
+;
+
+
+
+
+
+// Entry rule entryRuleOpSingleAssign
+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()); 
+    }
+
+    ;
+
+
+
+
+
+// Entry rule entryRuleOpMultiAssign
+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()); 
+    }
+))
+    ;
+
+
+
+
+
+// Entry rule entryRuleXOrExpression
+entryRuleXOrExpression returns [EObject current=null] 
+	:
+	{ newCompositeNode(grammarAccess.getXOrExpressionRule()); }
+	 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);
+    }
+)(
+(
+		{
+			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();
+	    }
+
+)
+))*)
+;
+
+
+
+
+
+// Entry rule entryRuleOpOr
+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()); 
+    }
+
+    ;
+
+
+
+
+
+// Entry rule entryRuleXAndExpression
+entryRuleXAndExpression returns [EObject current=null] 
+	:
+	{ newCompositeNode(grammarAccess.getXAndExpressionRule()); }
+	 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);
+    }
+)(
+(
+		{
+			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();
+	    }
+
+)
+))*)
+;
+
+
+
+
+
+// Entry rule entryRuleOpAnd
+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()); 
+    }
+
+    ;
+
+
+
+
+
+// Entry rule entryRuleXEqualityExpression
+entryRuleXEqualityExpression returns [EObject current=null] 
+	:
+	{ newCompositeNode(grammarAccess.getXEqualityExpressionRule()); }
+	 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);
+    }
+)(
+(
+		{
+			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();
+	    }
+
+)
+))*)
+;
+
+
+
+
+
+// Entry rule entryRuleOpEquality
+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()); 
+    }
+)
+    ;
+
+
+
+
+
+// Entry rule entryRuleXRelationalExpression
+entryRuleXRelationalExpression returns [EObject current=null] 
+	:
+	{ newCompositeNode(grammarAccess.getXRelationalExpressionRule()); }
+	 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);
+    }
+)(
+(
+		{
+			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();
+	    }
+
+)
+)))*)
+;
+
+
+
+
+
+// Entry rule entryRuleOpCompare
+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()); 
+    }
+)
+    ;
+
+
+
+
+
+// Entry rule entryRuleXOtherOperatorExpression
+entryRuleXOtherOperatorExpression returns [EObject current=null] 
+	:
+	{ newCompositeNode(grammarAccess.getXOtherOperatorExpressionRule()); }
+	 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);
+    }
+)(
+(
+		{
+			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();
+	    }
+
+)
+))*)
+;
+
+
+
+
+
+// Entry rule entryRuleOpOther
+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()); 
+    }
+)
+    ;
+
+
+
+
+
+// Entry rule entryRuleXAdditiveExpression
+entryRuleXAdditiveExpression returns [EObject current=null] 
+	:
+	{ newCompositeNode(grammarAccess.getXAdditiveExpressionRule()); }
+	 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);
+    }
+)(
+(
+		{
+			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();
+	    }
+
+)
+))*)
+;
+
+
+
+
+
+// Entry rule entryRuleOpAdd
+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()); 
+    }
+)
+    ;
+
+
+
+
+
+// Entry rule entryRuleXMultiplicativeExpression
+entryRuleXMultiplicativeExpression returns [EObject current=null] 
+	:
+	{ newCompositeNode(grammarAccess.getXMultiplicativeExpressionRule()); }
+	 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);
+    }
+)(
+(
+		{
+			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();
+	    }
+
+)
+))*)
+;
+
+
+
+
+
+// Entry rule entryRuleOpMulti
+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()); 
+    }
+)
+    ;
+
+
+
+
+
+// Entry rule entryRuleXUnaryOperation
+entryRuleXUnaryOperation returns [EObject current=null] 
+	:
+	{ newCompositeNode(grammarAccess.getXUnaryOperationRule()); }
+	 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);
+    }
+)(
+(
+		{
+			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();
+    }
+)
+;
+
+
+
+
+
+// Entry rule entryRuleOpUnary
+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()); 
+    }
+)
+    ;
+
+
+
+
+
+// Entry rule entryRuleXCastedExpression
+entryRuleXCastedExpression returns [EObject current=null] 
+	:
+	{ newCompositeNode(grammarAccess.getXCastedExpressionRule()); }
+	 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();
+	    }
+
+)
+))*)
+;
+
+
+
+
+
+// Entry rule entryRuleXPostfixOperation
+entryRuleXPostfixOperation returns [EObject current=null] 
+	:
+	{ newCompositeNode(grammarAccess.getXPostfixOperationRule()); }
+	 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);
+    }
+)(
+(
+		{
+			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 
+;
+
+// 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()); 
+    }
+)
+    ;
+
+
+
+
+
+// Entry rule entryRuleXMemberFeatureCall
+entryRuleXMemberFeatureCall returns [EObject current=null] 
+	:
+	{ newCompositeNode(grammarAccess.getXMemberFeatureCallRule()); }
+	 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, "::");
+	    }
+
+)
+))(
+(
+		{
+			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		{
diff --git a/org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.tokens b/org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.tokens
new file mode 100644
index 0000000..ab392ac
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.tokens
@@ -0,0 +1,493 @@
+'!'=154
+'!='=140
+'!=='=142
+'#'=126
+'%'=153
+'%='=133
+'&&'=138
+'&'=187
+'('=105
+')'=106
+'*'=122
+'**'=151
+'*='=131
+'+'=150
+'++'=155
+'+='=129
+','=124
+'-'=110
+'--'=156
+'-='=130
+'->'=144
+'.'=121
+'..'=146
+'..<'=145
+'/'=152
+'/='=132
+':'=164
+'::'=157
+';'=160
+'<'=134
+'<>'=148
+'='=125
+'=='=139
+'==='=141
+'=>'=147
+'>'=135
+'>='=136
+'?'=186
+'?.'=158
+'?:'=149
+'@'=123
+'['=127
+']'=128
+'a3'=197
+'a4'=196
+'a5'=198
+'aggregate'=101
+'all'=92
+'alternate'=46
+'as'=82
+'autotext'=118
+'average'=225
+'backgroundcolor'=45
+'bad-rising'=232
+'bold'=41
+'border-bottom'=50
+'border-left'=51
+'border-right'=52
+'border-top'=49
+'bottommargin'=30
+'by'=90
+'by-percent'=34
+'case'=166
+'catch'=185
+'cell'=84
+'cellcolor'=111
+'center'=212
+'clip'=252
+'cm'=189
+'color'=32
+'colors'=20
+'columnspan'=85
+'concat'=230
+'count'=222
+'currency'=65
+'custom'=219
+'darkens'=33
+'dashed'=239
+'datamart'=71
+'date'=66
+'date+time'=67
+'days in past'=108
+'default'=165
+'described by'=69
+'detail'=78
+'detailfooter'=88
+'detailheader'=87
+'details'=91
+'divide'=229
+'do'=169
+'dotted'=238
+'double'=240
+'dynamic'=98
+'else'=162
+'em'=193
+'embed'=254
+'ex'=194
+'extends'=39
+'extension'=173
+'externalCssURI'=16
+'false'=176
+'family'=40
+'file'=73
+'finally'=183
+'fixed'=216
+'font'=38
+'fonts'=21
+'footer'=79
+'for'=167
+'formatter'=44
+'formatters'=19
+'from bundle'=17
+'general-number'=215
+'good-sloping'=234
+'grid'=81
+'groove'=241
+'group'=89
+'header'=75
+'height'=77
+'hidelabel'=95
+'html'=220
+'icon'=112
+'if'=161
+'image'=93
+'import'=120
+'inch'=191
+'inset'=243
+'instanceof'=143
+'intervals'=94
+'italic'=206
+'label'=116
+'landscape'=204
+'layout-data'=15
+'left'=211
+'leftmargin'=29
+'lightens'=35
+'lookups'=96
+'margin-bottom'=58
+'margin-left'=59
+'margin-right'=60
+'margin-top'=57
+'maximum'=227
+'media'=23
+'medias'=22
+'minimum'=226
+'mm'=188
+'monospace'=208
+'new'=175
+'none'=236
+'normal'=205
+'null'=178
+'number'=64
+'oblique'=207
+'of'=104
+'on-group'=102
+'orientation'=27
+'outset'=244
+'package'=13
+'padding-bottom'=54
+'padding-left'=55
+'padding-right'=56
+'padding-top'=53
+'page-number'=245
+'page-number-unfiltered'=247
+'page-variable'=249
+'pagetemplate'=25
+'path'=97
+'pc'=192
+'pdf'=221
+'percent'=217
+'portrait'=203
+'property'=100
+'pt'=190
+'px'=195
+'rendering'=72
+'report'=63
+'resize'=99
+'return'=181
+'ridge'=242
+'right'=213
+'rightmargin'=31
+'rising'=231
+'row'=83
+'running-count'=223
+'running-sum'=228
+'sans-serif'=209
+'scale'=119
+'scale-to-item'=251
+'scientific'=218
+'serif'=210
+'showOnFirst'=76
+'showOnLast'=80
+'size'=42
+'size-to-image'=250
+'sloping'=233
+'solid'=237
+'stagnating'=235
+'static'=172
+'string'=109
+'style'=43
+'styles'=24
+'subsubtitle'=115
+'subtitle'=114
+'sum'=224
+'super'=174
+'switch'=163
+'synchronized'=184
+'table'=86
+'template'=74
+'text'=117
+'textalign'=48
+'textcolor'=47
+'throw'=180
+'time'=68
+'title'=103
+'toolbar'=70
+'topmargin'=28
+'total-page'=246
+'total-page-unfiltered'=248
+'towards'=37
+'transforms'=36
+'trend'=113
+'true'=177
+'try'=182
+'type'=26
+'typeof'=179
+'ui'=62
+'unformatted'=214
+'uomo'=61
+'up to'=107
+'url'=253
+'us-ledger'=201
+'us-legal'=200
+'us-letter'=199
+'us-super-b'=202
+'val'=171
+'var'=170
+'while'=168
+'{'=14
+'|'=159
+'||'=137
+'}'=18
+RULE_ANY_OTHER=12
+RULE_DECIMAL=8
+RULE_HEX=7
+RULE_ID=5
+RULE_INT=6
+RULE_ML_COMMENT=9
+RULE_SL_COMMENT=10
+RULE_STRING=4
+RULE_WS=11
+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__13=13
+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__14=14
+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__189=189
+T__18=18
+T__190=190
+T__191=191
+T__192=192
+T__193=193
+T__194=194
+T__195=195
+T__196=196
+T__197=197
+T__198=198
+T__199=199
+T__19=19
+T__200=200
+T__201=201
+T__202=202
+T__203=203
+T__204=204
+T__205=205
+T__206=206
+T__207=207
+T__208=208
+T__209=209
+T__20=20
+T__210=210
+T__211=211
+T__212=212
+T__213=213
+T__214=214
+T__215=215
+T__216=216
+T__217=217
+T__218=218
+T__219=219
+T__21=21
+T__220=220
+T__221=221
+T__222=222
+T__223=223
+T__224=224
+T__225=225
+T__226=226
+T__227=227
+T__228=228
+T__229=229
+T__22=22
+T__230=230
+T__231=231
+T__232=232
+T__233=233
+T__234=234
+T__235=235
+T__236=236
+T__237=237
+T__238=238
+T__239=239
+T__23=23
+T__240=240
+T__241=241
+T__242=242
+T__243=243
+T__244=244
+T__245=245
+T__246=246
+T__247=247
+T__248=248
+T__249=249
+T__24=24
+T__250=250
+T__251=251
+T__252=252
+T__253=253
+T__254=254
+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.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSLLexer.java b/org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSLLexer.java
new file mode 100644
index 0000000..2f89fd6
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSLLexer.java
@@ -0,0 +1,9797 @@
+/**
+ *                                                                            
+ *  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.reportdsl.parser.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.parser.antlr.Lexer;
+
+
+import org.antlr.runtime.*;
+import java.util.Stack;
+import java.util.List;
+import java.util.ArrayList;
+
+@SuppressWarnings("all")
+public class InternalReportDSLLexer 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__254=254;
+    public static final int T__132=132;
+    public static final int T__253=253;
+    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 T__250=250;
+    public static final int RULE_ID=5;
+    public static final int T__131=131;
+    public static final int T__252=252;
+    public static final int T__130=130;
+    public static final int T__251=251;
+    public static final int RULE_INT=6;
+    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__247=247;
+    public static final int T__63=63;
+    public static final int T__125=125;
+    public static final int T__246=246;
+    public static final int T__64=64;
+    public static final int T__128=128;
+    public static final int T__249=249;
+    public static final int T__65=65;
+    public static final int T__127=127;
+    public static final int T__248=248;
+    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__221=221;
+    public static final int T__220=220;
+    public static final int T__102=102;
+    public static final int T__223=223;
+    public static final int T__101=101;
+    public static final int T__222=222;
+    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 T__218=218;
+    public static final int T__217=217;
+    public static final int T__13=13;
+    public static final int T__14=14;
+    public static final int T__219=219;
+    public static final int T__214=214;
+    public static final int T__213=213;
+    public static final int T__216=216;
+    public static final int T__215=215;
+    public static final int T__210=210;
+    public static final int T__212=212;
+    public static final int T__211=211;
+    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__207=207;
+    public static final int T__23=23;
+    public static final int T__206=206;
+    public static final int T__24=24;
+    public static final int T__209=209;
+    public static final int T__25=25;
+    public static final int T__208=208;
+    public static final int T__203=203;
+    public static final int T__202=202;
+    public static final int T__20=20;
+    public static final int T__205=205;
+    public static final int T__21=21;
+    public static final int T__204=204;
+    public static final int T__122=122;
+    public static final int T__243=243;
+    public static final int T__121=121;
+    public static final int T__242=242;
+    public static final int T__124=124;
+    public static final int T__245=245;
+    public static final int T__123=123;
+    public static final int T__244=244;
+    public static final int T__120=120;
+    public static final int T__241=241;
+    public static final int T__240=240;
+    public static final int RULE_SL_COMMENT=10;
+    public static final int T__119=119;
+    public static final int T__118=118;
+    public static final int T__239=239;
+    public static final int T__115=115;
+    public static final int T__236=236;
+    public static final int EOF=-1;
+    public static final int T__114=114;
+    public static final int T__235=235;
+    public static final int T__117=117;
+    public static final int T__238=238;
+    public static final int T__116=116;
+    public static final int T__237=237;
+    public static final int T__111=111;
+    public static final int T__232=232;
+    public static final int T__110=110;
+    public static final int T__231=231;
+    public static final int T__113=113;
+    public static final int T__234=234;
+    public static final int T__112=112;
+    public static final int T__233=233;
+    public static final int T__230=230;
+    public static final int T__108=108;
+    public static final int T__229=229;
+    public static final int T__107=107;
+    public static final int T__228=228;
+    public static final int T__109=109;
+    public static final int T__104=104;
+    public static final int T__225=225;
+    public static final int T__103=103;
+    public static final int T__224=224;
+    public static final int T__106=106;
+    public static final int T__227=227;
+    public static final int T__105=105;
+    public static final int T__226=226;
+    public static final int RULE_HEX=7;
+    public static final int RULE_ML_COMMENT=9;
+    public static final int T__201=201;
+    public static final int T__200=200;
+    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__189=189;
+    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__199=199;
+    public static final int T__81=81;
+    public static final int T__198=198;
+    public static final int T__82=82;
+    public static final int T__83=83;
+    public static final int T__195=195;
+    public static final int T__194=194;
+    public static final int RULE_WS=11;
+    public static final int T__197=197;
+    public static final int T__196=196;
+    public static final int T__191=191;
+    public static final int T__190=190;
+    public static final int T__193=193;
+    public static final int T__192=192;
+    public static final int RULE_ANY_OTHER=12;
+    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 InternalReportDSLLexer() {;} 
+    public InternalReportDSLLexer(CharStream input) {
+        this(input, new RecognizerSharedState());
+    }
+    public InternalReportDSLLexer(CharStream input, RecognizerSharedState state) {
+        super(input,state);
+
+    }
+    public String getGrammarFileName() { return "../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g"; }
+
+    // $ANTLR start "T__13"
+    public final void mT__13() throws RecognitionException {
+        try {
+            int _type = T__13;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:11:7: ( 'package' )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:11:9: 'package'
+            {
+            match("package"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__13"
+
+    // $ANTLR start "T__14"
+    public final void mT__14() throws RecognitionException {
+        try {
+            int _type = T__14;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:12:7: ( '{' )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:12:9: '{'
+            {
+            match('{'); 
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__14"
+
+    // $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.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:13:7: ( 'layout-data' )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:13:9: 'layout-data'
+            {
+            match("layout-data"); 
+
+
+            }
+
+            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;
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:14:7: ( 'externalCssURI' )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:14:9: 'externalCssURI'
+            {
+            match("externalCssURI"); 
+
+
+            }
+
+            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;
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:15:7: ( 'from bundle' )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:15:9: 'from bundle'
+            {
+            match("from bundle"); 
+
+
+            }
+
+            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;
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:16:7: ( '}' )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:16:9: '}'
+            {
+            match('}'); 
+
+            }
+
+            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;
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:17:7: ( 'formatters' )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:17:9: 'formatters'
+            {
+            match("formatters"); 
+
+
+            }
+
+            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;
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:18:7: ( 'colors' )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:18:9: 'colors'
+            {
+            match("colors"); 
+
+
+            }
+
+            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;
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:19:7: ( 'fonts' )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:19:9: 'fonts'
+            {
+            match("fonts"); 
+
+
+            }
+
+            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;
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:20:7: ( 'medias' )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:20:9: 'medias'
+            {
+            match("medias"); 
+
+
+            }
+
+            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;
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:21:7: ( 'media' )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:21:9: 'media'
+            {
+            match("media"); 
+
+
+            }
+
+            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;
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:22:7: ( 'styles' )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:22:9: 'styles'
+            {
+            match("styles"); 
+
+
+            }
+
+            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;
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:23:7: ( 'pagetemplate' )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:23:9: 'pagetemplate'
+            {
+            match("pagetemplate"); 
+
+
+            }
+
+            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;
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:24:7: ( 'type' )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:24:9: 'type'
+            {
+            match("type"); 
+
+
+            }
+
+            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;
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:25:7: ( 'orientation' )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:25:9: 'orientation'
+            {
+            match("orientation"); 
+
+
+            }
+
+            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;
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:26:7: ( 'topmargin' )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:26:9: 'topmargin'
+            {
+            match("topmargin"); 
+
+
+            }
+
+            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;
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:27:7: ( 'leftmargin' )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:27:9: 'leftmargin'
+            {
+            match("leftmargin"); 
+
+
+            }
+
+            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;
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:28:7: ( 'bottommargin' )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:28:9: 'bottommargin'
+            {
+            match("bottommargin"); 
+
+
+            }
+
+            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;
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:29:7: ( 'rightmargin' )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:29:9: 'rightmargin'
+            {
+            match("rightmargin"); 
+
+
+            }
+
+            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;
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:30:7: ( 'color' )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:30:9: 'color'
+            {
+            match("color"); 
+
+
+            }
+
+            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;
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:31:7: ( 'darkens' )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:31:9: 'darkens'
+            {
+            match("darkens"); 
+
+
+            }
+
+            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;
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:32:7: ( 'by-percent' )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:32:9: 'by-percent'
+            {
+            match("by-percent"); 
+
+
+            }
+
+            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;
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:33:7: ( 'lightens' )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:33:9: 'lightens'
+            {
+            match("lightens"); 
+
+
+            }
+
+            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;
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:34:7: ( 'transforms' )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:34:9: 'transforms'
+            {
+            match("transforms"); 
+
+
+            }
+
+            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;
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:35:7: ( 'towards' )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:35:9: 'towards'
+            {
+            match("towards"); 
+
+
+            }
+
+            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;
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:36:7: ( 'font' )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:36:9: 'font'
+            {
+            match("font"); 
+
+
+            }
+
+            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;
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:37:7: ( 'extends' )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:37:9: 'extends'
+            {
+            match("extends"); 
+
+
+            }
+
+            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;
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:38:7: ( 'family' )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:38:9: 'family'
+            {
+            match("family"); 
+
+
+            }
+
+            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;
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:39:7: ( 'bold' )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:39:9: 'bold'
+            {
+            match("bold"); 
+
+
+            }
+
+            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;
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:40:7: ( 'size' )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:40:9: 'size'
+            {
+            match("size"); 
+
+
+            }
+
+            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;
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:41:7: ( 'style' )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:41:9: 'style'
+            {
+            match("style"); 
+
+
+            }
+
+            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;
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:42:7: ( 'formatter' )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:42:9: 'formatter'
+            {
+            match("formatter"); 
+
+
+            }
+
+            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;
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:43:7: ( 'backgroundcolor' )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:43:9: 'backgroundcolor'
+            {
+            match("backgroundcolor"); 
+
+
+            }
+
+            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;
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:44:7: ( 'alternate' )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:44:9: 'alternate'
+            {
+            match("alternate"); 
+
+
+            }
+
+            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;
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:45:7: ( 'textcolor' )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:45:9: 'textcolor'
+            {
+            match("textcolor"); 
+
+
+            }
+
+            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;
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:46:7: ( 'textalign' )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:46:9: 'textalign'
+            {
+            match("textalign"); 
+
+
+            }
+
+            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;
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:47:7: ( 'border-top' )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:47:9: 'border-top'
+            {
+            match("border-top"); 
+
+
+            }
+
+            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;
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:48:7: ( 'border-bottom' )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:48:9: 'border-bottom'
+            {
+            match("border-bottom"); 
+
+
+            }
+
+            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;
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:49:7: ( 'border-left' )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:49:9: 'border-left'
+            {
+            match("border-left"); 
+
+
+            }
+
+            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;
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:50:7: ( 'border-right' )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:50:9: 'border-right'
+            {
+            match("border-right"); 
+
+
+            }
+
+            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;
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:51:7: ( 'padding-top' )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:51:9: 'padding-top'
+            {
+            match("padding-top"); 
+
+
+            }
+
+            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;
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:52:7: ( 'padding-bottom' )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:52:9: 'padding-bottom'
+            {
+            match("padding-bottom"); 
+
+
+            }
+
+            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;
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:53:7: ( 'padding-left' )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:53:9: 'padding-left'
+            {
+            match("padding-left"); 
+
+
+            }
+
+            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;
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:54:7: ( 'padding-right' )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:54:9: 'padding-right'
+            {
+            match("padding-right"); 
+
+
+            }
+
+            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;
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:55:7: ( 'margin-top' )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:55:9: 'margin-top'
+            {
+            match("margin-top"); 
+
+
+            }
+
+            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;
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:56:7: ( 'margin-bottom' )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:56:9: 'margin-bottom'
+            {
+            match("margin-bottom"); 
+
+
+            }
+
+            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;
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:57:7: ( 'margin-left' )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:57:9: 'margin-left'
+            {
+            match("margin-left"); 
+
+
+            }
+
+            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;
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:58:7: ( 'margin-right' )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:58:9: 'margin-right'
+            {
+            match("margin-right"); 
+
+
+            }
+
+            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;
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:59:7: ( 'uomo' )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:59:9: 'uomo'
+            {
+            match("uomo"); 
+
+
+            }
+
+            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;
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:60:7: ( 'ui' )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:60:9: 'ui'
+            {
+            match("ui"); 
+
+
+            }
+
+            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;
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:61:7: ( 'report' )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:61:9: 'report'
+            {
+            match("report"); 
+
+
+            }
+
+            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;
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:62:7: ( 'number' )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:62:9: 'number'
+            {
+            match("number"); 
+
+
+            }
+
+            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;
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:63:7: ( 'currency' )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:63:9: 'currency'
+            {
+            match("currency"); 
+
+
+            }
+
+            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;
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:64:7: ( 'date' )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:64:9: 'date'
+            {
+            match("date"); 
+
+
+            }
+
+            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;
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:65:7: ( 'date+time' )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:65:9: 'date+time'
+            {
+            match("date+time"); 
+
+
+            }
+
+            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;
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:66:7: ( 'time' )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:66:9: 'time'
+            {
+            match("time"); 
+
+
+            }
+
+            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;
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:67:7: ( 'described by' )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:67:9: 'described by'
+            {
+            match("described by"); 
+
+
+            }
+
+            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;
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:68:7: ( 'toolbar' )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:68:9: 'toolbar'
+            {
+            match("toolbar"); 
+
+
+            }
+
+            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;
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:69:7: ( 'datamart' )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:69:9: 'datamart'
+            {
+            match("datamart"); 
+
+
+            }
+
+            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;
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:70:7: ( 'rendering' )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:70:9: 'rendering'
+            {
+            match("rendering"); 
+
+
+            }
+
+            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;
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:71:7: ( 'file' )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:71:9: 'file'
+            {
+            match("file"); 
+
+
+            }
+
+            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;
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:72:7: ( 'template' )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:72:9: 'template'
+            {
+            match("template"); 
+
+
+            }
+
+            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;
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:73:7: ( 'header' )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:73:9: 'header'
+            {
+            match("header"); 
+
+
+            }
+
+            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;
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:74:7: ( 'showOnFirst' )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:74:9: 'showOnFirst'
+            {
+            match("showOnFirst"); 
+
+
+            }
+
+            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;
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:75:7: ( 'height' )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:75:9: 'height'
+            {
+            match("height"); 
+
+
+            }
+
+            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;
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:76:7: ( 'detail' )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:76:9: 'detail'
+            {
+            match("detail"); 
+
+
+            }
+
+            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;
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:77:7: ( 'footer' )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:77:9: 'footer'
+            {
+            match("footer"); 
+
+
+            }
+
+            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;
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:78:7: ( 'showOnLast' )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:78:9: 'showOnLast'
+            {
+            match("showOnLast"); 
+
+
+            }
+
+            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;
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:79:7: ( 'grid' )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:79:9: 'grid'
+            {
+            match("grid"); 
+
+
+            }
+
+            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;
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:80:7: ( 'as' )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:80:9: 'as'
+            {
+            match("as"); 
+
+
+            }
+
+            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;
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:81:7: ( 'row' )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:81:9: 'row'
+            {
+            match("row"); 
+
+
+            }
+
+            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;
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:82:7: ( 'cell' )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:82:9: 'cell'
+            {
+            match("cell"); 
+
+
+            }
+
+            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;
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:83:7: ( 'columnspan' )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:83:9: 'columnspan'
+            {
+            match("columnspan"); 
+
+
+            }
+
+            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;
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:84:7: ( 'table' )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:84:9: 'table'
+            {
+            match("table"); 
+
+
+            }
+
+            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;
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:85:7: ( 'detailheader' )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:85:9: 'detailheader'
+            {
+            match("detailheader"); 
+
+
+            }
+
+            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;
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:86:7: ( 'detailfooter' )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:86:9: 'detailfooter'
+            {
+            match("detailfooter"); 
+
+
+            }
+
+            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;
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:87:7: ( 'group' )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:87:9: 'group'
+            {
+            match("group"); 
+
+
+            }
+
+            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;
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:88:7: ( 'by' )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:88:9: 'by'
+            {
+            match("by"); 
+
+
+            }
+
+            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;
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:89:7: ( 'details' )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:89:9: 'details'
+            {
+            match("details"); 
+
+
+            }
+
+            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;
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:90:7: ( 'all' )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:90:9: 'all'
+            {
+            match("all"); 
+
+
+            }
+
+            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;
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:91:7: ( 'image' )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:91:9: 'image'
+            {
+            match("image"); 
+
+
+            }
+
+            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;
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:92:7: ( 'intervals' )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:92:9: 'intervals'
+            {
+            match("intervals"); 
+
+
+            }
+
+            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;
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:93:7: ( 'hidelabel' )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:93:9: 'hidelabel'
+            {
+            match("hidelabel"); 
+
+
+            }
+
+            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;
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:94:7: ( 'lookups' )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:94:9: 'lookups'
+            {
+            match("lookups"); 
+
+
+            }
+
+            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;
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:95:7: ( 'path' )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:95:9: 'path'
+            {
+            match("path"); 
+
+
+            }
+
+            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;
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:96:7: ( 'dynamic' )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:96:9: 'dynamic'
+            {
+            match("dynamic"); 
+
+
+            }
+
+            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;
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:97:7: ( 'resize' )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:97:9: 'resize'
+            {
+            match("resize"); 
+
+
+            }
+
+            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;
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:98:8: ( 'property' )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:98:10: 'property'
+            {
+            match("property"); 
+
+
+            }
+
+            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;
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:99:8: ( 'aggregate' )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:99:10: 'aggregate'
+            {
+            match("aggregate"); 
+
+
+            }
+
+            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;
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:100:8: ( 'on-group' )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:100:10: 'on-group'
+            {
+            match("on-group"); 
+
+
+            }
+
+            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;
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:101:8: ( 'title' )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:101:10: 'title'
+            {
+            match("title"); 
+
+
+            }
+
+            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;
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:102:8: ( 'of' )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:102:10: 'of'
+            {
+            match("of"); 
+
+
+            }
+
+            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;
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:103:8: ( '(' )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:103:10: '('
+            {
+            match('('); 
+
+            }
+
+            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;
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:104:8: ( ')' )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:104:10: ')'
+            {
+            match(')'); 
+
+            }
+
+            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;
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:105:8: ( 'up to' )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:105:10: 'up to'
+            {
+            match("up to"); 
+
+
+            }
+
+            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;
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:106:8: ( 'days in past' )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:106:10: 'days in past'
+            {
+            match("days in past"); 
+
+
+            }
+
+            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;
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:107:8: ( 'string' )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:107:10: 'string'
+            {
+            match("string"); 
+
+
+            }
+
+            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;
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:108:8: ( '-' )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:108:10: '-'
+            {
+            match('-'); 
+
+            }
+
+            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;
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:109:8: ( 'cellcolor' )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:109:10: 'cellcolor'
+            {
+            match("cellcolor"); 
+
+
+            }
+
+            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;
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:110:8: ( 'icon' )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:110:10: 'icon'
+            {
+            match("icon"); 
+
+
+            }
+
+            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;
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:111:8: ( 'trend' )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:111:10: 'trend'
+            {
+            match("trend"); 
+
+
+            }
+
+            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;
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:112:8: ( 'subtitle' )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:112:10: 'subtitle'
+            {
+            match("subtitle"); 
+
+
+            }
+
+            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;
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:113:8: ( 'subsubtitle' )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:113:10: 'subsubtitle'
+            {
+            match("subsubtitle"); 
+
+
+            }
+
+            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;
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:114:8: ( 'label' )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:114:10: 'label'
+            {
+            match("label"); 
+
+
+            }
+
+            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;
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:115:8: ( 'text' )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:115:10: 'text'
+            {
+            match("text"); 
+
+
+            }
+
+            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;
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:116:8: ( 'autotext' )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:116:10: 'autotext'
+            {
+            match("autotext"); 
+
+
+            }
+
+            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;
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:117:8: ( 'scale' )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:117:10: 'scale'
+            {
+            match("scale"); 
+
+
+            }
+
+            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;
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:118:8: ( 'import' )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:118:10: 'import'
+            {
+            match("import"); 
+
+
+            }
+
+            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;
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:119:8: ( '.' )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:119:10: '.'
+            {
+            match('.'); 
+
+            }
+
+            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;
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:120:8: ( '*' )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:120:10: '*'
+            {
+            match('*'); 
+
+            }
+
+            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;
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:121:8: ( '@' )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:121:10: '@'
+            {
+            match('@'); 
+
+            }
+
+            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;
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:122:8: ( ',' )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:122:10: ','
+            {
+            match(','); 
+
+            }
+
+            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;
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:123:8: ( '=' )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:123:10: '='
+            {
+            match('='); 
+
+            }
+
+            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;
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:124:8: ( '#' )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:124:10: '#'
+            {
+            match('#'); 
+
+            }
+
+            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;
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:125:8: ( '[' )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:125:10: '['
+            {
+            match('['); 
+
+            }
+
+            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;
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:126:8: ( ']' )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:126:10: ']'
+            {
+            match(']'); 
+
+            }
+
+            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;
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:127:8: ( '+=' )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:127:10: '+='
+            {
+            match("+="); 
+
+
+            }
+
+            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;
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:128:8: ( '-=' )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:128:10: '-='
+            {
+            match("-="); 
+
+
+            }
+
+            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;
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:129:8: ( '*=' )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:129:10: '*='
+            {
+            match("*="); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__131"
+
+    // $ANTLR start "T__132"
+    public final void mT__132() throws RecognitionException {
+        try {
+            int _type = T__132;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:130:8: ( '/=' )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:130: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;
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:131:8: ( '%=' )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:131: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;
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:132:8: ( '<' )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:132:10: '<'
+            {
+            match('<'); 
+
+            }
+
+            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;
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:133:8: ( '>' )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:133:10: '>'
+            {
+            match('>'); 
+
+            }
+
+            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;
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:134:8: ( '>=' )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:134:10: '>='
+            {
+            match(">="); 
+
+
+            }
+
+            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;
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:135:8: ( '||' )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:135:10: '||'
+            {
+            match("||"); 
+
+
+            }
+
+            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;
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:136:8: ( '&&' )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:136:10: '&&'
+            {
+            match("&&"); 
+
+
+            }
+
+            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;
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:137:8: ( '==' )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:137: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;
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:138:8: ( '!=' )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:138: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;
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:139:8: ( '===' )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:139: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;
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:140:8: ( '!==' )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:140: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;
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:141:8: ( 'instanceof' )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:141:10: 'instanceof'
+            {
+            match("instanceof"); 
+
+
+            }
+
+            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;
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:142:8: ( '->' )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:142: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;
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:143:8: ( '..<' )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:143:10: '..<'
+            {
+            match("..<"); 
+
+
+            }
+
+            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;
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:144:8: ( '..' )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:144:10: '..'
+            {
+            match(".."); 
+
+
+            }
+
+            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;
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:145:8: ( '=>' )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:145:10: '=>'
+            {
+            match("=>"); 
+
+
+            }
+
+            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;
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:146:8: ( '<>' )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:146:10: '<>'
+            {
+            match("<>"); 
+
+
+            }
+
+            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;
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:147:8: ( '?:' )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:147: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;
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:148:8: ( '+' )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:148:10: '+'
+            {
+            match('+'); 
+
+            }
+
+            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;
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:149:8: ( '**' )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:149:10: '**'
+            {
+            match("**"); 
+
+
+            }
+
+            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;
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:150:8: ( '/' )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:150:10: '/'
+            {
+            match('/'); 
+
+            }
+
+            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;
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:151:8: ( '%' )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:151:10: '%'
+            {
+            match('%'); 
+
+            }
+
+            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;
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:152:8: ( '!' )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:152:10: '!'
+            {
+            match('!'); 
+
+            }
+
+            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;
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:153:8: ( '++' )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:153:10: '++'
+            {
+            match("++"); 
+
+
+            }
+
+            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;
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:154:8: ( '--' )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:154:10: '--'
+            {
+            match("--"); 
+
+
+            }
+
+            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;
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:155:8: ( '::' )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:155:10: '::'
+            {
+            match("::"); 
+
+
+            }
+
+            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;
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:156:8: ( '?.' )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:156:10: '?.'
+            {
+            match("?."); 
+
+
+            }
+
+            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;
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:157:8: ( '|' )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:157:10: '|'
+            {
+            match('|'); 
+
+            }
+
+            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;
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:158:8: ( ';' )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:158:10: ';'
+            {
+            match(';'); 
+
+            }
+
+            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;
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:159:8: ( 'if' )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:159:10: 'if'
+            {
+            match("if"); 
+
+
+            }
+
+            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;
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:160:8: ( 'else' )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:160:10: 'else'
+            {
+            match("else"); 
+
+
+            }
+
+            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;
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:161:8: ( 'switch' )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:161:10: 'switch'
+            {
+            match("switch"); 
+
+
+            }
+
+            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;
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:162:8: ( ':' )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:162: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;
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:163:8: ( 'default' )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:163:10: 'default'
+            {
+            match("default"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__165"
+
+    // $ANTLR start "T__166"
+    public final void mT__166() throws RecognitionException {
+        try {
+            int _type = T__166;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:164:8: ( 'case' )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:164:10: 'case'
+            {
+            match("case"); 
+
+
+            }
+
+            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;
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:165:8: ( 'for' )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:165:10: 'for'
+            {
+            match("for"); 
+
+
+            }
+
+            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;
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:166:8: ( 'while' )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:166:10: 'while'
+            {
+            match("while"); 
+
+
+            }
+
+            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;
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:167:8: ( 'do' )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:167:10: 'do'
+            {
+            match("do"); 
+
+
+            }
+
+            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;
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:168:8: ( 'var' )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:168:10: 'var'
+            {
+            match("var"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__170"
+
+    // $ANTLR start "T__171"
+    public final void mT__171() throws RecognitionException {
+        try {
+            int _type = T__171;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:169:8: ( 'val' )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:169:10: 'val'
+            {
+            match("val"); 
+
+
+            }
+
+            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;
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:170:8: ( 'static' )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:170:10: 'static'
+            {
+            match("static"); 
+
+
+            }
+
+            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;
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:171:8: ( 'extension' )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:171:10: 'extension'
+            {
+            match("extension"); 
+
+
+            }
+
+            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;
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:172:8: ( 'super' )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:172:10: 'super'
+            {
+            match("super"); 
+
+
+            }
+
+            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;
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:173:8: ( 'new' )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:173:10: 'new'
+            {
+            match("new"); 
+
+
+            }
+
+            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;
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:174:8: ( 'false' )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:174:10: 'false'
+            {
+            match("false"); 
+
+
+            }
+
+            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;
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:175:8: ( 'true' )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:175:10: 'true'
+            {
+            match("true"); 
+
+
+            }
+
+            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;
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:176:8: ( 'null' )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:176:10: 'null'
+            {
+            match("null"); 
+
+
+            }
+
+            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;
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:177:8: ( 'typeof' )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:177:10: 'typeof'
+            {
+            match("typeof"); 
+
+
+            }
+
+            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;
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:178:8: ( 'throw' )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:178:10: 'throw'
+            {
+            match("throw"); 
+
+
+            }
+
+            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;
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:179:8: ( 'return' )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:179:10: 'return'
+            {
+            match("return"); 
+
+
+            }
+
+            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;
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:180:8: ( 'try' )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:180:10: 'try'
+            {
+            match("try"); 
+
+
+            }
+
+            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;
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:181:8: ( 'finally' )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:181:10: 'finally'
+            {
+            match("finally"); 
+
+
+            }
+
+            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;
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:182:8: ( 'synchronized' )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:182:10: 'synchronized'
+            {
+            match("synchronized"); 
+
+
+            }
+
+            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;
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:183:8: ( 'catch' )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:183:10: 'catch'
+            {
+            match("catch"); 
+
+
+            }
+
+            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;
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:184:8: ( '?' )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:184: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;
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:185:8: ( '&' )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:185:10: '&'
+            {
+            match('&'); 
+
+            }
+
+            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;
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:186:8: ( 'mm' )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:186:10: 'mm'
+            {
+            match("mm"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__188"
+
+    // $ANTLR start "T__189"
+    public final void mT__189() throws RecognitionException {
+        try {
+            int _type = T__189;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:187:8: ( 'cm' )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:187:10: 'cm'
+            {
+            match("cm"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__189"
+
+    // $ANTLR start "T__190"
+    public final void mT__190() throws RecognitionException {
+        try {
+            int _type = T__190;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:188:8: ( 'pt' )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:188:10: 'pt'
+            {
+            match("pt"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__190"
+
+    // $ANTLR start "T__191"
+    public final void mT__191() throws RecognitionException {
+        try {
+            int _type = T__191;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:189:8: ( 'inch' )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:189:10: 'inch'
+            {
+            match("inch"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__191"
+
+    // $ANTLR start "T__192"
+    public final void mT__192() throws RecognitionException {
+        try {
+            int _type = T__192;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:190:8: ( 'pc' )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:190:10: 'pc'
+            {
+            match("pc"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__192"
+
+    // $ANTLR start "T__193"
+    public final void mT__193() throws RecognitionException {
+        try {
+            int _type = T__193;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:191:8: ( 'em' )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:191:10: 'em'
+            {
+            match("em"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__193"
+
+    // $ANTLR start "T__194"
+    public final void mT__194() throws RecognitionException {
+        try {
+            int _type = T__194;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:192:8: ( 'ex' )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:192:10: 'ex'
+            {
+            match("ex"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__194"
+
+    // $ANTLR start "T__195"
+    public final void mT__195() throws RecognitionException {
+        try {
+            int _type = T__195;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:193:8: ( 'px' )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:193:10: 'px'
+            {
+            match("px"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__195"
+
+    // $ANTLR start "T__196"
+    public final void mT__196() throws RecognitionException {
+        try {
+            int _type = T__196;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:194:8: ( 'a4' )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:194:10: 'a4'
+            {
+            match("a4"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__196"
+
+    // $ANTLR start "T__197"
+    public final void mT__197() throws RecognitionException {
+        try {
+            int _type = T__197;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:195:8: ( 'a3' )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:195:10: 'a3'
+            {
+            match("a3"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__197"
+
+    // $ANTLR start "T__198"
+    public final void mT__198() throws RecognitionException {
+        try {
+            int _type = T__198;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:196:8: ( 'a5' )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:196:10: 'a5'
+            {
+            match("a5"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__198"
+
+    // $ANTLR start "T__199"
+    public final void mT__199() throws RecognitionException {
+        try {
+            int _type = T__199;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:197:8: ( 'us-letter' )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:197:10: 'us-letter'
+            {
+            match("us-letter"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__199"
+
+    // $ANTLR start "T__200"
+    public final void mT__200() throws RecognitionException {
+        try {
+            int _type = T__200;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:198:8: ( 'us-legal' )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:198:10: 'us-legal'
+            {
+            match("us-legal"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__200"
+
+    // $ANTLR start "T__201"
+    public final void mT__201() throws RecognitionException {
+        try {
+            int _type = T__201;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:199:8: ( 'us-ledger' )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:199:10: 'us-ledger'
+            {
+            match("us-ledger"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__201"
+
+    // $ANTLR start "T__202"
+    public final void mT__202() throws RecognitionException {
+        try {
+            int _type = T__202;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:200:8: ( 'us-super-b' )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:200:10: 'us-super-b'
+            {
+            match("us-super-b"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__202"
+
+    // $ANTLR start "T__203"
+    public final void mT__203() throws RecognitionException {
+        try {
+            int _type = T__203;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:201:8: ( 'portrait' )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:201:10: 'portrait'
+            {
+            match("portrait"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__203"
+
+    // $ANTLR start "T__204"
+    public final void mT__204() throws RecognitionException {
+        try {
+            int _type = T__204;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:202:8: ( 'landscape' )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:202:10: 'landscape'
+            {
+            match("landscape"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__204"
+
+    // $ANTLR start "T__205"
+    public final void mT__205() throws RecognitionException {
+        try {
+            int _type = T__205;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:203:8: ( 'normal' )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:203:10: 'normal'
+            {
+            match("normal"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__205"
+
+    // $ANTLR start "T__206"
+    public final void mT__206() throws RecognitionException {
+        try {
+            int _type = T__206;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:204:8: ( 'italic' )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:204:10: 'italic'
+            {
+            match("italic"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__206"
+
+    // $ANTLR start "T__207"
+    public final void mT__207() throws RecognitionException {
+        try {
+            int _type = T__207;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:205:8: ( 'oblique' )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:205:10: 'oblique'
+            {
+            match("oblique"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__207"
+
+    // $ANTLR start "T__208"
+    public final void mT__208() throws RecognitionException {
+        try {
+            int _type = T__208;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:206:8: ( 'monospace' )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:206:10: 'monospace'
+            {
+            match("monospace"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__208"
+
+    // $ANTLR start "T__209"
+    public final void mT__209() throws RecognitionException {
+        try {
+            int _type = T__209;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:207:8: ( 'sans-serif' )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:207:10: 'sans-serif'
+            {
+            match("sans-serif"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__209"
+
+    // $ANTLR start "T__210"
+    public final void mT__210() throws RecognitionException {
+        try {
+            int _type = T__210;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:208:8: ( 'serif' )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:208:10: 'serif'
+            {
+            match("serif"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__210"
+
+    // $ANTLR start "T__211"
+    public final void mT__211() throws RecognitionException {
+        try {
+            int _type = T__211;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:209:8: ( 'left' )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:209:10: 'left'
+            {
+            match("left"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__211"
+
+    // $ANTLR start "T__212"
+    public final void mT__212() throws RecognitionException {
+        try {
+            int _type = T__212;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:210:8: ( 'center' )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:210:10: 'center'
+            {
+            match("center"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__212"
+
+    // $ANTLR start "T__213"
+    public final void mT__213() throws RecognitionException {
+        try {
+            int _type = T__213;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:211:8: ( 'right' )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:211:10: 'right'
+            {
+            match("right"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__213"
+
+    // $ANTLR start "T__214"
+    public final void mT__214() throws RecognitionException {
+        try {
+            int _type = T__214;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:212:8: ( 'unformatted' )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:212:10: 'unformatted'
+            {
+            match("unformatted"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__214"
+
+    // $ANTLR start "T__215"
+    public final void mT__215() throws RecognitionException {
+        try {
+            int _type = T__215;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:213:8: ( 'general-number' )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:213:10: 'general-number'
+            {
+            match("general-number"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__215"
+
+    // $ANTLR start "T__216"
+    public final void mT__216() throws RecognitionException {
+        try {
+            int _type = T__216;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:214:8: ( 'fixed' )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:214:10: 'fixed'
+            {
+            match("fixed"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__216"
+
+    // $ANTLR start "T__217"
+    public final void mT__217() throws RecognitionException {
+        try {
+            int _type = T__217;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:215:8: ( 'percent' )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:215:10: 'percent'
+            {
+            match("percent"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__217"
+
+    // $ANTLR start "T__218"
+    public final void mT__218() throws RecognitionException {
+        try {
+            int _type = T__218;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:216:8: ( 'scientific' )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:216:10: 'scientific'
+            {
+            match("scientific"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__218"
+
+    // $ANTLR start "T__219"
+    public final void mT__219() throws RecognitionException {
+        try {
+            int _type = T__219;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:217:8: ( 'custom' )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:217:10: 'custom'
+            {
+            match("custom"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__219"
+
+    // $ANTLR start "T__220"
+    public final void mT__220() throws RecognitionException {
+        try {
+            int _type = T__220;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:218:8: ( 'html' )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:218:10: 'html'
+            {
+            match("html"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__220"
+
+    // $ANTLR start "T__221"
+    public final void mT__221() throws RecognitionException {
+        try {
+            int _type = T__221;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:219:8: ( 'pdf' )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:219:10: 'pdf'
+            {
+            match("pdf"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__221"
+
+    // $ANTLR start "T__222"
+    public final void mT__222() throws RecognitionException {
+        try {
+            int _type = T__222;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:220:8: ( 'count' )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:220:10: 'count'
+            {
+            match("count"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__222"
+
+    // $ANTLR start "T__223"
+    public final void mT__223() throws RecognitionException {
+        try {
+            int _type = T__223;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:221:8: ( 'running-count' )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:221:10: 'running-count'
+            {
+            match("running-count"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__223"
+
+    // $ANTLR start "T__224"
+    public final void mT__224() throws RecognitionException {
+        try {
+            int _type = T__224;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:222:8: ( 'sum' )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:222:10: 'sum'
+            {
+            match("sum"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__224"
+
+    // $ANTLR start "T__225"
+    public final void mT__225() throws RecognitionException {
+        try {
+            int _type = T__225;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:223:8: ( 'average' )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:223:10: 'average'
+            {
+            match("average"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__225"
+
+    // $ANTLR start "T__226"
+    public final void mT__226() throws RecognitionException {
+        try {
+            int _type = T__226;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:224:8: ( 'minimum' )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:224:10: 'minimum'
+            {
+            match("minimum"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__226"
+
+    // $ANTLR start "T__227"
+    public final void mT__227() throws RecognitionException {
+        try {
+            int _type = T__227;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:225:8: ( 'maximum' )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:225:10: 'maximum'
+            {
+            match("maximum"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__227"
+
+    // $ANTLR start "T__228"
+    public final void mT__228() throws RecognitionException {
+        try {
+            int _type = T__228;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:226:8: ( 'running-sum' )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:226:10: 'running-sum'
+            {
+            match("running-sum"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__228"
+
+    // $ANTLR start "T__229"
+    public final void mT__229() throws RecognitionException {
+        try {
+            int _type = T__229;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:227:8: ( 'divide' )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:227:10: 'divide'
+            {
+            match("divide"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__229"
+
+    // $ANTLR start "T__230"
+    public final void mT__230() throws RecognitionException {
+        try {
+            int _type = T__230;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:228:8: ( 'concat' )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:228:10: 'concat'
+            {
+            match("concat"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__230"
+
+    // $ANTLR start "T__231"
+    public final void mT__231() throws RecognitionException {
+        try {
+            int _type = T__231;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:229:8: ( 'rising' )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:229:10: 'rising'
+            {
+            match("rising"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__231"
+
+    // $ANTLR start "T__232"
+    public final void mT__232() throws RecognitionException {
+        try {
+            int _type = T__232;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:230:8: ( 'bad-rising' )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:230:10: 'bad-rising'
+            {
+            match("bad-rising"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__232"
+
+    // $ANTLR start "T__233"
+    public final void mT__233() throws RecognitionException {
+        try {
+            int _type = T__233;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:231:8: ( 'sloping' )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:231:10: 'sloping'
+            {
+            match("sloping"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__233"
+
+    // $ANTLR start "T__234"
+    public final void mT__234() throws RecognitionException {
+        try {
+            int _type = T__234;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:232:8: ( 'good-sloping' )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:232:10: 'good-sloping'
+            {
+            match("good-sloping"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__234"
+
+    // $ANTLR start "T__235"
+    public final void mT__235() throws RecognitionException {
+        try {
+            int _type = T__235;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:233:8: ( 'stagnating' )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:233:10: 'stagnating'
+            {
+            match("stagnating"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__235"
+
+    // $ANTLR start "T__236"
+    public final void mT__236() throws RecognitionException {
+        try {
+            int _type = T__236;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:234:8: ( 'none' )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:234:10: 'none'
+            {
+            match("none"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__236"
+
+    // $ANTLR start "T__237"
+    public final void mT__237() throws RecognitionException {
+        try {
+            int _type = T__237;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:235:8: ( 'solid' )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:235:10: 'solid'
+            {
+            match("solid"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__237"
+
+    // $ANTLR start "T__238"
+    public final void mT__238() throws RecognitionException {
+        try {
+            int _type = T__238;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:236:8: ( 'dotted' )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:236:10: 'dotted'
+            {
+            match("dotted"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__238"
+
+    // $ANTLR start "T__239"
+    public final void mT__239() throws RecognitionException {
+        try {
+            int _type = T__239;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:237:8: ( 'dashed' )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:237:10: 'dashed'
+            {
+            match("dashed"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__239"
+
+    // $ANTLR start "T__240"
+    public final void mT__240() throws RecognitionException {
+        try {
+            int _type = T__240;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:238:8: ( 'double' )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:238:10: 'double'
+            {
+            match("double"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__240"
+
+    // $ANTLR start "T__241"
+    public final void mT__241() throws RecognitionException {
+        try {
+            int _type = T__241;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:239:8: ( 'groove' )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:239:10: 'groove'
+            {
+            match("groove"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__241"
+
+    // $ANTLR start "T__242"
+    public final void mT__242() throws RecognitionException {
+        try {
+            int _type = T__242;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:240:8: ( 'ridge' )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:240:10: 'ridge'
+            {
+            match("ridge"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__242"
+
+    // $ANTLR start "T__243"
+    public final void mT__243() throws RecognitionException {
+        try {
+            int _type = T__243;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:241:8: ( 'inset' )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:241:10: 'inset'
+            {
+            match("inset"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__243"
+
+    // $ANTLR start "T__244"
+    public final void mT__244() throws RecognitionException {
+        try {
+            int _type = T__244;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:242:8: ( 'outset' )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:242:10: 'outset'
+            {
+            match("outset"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__244"
+
+    // $ANTLR start "T__245"
+    public final void mT__245() throws RecognitionException {
+        try {
+            int _type = T__245;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:243:8: ( 'page-number' )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:243:10: 'page-number'
+            {
+            match("page-number"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__245"
+
+    // $ANTLR start "T__246"
+    public final void mT__246() throws RecognitionException {
+        try {
+            int _type = T__246;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:244:8: ( 'total-page' )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:244:10: 'total-page'
+            {
+            match("total-page"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__246"
+
+    // $ANTLR start "T__247"
+    public final void mT__247() throws RecognitionException {
+        try {
+            int _type = T__247;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:245:8: ( 'page-number-unfiltered' )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:245:10: 'page-number-unfiltered'
+            {
+            match("page-number-unfiltered"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__247"
+
+    // $ANTLR start "T__248"
+    public final void mT__248() throws RecognitionException {
+        try {
+            int _type = T__248;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:246:8: ( 'total-page-unfiltered' )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:246:10: 'total-page-unfiltered'
+            {
+            match("total-page-unfiltered"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__248"
+
+    // $ANTLR start "T__249"
+    public final void mT__249() throws RecognitionException {
+        try {
+            int _type = T__249;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:247:8: ( 'page-variable' )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:247:10: 'page-variable'
+            {
+            match("page-variable"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__249"
+
+    // $ANTLR start "T__250"
+    public final void mT__250() throws RecognitionException {
+        try {
+            int _type = T__250;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:248:8: ( 'size-to-image' )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:248:10: 'size-to-image'
+            {
+            match("size-to-image"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__250"
+
+    // $ANTLR start "T__251"
+    public final void mT__251() throws RecognitionException {
+        try {
+            int _type = T__251;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:249:8: ( 'scale-to-item' )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:249:10: 'scale-to-item'
+            {
+            match("scale-to-item"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__251"
+
+    // $ANTLR start "T__252"
+    public final void mT__252() throws RecognitionException {
+        try {
+            int _type = T__252;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:250:8: ( 'clip' )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:250:10: 'clip'
+            {
+            match("clip"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__252"
+
+    // $ANTLR start "T__253"
+    public final void mT__253() throws RecognitionException {
+        try {
+            int _type = T__253;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:251:8: ( 'url' )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:251:10: 'url'
+            {
+            match("url"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__253"
+
+    // $ANTLR start "T__254"
+    public final void mT__254() throws RecognitionException {
+        try {
+            int _type = T__254;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:252:8: ( 'embed' )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:252:10: 'embed'
+            {
+            match("embed"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__254"
+
+    // $ANTLR start "RULE_HEX"
+    public final void mRULE_HEX() throws RecognitionException {
+        try {
+            int _type = RULE_HEX;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:15005:10: ( ( '0x' | '0X' ) ( '0' .. '9' | 'a' .. 'f' | 'A' .. 'F' | '_' )+ ( '#' ( ( 'b' | 'B' ) ( 'i' | 'I' ) | ( 'l' | 'L' ) ) )? )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:15005:12: ( '0x' | '0X' ) ( '0' .. '9' | 'a' .. 'f' | 'A' .. 'F' | '_' )+ ( '#' ( ( 'b' | 'B' ) ( 'i' | 'I' ) | ( 'l' | 'L' ) ) )?
+            {
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:15005:12: ( '0x' | '0X' )
+            int alt1=2;
+            switch ( input.LA(1) ) {
+            case '0':
+                {
+                switch ( input.LA(2) ) {
+                case 'x':
+                    {
+                    alt1=1;
+                    }
+                    break;
+                case 'X':
+                    {
+                    alt1=2;
+                    }
+                    break;
+                default:
+                    NoViableAltException nvae =
+                        new NoViableAltException("", 1, 1, input);
+
+                    throw nvae;
+                }
+
+                }
+                break;
+            default:
+                NoViableAltException nvae =
+                    new NoViableAltException("", 1, 0, input);
+
+                throw nvae;
+            }
+
+            switch (alt1) {
+                case 1 :
+                    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:15005:13: '0x'
+                    {
+                    match("0x"); 
+
+
+                    }
+                    break;
+                case 2 :
+                    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:15005:18: '0X'
+                    {
+                    match("0X"); 
+
+
+                    }
+                    break;
+
+            }
+
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:15005:24: ( '0' .. '9' | 'a' .. 'f' | 'A' .. 'F' | '_' )+
+            int cnt2=0;
+            loop2:
+            do {
+                int alt2=2;
+                switch ( input.LA(1) ) {
+                case '0':
+                case '1':
+                case '2':
+                case '3':
+                case '4':
+                case '5':
+                case '6':
+                case '7':
+                case '8':
+                case '9':
+                case 'A':
+                case 'B':
+                case 'C':
+                case 'D':
+                case 'E':
+                case 'F':
+                case '_':
+                case 'a':
+                case 'b':
+                case 'c':
+                case 'd':
+                case 'e':
+                case 'f':
+                    {
+                    alt2=1;
+                    }
+                    break;
+
+                }
+
+                switch (alt2) {
+            	case 1 :
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.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 ( cnt2 >= 1 ) break loop2;
+                        EarlyExitException eee =
+                            new EarlyExitException(2, input);
+                        throw eee;
+                }
+                cnt2++;
+            } while (true);
+
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:15005:58: ( '#' ( ( 'b' | 'B' ) ( 'i' | 'I' ) | ( 'l' | 'L' ) ) )?
+            int alt4=2;
+            switch ( input.LA(1) ) {
+                case '#':
+                    {
+                    alt4=1;
+                    }
+                    break;
+            }
+
+            switch (alt4) {
+                case 1 :
+                    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:15005:59: '#' ( ( 'b' | 'B' ) ( 'i' | 'I' ) | ( 'l' | 'L' ) )
+                    {
+                    match('#'); 
+                    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:15005:63: ( ( 'b' | 'B' ) ( 'i' | 'I' ) | ( 'l' | 'L' ) )
+                    int alt3=2;
+                    switch ( input.LA(1) ) {
+                    case 'B':
+                    case 'b':
+                        {
+                        alt3=1;
+                        }
+                        break;
+                    case 'L':
+                    case 'l':
+                        {
+                        alt3=2;
+                        }
+                        break;
+                    default:
+                        NoViableAltException nvae =
+                            new NoViableAltException("", 3, 0, input);
+
+                        throw nvae;
+                    }
+
+                    switch (alt3) {
+                        case 1 :
+                            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:15005: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 :
+                            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:15005: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;
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:15007:10: ( '0' .. '9' ( '0' .. '9' | '_' )* )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:15007:12: '0' .. '9' ( '0' .. '9' | '_' )*
+            {
+            matchRange('0','9'); 
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:15007:21: ( '0' .. '9' | '_' )*
+            loop5:
+            do {
+                int alt5=2;
+                switch ( input.LA(1) ) {
+                case '0':
+                case '1':
+                case '2':
+                case '3':
+                case '4':
+                case '5':
+                case '6':
+                case '7':
+                case '8':
+                case '9':
+                case '_':
+                    {
+                    alt5=1;
+                    }
+                    break;
+
+                }
+
+                switch (alt5) {
+            	case 1 :
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.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 loop5;
+                }
+            } 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.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:15009:14: ( RULE_INT ( ( 'e' | 'E' ) ( '+' | '-' )? RULE_INT )? ( ( 'b' | 'B' ) ( 'i' | 'I' | 'd' | 'D' ) | ( 'l' | 'L' | 'd' | 'D' | 'f' | 'F' ) )? )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:15009: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.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:15009:25: ( ( 'e' | 'E' ) ( '+' | '-' )? RULE_INT )?
+            int alt7=2;
+            switch ( input.LA(1) ) {
+                case 'E':
+                case 'e':
+                    {
+                    alt7=1;
+                    }
+                    break;
+            }
+
+            switch (alt7) {
+                case 1 :
+                    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:15009: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;}
+
+                    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:15009:36: ( '+' | '-' )?
+                    int alt6=2;
+                    switch ( input.LA(1) ) {
+                        case '+':
+                        case '-':
+                            {
+                            alt6=1;
+                            }
+                            break;
+                    }
+
+                    switch (alt6) {
+                        case 1 :
+                            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.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;
+
+            }
+
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:15009:58: ( ( 'b' | 'B' ) ( 'i' | 'I' | 'd' | 'D' ) | ( 'l' | 'L' | 'd' | 'D' | 'f' | 'F' ) )?
+            int alt8=3;
+            switch ( input.LA(1) ) {
+                case 'B':
+                case 'b':
+                    {
+                    alt8=1;
+                    }
+                    break;
+                case 'D':
+                case 'F':
+                case 'L':
+                case 'd':
+                case 'f':
+                case 'l':
+                    {
+                    alt8=2;
+                    }
+                    break;
+            }
+
+            switch (alt8) {
+                case 1 :
+                    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:15009: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 :
+                    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:15009: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;
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:15011:9: ( ( '^' )? ( 'a' .. 'z' | 'A' .. 'Z' | '$' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '$' | '_' | '0' .. '9' )* )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:15011:11: ( '^' )? ( 'a' .. 'z' | 'A' .. 'Z' | '$' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '$' | '_' | '0' .. '9' )*
+            {
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:15011:11: ( '^' )?
+            int alt9=2;
+            switch ( input.LA(1) ) {
+                case '^':
+                    {
+                    alt9=1;
+                    }
+                    break;
+            }
+
+            switch (alt9) {
+                case 1 :
+                    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:15011: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.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:15011:44: ( 'a' .. 'z' | 'A' .. 'Z' | '$' | '_' | '0' .. '9' )*
+            loop10:
+            do {
+                int alt10=2;
+                switch ( input.LA(1) ) {
+                case '$':
+                case '0':
+                case '1':
+                case '2':
+                case '3':
+                case '4':
+                case '5':
+                case '6':
+                case '7':
+                case '8':
+                case '9':
+                case 'A':
+                case 'B':
+                case 'C':
+                case 'D':
+                case 'E':
+                case 'F':
+                case 'G':
+                case 'H':
+                case 'I':
+                case 'J':
+                case 'K':
+                case 'L':
+                case 'M':
+                case 'N':
+                case 'O':
+                case 'P':
+                case 'Q':
+                case 'R':
+                case 'S':
+                case 'T':
+                case 'U':
+                case 'V':
+                case 'W':
+                case 'X':
+                case 'Y':
+                case 'Z':
+                case '_':
+                case 'a':
+                case 'b':
+                case 'c':
+                case 'd':
+                case 'e':
+                case 'f':
+                case 'g':
+                case 'h':
+                case 'i':
+                case 'j':
+                case 'k':
+                case 'l':
+                case 'm':
+                case 'n':
+                case 'o':
+                case 'p':
+                case 'q':
+                case 'r':
+                case 's':
+                case 't':
+                case 'u':
+                case 'v':
+                case 'w':
+                case 'x':
+                case 'y':
+                case 'z':
+                    {
+                    alt10=1;
+                    }
+                    break;
+
+                }
+
+                switch (alt10) {
+            	case 1 :
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.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 loop10;
+                }
+            } 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.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:15013:13: ( ( '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* ( '\"' )? | '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* ( '\\'' )? ) )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:15013:15: ( '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* ( '\"' )? | '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* ( '\\'' )? )
+            {
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:15013:15: ( '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* ( '\"' )? | '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* ( '\\'' )? )
+            int alt15=2;
+            switch ( input.LA(1) ) {
+            case '\"':
+                {
+                alt15=1;
+                }
+                break;
+            case '\'':
+                {
+                alt15=2;
+                }
+                break;
+            default:
+                NoViableAltException nvae =
+                    new NoViableAltException("", 15, 0, input);
+
+                throw nvae;
+            }
+
+            switch (alt15) {
+                case 1 :
+                    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:15013:16: '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* ( '\"' )?
+                    {
+                    match('\"'); 
+                    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:15013:20: ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )*
+                    loop11:
+                    do {
+                        int alt11=3;
+                        int LA11_0 = input.LA(1);
+
+                        if ( (LA11_0=='\\') ) {
+                            alt11=1;
+                        }
+                        else if ( ((LA11_0>='\u0000' && LA11_0<='!')||(LA11_0>='#' && LA11_0<='[')||(LA11_0>=']' && LA11_0<='\uFFFF')) ) {
+                            alt11=2;
+                        }
+
+
+                        switch (alt11) {
+                    	case 1 :
+                    	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:15013:21: '\\\\' .
+                    	    {
+                    	    match('\\'); 
+                    	    matchAny(); 
+
+                    	    }
+                    	    break;
+                    	case 2 :
+                    	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:15013: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 loop11;
+                        }
+                    } while (true);
+
+                    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:15013:44: ( '\"' )?
+                    int alt12=2;
+                    switch ( input.LA(1) ) {
+                        case '\"':
+                            {
+                            alt12=1;
+                            }
+                            break;
+                    }
+
+                    switch (alt12) {
+                        case 1 :
+                            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:15013:44: '\"'
+                            {
+                            match('\"'); 
+
+                            }
+                            break;
+
+                    }
+
+
+                    }
+                    break;
+                case 2 :
+                    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:15013:49: '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* ( '\\'' )?
+                    {
+                    match('\''); 
+                    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:15013:54: ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )*
+                    loop13:
+                    do {
+                        int alt13=3;
+                        int LA13_0 = input.LA(1);
+
+                        if ( (LA13_0=='\\') ) {
+                            alt13=1;
+                        }
+                        else if ( ((LA13_0>='\u0000' && LA13_0<='&')||(LA13_0>='(' && LA13_0<='[')||(LA13_0>=']' && LA13_0<='\uFFFF')) ) {
+                            alt13=2;
+                        }
+
+
+                        switch (alt13) {
+                    	case 1 :
+                    	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:15013:55: '\\\\' .
+                    	    {
+                    	    match('\\'); 
+                    	    matchAny(); 
+
+                    	    }
+                    	    break;
+                    	case 2 :
+                    	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:15013: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 loop13;
+                        }
+                    } while (true);
+
+                    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:15013:79: ( '\\'' )?
+                    int alt14=2;
+                    switch ( input.LA(1) ) {
+                        case '\'':
+                            {
+                            alt14=1;
+                            }
+                            break;
+                    }
+
+                    switch (alt14) {
+                        case 1 :
+                            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:15013: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;
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:15015:17: ( '/*' ( options {greedy=false; } : . )* '*/' )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:15015:19: '/*' ( options {greedy=false; } : . )* '*/'
+            {
+            match("/*"); 
+
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:15015:24: ( options {greedy=false; } : . )*
+            loop16:
+            do {
+                int alt16=2;
+                int LA16_0 = input.LA(1);
+
+                if ( (LA16_0=='*') ) {
+                    int LA16_1 = input.LA(2);
+
+                    if ( (LA16_1=='/') ) {
+                        alt16=2;
+                    }
+                    else if ( ((LA16_1>='\u0000' && LA16_1<='.')||(LA16_1>='0' && LA16_1<='\uFFFF')) ) {
+                        alt16=1;
+                    }
+
+
+                }
+                else if ( ((LA16_0>='\u0000' && LA16_0<=')')||(LA16_0>='+' && LA16_0<='\uFFFF')) ) {
+                    alt16=1;
+                }
+
+
+                switch (alt16) {
+            	case 1 :
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:15015:52: .
+            	    {
+            	    matchAny(); 
+
+            	    }
+            	    break;
+
+            	default :
+            	    break loop16;
+                }
+            } 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;
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:15017:17: ( '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )? )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:15017:19: '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )?
+            {
+            match("//"); 
+
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:15017:24: (~ ( ( '\\n' | '\\r' ) ) )*
+            loop17:
+            do {
+                int alt17=2;
+                int LA17_0 = input.LA(1);
+
+                if ( ((LA17_0>='\u0000' && LA17_0<='\t')||(LA17_0>='\u000B' && LA17_0<='\f')||(LA17_0>='\u000E' && LA17_0<='\uFFFF')) ) {
+                    alt17=1;
+                }
+
+
+                switch (alt17) {
+            	case 1 :
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:15017: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 loop17;
+                }
+            } while (true);
+
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:15017:40: ( ( '\\r' )? '\\n' )?
+            int alt19=2;
+            switch ( input.LA(1) ) {
+                case '\n':
+                case '\r':
+                    {
+                    alt19=1;
+                    }
+                    break;
+            }
+
+            switch (alt19) {
+                case 1 :
+                    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:15017:41: ( '\\r' )? '\\n'
+                    {
+                    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:15017:41: ( '\\r' )?
+                    int alt18=2;
+                    switch ( input.LA(1) ) {
+                        case '\r':
+                            {
+                            alt18=1;
+                            }
+                            break;
+                    }
+
+                    switch (alt18) {
+                        case 1 :
+                            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:15017: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;
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:15019:9: ( ( ' ' | '\\t' | '\\r' | '\\n' )+ )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:15019:11: ( ' ' | '\\t' | '\\r' | '\\n' )+
+            {
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:15019:11: ( ' ' | '\\t' | '\\r' | '\\n' )+
+            int cnt20=0;
+            loop20:
+            do {
+                int alt20=2;
+                switch ( input.LA(1) ) {
+                case '\t':
+                case '\n':
+                case '\r':
+                case ' ':
+                    {
+                    alt20=1;
+                    }
+                    break;
+
+                }
+
+                switch (alt20) {
+            	case 1 :
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.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 ( cnt20 >= 1 ) break loop20;
+                        EarlyExitException eee =
+                            new EarlyExitException(20, input);
+                        throw eee;
+                }
+                cnt20++;
+            } 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;
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:15021:16: ( . )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:15021:18: .
+            {
+            matchAny(); 
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "RULE_ANY_OTHER"
+
+    public void mTokens() throws RecognitionException {
+        // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1:8: ( T__13 | T__14 | T__15 | T__16 | T__17 | T__18 | T__19 | T__20 | T__21 | T__22 | T__23 | T__24 | T__25 | T__26 | T__27 | T__28 | T__29 | T__30 | T__31 | T__32 | T__33 | T__34 | T__35 | T__36 | T__37 | T__38 | T__39 | T__40 | T__41 | T__42 | T__43 | T__44 | T__45 | T__46 | T__47 | T__48 | T__49 | T__50 | T__51 | T__52 | T__53 | T__54 | T__55 | T__56 | T__57 | T__58 | T__59 | T__60 | T__61 | T__62 | T__63 | T__64 | T__65 | T__66 | T__67 | T__68 | T__69 | T__70 | T__71 | T__72 | T__73 | T__74 | T__75 | T__76 | T__77 | T__78 | T__79 | T__80 | T__81 | T__82 | T__83 | T__84 | T__85 | T__86 | T__87 | T__88 | T__89 | T__90 | T__91 | T__92 | T__93 | T__94 | T__95 | T__96 | T__97 | T__98 | T__99 | T__100 | T__101 | T__102 | T__103 | T__104 | T__105 | T__106 | T__107 | T__108 | T__109 | T__110 | T__111 | T__112 | T__113 | T__114 | T__115 | T__116 | T__117 | T__118 | T__119 | T__120 | T__121 | T__122 | T__123 | T__124 | T__125 | T__126 | T__127 | T__128 | T__129 | T__130 | T__131 | T__132 | T__133 | T__134 | T__135 | T__136 | T__137 | T__138 | T__139 | T__140 | T__141 | T__142 | T__143 | T__144 | T__145 | T__146 | T__147 | T__148 | T__149 | T__150 | T__151 | T__152 | T__153 | T__154 | T__155 | T__156 | T__157 | T__158 | T__159 | T__160 | T__161 | T__162 | T__163 | T__164 | T__165 | T__166 | T__167 | T__168 | T__169 | T__170 | T__171 | 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 | T__189 | T__190 | T__191 | T__192 | T__193 | T__194 | T__195 | T__196 | T__197 | T__198 | T__199 | T__200 | T__201 | T__202 | T__203 | T__204 | T__205 | T__206 | T__207 | T__208 | T__209 | T__210 | T__211 | T__212 | T__213 | T__214 | T__215 | T__216 | T__217 | T__218 | T__219 | T__220 | T__221 | T__222 | T__223 | T__224 | T__225 | T__226 | T__227 | T__228 | T__229 | T__230 | T__231 | T__232 | T__233 | T__234 | T__235 | T__236 | T__237 | T__238 | T__239 | T__240 | T__241 | T__242 | T__243 | T__244 | T__245 | T__246 | T__247 | T__248 | T__249 | T__250 | T__251 | T__252 | T__253 | T__254 | RULE_HEX | RULE_INT | RULE_DECIMAL | RULE_ID | RULE_STRING | RULE_ML_COMMENT | RULE_SL_COMMENT | RULE_WS | RULE_ANY_OTHER )
+        int alt21=251;
+        alt21 = dfa21.predict(input);
+        switch (alt21) {
+            case 1 :
+                // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1:10: T__13
+                {
+                mT__13(); 
+
+                }
+                break;
+            case 2 :
+                // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1:16: T__14
+                {
+                mT__14(); 
+
+                }
+                break;
+            case 3 :
+                // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1:22: T__15
+                {
+                mT__15(); 
+
+                }
+                break;
+            case 4 :
+                // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1:28: T__16
+                {
+                mT__16(); 
+
+                }
+                break;
+            case 5 :
+                // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1:34: T__17
+                {
+                mT__17(); 
+
+                }
+                break;
+            case 6 :
+                // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1:40: T__18
+                {
+                mT__18(); 
+
+                }
+                break;
+            case 7 :
+                // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1:46: T__19
+                {
+                mT__19(); 
+
+                }
+                break;
+            case 8 :
+                // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1:52: T__20
+                {
+                mT__20(); 
+
+                }
+                break;
+            case 9 :
+                // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1:58: T__21
+                {
+                mT__21(); 
+
+                }
+                break;
+            case 10 :
+                // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1:64: T__22
+                {
+                mT__22(); 
+
+                }
+                break;
+            case 11 :
+                // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1:70: T__23
+                {
+                mT__23(); 
+
+                }
+                break;
+            case 12 :
+                // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1:76: T__24
+                {
+                mT__24(); 
+
+                }
+                break;
+            case 13 :
+                // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1:82: T__25
+                {
+                mT__25(); 
+
+                }
+                break;
+            case 14 :
+                // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1:88: T__26
+                {
+                mT__26(); 
+
+                }
+                break;
+            case 15 :
+                // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1:94: T__27
+                {
+                mT__27(); 
+
+                }
+                break;
+            case 16 :
+                // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1:100: T__28
+                {
+                mT__28(); 
+
+                }
+                break;
+            case 17 :
+                // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1:106: T__29
+                {
+                mT__29(); 
+
+                }
+                break;
+            case 18 :
+                // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1:112: T__30
+                {
+                mT__30(); 
+
+                }
+                break;
+            case 19 :
+                // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1:118: T__31
+                {
+                mT__31(); 
+
+                }
+                break;
+            case 20 :
+                // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1:124: T__32
+                {
+                mT__32(); 
+
+                }
+                break;
+            case 21 :
+                // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1:130: T__33
+                {
+                mT__33(); 
+
+                }
+                break;
+            case 22 :
+                // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1:136: T__34
+                {
+                mT__34(); 
+
+                }
+                break;
+            case 23 :
+                // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1:142: T__35
+                {
+                mT__35(); 
+
+                }
+                break;
+            case 24 :
+                // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1:148: T__36
+                {
+                mT__36(); 
+
+                }
+                break;
+            case 25 :
+                // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1:154: T__37
+                {
+                mT__37(); 
+
+                }
+                break;
+            case 26 :
+                // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1:160: T__38
+                {
+                mT__38(); 
+
+                }
+                break;
+            case 27 :
+                // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1:166: T__39
+                {
+                mT__39(); 
+
+                }
+                break;
+            case 28 :
+                // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1:172: T__40
+                {
+                mT__40(); 
+
+                }
+                break;
+            case 29 :
+                // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1:178: T__41
+                {
+                mT__41(); 
+
+                }
+                break;
+            case 30 :
+                // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1:184: T__42
+                {
+                mT__42(); 
+
+                }
+                break;
+            case 31 :
+                // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1:190: T__43
+                {
+                mT__43(); 
+
+                }
+                break;
+            case 32 :
+                // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1:196: T__44
+                {
+                mT__44(); 
+
+                }
+                break;
+            case 33 :
+                // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1:202: T__45
+                {
+                mT__45(); 
+
+                }
+                break;
+            case 34 :
+                // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1:208: T__46
+                {
+                mT__46(); 
+
+                }
+                break;
+            case 35 :
+                // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1:214: T__47
+                {
+                mT__47(); 
+
+                }
+                break;
+            case 36 :
+                // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1:220: T__48
+                {
+                mT__48(); 
+
+                }
+                break;
+            case 37 :
+                // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1:226: T__49
+                {
+                mT__49(); 
+
+                }
+                break;
+            case 38 :
+                // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1:232: T__50
+                {
+                mT__50(); 
+
+                }
+                break;
+            case 39 :
+                // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1:238: T__51
+                {
+                mT__51(); 
+
+                }
+                break;
+            case 40 :
+                // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1:244: T__52
+                {
+                mT__52(); 
+
+                }
+                break;
+            case 41 :
+                // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1:250: T__53
+                {
+                mT__53(); 
+
+                }
+                break;
+            case 42 :
+                // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1:256: T__54
+                {
+                mT__54(); 
+
+                }
+                break;
+            case 43 :
+                // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1:262: T__55
+                {
+                mT__55(); 
+
+                }
+                break;
+            case 44 :
+                // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1:268: T__56
+                {
+                mT__56(); 
+
+                }
+                break;
+            case 45 :
+                // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1:274: T__57
+                {
+                mT__57(); 
+
+                }
+                break;
+            case 46 :
+                // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1:280: T__58
+                {
+                mT__58(); 
+
+                }
+                break;
+            case 47 :
+                // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1:286: T__59
+                {
+                mT__59(); 
+
+                }
+                break;
+            case 48 :
+                // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1:292: T__60
+                {
+                mT__60(); 
+
+                }
+                break;
+            case 49 :
+                // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1:298: T__61
+                {
+                mT__61(); 
+
+                }
+                break;
+            case 50 :
+                // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1:304: T__62
+                {
+                mT__62(); 
+
+                }
+                break;
+            case 51 :
+                // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1:310: T__63
+                {
+                mT__63(); 
+
+                }
+                break;
+            case 52 :
+                // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1:316: T__64
+                {
+                mT__64(); 
+
+                }
+                break;
+            case 53 :
+                // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1:322: T__65
+                {
+                mT__65(); 
+
+                }
+                break;
+            case 54 :
+                // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1:328: T__66
+                {
+                mT__66(); 
+
+                }
+                break;
+            case 55 :
+                // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1:334: T__67
+                {
+                mT__67(); 
+
+                }
+                break;
+            case 56 :
+                // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1:340: T__68
+                {
+                mT__68(); 
+
+                }
+                break;
+            case 57 :
+                // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1:346: T__69
+                {
+                mT__69(); 
+
+                }
+                break;
+            case 58 :
+                // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1:352: T__70
+                {
+                mT__70(); 
+
+                }
+                break;
+            case 59 :
+                // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1:358: T__71
+                {
+                mT__71(); 
+
+                }
+                break;
+            case 60 :
+                // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1:364: T__72
+                {
+                mT__72(); 
+
+                }
+                break;
+            case 61 :
+                // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1:370: T__73
+                {
+                mT__73(); 
+
+                }
+                break;
+            case 62 :
+                // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1:376: T__74
+                {
+                mT__74(); 
+
+                }
+                break;
+            case 63 :
+                // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1:382: T__75
+                {
+                mT__75(); 
+
+                }
+                break;
+            case 64 :
+                // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1:388: T__76
+                {
+                mT__76(); 
+
+                }
+                break;
+            case 65 :
+                // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1:394: T__77
+                {
+                mT__77(); 
+
+                }
+                break;
+            case 66 :
+                // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1:400: T__78
+                {
+                mT__78(); 
+
+                }
+                break;
+            case 67 :
+                // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1:406: T__79
+                {
+                mT__79(); 
+
+                }
+                break;
+            case 68 :
+                // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1:412: T__80
+                {
+                mT__80(); 
+
+                }
+                break;
+            case 69 :
+                // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1:418: T__81
+                {
+                mT__81(); 
+
+                }
+                break;
+            case 70 :
+                // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1:424: T__82
+                {
+                mT__82(); 
+
+                }
+                break;
+            case 71 :
+                // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1:430: T__83
+                {
+                mT__83(); 
+
+                }
+                break;
+            case 72 :
+                // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1:436: T__84
+                {
+                mT__84(); 
+
+                }
+                break;
+            case 73 :
+                // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1:442: T__85
+                {
+                mT__85(); 
+
+                }
+                break;
+            case 74 :
+                // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1:448: T__86
+                {
+                mT__86(); 
+
+                }
+                break;
+            case 75 :
+                // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1:454: T__87
+                {
+                mT__87(); 
+
+                }
+                break;
+            case 76 :
+                // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1:460: T__88
+                {
+                mT__88(); 
+
+                }
+                break;
+            case 77 :
+                // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1:466: T__89
+                {
+                mT__89(); 
+
+                }
+                break;
+            case 78 :
+                // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1:472: T__90
+                {
+                mT__90(); 
+
+                }
+                break;
+            case 79 :
+                // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1:478: T__91
+                {
+                mT__91(); 
+
+                }
+                break;
+            case 80 :
+                // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1:484: T__92
+                {
+                mT__92(); 
+
+                }
+                break;
+            case 81 :
+                // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1:490: T__93
+                {
+                mT__93(); 
+
+                }
+                break;
+            case 82 :
+                // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1:496: T__94
+                {
+                mT__94(); 
+
+                }
+                break;
+            case 83 :
+                // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1:502: T__95
+                {
+                mT__95(); 
+
+                }
+                break;
+            case 84 :
+                // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1:508: T__96
+                {
+                mT__96(); 
+
+                }
+                break;
+            case 85 :
+                // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1:514: T__97
+                {
+                mT__97(); 
+
+                }
+                break;
+            case 86 :
+                // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1:520: T__98
+                {
+                mT__98(); 
+
+                }
+                break;
+            case 87 :
+                // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1:526: T__99
+                {
+                mT__99(); 
+
+                }
+                break;
+            case 88 :
+                // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1:532: T__100
+                {
+                mT__100(); 
+
+                }
+                break;
+            case 89 :
+                // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1:539: T__101
+                {
+                mT__101(); 
+
+                }
+                break;
+            case 90 :
+                // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1:546: T__102
+                {
+                mT__102(); 
+
+                }
+                break;
+            case 91 :
+                // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1:553: T__103
+                {
+                mT__103(); 
+
+                }
+                break;
+            case 92 :
+                // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1:560: T__104
+                {
+                mT__104(); 
+
+                }
+                break;
+            case 93 :
+                // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1:567: T__105
+                {
+                mT__105(); 
+
+                }
+                break;
+            case 94 :
+                // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1:574: T__106
+                {
+                mT__106(); 
+
+                }
+                break;
+            case 95 :
+                // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1:581: T__107
+                {
+                mT__107(); 
+
+                }
+                break;
+            case 96 :
+                // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1:588: T__108
+                {
+                mT__108(); 
+
+                }
+                break;
+            case 97 :
+                // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1:595: T__109
+                {
+                mT__109(); 
+
+                }
+                break;
+            case 98 :
+                // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1:602: T__110
+                {
+                mT__110(); 
+
+                }
+                break;
+            case 99 :
+                // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1:609: T__111
+                {
+                mT__111(); 
+
+                }
+                break;
+            case 100 :
+                // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1:616: T__112
+                {
+                mT__112(); 
+
+                }
+                break;
+            case 101 :
+                // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1:623: T__113
+                {
+                mT__113(); 
+
+                }
+                break;
+            case 102 :
+                // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1:630: T__114
+                {
+                mT__114(); 
+
+                }
+                break;
+            case 103 :
+                // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1:637: T__115
+                {
+                mT__115(); 
+
+                }
+                break;
+            case 104 :
+                // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1:644: T__116
+                {
+                mT__116(); 
+
+                }
+                break;
+            case 105 :
+                // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1:651: T__117
+                {
+                mT__117(); 
+
+                }
+                break;
+            case 106 :
+                // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1:658: T__118
+                {
+                mT__118(); 
+
+                }
+                break;
+            case 107 :
+                // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1:665: T__119
+                {
+                mT__119(); 
+
+                }
+                break;
+            case 108 :
+                // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1:672: T__120
+                {
+                mT__120(); 
+
+                }
+                break;
+            case 109 :
+                // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1:679: T__121
+                {
+                mT__121(); 
+
+                }
+                break;
+            case 110 :
+                // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1:686: T__122
+                {
+                mT__122(); 
+
+                }
+                break;
+            case 111 :
+                // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1:693: T__123
+                {
+                mT__123(); 
+
+                }
+                break;
+            case 112 :
+                // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1:700: T__124
+                {
+                mT__124(); 
+
+                }
+                break;
+            case 113 :
+                // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1:707: T__125
+                {
+                mT__125(); 
+
+                }
+                break;
+            case 114 :
+                // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1:714: T__126
+                {
+                mT__126(); 
+
+                }
+                break;
+            case 115 :
+                // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1:721: T__127
+                {
+                mT__127(); 
+
+                }
+                break;
+            case 116 :
+                // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1:728: T__128
+                {
+                mT__128(); 
+
+                }
+                break;
+            case 117 :
+                // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1:735: T__129
+                {
+                mT__129(); 
+
+                }
+                break;
+            case 118 :
+                // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1:742: T__130
+                {
+                mT__130(); 
+
+                }
+                break;
+            case 119 :
+                // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1:749: T__131
+                {
+                mT__131(); 
+
+                }
+                break;
+            case 120 :
+                // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1:756: T__132
+                {
+                mT__132(); 
+
+                }
+                break;
+            case 121 :
+                // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1:763: T__133
+                {
+                mT__133(); 
+
+                }
+                break;
+            case 122 :
+                // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1:770: T__134
+                {
+                mT__134(); 
+
+                }
+                break;
+            case 123 :
+                // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1:777: T__135
+                {
+                mT__135(); 
+
+                }
+                break;
+            case 124 :
+                // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1:784: T__136
+                {
+                mT__136(); 
+
+                }
+                break;
+            case 125 :
+                // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1:791: T__137
+                {
+                mT__137(); 
+
+                }
+                break;
+            case 126 :
+                // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1:798: T__138
+                {
+                mT__138(); 
+
+                }
+                break;
+            case 127 :
+                // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1:805: T__139
+                {
+                mT__139(); 
+
+                }
+                break;
+            case 128 :
+                // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1:812: T__140
+                {
+                mT__140(); 
+
+                }
+                break;
+            case 129 :
+                // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1:819: T__141
+                {
+                mT__141(); 
+
+                }
+                break;
+            case 130 :
+                // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1:826: T__142
+                {
+                mT__142(); 
+
+                }
+                break;
+            case 131 :
+                // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1:833: T__143
+                {
+                mT__143(); 
+
+                }
+                break;
+            case 132 :
+                // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1:840: T__144
+                {
+                mT__144(); 
+
+                }
+                break;
+            case 133 :
+                // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1:847: T__145
+                {
+                mT__145(); 
+
+                }
+                break;
+            case 134 :
+                // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1:854: T__146
+                {
+                mT__146(); 
+
+                }
+                break;
+            case 135 :
+                // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1:861: T__147
+                {
+                mT__147(); 
+
+                }
+                break;
+            case 136 :
+                // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1:868: T__148
+                {
+                mT__148(); 
+
+                }
+                break;
+            case 137 :
+                // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1:875: T__149
+                {
+                mT__149(); 
+
+                }
+                break;
+            case 138 :
+                // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1:882: T__150
+                {
+                mT__150(); 
+
+                }
+                break;
+            case 139 :
+                // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1:889: T__151
+                {
+                mT__151(); 
+
+                }
+                break;
+            case 140 :
+                // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1:896: T__152
+                {
+                mT__152(); 
+
+                }
+                break;
+            case 141 :
+                // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1:903: T__153
+                {
+                mT__153(); 
+
+                }
+                break;
+            case 142 :
+                // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1:910: T__154
+                {
+                mT__154(); 
+
+                }
+                break;
+            case 143 :
+                // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1:917: T__155
+                {
+                mT__155(); 
+
+                }
+                break;
+            case 144 :
+                // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1:924: T__156
+                {
+                mT__156(); 
+
+                }
+                break;
+            case 145 :
+                // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1:931: T__157
+                {
+                mT__157(); 
+
+                }
+                break;
+            case 146 :
+                // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1:938: T__158
+                {
+                mT__158(); 
+
+                }
+                break;
+            case 147 :
+                // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1:945: T__159
+                {
+                mT__159(); 
+
+                }
+                break;
+            case 148 :
+                // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1:952: T__160
+                {
+                mT__160(); 
+
+                }
+                break;
+            case 149 :
+                // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1:959: T__161
+                {
+                mT__161(); 
+
+                }
+                break;
+            case 150 :
+                // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1:966: T__162
+                {
+                mT__162(); 
+
+                }
+                break;
+            case 151 :
+                // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1:973: T__163
+                {
+                mT__163(); 
+
+                }
+                break;
+            case 152 :
+                // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1:980: T__164
+                {
+                mT__164(); 
+
+                }
+                break;
+            case 153 :
+                // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1:987: T__165
+                {
+                mT__165(); 
+
+                }
+                break;
+            case 154 :
+                // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1:994: T__166
+                {
+                mT__166(); 
+
+                }
+                break;
+            case 155 :
+                // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1:1001: T__167
+                {
+                mT__167(); 
+
+                }
+                break;
+            case 156 :
+                // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1:1008: T__168
+                {
+                mT__168(); 
+
+                }
+                break;
+            case 157 :
+                // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1:1015: T__169
+                {
+                mT__169(); 
+
+                }
+                break;
+            case 158 :
+                // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1:1022: T__170
+                {
+                mT__170(); 
+
+                }
+                break;
+            case 159 :
+                // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1:1029: T__171
+                {
+                mT__171(); 
+
+                }
+                break;
+            case 160 :
+                // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1:1036: T__172
+                {
+                mT__172(); 
+
+                }
+                break;
+            case 161 :
+                // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1:1043: T__173
+                {
+                mT__173(); 
+
+                }
+                break;
+            case 162 :
+                // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1:1050: T__174
+                {
+                mT__174(); 
+
+                }
+                break;
+            case 163 :
+                // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1:1057: T__175
+                {
+                mT__175(); 
+
+                }
+                break;
+            case 164 :
+                // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1:1064: T__176
+                {
+                mT__176(); 
+
+                }
+                break;
+            case 165 :
+                // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1:1071: T__177
+                {
+                mT__177(); 
+
+                }
+                break;
+            case 166 :
+                // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1:1078: T__178
+                {
+                mT__178(); 
+
+                }
+                break;
+            case 167 :
+                // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1:1085: T__179
+                {
+                mT__179(); 
+
+                }
+                break;
+            case 168 :
+                // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1:1092: T__180
+                {
+                mT__180(); 
+
+                }
+                break;
+            case 169 :
+                // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1:1099: T__181
+                {
+                mT__181(); 
+
+                }
+                break;
+            case 170 :
+                // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1:1106: T__182
+                {
+                mT__182(); 
+
+                }
+                break;
+            case 171 :
+                // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1:1113: T__183
+                {
+                mT__183(); 
+
+                }
+                break;
+            case 172 :
+                // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1:1120: T__184
+                {
+                mT__184(); 
+
+                }
+                break;
+            case 173 :
+                // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1:1127: T__185
+                {
+                mT__185(); 
+
+                }
+                break;
+            case 174 :
+                // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1:1134: T__186
+                {
+                mT__186(); 
+
+                }
+                break;
+            case 175 :
+                // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1:1141: T__187
+                {
+                mT__187(); 
+
+                }
+                break;
+            case 176 :
+                // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1:1148: T__188
+                {
+                mT__188(); 
+
+                }
+                break;
+            case 177 :
+                // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1:1155: T__189
+                {
+                mT__189(); 
+
+                }
+                break;
+            case 178 :
+                // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1:1162: T__190
+                {
+                mT__190(); 
+
+                }
+                break;
+            case 179 :
+                // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1:1169: T__191
+                {
+                mT__191(); 
+
+                }
+                break;
+            case 180 :
+                // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1:1176: T__192
+                {
+                mT__192(); 
+
+                }
+                break;
+            case 181 :
+                // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1:1183: T__193
+                {
+                mT__193(); 
+
+                }
+                break;
+            case 182 :
+                // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1:1190: T__194
+                {
+                mT__194(); 
+
+                }
+                break;
+            case 183 :
+                // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1:1197: T__195
+                {
+                mT__195(); 
+
+                }
+                break;
+            case 184 :
+                // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1:1204: T__196
+                {
+                mT__196(); 
+
+                }
+                break;
+            case 185 :
+                // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1:1211: T__197
+                {
+                mT__197(); 
+
+                }
+                break;
+            case 186 :
+                // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1:1218: T__198
+                {
+                mT__198(); 
+
+                }
+                break;
+            case 187 :
+                // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1:1225: T__199
+                {
+                mT__199(); 
+
+                }
+                break;
+            case 188 :
+                // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1:1232: T__200
+                {
+                mT__200(); 
+
+                }
+                break;
+            case 189 :
+                // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1:1239: T__201
+                {
+                mT__201(); 
+
+                }
+                break;
+            case 190 :
+                // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1:1246: T__202
+                {
+                mT__202(); 
+
+                }
+                break;
+            case 191 :
+                // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1:1253: T__203
+                {
+                mT__203(); 
+
+                }
+                break;
+            case 192 :
+                // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1:1260: T__204
+                {
+                mT__204(); 
+
+                }
+                break;
+            case 193 :
+                // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1:1267: T__205
+                {
+                mT__205(); 
+
+                }
+                break;
+            case 194 :
+                // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1:1274: T__206
+                {
+                mT__206(); 
+
+                }
+                break;
+            case 195 :
+                // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1:1281: T__207
+                {
+                mT__207(); 
+
+                }
+                break;
+            case 196 :
+                // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1:1288: T__208
+                {
+                mT__208(); 
+
+                }
+                break;
+            case 197 :
+                // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1:1295: T__209
+                {
+                mT__209(); 
+
+                }
+                break;
+            case 198 :
+                // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1:1302: T__210
+                {
+                mT__210(); 
+
+                }
+                break;
+            case 199 :
+                // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1:1309: T__211
+                {
+                mT__211(); 
+
+                }
+                break;
+            case 200 :
+                // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1:1316: T__212
+                {
+                mT__212(); 
+
+                }
+                break;
+            case 201 :
+                // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1:1323: T__213
+                {
+                mT__213(); 
+
+                }
+                break;
+            case 202 :
+                // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1:1330: T__214
+                {
+                mT__214(); 
+
+                }
+                break;
+            case 203 :
+                // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1:1337: T__215
+                {
+                mT__215(); 
+
+                }
+                break;
+            case 204 :
+                // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1:1344: T__216
+                {
+                mT__216(); 
+
+                }
+                break;
+            case 205 :
+                // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1:1351: T__217
+                {
+                mT__217(); 
+
+                }
+                break;
+            case 206 :
+                // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1:1358: T__218
+                {
+                mT__218(); 
+
+                }
+                break;
+            case 207 :
+                // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1:1365: T__219
+                {
+                mT__219(); 
+
+                }
+                break;
+            case 208 :
+                // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1:1372: T__220
+                {
+                mT__220(); 
+
+                }
+                break;
+            case 209 :
+                // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1:1379: T__221
+                {
+                mT__221(); 
+
+                }
+                break;
+            case 210 :
+                // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1:1386: T__222
+                {
+                mT__222(); 
+
+                }
+                break;
+            case 211 :
+                // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1:1393: T__223
+                {
+                mT__223(); 
+
+                }
+                break;
+            case 212 :
+                // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1:1400: T__224
+                {
+                mT__224(); 
+
+                }
+                break;
+            case 213 :
+                // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1:1407: T__225
+                {
+                mT__225(); 
+
+                }
+                break;
+            case 214 :
+                // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1:1414: T__226
+                {
+                mT__226(); 
+
+                }
+                break;
+            case 215 :
+                // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1:1421: T__227
+                {
+                mT__227(); 
+
+                }
+                break;
+            case 216 :
+                // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1:1428: T__228
+                {
+                mT__228(); 
+
+                }
+                break;
+            case 217 :
+                // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1:1435: T__229
+                {
+                mT__229(); 
+
+                }
+                break;
+            case 218 :
+                // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1:1442: T__230
+                {
+                mT__230(); 
+
+                }
+                break;
+            case 219 :
+                // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1:1449: T__231
+                {
+                mT__231(); 
+
+                }
+                break;
+            case 220 :
+                // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1:1456: T__232
+                {
+                mT__232(); 
+
+                }
+                break;
+            case 221 :
+                // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1:1463: T__233
+                {
+                mT__233(); 
+
+                }
+                break;
+            case 222 :
+                // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1:1470: T__234
+                {
+                mT__234(); 
+
+                }
+                break;
+            case 223 :
+                // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1:1477: T__235
+                {
+                mT__235(); 
+
+                }
+                break;
+            case 224 :
+                // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1:1484: T__236
+                {
+                mT__236(); 
+
+                }
+                break;
+            case 225 :
+                // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1:1491: T__237
+                {
+                mT__237(); 
+
+                }
+                break;
+            case 226 :
+                // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1:1498: T__238
+                {
+                mT__238(); 
+
+                }
+                break;
+            case 227 :
+                // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1:1505: T__239
+                {
+                mT__239(); 
+
+                }
+                break;
+            case 228 :
+                // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1:1512: T__240
+                {
+                mT__240(); 
+
+                }
+                break;
+            case 229 :
+                // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1:1519: T__241
+                {
+                mT__241(); 
+
+                }
+                break;
+            case 230 :
+                // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1:1526: T__242
+                {
+                mT__242(); 
+
+                }
+                break;
+            case 231 :
+                // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1:1533: T__243
+                {
+                mT__243(); 
+
+                }
+                break;
+            case 232 :
+                // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1:1540: T__244
+                {
+                mT__244(); 
+
+                }
+                break;
+            case 233 :
+                // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1:1547: T__245
+                {
+                mT__245(); 
+
+                }
+                break;
+            case 234 :
+                // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1:1554: T__246
+                {
+                mT__246(); 
+
+                }
+                break;
+            case 235 :
+                // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1:1561: T__247
+                {
+                mT__247(); 
+
+                }
+                break;
+            case 236 :
+                // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1:1568: T__248
+                {
+                mT__248(); 
+
+                }
+                break;
+            case 237 :
+                // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1:1575: T__249
+                {
+                mT__249(); 
+
+                }
+                break;
+            case 238 :
+                // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1:1582: T__250
+                {
+                mT__250(); 
+
+                }
+                break;
+            case 239 :
+                // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1:1589: T__251
+                {
+                mT__251(); 
+
+                }
+                break;
+            case 240 :
+                // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1:1596: T__252
+                {
+                mT__252(); 
+
+                }
+                break;
+            case 241 :
+                // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1:1603: T__253
+                {
+                mT__253(); 
+
+                }
+                break;
+            case 242 :
+                // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1:1610: T__254
+                {
+                mT__254(); 
+
+                }
+                break;
+            case 243 :
+                // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1:1617: RULE_HEX
+                {
+                mRULE_HEX(); 
+
+                }
+                break;
+            case 244 :
+                // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1:1626: RULE_INT
+                {
+                mRULE_INT(); 
+
+                }
+                break;
+            case 245 :
+                // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1:1635: RULE_DECIMAL
+                {
+                mRULE_DECIMAL(); 
+
+                }
+                break;
+            case 246 :
+                // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1:1648: RULE_ID
+                {
+                mRULE_ID(); 
+
+                }
+                break;
+            case 247 :
+                // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1:1656: RULE_STRING
+                {
+                mRULE_STRING(); 
+
+                }
+                break;
+            case 248 :
+                // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1:1668: RULE_ML_COMMENT
+                {
+                mRULE_ML_COMMENT(); 
+
+                }
+                break;
+            case 249 :
+                // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1:1684: RULE_SL_COMMENT
+                {
+                mRULE_SL_COMMENT(); 
+
+                }
+                break;
+            case 250 :
+                // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1:1700: RULE_WS
+                {
+                mRULE_WS(); 
+
+                }
+                break;
+            case 251 :
+                // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1:1708: RULE_ANY_OTHER
+                {
+                mRULE_ANY_OTHER(); 
+
+                }
+                break;
+
+        }
+
+    }
+
+
+    protected DFA21 dfa21 = new DFA21(this);
+    static final String DFA21_eotS =
+        "\1\uffff\1\75\1\uffff\3\75\1\uffff\16\75\2\uffff\1\u009a\1\u009c"+
+        "\1\u009f\2\uffff\1\u00a4\3\uffff\1\u00aa\1\u00ae\1\u00b0\1\u00b2"+
+        "\1\u00b4\1\u00b6\1\u00b8\1\u00ba\1\u00bd\1\u00bf\1\uffff\2\75\2"+
+        "\u00c5\1\64\5\uffff\2\75\1\u00ce\1\u00cf\1\u00d0\3\75\2\uffff\4"+
+        "\75\1\u00db\1\75\1\u00de\4\75\1\uffff\4\75\1\u00f1\3\75\1\u00f6"+
+        "\26\75\1\u011a\3\75\1\u0121\10\75\1\u0137\2\75\1\u013b\2\75\1\u013e"+
+        "\1\u013f\1\u0140\2\75\1\u0143\20\75\1\u015b\1\75\6\uffff\1\u015e"+
+        "\6\uffff\1\u0160\26\uffff\1\u0162\7\uffff\2\75\1\uffff\1\u00c5\4"+
+        "\uffff\5\75\3\uffff\2\75\1\u016d\7\75\1\uffff\2\75\1\uffff\1\75"+
+        "\1\u0179\20\75\1\uffff\4\75\1\uffff\11\75\1\u019a\20\75\1\u01ab"+
+        "\7\75\2\uffff\5\75\2\uffff\11\75\1\u01c1\13\75\1\uffff\2\75\1\u01d0"+
+        "\1\uffff\2\75\3\uffff\2\75\3\uffff\1\75\1\u01d8\2\75\1\u01db\20"+
+        "\75\1\uffff\1\75\6\uffff\1\75\1\u01f0\1\u01f1\3\75\1\u01f6\3\75"+
+        "\1\uffff\3\75\1\u01fe\3\75\1\u0203\3\75\1\uffff\1\u0208\3\75\1\u020c"+
+        "\10\75\1\u0216\1\75\1\u0218\1\75\1\u021a\11\75\1\u0225\4\75\1\uffff"+
+        "\10\75\1\u0233\6\75\1\u023a\1\uffff\1\u023d\1\75\1\u023f\7\75\1"+
+        "\u0247\2\75\1\uffff\7\75\1\uffff\2\75\1\u0254\13\75\1\uffff\3\75"+
+        "\1\u0263\2\uffff\1\75\1\uffff\1\75\1\u0267\1\uffff\1\75\1\u0269"+
+        "\3\75\1\u026d\1\u026e\11\75\1\u0278\1\u0279\2\75\2\uffff\2\75\1"+
+        "\uffff\1\75\1\uffff\4\75\1\u0285\2\75\1\uffff\4\75\1\uffff\1\u028d"+
+        "\1\uffff\1\75\1\u028f\1\uffff\2\75\1\u0292\1\uffff\1\75\1\u0294"+
+        "\1\u0296\1\75\1\u0298\4\75\1\uffff\1\75\1\uffff\1\u029e\1\uffff"+
+        "\1\u02a0\4\75\1\u02a6\3\75\2\uffff\3\75\1\u02ad\1\u02af\3\75\1\uffff"+
+        "\1\u02b3\1\75\1\u02b5\1\75\1\uffff\5\75\1\u02bc\1\uffff\2\75\1\uffff"+
+        "\1\75\1\uffff\1\u02c0\1\u02c1\1\u02c2\4\75\1\uffff\2\75\1\u02ca"+
+        "\1\75\1\u02cc\6\75\2\uffff\1\75\1\uffff\14\75\2\uffff\2\75\1\uffff"+
+        "\1\75\1\uffff\3\75\2\uffff\1\u02e9\2\75\1\uffff\1\u02ec\3\75\1\u02f0"+
+        "\2\uffff\1\75\1\u02f2\2\75\2\uffff\5\75\1\uffff\7\75\1\uffff\1\75"+
+        "\1\uffff\1\u0303\1\u0304\1\uffff\1\75\1\uffff\1\u0306\1\uffff\1"+
+        "\75\1\uffff\1\u0308\1\75\1\u030a\1\75\1\u030c\1\uffff\1\u030d\1"+
+        "\uffff\4\75\1\u0312\1\uffff\1\u0313\1\u0314\4\75\3\uffff\1\75\1"+
+        "\u031b\1\75\1\uffff\1\75\1\uffff\1\u031e\3\75\1\uffff\1\75\1\uffff"+
+        "\3\75\3\uffff\2\75\1\u0329\4\75\1\uffff\1\u032e\1\uffff\1\u032f"+
+        "\1\75\1\u0331\1\u0332\3\75\1\u0336\1\75\1\u033b\2\75\1\u033e\1\u033f"+
+        "\1\u0340\4\75\3\uffff\1\75\1\u0346\1\u0347\1\u0348\1\u0349\1\75"+
+        "\1\uffff\1\u034b\1\75\1\uffff\1\u034d\2\75\1\uffff\1\u0350\1\uffff"+
+        "\1\u0351\1\75\1\uffff\3\75\1\u0357\1\uffff\3\75\1\u035b\1\75\1\u035d"+
+        "\2\75\2\uffff\1\u0360\1\uffff\1\75\1\uffff\1\75\1\uffff\1\75\3\uffff"+
+        "\1\u0368\1\75\1\u036a\3\uffff\6\75\1\uffff\1\75\1\u0372\1\uffff"+
+        "\1\75\1\u0374\1\u0375\1\uffff\5\75\1\u037c\1\uffff\1\75\1\uffff"+
+        "\2\75\2\uffff\1\75\2\uffff\1\75\1\u0386\1\75\1\uffff\3\75\1\u038b"+
+        "\1\uffff\1\u038c\1\u038d\3\uffff\3\75\1\u0391\1\75\4\uffff\1\75"+
+        "\1\uffff\1\75\1\uffff\2\75\2\uffff\1\75\2\uffff\1\u039d\1\u039e"+
+        "\1\uffff\2\75\1\u03a1\1\uffff\1\75\1\uffff\2\75\1\uffff\1\75\1\u03a6"+
+        "\1\75\5\uffff\1\75\1\uffff\3\75\1\u03ac\3\75\1\uffff\1\75\3\uffff"+
+        "\3\75\1\u03b5\1\75\1\uffff\1\75\4\uffff\3\75\2\uffff\1\u03bd\3\75"+
+        "\3\uffff\2\75\1\u03c3\1\uffff\2\75\1\uffff\3\75\7\uffff\1\u03ca"+
+        "\1\75\1\uffff\1\75\1\u03cd\1\u03cf\1\75\1\uffff\1\u03d1\1\u03d2"+
+        "\3\75\1\uffff\3\75\1\u03d9\1\uffff\1\75\1\u03dc\1\u03dd\1\uffff"+
+        "\4\75\1\u03e2\3\uffff\3\75\1\u03e6\1\u03e7\1\uffff\1\75\1\u03e9"+
+        "\1\u03ea\2\75\2\uffff\1\u03ee\1\75\1\uffff\1\u03f0\1\uffff\1\u03f1"+
+        "\2\uffff\1\u03f2\1\75\1\u03f4\1\75\1\u03f6\1\75\1\uffff\1\u03f9"+
+        "\1\u03fa\2\uffff\4\75\2\uffff\2\75\2\uffff\1\75\2\uffff\1\u0402"+
+        "\1\75\1\u0405\1\uffff\1\75\3\uffff\1\u0407\1\uffff\1\u0408\1\uffff"+
+        "\1\75\3\uffff\1\u040a\2\75\1\u040d\2\75\1\u0410\1\uffff\1\u0411"+
+        "\2\uffff\1\75\2\uffff\1\u0413\1\uffff\1\u0414\1\75\1\uffff\1\u0416"+
+        "\1\u0417\2\uffff\1\75\2\uffff\1\75\2\uffff\1\u041a\1\75\1\uffff"+
+        "\1\u041c\1\uffff";
+    static final String DFA21_eofS =
+        "\u041d\uffff";
+    static final String DFA21_minS =
+        "\1\0\1\141\1\uffff\1\141\1\154\1\141\1\uffff\4\141\1\142\1\141"+
+        "\1\145\1\141\1\63\1\151\3\145\1\143\2\uffff\1\55\1\56\1\52\2\uffff"+
+        "\1\75\3\uffff\1\53\1\52\1\75\1\76\1\75\1\174\1\46\1\75\1\56\1\72"+
+        "\1\uffff\1\150\1\141\2\60\1\44\5\uffff\1\143\1\157\3\44\2\162\1"+
+        "\146\2\uffff\1\142\1\146\1\147\1\157\1\44\1\163\1\44\1\157\1\156"+
+        "\2\154\1\uffff\1\154\1\162\1\154\1\163\1\44\1\151\1\144\1\162\1"+
+        "\44\2\156\1\141\1\172\1\157\1\142\1\141\1\151\2\156\1\162\1\157"+
+        "\1\154\1\160\1\157\1\141\2\155\1\142\1\162\1\151\1\55\1\44\1\154"+
+        "\1\164\1\154\1\44\1\143\1\144\1\156\1\167\1\156\1\162\1\146\1\156"+
+        "\1\44\1\166\1\154\1\44\1\147\1\164\3\44\1\145\1\155\1\44\1\40\1"+
+        "\55\1\146\2\154\1\167\1\156\1\141\1\144\1\155\1\151\1\156\1\157"+
+        "\1\141\1\143\1\157\1\44\1\141\6\uffff\1\74\6\uffff\1\75\26\uffff"+
+        "\1\75\7\uffff\1\151\1\154\1\uffff\1\60\4\uffff\1\153\1\145\1\144"+
+        "\1\150\1\160\3\uffff\1\164\1\143\1\44\1\157\1\145\1\144\1\164\1"+
+        "\150\1\153\1\145\1\uffff\2\145\1\uffff\1\155\1\44\2\164\1\151\1"+
+        "\163\1\145\1\141\1\145\1\157\1\156\1\143\1\162\1\164\1\154\1\164"+
+        "\1\145\1\143\1\uffff\1\160\1\151\1\147\1\151\1\uffff\1\157\1\151"+
+        "\1\154\1\151\1\147\1\145\1\167\1\163\1\145\1\44\1\154\1\145\1\164"+
+        "\1\143\1\163\1\151\1\160\1\151\1\145\1\155\1\141\1\154\1\141\2\156"+
+        "\1\145\1\44\1\164\1\160\1\145\2\154\1\157\1\145\2\uffff\1\151\1"+
+        "\163\1\164\2\144\2\uffff\1\153\1\55\1\150\1\151\1\147\1\157\1\144"+
+        "\1\151\1\165\1\44\1\156\1\153\1\141\1\163\1\150\1\143\3\141\1\164"+
+        "\1\142\1\uffff\1\151\1\145\1\44\1\uffff\1\162\1\157\3\uffff\1\162"+
+        "\1\157\2\uffff\1\154\1\157\1\44\1\142\1\154\1\44\1\155\1\145\1\144"+
+        "\1\147\1\145\1\154\1\144\1\157\1\145\1\144\1\147\1\157\2\145\1\150"+
+        "\1\156\1\uffff\1\154\6\uffff\1\154\2\44\1\141\1\55\1\151\1\44\1"+
+        "\145\1\162\1\145\1\uffff\1\165\1\154\1\163\1\44\1\164\1\165\1\156"+
+        "\1\44\1\144\1\40\1\141\1\uffff\1\44\1\145\1\154\1\145\1\44\1\154"+
+        "\1\144\1\162\1\155\1\164\1\141\1\145\1\157\1\44\1\145\1\44\1\150"+
+        "\1\44\1\141\1\151\1\155\1\163\1\155\1\145\1\156\1\151\1\156\1\44"+
+        "\1\117\1\151\1\165\1\162\1\uffff\1\145\1\156\1\143\1\150\1\55\1"+
+        "\146\1\151\1\144\1\44\1\141\1\162\1\142\1\154\1\163\1\144\1\44\1"+
+        "\uffff\1\44\1\154\1\44\2\145\1\167\1\156\1\161\1\145\1\157\1\44"+
+        "\1\145\1\147\1\uffff\1\164\1\156\1\145\1\162\1\145\1\172\1\162\1"+
+        "\uffff\1\151\1\145\1\44\1\155\1\40\1\145\1\162\1\151\1\165\1\155"+
+        "\1\145\1\154\1\144\1\162\1\uffff\1\145\1\164\1\141\1\44\1\145\1"+
+        "\uffff\1\162\1\uffff\1\145\1\44\1\uffff\1\141\1\44\1\145\1\150\1"+
+        "\154\2\44\1\160\1\166\1\162\1\55\1\145\2\162\1\141\1\164\2\44\1"+
+        "\151\1\145\2\uffff\1\147\1\145\2\156\1\uffff\1\162\1\141\1\156\1"+
+        "\164\1\44\1\143\1\141\1\uffff\1\145\1\160\1\156\1\144\1\uffff\1"+
+        "\44\1\uffff\1\164\1\44\1\uffff\1\162\1\171\1\44\1\uffff\1\154\2"+
+        "\44\1\156\1\44\1\164\1\156\1\155\1\157\1\uffff\1\162\1\uffff\1\44"+
+        "\1\uffff\1\44\1\156\1\165\1\160\1\165\1\44\1\147\1\143\1\141\2\uffff"+
+        "\1\156\1\164\1\142\2\44\1\164\1\150\1\162\1\uffff\1\44\1\156\1\44"+
+        "\1\146\1\uffff\1\162\1\144\1\141\1\55\1\146\1\44\1\uffff\1\157\1"+
+        "\154\1\uffff\1\141\1\uffff\3\44\1\164\1\165\1\164\1\155\1\uffff"+
+        "\2\162\1\44\1\147\1\44\1\164\1\162\1\145\3\156\2\uffff\1\141\1\uffff"+
+        "\1\144\1\151\2\154\1\151\1\144\2\145\1\156\1\147\1\145\1\147\1\uffff"+
+        "\1\144\1\155\1\162\1\uffff\1\154\1\uffff\1\162\1\164\1\141\2\uffff"+
+        "\1\44\1\145\1\141\1\uffff\1\44\1\164\1\166\1\156\1\44\2\uffff\1"+
+        "\143\1\44\1\145\1\155\1\165\1\uffff\1\147\1\164\1\151\1\164\1\55"+
+        "\1\uffff\1\141\1\162\1\156\1\163\1\141\1\163\1\151\1\uffff\1\164"+
+        "\1\uffff\2\44\1\uffff\1\171\1\uffff\1\44\1\uffff\1\163\1\uffff\1"+
+        "\44\1\143\1\44\1\154\1\44\1\uffff\1\44\1\uffff\1\55\1\155\1\141"+
+        "\1\155\1\44\1\uffff\2\44\1\164\1\106\1\154\1\164\3\uffff\1\151\1"+
+        "\44\1\157\1\uffff\1\147\1\uffff\1\44\1\147\1\163\1\162\1\160\1\157"+
+        "\1\uffff\1\154\1\151\1\164\3\uffff\1\141\1\145\1\44\1\155\1\55\1"+
+        "\157\1\141\1\uffff\1\44\1\uffff\1\44\1\151\2\44\1\147\1\163\1\162"+
+        "\1\44\1\142\1\44\1\164\1\143\3\44\2\141\1\170\1\145\3\uffff\1\141"+
+        "\4\44\1\142\1\uffff\1\44\1\154\1\uffff\1\44\1\141\1\143\1\uffff"+
+        "\1\44\1\uffff\1\44\1\160\1\155\1\55\1\171\1\164\1\44\1\uffff\1\160"+
+        "\1\147\1\163\1\44\1\154\1\44\1\157\1\145\2\uffff\1\44\1\uffff\1"+
+        "\160\1\uffff\1\171\1\uffff\1\157\2\uffff\1\142\1\44\1\143\1\44\3"+
+        "\uffff\2\151\1\141\1\145\1\151\1\146\1\uffff\1\156\1\44\1\uffff"+
+        "\1\151\2\44\1\141\1\162\1\157\1\147\1\145\1\164\1\44\1\uffff\1\141"+
+        "\1\142\1\165\1\162\2\uffff\1\156\2\uffff\1\55\1\44\1\164\1\uffff"+
+        "\2\145\1\157\1\44\1\uffff\2\44\3\uffff\3\164\1\44\1\164\4\uffff"+
+        "\1\145\1\uffff\1\55\1\uffff\1\154\1\145\2\uffff\1\154\2\142\2\44"+
+        "\1\uffff\1\145\1\151\1\44\1\uffff\1\103\1\uffff\1\156\1\162\1\uffff"+
+        "\1\141\1\44\1\162\5\uffff\1\145\1\uffff\1\156\1\162\1\163\1\44\1"+
+        "\164\2\151\1\uffff\1\156\2\uffff\1\147\1\155\1\162\1\156\1\44\1"+
+        "\151\1\uffff\1\162\4\uffff\1\156\2\147\1\143\1\uffff\1\44\1\144"+
+        "\1\141\1\157\3\uffff\2\145\1\44\1\uffff\1\164\1\154\1\uffff\1\163"+
+        "\1\157\1\141\1\145\6\uffff\1\44\1\156\1\uffff\1\163\2\44\1\156\1"+
+        "\uffff\2\44\1\147\1\163\1\164\1\uffff\1\154\1\143\1\172\1\44\1\145"+
+        "\1\163\2\44\1\uffff\1\157\1\147\1\144\1\151\1\44\3\uffff\1\40\1"+
+        "\144\1\164\2\44\1\uffff\1\145\2\44\1\146\1\164\1\162\1\uffff\1\44"+
+        "\1\163\1\uffff\1\44\1\uffff\1\44\2\uffff\1\44\1\164\1\44\1\145\1"+
+        "\44\1\145\1\uffff\1\55\1\44\2\uffff\1\156\1\151\1\143\1\156\2\uffff"+
+        "\2\145\2\uffff\1\144\2\uffff\1\44\1\145\1\55\1\uffff\1\125\3\uffff"+
+        "\1\44\1\uffff\1\44\1\uffff\1\144\3\uffff\1\44\1\156\1\157\1\44\2"+
+        "\162\1\44\1\uffff\1\44\2\uffff\1\122\2\uffff\1\44\1\uffff\1\44\1"+
+        "\154\1\uffff\2\44\2\uffff\1\111\2\uffff\1\157\2\uffff\1\44\1\162"+
+        "\1\uffff\1\44\1\uffff";
+    static final String DFA21_maxS =
+        "\1\uffff\1\170\1\uffff\1\157\1\170\1\162\1\uffff\1\165\1\157\2"+
+        "\171\1\165\1\171\1\165\1\171\1\166\1\163\1\165\1\164\1\162\1\164"+
+        "\2\uffff\1\76\1\56\1\75\2\uffff\1\76\3\uffff\3\75\1\76\1\75\1\174"+
+        "\1\46\1\75\2\72\1\uffff\1\150\1\141\1\170\1\154\1\172\5\uffff\1"+
+        "\164\1\157\3\172\2\162\1\146\2\uffff\1\171\1\146\1\147\1\157\1\172"+
+        "\1\163\1\172\1\157\1\162\1\155\1\170\1\uffff\1\165\1\163\1\156\1"+
+        "\164\1\172\1\151\1\144\1\170\1\172\2\156\1\171\1\172\1\157\1\160"+
+        "\2\151\2\156\1\162\1\157\1\154\1\160\1\167\1\171\1\170\1\164\1\142"+
+        "\1\162\1\151\1\55\1\172\1\154\2\164\1\172\1\144\1\163\1\164\1\167"+
+        "\1\156\1\171\1\164\1\156\1\172\1\166\1\164\1\172\1\147\1\164\3\172"+
+        "\1\145\1\155\1\172\1\40\1\55\1\146\1\154\1\155\1\167\1\162\1\151"+
+        "\1\144\1\155\1\157\1\156\1\157\1\160\1\164\1\157\1\172\1\141\6\uffff"+
+        "\1\74\6\uffff\1\75\26\uffff\1\75\7\uffff\1\151\1\162\1\uffff\1\154"+
+        "\4\uffff\1\153\1\145\1\144\1\150\1\160\3\uffff\1\164\1\143\1\172"+
+        "\1\157\1\145\1\144\1\164\1\150\1\153\1\145\1\uffff\2\145\1\uffff"+
+        "\1\155\1\172\2\164\1\151\1\163\1\145\1\141\1\145\1\165\1\156\1\143"+
+        "\1\162\1\164\1\154\1\164\1\145\1\143\1\uffff\1\160\1\151\1\147\1"+
+        "\151\1\uffff\1\157\1\151\1\154\1\151\1\164\1\145\1\167\1\164\1\145"+
+        "\1\172\1\154\1\145\1\164\1\143\1\163\1\151\1\160\1\151\1\145\1\155"+
+        "\1\141\1\154\1\141\2\156\1\145\1\172\1\164\1\160\1\145\2\154\1\157"+
+        "\1\145\2\uffff\1\151\1\163\1\164\2\144\2\uffff\1\153\1\55\1\150"+
+        "\1\151\1\147\1\157\1\144\1\151\1\165\1\172\1\156\1\153\1\145\1\163"+
+        "\1\150\1\143\3\141\1\164\1\142\1\uffff\1\151\1\145\1\172\1\uffff"+
+        "\1\162\1\157\3\uffff\1\162\1\157\2\uffff\1\163\1\157\1\172\1\142"+
+        "\1\154\1\172\1\155\1\145\1\144\1\147\1\145\1\154\1\144\1\165\1\145"+
+        "\1\144\1\147\1\157\1\145\1\164\1\150\1\156\1\uffff\1\154\6\uffff"+
+        "\1\154\2\172\1\141\1\164\1\151\1\172\1\145\1\162\1\145\1\uffff\1"+
+        "\165\1\154\1\163\1\172\1\164\1\165\1\162\1\172\1\144\1\40\1\141"+
+        "\1\uffff\1\172\1\145\1\154\1\145\1\172\1\154\1\144\1\162\1\155\1"+
+        "\164\1\141\1\145\1\157\1\172\1\145\1\172\1\150\1\172\1\141\1\151"+
+        "\1\155\1\163\1\155\1\145\1\156\1\151\1\156\1\172\1\117\1\151\1\165"+
+        "\1\162\1\uffff\1\145\1\156\1\143\1\150\1\55\1\146\1\151\1\144\1"+
+        "\172\1\141\1\162\1\142\1\154\1\163\1\144\1\172\1\uffff\1\172\1\154"+
+        "\1\172\2\145\1\167\1\156\1\161\1\145\1\157\1\172\1\145\1\147\1\uffff"+
+        "\1\164\1\156\1\145\1\162\1\145\1\172\1\162\1\uffff\1\151\1\145\1"+
+        "\172\1\155\1\40\1\145\1\162\1\151\1\165\1\155\1\145\1\154\1\144"+
+        "\1\162\1\uffff\1\145\1\164\1\141\1\172\1\145\1\uffff\1\162\1\uffff"+
+        "\1\145\1\172\1\uffff\1\141\1\172\1\145\1\150\1\154\2\172\1\160\1"+
+        "\166\1\162\1\55\1\145\2\162\1\141\1\164\2\172\1\151\1\145\2\uffff"+
+        "\1\147\1\145\1\166\1\156\1\uffff\1\162\1\141\1\156\1\164\1\172\1"+
+        "\143\1\141\1\uffff\1\145\1\160\1\156\1\163\1\uffff\1\172\1\uffff"+
+        "\1\164\1\172\1\uffff\1\162\1\171\1\172\1\uffff\1\154\2\172\1\156"+
+        "\1\172\1\164\1\156\1\155\1\157\1\uffff\1\162\1\uffff\1\172\1\uffff"+
+        "\1\172\1\156\1\165\1\160\1\165\1\172\1\147\1\143\1\141\2\uffff\1"+
+        "\156\1\164\1\142\2\172\1\164\1\150\1\162\1\uffff\1\172\1\156\1\172"+
+        "\1\146\1\uffff\1\162\1\144\1\141\1\55\1\146\1\172\1\uffff\1\157"+
+        "\1\154\1\uffff\1\141\1\uffff\3\172\1\164\1\165\1\164\1\155\1\uffff"+
+        "\2\162\1\172\1\147\1\172\1\164\1\162\1\145\3\156\2\uffff\1\141\1"+
+        "\uffff\1\144\1\151\2\154\1\151\1\144\2\145\1\156\1\147\1\145\1\147"+
+        "\1\uffff\1\164\1\155\1\162\1\uffff\1\154\1\uffff\1\162\1\164\1\141"+
+        "\2\uffff\1\172\1\145\1\141\1\uffff\1\172\1\164\1\166\1\156\1\172"+
+        "\2\uffff\1\143\1\172\1\145\1\155\1\165\1\uffff\1\147\1\164\1\151"+
+        "\1\164\1\55\1\uffff\1\141\1\162\1\156\1\163\1\141\1\163\1\151\1"+
+        "\uffff\1\164\1\uffff\2\172\1\uffff\1\171\1\uffff\1\172\1\uffff\1"+
+        "\163\1\uffff\1\172\1\143\1\172\1\154\1\172\1\uffff\1\172\1\uffff"+
+        "\1\55\1\155\1\141\1\155\1\172\1\uffff\2\172\1\164\1\114\1\154\1"+
+        "\164\3\uffff\1\151\1\172\1\157\1\uffff\1\147\1\uffff\1\172\1\147"+
+        "\1\163\1\162\1\160\1\157\1\uffff\1\154\1\151\1\164\3\uffff\1\141"+
+        "\1\145\1\172\1\155\1\55\1\157\1\141\1\uffff\1\172\1\uffff\1\172"+
+        "\1\151\2\172\1\147\1\163\1\162\1\172\1\142\1\172\1\164\1\143\3\172"+
+        "\2\141\1\170\1\145\3\uffff\1\141\4\172\1\142\1\uffff\1\172\1\154"+
+        "\1\uffff\1\172\1\141\1\143\1\uffff\1\172\1\uffff\1\172\1\160\1\155"+
+        "\1\55\1\171\1\164\1\172\1\uffff\1\160\1\147\1\163\1\172\1\154\1"+
+        "\172\1\157\1\145\2\uffff\1\172\1\uffff\1\160\1\uffff\1\171\1\uffff"+
+        "\1\157\2\uffff\1\164\1\172\1\143\1\172\3\uffff\2\151\1\141\1\145"+
+        "\1\151\1\146\1\uffff\1\156\1\172\1\uffff\1\151\2\172\1\141\1\162"+
+        "\1\157\1\147\1\145\1\164\1\172\1\uffff\1\141\1\164\1\165\1\162\2"+
+        "\uffff\1\156\2\uffff\1\55\1\172\1\164\1\uffff\2\145\1\157\1\172"+
+        "\1\uffff\2\172\3\uffff\3\164\1\172\1\164\4\uffff\1\145\1\uffff\1"+
+        "\55\1\uffff\1\154\1\145\2\uffff\1\154\1\142\1\164\2\172\1\uffff"+
+        "\1\145\1\151\1\172\1\uffff\1\103\1\uffff\1\156\1\162\1\uffff\1\141"+
+        "\1\172\1\162\5\uffff\1\145\1\uffff\1\156\1\162\1\163\1\172\1\164"+
+        "\2\151\1\uffff\1\156\2\uffff\1\147\1\155\1\162\1\156\1\172\1\151"+
+        "\1\uffff\1\162\4\uffff\1\156\2\147\1\163\1\uffff\1\172\1\144\1\141"+
+        "\1\157\3\uffff\2\145\1\172\1\uffff\1\164\1\154\1\uffff\1\163\1\157"+
+        "\1\141\1\145\6\uffff\1\172\1\156\1\uffff\1\163\2\172\1\156\1\uffff"+
+        "\2\172\1\147\1\163\1\164\1\uffff\1\154\1\143\2\172\1\145\1\163\2"+
+        "\172\1\uffff\1\157\1\147\1\144\1\151\1\172\3\uffff\1\40\1\144\1"+
+        "\164\2\172\1\uffff\1\145\2\172\1\146\1\164\1\162\1\uffff\1\172\1"+
+        "\163\1\uffff\1\172\1\uffff\1\172\2\uffff\1\172\1\164\1\172\1\145"+
+        "\1\172\1\145\1\uffff\1\55\1\172\2\uffff\1\156\1\151\1\143\1\156"+
+        "\2\uffff\2\145\2\uffff\1\144\2\uffff\1\172\1\145\1\55\1\uffff\1"+
+        "\125\3\uffff\1\172\1\uffff\1\172\1\uffff\1\144\3\uffff\1\172\1\156"+
+        "\1\157\1\172\2\162\1\172\1\uffff\1\172\2\uffff\1\122\2\uffff\1\172"+
+        "\1\uffff\1\172\1\154\1\uffff\2\172\2\uffff\1\111\2\uffff\1\157\2"+
+        "\uffff\1\172\1\162\1\uffff\1\172\1\uffff";
+    static final String DFA21_acceptS =
+        "\2\uffff\1\2\3\uffff\1\6\16\uffff\1\135\1\136\3\uffff\1\157\1\160"+
+        "\1\uffff\1\162\1\163\1\164\12\uffff\1\u0094\5\uffff\1\u00f6\2\u00f7"+
+        "\1\u00fa\1\u00fb\10\uffff\1\u00f6\1\2\13\uffff\1\6\112\uffff\1\135"+
+        "\1\136\1\166\1\u0084\1\u0090\1\142\1\uffff\1\155\1\167\1\u008b\1"+
+        "\156\1\157\1\160\1\uffff\1\u0087\1\161\1\162\1\163\1\164\1\165\1"+
+        "\u008f\1\u008a\1\170\1\u00f8\1\u00f9\1\u008c\1\171\1\u008d\1\u0088"+
+        "\1\172\1\174\1\173\1\175\1\u0093\1\176\1\u00af\1\uffff\1\u008e\1"+
+        "\u0089\1\u0092\1\u00ae\1\u0091\1\u0098\1\u0094\2\uffff\1\u00f3\1"+
+        "\uffff\1\u00f4\1\u00f5\1\u00f7\1\u00fa\5\uffff\1\u00b2\1\u00b4\1"+
+        "\u00b7\12\uffff\1\u00b6\2\uffff\1\u00b5\22\uffff\1\u00b1\4\uffff"+
+        "\1\u00b0\42\uffff\1\132\1\134\5\uffff\1\26\1\116\25\uffff\1\u009d"+
+        "\3\uffff\1\106\2\uffff\1\u00b8\1\u00b9\1\u00ba\2\uffff\1\62\1\137"+
+        "\26\uffff\1\u0095\1\uffff\1\u0085\1\u0086\1\u0081\1\177\1\u0082"+
+        "\1\u0080\12\uffff\1\u00d1\13\uffff\1\u009b\40\uffff\1\u00d4\20\uffff"+
+        "\1\u00aa\15\uffff\1\u00dc\7\uffff\1\107\16\uffff\1\120\5\uffff\1"+
+        "\u00be\1\uffff\1\u00f1\2\uffff\1\u00a3\24\uffff\1\u009e\1\u009f"+
+        "\4\uffff\1\125\7\uffff\1\u00c7\4\uffff\1\u0096\1\uffff\1\5\2\uffff"+
+        "\1\32\3\uffff\1\75\11\uffff\1\110\1\uffff\1\u009a\1\uffff\1\u00f0"+
+        "\11\uffff\1\u00ee\1\36\10\uffff\1\u00c5\4\uffff\1\16\6\uffff\1\u00a5"+
+        "\2\uffff\1\151\1\uffff\1\70\7\uffff\1\35\13\uffff\1\67\1\66\1\uffff"+
+        "\1\140\14\uffff\1\61\3\uffff\1\u00a6\1\uffff\1\u00e0\3\uffff\1\u00d0"+
+        "\1\105\3\uffff\1\u00de\5\uffff\1\u00b3\1\144\5\uffff\1\u00ed\5\uffff"+
+        "\1\150\7\uffff\1\u00f2\1\uffff\1\11\2\uffff\1\u00a4\1\uffff\1\u00cc"+
+        "\1\uffff\1\24\1\uffff\1\u00d2\5\uffff\1\u00ad\1\uffff\1\13\5\uffff"+
+        "\1\37\6\uffff\1\u00a2\1\u00ef\1\153\3\uffff\1\u00c6\1\uffff\1\u00e1"+
+        "\6\uffff\1\145\3\uffff\1\133\1\112\1\u00a8\7\uffff\1\u00c9\1\uffff"+
+        "\1\u00e6\23\uffff\1\u00bb\1\u00bc\1\u00bd\6\uffff\1\115\2\uffff"+
+        "\1\121\3\uffff\1\u00e7\1\uffff\1\u009c\7\uffff\1\3\10\uffff\1\103"+
+        "\1\34\1\uffff\1\10\1\uffff\1\u00da\1\uffff\1\u00cf\1\uffff\1\u00c8"+
+        "\1\12\4\uffff\1\14\1\141\1\u00a0\6\uffff\1\u0097\2\uffff\1\u00a7"+
+        "\12\uffff\1\u00e8\4\uffff\1\u00db\1\63\1\uffff\1\127\1\u00a9\3\uffff"+
+        "\1\u00e3\4\uffff\1\102\2\uffff\1\u00e2\1\u00e4\1\u00d9\5\uffff\1"+
+        "\64\1\u00c1\1\77\1\101\1\uffff\1\u00e5\1\uffff\1\154\2\uffff\1\u00c2"+
+        "\1\1\5\uffff\1\u00cd\3\uffff\1\124\1\uffff\1\33\2\uffff\1\u00ab"+
+        "\3\uffff\1\55\1\56\1\57\1\60\1\u00d7\1\uffff\1\u00d6\7\uffff\1\u00dd"+
+        "\1\uffff\1\31\1\72\6\uffff\1\u00c3\1\uffff\1\45\1\46\1\47\1\50\4"+
+        "\uffff\1\25\4\uffff\1\117\1\u0099\1\126\3\uffff\1\u00d5\2\uffff"+
+        "\1\u00cb\4\uffff\1\51\1\52\1\53\1\54\1\130\1\u00bf\2\uffff\1\27"+
+        "\4\uffff\1\65\5\uffff\1\146\10\uffff\1\76\5\uffff\1\u00d3\1\u00d8"+
+        "\1\73\5\uffff\1\152\6\uffff\1\u00c0\2\uffff\1\u00a1\1\uffff\1\40"+
+        "\1\uffff\1\143\1\u00c4\6\uffff\1\20\2\uffff\1\43\1\44\4\uffff\1"+
+        "\74\1\71\2\uffff\1\42\1\131\1\uffff\1\123\1\122\3\uffff\1\21\1\uffff"+
+        "\1\7\1\111\1\u00df\1\uffff\1\104\1\uffff\1\u00ce\1\uffff\1\u00ec"+
+        "\1\u00ea\1\30\7\uffff\1\u0083\1\uffff\1\u00eb\1\u00e9\1\uffff\1"+
+        "\100\1\147\1\uffff\1\17\2\uffff\1\23\2\uffff\1\u00ca\1\15\1\uffff"+
+        "\1\u00ac\1\22\1\uffff\1\113\1\114\2\uffff\1\4\1\uffff\1\41";
+    static final String DFA21_specialS =
+        "\1\0\u041c\uffff}>";
+    static final String[] DFA21_transitionS = {
+            "\11\64\2\63\2\64\1\63\22\64\1\63\1\47\1\61\1\35\1\60\1\42\1"+
+            "\46\1\62\1\25\1\26\1\31\1\40\1\33\1\27\1\30\1\41\1\55\11\56"+
+            "\1\51\1\52\1\43\1\34\1\44\1\50\1\32\32\60\1\36\1\64\1\37\1\57"+
+            "\1\60\1\64\1\17\1\14\1\7\1\16\1\4\1\5\1\23\1\22\1\24\2\60\1"+
+            "\3\1\10\1\21\1\13\1\1\1\60\1\15\1\11\1\12\1\20\1\54\1\53\3\60"+
+            "\1\2\1\45\1\6\uff82\64",
+            "\1\65\1\uffff\1\70\1\74\1\73\11\uffff\1\72\2\uffff\1\66\1"+
+            "\uffff\1\67\3\uffff\1\71",
+            "",
+            "\1\77\3\uffff\1\100\3\uffff\1\101\5\uffff\1\102",
+            "\1\104\1\105\12\uffff\1\103",
+            "\1\110\7\uffff\1\111\5\uffff\1\107\2\uffff\1\106",
+            "",
+            "\1\116\3\uffff\1\115\6\uffff\1\120\1\117\1\uffff\1\113\5\uffff"+
+            "\1\114",
+            "\1\122\3\uffff\1\121\3\uffff\1\125\3\uffff\1\123\1\uffff\1"+
+            "\124",
+            "\1\135\1\uffff\1\132\1\uffff\1\136\2\uffff\1\130\1\127\2\uffff"+
+            "\1\137\2\uffff\1\140\4\uffff\1\126\1\131\1\uffff\1\133\1\uffff"+
+            "\1\134",
+            "\1\146\3\uffff\1\144\2\uffff\1\147\1\145\5\uffff\1\142\2\uffff"+
+            "\1\143\6\uffff\1\141",
+            "\1\153\3\uffff\1\152\7\uffff\1\151\3\uffff\1\150\2\uffff\1"+
+            "\154",
+            "\1\157\15\uffff\1\155\11\uffff\1\156",
+            "\1\161\3\uffff\1\160\5\uffff\1\162\5\uffff\1\163",
+            "\1\164\3\uffff\1\165\3\uffff\1\170\5\uffff\1\167\11\uffff"+
+            "\1\166",
+            "\1\176\1\175\1\177\61\uffff\1\173\4\uffff\1\171\6\uffff\1"+
+            "\172\1\uffff\1\174\1\u0080",
+            "\1\u0082\4\uffff\1\u0085\1\u0081\1\u0083\1\uffff\1\u0086\1"+
+            "\u0084",
+            "\1\u0088\11\uffff\1\u0089\5\uffff\1\u0087",
+            "\1\u008a\3\uffff\1\u008b\12\uffff\1\u008c",
+            "\1\u008e\11\uffff\1\u008f\2\uffff\1\u008d",
+            "\1\u0092\2\uffff\1\u0093\6\uffff\1\u0090\1\u0091\5\uffff\1"+
+            "\u0094",
+            "",
+            "",
+            "\1\u0099\17\uffff\1\u0097\1\u0098",
+            "\1\u009b",
+            "\1\u009e\22\uffff\1\u009d",
+            "",
+            "",
+            "\1\u00a2\1\u00a3",
+            "",
+            "",
+            "",
+            "\1\u00a9\21\uffff\1\u00a8",
+            "\1\u00ac\4\uffff\1\u00ad\15\uffff\1\u00ab",
+            "\1\u00af",
+            "\1\u00b1",
+            "\1\u00b3",
+            "\1\u00b5",
+            "\1\u00b7",
+            "\1\u00b9",
+            "\1\u00bc\13\uffff\1\u00bb",
+            "\1\u00be",
+            "",
+            "\1\u00c1",
+            "\1\u00c2",
+            "\12\u00c4\10\uffff\1\u00c6\1\uffff\3\u00c6\5\uffff\1\u00c6"+
+            "\13\uffff\1\u00c3\6\uffff\1\u00c4\2\uffff\1\u00c6\1\uffff\3"+
+            "\u00c6\5\uffff\1\u00c6\13\uffff\1\u00c3",
+            "\12\u00c4\10\uffff\1\u00c6\1\uffff\3\u00c6\5\uffff\1\u00c6"+
+            "\22\uffff\1\u00c4\2\uffff\1\u00c6\1\uffff\3\u00c6\5\uffff\1"+
+            "\u00c6",
+            "\1\75\34\uffff\32\75\4\uffff\1\75\1\uffff\32\75",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "\1\u00c9\1\u00cb\2\uffff\1\u00ca\14\uffff\1\u00cc",
+            "\1\u00cd",
+            "\1\75\13\uffff\12\75\7\uffff\32\75\4\uffff\1\75\1\uffff\32"+
+            "\75",
+            "\1\75\13\uffff\12\75\7\uffff\32\75\4\uffff\1\75\1\uffff\32"+
+            "\75",
+            "\1\75\13\uffff\12\75\7\uffff\32\75\4\uffff\1\75\1\uffff\32"+
+            "\75",
+            "\1\u00d1",
+            "\1\u00d2",
+            "\1\u00d3",
+            "",
+            "",
+            "\1\u00d5\13\uffff\1\u00d6\12\uffff\1\u00d4",
+            "\1\u00d7",
+            "\1\u00d8",
+            "\1\u00d9",
+            "\1\75\13\uffff\12\75\7\uffff\32\75\4\uffff\1\75\1\uffff\23"+
+            "\75\1\u00da\6\75",
+            "\1\u00dc",
+            "\1\75\13\uffff\12\75\7\uffff\32\75\4\uffff\1\75\1\uffff\1"+
+            "\75\1\u00dd\30\75",
+            "\1\u00df",
+            "\1\u00e1\1\u00e2\2\uffff\1\u00e0",
+            "\1\u00e4\1\u00e3",
+            "\1\u00e5\1\uffff\1\u00e6\11\uffff\1\u00e7",
+            "",
+            "\1\u00e8\1\uffff\1\u00ea\6\uffff\1\u00e9",
+            "\1\u00eb\1\u00ec",
+            "\1\u00ed\1\uffff\1\u00ee",
+            "\1\u00ef\1\u00f0",
+            "\1\75\13\uffff\12\75\7\uffff\32\75\4\uffff\1\75\1\uffff\32"+
+            "\75",
+            "\1\u00f2",
+            "\1\u00f3",
+            "\1\u00f4\5\uffff\1\u00f5",
+            "\1\75\13\uffff\12\75\7\uffff\32\75\4\uffff\1\75\1\uffff\32"+
+            "\75",
+            "\1\u00f7",
+            "\1\u00f8",
+            "\1\u00fb\20\uffff\1\u00fa\6\uffff\1\u00f9",
+            "\1\u00fc",
+            "\1\u00fd",
+            "\1\u00fe\12\uffff\1\u0100\2\uffff\1\u00ff",
+            "\1\u0101\7\uffff\1\u0102",
+            "\1\u0103",
+            "\1\u0104",
+            "\1\u0105",
+            "\1\u0106",
+            "\1\u0107",
+            "\1\u0108",
+            "\1\u0109",
+            "\1\u010c\1\u010a\3\uffff\1\u010d\2\uffff\1\u010b",
+            "\1\u010e\3\uffff\1\u010f\17\uffff\1\u0110\3\uffff\1\u0111",
+            "\1\u0113\12\uffff\1\u0112",
+            "\1\u0114\6\uffff\1\u0115",
+            "\1\u0116",
+            "\1\u0117",
+            "\1\u0118",
+            "\1\u0119",
+            "\1\75\13\uffff\12\75\7\uffff\32\75\4\uffff\1\75\1\uffff\32"+
+            "\75",
+            "\1\u011b",
+            "\1\u011c",
+            "\1\u011e\5\uffff\1\u011f\1\uffff\1\u011d",
+            "\1\75\10\uffff\1\u0120\2\uffff\12\75\7\uffff\32\75\4\uffff"+
+            "\1\75\1\uffff\32\75",
+            "\1\u0122\1\u0123",
+            "\1\u0126\2\uffff\1\u0124\13\uffff\1\u0125",
+            "\1\u0128\1\uffff\1\u0127\2\uffff\1\u0129\1\u012a",
+            "\1\u012b",
+            "\1\u012c",
+            "\1\u012d\1\u0130\1\u012e\4\uffff\1\u012f",
+            "\1\u0133\14\uffff\1\u0131\1\u0132",
+            "\1\u0134",
+            "\1\75\13\uffff\12\75\7\uffff\32\75\4\uffff\1\75\1\uffff\23"+
+            "\75\1\u0135\1\u0136\5\75",
+            "\1\u0138",
+            "\1\u013a\7\uffff\1\u0139",
+            "\1\75\13\uffff\12\75\7\uffff\32\75\4\uffff\1\75\1\uffff\32"+
+            "\75",
+            "\1\u013c",
+            "\1\u013d",
+            "\1\75\13\uffff\12\75\7\uffff\32\75\4\uffff\1\75\1\uffff\32"+
+            "\75",
+            "\1\75\13\uffff\12\75\7\uffff\32\75\4\uffff\1\75\1\uffff\32"+
+            "\75",
+            "\1\75\13\uffff\12\75\7\uffff\32\75\4\uffff\1\75\1\uffff\32"+
+            "\75",
+            "\1\u0141",
+            "\1\u0142",
+            "\1\75\13\uffff\12\75\7\uffff\32\75\4\uffff\1\75\1\uffff\32"+
+            "\75",
+            "\1\u0144",
+            "\1\u0145",
+            "\1\u0146",
+            "\1\u0147",
+            "\1\u0149\1\u0148",
+            "\1\u014a",
+            "\1\u014c\3\uffff\1\u014b",
+            "\1\u014d\7\uffff\1\u014e",
+            "\1\u014f",
+            "\1\u0150",
+            "\1\u0151\5\uffff\1\u0152",
+            "\1\u0153",
+            "\1\u0154",
+            "\1\u0155\16\uffff\1\u0156",
+            "\1\u0159\17\uffff\1\u0158\1\u0157",
+            "\1\u015a",
+            "\1\75\13\uffff\12\75\7\uffff\32\75\4\uffff\1\75\1\uffff\32"+
+            "\75",
+            "\1\u015c",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "\1\u015d",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "\1\u015f",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "\1\u0161",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "\1\u0163",
+            "\1\u0165\5\uffff\1\u0164",
+            "",
+            "\12\u00c4\10\uffff\1\u00c6\1\uffff\3\u00c6\5\uffff\1\u00c6"+
+            "\22\uffff\1\u00c4\2\uffff\1\u00c6\1\uffff\3\u00c6\5\uffff\1"+
+            "\u00c6",
+            "",
+            "",
+            "",
+            "",
+            "\1\u0166",
+            "\1\u0167",
+            "\1\u0168",
+            "\1\u0169",
+            "\1\u016a",
+            "",
+            "",
+            "",
+            "\1\u016b",
+            "\1\u016c",
+            "\1\75\13\uffff\12\75\7\uffff\32\75\4\uffff\1\75\1\uffff\32"+
+            "\75",
+            "\1\u016e",
+            "\1\u016f",
+            "\1\u0170",
+            "\1\u0171",
+            "\1\u0172",
+            "\1\u0173",
+            "\1\u0174",
+            "",
+            "\1\u0175",
+            "\1\u0176",
+            "",
+            "\1\u0177",
+            "\1\75\13\uffff\12\75\7\uffff\32\75\4\uffff\1\75\1\uffff\14"+
+            "\75\1\u0178\15\75",
+            "\1\u017a",
+            "\1\u017b",
+            "\1\u017c",
+            "\1\u017d",
+            "\1\u017e",
+            "\1\u017f",
+            "\1\u0180",
+            "\1\u0181\5\uffff\1\u0182",
+            "\1\u0183",
+            "\1\u0184",
+            "\1\u0185",
+            "\1\u0186",
+            "\1\u0187",
+            "\1\u0188",
+            "\1\u0189",
+            "\1\u018a",
+            "",
+            "\1\u018b",
+            "\1\u018c",
+            "\1\u018d",
+            "\1\u018e",
+            "",
+            "\1\u018f",
+            "\1\u0190",
+            "\1\u0191",
+            "\1\u0192",
+            "\1\u0194\14\uffff\1\u0193",
+            "\1\u0195",
+            "\1\u0196",
+            "\1\u0198\1\u0197",
+            "\1\u0199",
+            "\1\75\13\uffff\12\75\7\uffff\32\75\4\uffff\1\75\1\uffff\32"+
+            "\75",
+            "\1\u019b",
+            "\1\u019c",
+            "\1\u019d",
+            "\1\u019e",
+            "\1\u019f",
+            "\1\u01a0",
+            "\1\u01a1",
+            "\1\u01a2",
+            "\1\u01a3",
+            "\1\u01a4",
+            "\1\u01a5",
+            "\1\u01a6",
+            "\1\u01a7",
+            "\1\u01a8",
+            "\1\u01a9",
+            "\1\u01aa",
+            "\1\75\13\uffff\12\75\7\uffff\32\75\4\uffff\1\75\1\uffff\32"+
+            "\75",
+            "\1\u01ac",
+            "\1\u01ad",
+            "\1\u01ae",
+            "\1\u01af",
+            "\1\u01b0",
+            "\1\u01b1",
+            "\1\u01b2",
+            "",
+            "",
+            "\1\u01b3",
+            "\1\u01b4",
+            "\1\u01b5",
+            "\1\u01b6",
+            "\1\u01b7",
+            "",
+            "",
+            "\1\u01b8",
+            "\1\u01b9",
+            "\1\u01ba",
+            "\1\u01bb",
+            "\1\u01bc",
+            "\1\u01bd",
+            "\1\u01be",
+            "\1\u01bf",
+            "\1\u01c0",
+            "\1\75\13\uffff\12\75\7\uffff\32\75\4\uffff\1\75\1\uffff\32"+
+            "\75",
+            "\1\u01c2",
+            "\1\u01c3",
+            "\1\u01c5\3\uffff\1\u01c4",
+            "\1\u01c6",
+            "\1\u01c7",
+            "\1\u01c8",
+            "\1\u01c9",
+            "\1\u01ca",
+            "\1\u01cb",
+            "\1\u01cc",
+            "\1\u01cd",
+            "",
+            "\1\u01ce",
+            "\1\u01cf",
+            "\1\75\13\uffff\12\75\7\uffff\32\75\4\uffff\1\75\1\uffff\32"+
+            "\75",
+            "",
+            "\1\u01d1",
+            "\1\u01d2",
+            "",
+            "",
+            "",
+            "\1\u01d3",
+            "\1\u01d4",
+            "",
+            "",
+            "\1\u01d5\6\uffff\1\u01d6",
+            "\1\u01d7",
+            "\1\75\13\uffff\12\75\7\uffff\32\75\4\uffff\1\75\1\uffff\32"+
+            "\75",
+            "\1\u01d9",
+            "\1\u01da",
+            "\1\75\13\uffff\12\75\7\uffff\32\75\4\uffff\1\75\1\uffff\32"+
+            "\75",
+            "\1\u01dc",
+            "\1\u01dd",
+            "\1\u01de",
+            "\1\u01df",
+            "\1\u01e0",
+            "\1\u01e1",
+            "\1\u01e2",
+            "\1\u01e4\5\uffff\1\u01e3",
+            "\1\u01e5",
+            "\1\u01e6",
+            "\1\u01e7",
+            "\1\u01e8",
+            "\1\u01e9",
+            "\1\u01eb\16\uffff\1\u01ea",
+            "\1\u01ec",
+            "\1\u01ed",
+            "",
+            "\1\u01ee",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "\1\u01ef",
+            "\1\75\13\uffff\12\75\7\uffff\32\75\4\uffff\1\75\1\uffff\32"+
+            "\75",
+            "\1\75\13\uffff\12\75\7\uffff\32\75\4\uffff\1\75\1\uffff\32"+
+            "\75",
+            "\1\u01f2",
+            "\1\u01f4\106\uffff\1\u01f3",
+            "\1\u01f5",
+            "\1\75\13\uffff\12\75\7\uffff\32\75\4\uffff\1\75\1\uffff\32"+
+            "\75",
+            "\1\u01f7",
+            "\1\u01f8",
+            "\1\u01f9",
+            "",
+            "\1\u01fa",
+            "\1\u01fb",
+            "\1\u01fc",
+            "\1\75\13\uffff\12\75\7\uffff\32\75\4\uffff\1\75\1\uffff\14"+
+            "\75\1\u01fd\15\75",
+            "\1\u01ff",
+            "\1\u0200",
+            "\1\u0202\3\uffff\1\u0201",
+            "\1\75\13\uffff\12\75\7\uffff\32\75\4\uffff\1\75\1\uffff\32"+
+            "\75",
+            "\1\u0204",
+            "\1\u0205",
+            "\1\u0206",
+            "",
+            "\1\75\13\uffff\12\75\7\uffff\32\75\4\uffff\1\75\1\uffff\22"+
+            "\75\1\u0207\7\75",
+            "\1\u0209",
+            "\1\u020a",
+            "\1\u020b",
+            "\1\75\13\uffff\12\75\7\uffff\32\75\4\uffff\1\75\1\uffff\32"+
+            "\75",
+            "\1\u020d",
+            "\1\u020e",
+            "\1\u020f",
+            "\1\u0210",
+            "\1\u0211",
+            "\1\u0212",
+            "\1\u0213",
+            "\1\u0214",
+            "\1\75\13\uffff\12\75\7\uffff\32\75\4\uffff\1\75\1\uffff\2"+
+            "\75\1\u0215\27\75",
+            "\1\u0217",
+            "\1\75\13\uffff\12\75\7\uffff\32\75\4\uffff\1\75\1\uffff\32"+
+            "\75",
+            "\1\u0219",
+            "\1\75\13\uffff\12\75\7\uffff\32\75\4\uffff\1\75\1\uffff\32"+
+            "\75",
+            "\1\u021b",
+            "\1\u021c",
+            "\1\u021d",
+            "\1\u021e",
+            "\1\u021f",
+            "\1\u0220",
+            "\1\u0221",
+            "\1\u0222",
+            "\1\u0223",
+            "\1\75\10\uffff\1\u0224\2\uffff\12\75\7\uffff\32\75\4\uffff"+
+            "\1\75\1\uffff\32\75",
+            "\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\75\13\uffff\12\75\7\uffff\32\75\4\uffff\1\75\1\uffff\16"+
+            "\75\1\u0232\13\75",
+            "\1\u0234",
+            "\1\u0235",
+            "\1\u0236",
+            "\1\u0237",
+            "\1\u0238",
+            "\1\u0239",
+            "\1\75\13\uffff\12\75\7\uffff\32\75\4\uffff\1\75\1\uffff\32"+
+            "\75",
+            "",
+            "\1\75\13\uffff\12\75\7\uffff\32\75\4\uffff\1\75\1\uffff\1"+
+            "\u023c\1\75\1\u023b\27\75",
+            "\1\u023e",
+            "\1\75\13\uffff\12\75\7\uffff\32\75\4\uffff\1\75\1\uffff\32"+
+            "\75",
+            "\1\u0240",
+            "\1\u0241",
+            "\1\u0242",
+            "\1\u0243",
+            "\1\u0244",
+            "\1\u0245",
+            "\1\u0246",
+            "\1\75\13\uffff\12\75\7\uffff\32\75\4\uffff\1\75\1\uffff\32"+
+            "\75",
+            "\1\u0248",
+            "\1\u0249",
+            "",
+            "\1\u024a",
+            "\1\u024b",
+            "\1\u024c",
+            "\1\u024d",
+            "\1\u024e",
+            "\1\u024f",
+            "\1\u0250",
+            "",
+            "\1\u0251",
+            "\1\u0252",
+            "\1\75\6\uffff\1\u0253\4\uffff\12\75\7\uffff\32\75\4\uffff"+
+            "\1\75\1\uffff\32\75",
+            "\1\u0255",
+            "\1\u0256",
+            "\1\u0257",
+            "\1\u0258",
+            "\1\u0259",
+            "\1\u025a",
+            "\1\u025b",
+            "\1\u025c",
+            "\1\u025d",
+            "\1\u025e",
+            "\1\u025f",
+            "",
+            "\1\u0260",
+            "\1\u0261",
+            "\1\u0262",
+            "\1\75\13\uffff\12\75\7\uffff\32\75\4\uffff\1\75\1\uffff\32"+
+            "\75",
+            "\1\u0264",
+            "",
+            "\1\u0265",
+            "",
+            "\1\u0266",
+            "\1\75\13\uffff\12\75\7\uffff\32\75\4\uffff\1\75\1\uffff\32"+
+            "\75",
+            "",
+            "\1\u0268",
+            "\1\75\13\uffff\12\75\7\uffff\32\75\4\uffff\1\75\1\uffff\32"+
+            "\75",
+            "\1\u026a",
+            "\1\u026b",
+            "\1\u026c",
+            "\1\75\13\uffff\12\75\7\uffff\32\75\4\uffff\1\75\1\uffff\32"+
+            "\75",
+            "\1\75\13\uffff\12\75\7\uffff\32\75\4\uffff\1\75\1\uffff\32"+
+            "\75",
+            "\1\u026f",
+            "\1\u0270",
+            "\1\u0271",
+            "\1\u0272",
+            "\1\u0273",
+            "\1\u0274",
+            "\1\u0275",
+            "\1\u0276",
+            "\1\u0277",
+            "\1\75\13\uffff\12\75\7\uffff\32\75\4\uffff\1\75\1\uffff\32"+
+            "\75",
+            "\1\75\13\uffff\12\75\7\uffff\32\75\4\uffff\1\75\1\uffff\32"+
+            "\75",
+            "\1\u027a",
+            "\1\u027b",
+            "",
+            "",
+            "\1\u027c",
+            "\1\u027d",
+            "\1\u027e\7\uffff\1\u027f",
+            "\1\u0280",
+            "",
+            "\1\u0281",
+            "\1\u0282",
+            "\1\u0283",
+            "\1\u0284",
+            "\1\75\13\uffff\12\75\7\uffff\32\75\4\uffff\1\75\1\uffff\32"+
+            "\75",
+            "\1\u0286",
+            "\1\u0287",
+            "",
+            "\1\u0288",
+            "\1\u0289",
+            "\1\u028a",
+            "\1\u028b\16\uffff\1\u028c",
+            "",
+            "\1\75\13\uffff\12\75\7\uffff\32\75\4\uffff\1\75\1\uffff\32"+
+            "\75",
+            "",
+            "\1\u028e",
+            "\1\75\13\uffff\12\75\7\uffff\32\75\4\uffff\1\75\1\uffff\32"+
+            "\75",
+            "",
+            "\1\u0290",
+            "\1\u0291",
+            "\1\75\13\uffff\12\75\7\uffff\32\75\4\uffff\1\75\1\uffff\32"+
+            "\75",
+            "",
+            "\1\u0293",
+            "\1\75\13\uffff\12\75\7\uffff\32\75\4\uffff\1\75\1\uffff\32"+
+            "\75",
+            "\1\75\13\uffff\12\75\7\uffff\32\75\4\uffff\1\75\1\uffff\22"+
+            "\75\1\u0295\7\75",
+            "\1\u0297",
+            "\1\75\13\uffff\12\75\7\uffff\32\75\4\uffff\1\75\1\uffff\32"+
+            "\75",
+            "\1\u0299",
+            "\1\u029a",
+            "\1\u029b",
+            "\1\u029c",
+            "",
+            "\1\u029d",
+            "",
+            "\1\75\13\uffff\12\75\7\uffff\32\75\4\uffff\1\75\1\uffff\32"+
+            "\75",
+            "",
+            "\1\75\13\uffff\12\75\7\uffff\32\75\4\uffff\1\75\1\uffff\22"+
+            "\75\1\u029f\7\75",
+            "\1\u02a1",
+            "\1\u02a2",
+            "\1\u02a3",
+            "\1\u02a4",
+            "\1\75\13\uffff\12\75\7\uffff\32\75\4\uffff\1\75\1\uffff\22"+
+            "\75\1\u02a5\7\75",
+            "\1\u02a7",
+            "\1\u02a8",
+            "\1\u02a9",
+            "",
+            "",
+            "\1\u02aa",
+            "\1\u02ab",
+            "\1\u02ac",
+            "\1\75\13\uffff\12\75\7\uffff\32\75\4\uffff\1\75\1\uffff\32"+
+            "\75",
+            "\1\75\10\uffff\1\u02ae\2\uffff\12\75\7\uffff\32\75\4\uffff"+
+            "\1\75\1\uffff\32\75",
+            "\1\u02b0",
+            "\1\u02b1",
+            "\1\u02b2",
+            "",
+            "\1\75\13\uffff\12\75\7\uffff\32\75\4\uffff\1\75\1\uffff\32"+
+            "\75",
+            "\1\u02b4",
+            "\1\75\13\uffff\12\75\7\uffff\32\75\4\uffff\1\75\1\uffff\32"+
+            "\75",
+            "\1\u02b6",
+            "",
+            "\1\u02b7",
+            "\1\u02b8",
+            "\1\u02b9",
+            "\1\u02ba",
+            "\1\u02bb",
+            "\1\75\13\uffff\12\75\7\uffff\32\75\4\uffff\1\75\1\uffff\32"+
+            "\75",
+            "",
+            "\1\u02bd",
+            "\1\u02be",
+            "",
+            "\1\u02bf",
+            "",
+            "\1\75\13\uffff\12\75\7\uffff\32\75\4\uffff\1\75\1\uffff\32"+
+            "\75",
+            "\1\75\13\uffff\12\75\7\uffff\32\75\4\uffff\1\75\1\uffff\32"+
+            "\75",
+            "\1\75\13\uffff\12\75\7\uffff\32\75\4\uffff\1\75\1\uffff\32"+
+            "\75",
+            "\1\u02c3",
+            "\1\u02c4",
+            "\1\u02c5",
+            "\1\u02c6",
+            "",
+            "\1\u02c7",
+            "\1\u02c8",
+            "\1\75\13\uffff\12\75\7\uffff\32\75\4\uffff\1\75\1\uffff\14"+
+            "\75\1\u02c9\15\75",
+            "\1\u02cb",
+            "\1\75\13\uffff\12\75\7\uffff\32\75\4\uffff\1\75\1\uffff\32"+
+            "\75",
+            "\1\u02cd",
+            "\1\u02ce",
+            "\1\u02cf",
+            "\1\u02d0",
+            "\1\u02d1",
+            "\1\u02d2",
+            "",
+            "",
+            "\1\u02d3",
+            "",
+            "\1\u02d4",
+            "\1\u02d5",
+            "\1\u02d6",
+            "\1\u02d7",
+            "\1\u02d8",
+            "\1\u02d9",
+            "\1\u02da",
+            "\1\u02db",
+            "\1\u02dc",
+            "\1\u02dd",
+            "\1\u02de",
+            "\1\u02df",
+            "",
+            "\1\u02e2\2\uffff\1\u02e1\14\uffff\1\u02e0",
+            "\1\u02e3",
+            "\1\u02e4",
+            "",
+            "\1\u02e5",
+            "",
+            "\1\u02e6",
+            "\1\u02e7",
+            "\1\u02e8",
+            "",
+            "",
+            "\1\75\13\uffff\12\75\7\uffff\32\75\4\uffff\1\75\1\uffff\32"+
+            "\75",
+            "\1\u02ea",
+            "\1\u02eb",
+            "",
+            "\1\75\13\uffff\12\75\7\uffff\32\75\4\uffff\1\75\1\uffff\32"+
+            "\75",
+            "\1\u02ed",
+            "\1\u02ee",
+            "\1\u02ef",
+            "\1\75\13\uffff\12\75\7\uffff\32\75\4\uffff\1\75\1\uffff\32"+
+            "\75",
+            "",
+            "",
+            "\1\u02f1",
+            "\1\75\13\uffff\12\75\7\uffff\32\75\4\uffff\1\75\1\uffff\32"+
+            "\75",
+            "\1\u02f3",
+            "\1\u02f4",
+            "\1\u02f5",
+            "",
+            "\1\u02f6",
+            "\1\u02f7",
+            "\1\u02f8",
+            "\1\u02f9",
+            "\1\u02fa",
+            "",
+            "\1\u02fb",
+            "\1\u02fc",
+            "\1\u02fd",
+            "\1\u02fe",
+            "\1\u02ff",
+            "\1\u0300",
+            "\1\u0301",
+            "",
+            "\1\u0302",
+            "",
+            "\1\75\13\uffff\12\75\7\uffff\32\75\4\uffff\1\75\1\uffff\32"+
+            "\75",
+            "\1\75\13\uffff\12\75\7\uffff\32\75\4\uffff\1\75\1\uffff\32"+
+            "\75",
+            "",
+            "\1\u0305",
+            "",
+            "\1\75\13\uffff\12\75\7\uffff\32\75\4\uffff\1\75\1\uffff\32"+
+            "\75",
+            "",
+            "\1\u0307",
+            "",
+            "\1\75\13\uffff\12\75\7\uffff\32\75\4\uffff\1\75\1\uffff\32"+
+            "\75",
+            "\1\u0309",
+            "\1\75\13\uffff\12\75\7\uffff\32\75\4\uffff\1\75\1\uffff\32"+
+            "\75",
+            "\1\u030b",
+            "\1\75\13\uffff\12\75\7\uffff\32\75\4\uffff\1\75\1\uffff\32"+
+            "\75",
+            "",
+            "\1\75\13\uffff\12\75\7\uffff\32\75\4\uffff\1\75\1\uffff\32"+
+            "\75",
+            "",
+            "\1\u030e",
+            "\1\u030f",
+            "\1\u0310",
+            "\1\u0311",
+            "\1\75\13\uffff\12\75\7\uffff\32\75\4\uffff\1\75\1\uffff\32"+
+            "\75",
+            "",
+            "\1\75\13\uffff\12\75\7\uffff\32\75\4\uffff\1\75\1\uffff\32"+
+            "\75",
+            "\1\75\13\uffff\12\75\7\uffff\32\75\4\uffff\1\75\1\uffff\32"+
+            "\75",
+            "\1\u0315",
+            "\1\u0316\5\uffff\1\u0317",
+            "\1\u0318",
+            "\1\u0319",
+            "",
+            "",
+            "",
+            "\1\u031a",
+            "\1\75\13\uffff\12\75\7\uffff\32\75\4\uffff\1\75\1\uffff\32"+
+            "\75",
+            "\1\u031c",
+            "",
+            "\1\u031d",
+            "",
+            "\1\75\13\uffff\12\75\7\uffff\32\75\4\uffff\1\75\1\uffff\32"+
+            "\75",
+            "\1\u031f",
+            "\1\u0320",
+            "\1\u0321",
+            "\1\u0322",
+            "\1\u0323",
+            "",
+            "\1\u0324",
+            "\1\u0325",
+            "\1\u0326",
+            "",
+            "",
+            "",
+            "\1\u0327",
+            "\1\u0328",
+            "\1\75\13\uffff\12\75\7\uffff\32\75\4\uffff\1\75\1\uffff\32"+
+            "\75",
+            "\1\u032a",
+            "\1\u032b",
+            "\1\u032c",
+            "\1\u032d",
+            "",
+            "\1\75\13\uffff\12\75\7\uffff\32\75\4\uffff\1\75\1\uffff\32"+
+            "\75",
+            "",
+            "\1\75\13\uffff\12\75\7\uffff\32\75\4\uffff\1\75\1\uffff\32"+
+            "\75",
+            "\1\u0330",
+            "\1\75\13\uffff\12\75\7\uffff\32\75\4\uffff\1\75\1\uffff\32"+
+            "\75",
+            "\1\75\13\uffff\12\75\7\uffff\32\75\4\uffff\1\75\1\uffff\32"+
+            "\75",
+            "\1\u0333",
+            "\1\u0334",
+            "\1\u0335",
+            "\1\75\13\uffff\12\75\7\uffff\32\75\4\uffff\1\75\1\uffff\32"+
+            "\75",
+            "\1\u0337",
+            "\1\75\13\uffff\12\75\7\uffff\32\75\4\uffff\1\75\1\uffff\5"+
+            "\75\1\u0339\1\75\1\u0338\12\75\1\u033a\7\75",
+            "\1\u033c",
+            "\1\u033d",
+            "\1\75\13\uffff\12\75\7\uffff\32\75\4\uffff\1\75\1\uffff\32"+
+            "\75",
+            "\1\75\13\uffff\12\75\7\uffff\32\75\4\uffff\1\75\1\uffff\32"+
+            "\75",
+            "\1\75\13\uffff\12\75\7\uffff\32\75\4\uffff\1\75\1\uffff\32"+
+            "\75",
+            "\1\u0341",
+            "\1\u0342",
+            "\1\u0343",
+            "\1\u0344",
+            "",
+            "",
+            "",
+            "\1\u0345",
+            "\1\75\13\uffff\12\75\7\uffff\32\75\4\uffff\1\75\1\uffff\32"+
+            "\75",
+            "\1\75\13\uffff\12\75\7\uffff\32\75\4\uffff\1\75\1\uffff\32"+
+            "\75",
+            "\1\75\13\uffff\12\75\7\uffff\32\75\4\uffff\1\75\1\uffff\32"+
+            "\75",
+            "\1\75\13\uffff\12\75\7\uffff\32\75\4\uffff\1\75\1\uffff\32"+
+            "\75",
+            "\1\u034a",
+            "",
+            "\1\75\13\uffff\12\75\7\uffff\32\75\4\uffff\1\75\1\uffff\32"+
+            "\75",
+            "\1\u034c",
+            "",
+            "\1\75\13\uffff\12\75\7\uffff\32\75\4\uffff\1\75\1\uffff\32"+
+            "\75",
+            "\1\u034e",
+            "\1\u034f",
+            "",
+            "\1\75\13\uffff\12\75\7\uffff\32\75\4\uffff\1\75\1\uffff\32"+
+            "\75",
+            "",
+            "\1\75\13\uffff\12\75\7\uffff\32\75\4\uffff\1\75\1\uffff\32"+
+            "\75",
+            "\1\u0352",
+            "\1\u0353",
+            "\1\u0354",
+            "\1\u0355",
+            "\1\u0356",
+            "\1\75\13\uffff\12\75\7\uffff\32\75\4\uffff\1\75\1\uffff\32"+
+            "\75",
+            "",
+            "\1\u0358",
+            "\1\u0359",
+            "\1\u035a",
+            "\1\75\13\uffff\12\75\7\uffff\32\75\4\uffff\1\75\1\uffff\32"+
+            "\75",
+            "\1\u035c",
+            "\1\75\13\uffff\12\75\7\uffff\32\75\4\uffff\1\75\1\uffff\32"+
+            "\75",
+            "\1\u035e",
+            "\1\u035f",
+            "",
+            "",
+            "\1\75\13\uffff\12\75\7\uffff\32\75\4\uffff\1\75\1\uffff\32"+
+            "\75",
+            "",
+            "\1\u0361",
+            "",
+            "\1\u0362",
+            "",
+            "\1\u0363",
+            "",
+            "",
+            "\1\u0365\11\uffff\1\u0366\5\uffff\1\u0367\1\uffff\1\u0364",
+            "\1\75\13\uffff\12\75\7\uffff\32\75\4\uffff\1\75\1\uffff\32"+
+            "\75",
+            "\1\u0369",
+            "\1\75\13\uffff\12\75\7\uffff\32\75\4\uffff\1\75\1\uffff\32"+
+            "\75",
+            "",
+            "",
+            "",
+            "\1\u036b",
+            "\1\u036c",
+            "\1\u036d",
+            "\1\u036e",
+            "\1\u036f",
+            "\1\u0370",
+            "",
+            "\1\u0371",
+            "\1\75\13\uffff\12\75\7\uffff\32\75\4\uffff\1\75\1\uffff\32"+
+            "\75",
+            "",
+            "\1\u0373",
+            "\1\75\13\uffff\12\75\7\uffff\32\75\4\uffff\1\75\1\uffff\32"+
+            "\75",
+            "\1\75\13\uffff\12\75\7\uffff\32\75\4\uffff\1\75\1\uffff\32"+
+            "\75",
+            "\1\u0376",
+            "\1\u0377",
+            "\1\u0378",
+            "\1\u0379",
+            "\1\u037a",
+            "\1\u037b",
+            "\1\75\13\uffff\12\75\7\uffff\32\75\4\uffff\1\75\1\uffff\32"+
+            "\75",
+            "",
+            "\1\u037d",
+            "\1\u037f\11\uffff\1\u0380\5\uffff\1\u0381\1\uffff\1\u037e",
+            "\1\u0382",
+            "\1\u0383",
+            "",
+            "",
+            "\1\u0384",
+            "",
+            "",
+            "\1\u0385",
+            "\1\75\13\uffff\12\75\7\uffff\32\75\4\uffff\1\75\1\uffff\32"+
+            "\75",
+            "\1\u0387",
+            "",
+            "\1\u0388",
+            "\1\u0389",
+            "\1\u038a",
+            "\1\75\13\uffff\12\75\7\uffff\32\75\4\uffff\1\75\1\uffff\32"+
+            "\75",
+            "",
+            "\1\75\13\uffff\12\75\7\uffff\32\75\4\uffff\1\75\1\uffff\32"+
+            "\75",
+            "\1\75\13\uffff\12\75\7\uffff\32\75\4\uffff\1\75\1\uffff\32"+
+            "\75",
+            "",
+            "",
+            "",
+            "\1\u038e",
+            "\1\u038f",
+            "\1\u0390",
+            "\1\75\13\uffff\12\75\7\uffff\32\75\4\uffff\1\75\1\uffff\32"+
+            "\75",
+            "\1\u0392",
+            "",
+            "",
+            "",
+            "",
+            "\1\u0393",
+            "",
+            "\1\u0394",
+            "",
+            "\1\u0395",
+            "\1\u0396",
+            "",
+            "",
+            "\1\u0397",
+            "\1\u0398",
+            "\1\u039a\11\uffff\1\u039b\5\uffff\1\u039c\1\uffff\1\u0399",
+            "\1\75\13\uffff\12\75\7\uffff\32\75\4\uffff\1\75\1\uffff\32"+
+            "\75",
+            "\1\75\13\uffff\12\75\7\uffff\32\75\4\uffff\1\75\1\uffff\32"+
+            "\75",
+            "",
+            "\1\u039f",
+            "\1\u03a0",
+            "\1\75\13\uffff\12\75\7\uffff\32\75\4\uffff\1\75\1\uffff\32"+
+            "\75",
+            "",
+            "\1\u03a2",
+            "",
+            "\1\u03a3",
+            "\1\u03a4",
+            "",
+            "\1\u03a5",
+            "\1\75\13\uffff\12\75\7\uffff\32\75\4\uffff\1\75\1\uffff\32"+
+            "\75",
+            "\1\u03a7",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "\1\u03a8",
+            "",
+            "\1\u03a9",
+            "\1\u03aa",
+            "\1\u03ab",
+            "\1\75\13\uffff\12\75\7\uffff\32\75\4\uffff\1\75\1\uffff\32"+
+            "\75",
+            "\1\u03ad",
+            "\1\u03ae",
+            "\1\u03af",
+            "",
+            "\1\u03b0",
+            "",
+            "",
+            "\1\u03b1",
+            "\1\u03b2",
+            "\1\u03b3",
+            "\1\u03b4",
+            "\1\75\13\uffff\12\75\7\uffff\32\75\4\uffff\1\75\1\uffff\32"+
+            "\75",
+            "\1\u03b6",
+            "",
+            "\1\u03b7",
+            "",
+            "",
+            "",
+            "",
+            "\1\u03b8",
+            "\1\u03b9",
+            "\1\u03ba",
+            "\1\u03bb\17\uffff\1\u03bc",
+            "",
+            "\1\75\13\uffff\12\75\7\uffff\32\75\4\uffff\1\75\1\uffff\32"+
+            "\75",
+            "\1\u03be",
+            "\1\u03bf",
+            "\1\u03c0",
+            "",
+            "",
+            "",
+            "\1\u03c1",
+            "\1\u03c2",
+            "\1\75\13\uffff\12\75\7\uffff\32\75\4\uffff\1\75\1\uffff\32"+
+            "\75",
+            "",
+            "\1\u03c4",
+            "\1\u03c5",
+            "",
+            "\1\u03c6",
+            "\1\u03c7",
+            "\1\u03c8",
+            "\1\u03c9",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "\1\75\13\uffff\12\75\7\uffff\32\75\4\uffff\1\75\1\uffff\32"+
+            "\75",
+            "\1\u03cb",
+            "",
+            "\1\u03cc",
+            "\1\75\13\uffff\12\75\7\uffff\32\75\4\uffff\1\75\1\uffff\32"+
+            "\75",
+            "\1\75\13\uffff\12\75\7\uffff\32\75\4\uffff\1\75\1\uffff\22"+
+            "\75\1\u03ce\7\75",
+            "\1\u03d0",
+            "",
+            "\1\75\13\uffff\12\75\7\uffff\32\75\4\uffff\1\75\1\uffff\32"+
+            "\75",
+            "\1\75\13\uffff\12\75\7\uffff\32\75\4\uffff\1\75\1\uffff\32"+
+            "\75",
+            "\1\u03d3",
+            "\1\u03d4",
+            "\1\u03d5",
+            "",
+            "\1\u03d6",
+            "\1\u03d7",
+            "\1\u03d8",
+            "\1\75\13\uffff\12\75\7\uffff\32\75\4\uffff\1\75\1\uffff\32"+
+            "\75",
+            "\1\u03da",
+            "\1\u03db",
+            "\1\75\13\uffff\12\75\7\uffff\32\75\4\uffff\1\75\1\uffff\32"+
+            "\75",
+            "\1\75\13\uffff\12\75\7\uffff\32\75\4\uffff\1\75\1\uffff\32"+
+            "\75",
+            "",
+            "\1\u03de",
+            "\1\u03df",
+            "\1\u03e0",
+            "\1\u03e1",
+            "\1\75\13\uffff\12\75\7\uffff\32\75\4\uffff\1\75\1\uffff\32"+
+            "\75",
+            "",
+            "",
+            "",
+            "\1\u03e3",
+            "\1\u03e4",
+            "\1\u03e5",
+            "\1\75\13\uffff\12\75\7\uffff\32\75\4\uffff\1\75\1\uffff\32"+
+            "\75",
+            "\1\75\13\uffff\12\75\7\uffff\32\75\4\uffff\1\75\1\uffff\32"+
+            "\75",
+            "",
+            "\1\u03e8",
+            "\1\75\13\uffff\12\75\7\uffff\32\75\4\uffff\1\75\1\uffff\32"+
+            "\75",
+            "\1\75\13\uffff\12\75\7\uffff\32\75\4\uffff\1\75\1\uffff\32"+
+            "\75",
+            "\1\u03eb",
+            "\1\u03ec",
+            "\1\u03ed",
+            "",
+            "\1\75\13\uffff\12\75\7\uffff\32\75\4\uffff\1\75\1\uffff\32"+
+            "\75",
+            "\1\u03ef",
+            "",
+            "\1\75\13\uffff\12\75\7\uffff\32\75\4\uffff\1\75\1\uffff\32"+
+            "\75",
+            "",
+            "\1\75\13\uffff\12\75\7\uffff\32\75\4\uffff\1\75\1\uffff\32"+
+            "\75",
+            "",
+            "",
+            "\1\75\13\uffff\12\75\7\uffff\32\75\4\uffff\1\75\1\uffff\32"+
+            "\75",
+            "\1\u03f3",
+            "\1\75\13\uffff\12\75\7\uffff\32\75\4\uffff\1\75\1\uffff\32"+
+            "\75",
+            "\1\u03f5",
+            "\1\75\13\uffff\12\75\7\uffff\32\75\4\uffff\1\75\1\uffff\32"+
+            "\75",
+            "\1\u03f7",
+            "",
+            "\1\u03f8",
+            "\1\75\13\uffff\12\75\7\uffff\32\75\4\uffff\1\75\1\uffff\32"+
+            "\75",
+            "",
+            "",
+            "\1\u03fb",
+            "\1\u03fc",
+            "\1\u03fd",
+            "\1\u03fe",
+            "",
+            "",
+            "\1\u03ff",
+            "\1\u0400",
+            "",
+            "",
+            "\1\u0401",
+            "",
+            "",
+            "\1\75\13\uffff\12\75\7\uffff\32\75\4\uffff\1\75\1\uffff\32"+
+            "\75",
+            "\1\u0403",
+            "\1\u0404",
+            "",
+            "\1\u0406",
+            "",
+            "",
+            "",
+            "\1\75\13\uffff\12\75\7\uffff\32\75\4\uffff\1\75\1\uffff\32"+
+            "\75",
+            "",
+            "\1\75\13\uffff\12\75\7\uffff\32\75\4\uffff\1\75\1\uffff\32"+
+            "\75",
+            "",
+            "\1\u0409",
+            "",
+            "",
+            "",
+            "\1\75\13\uffff\12\75\7\uffff\32\75\4\uffff\1\75\1\uffff\32"+
+            "\75",
+            "\1\u040b",
+            "\1\u040c",
+            "\1\75\13\uffff\12\75\7\uffff\32\75\4\uffff\1\75\1\uffff\32"+
+            "\75",
+            "\1\u040e",
+            "\1\u040f",
+            "\1\75\13\uffff\12\75\7\uffff\32\75\4\uffff\1\75\1\uffff\32"+
+            "\75",
+            "",
+            "\1\75\13\uffff\12\75\7\uffff\32\75\4\uffff\1\75\1\uffff\32"+
+            "\75",
+            "",
+            "",
+            "\1\u0412",
+            "",
+            "",
+            "\1\75\13\uffff\12\75\7\uffff\32\75\4\uffff\1\75\1\uffff\32"+
+            "\75",
+            "",
+            "\1\75\13\uffff\12\75\7\uffff\32\75\4\uffff\1\75\1\uffff\32"+
+            "\75",
+            "\1\u0415",
+            "",
+            "\1\75\13\uffff\12\75\7\uffff\32\75\4\uffff\1\75\1\uffff\32"+
+            "\75",
+            "\1\75\13\uffff\12\75\7\uffff\32\75\4\uffff\1\75\1\uffff\32"+
+            "\75",
+            "",
+            "",
+            "\1\u0418",
+            "",
+            "",
+            "\1\u0419",
+            "",
+            "",
+            "\1\75\13\uffff\12\75\7\uffff\32\75\4\uffff\1\75\1\uffff\32"+
+            "\75",
+            "\1\u041b",
+            "",
+            "\1\75\13\uffff\12\75\7\uffff\32\75\4\uffff\1\75\1\uffff\32"+
+            "\75",
+            ""
+    };
+
+    static final short[] DFA21_eot = DFA.unpackEncodedString(DFA21_eotS);
+    static final short[] DFA21_eof = DFA.unpackEncodedString(DFA21_eofS);
+    static final char[] DFA21_min = DFA.unpackEncodedStringToUnsignedChars(DFA21_minS);
+    static final char[] DFA21_max = DFA.unpackEncodedStringToUnsignedChars(DFA21_maxS);
+    static final short[] DFA21_accept = DFA.unpackEncodedString(DFA21_acceptS);
+    static final short[] DFA21_special = DFA.unpackEncodedString(DFA21_specialS);
+    static final short[][] DFA21_transition;
+
+    static {
+        int numStates = DFA21_transitionS.length;
+        DFA21_transition = new short[numStates][];
+        for (int i=0; i<numStates; i++) {
+            DFA21_transition[i] = DFA.unpackEncodedString(DFA21_transitionS[i]);
+        }
+    }
+
+    class DFA21 extends DFA {
+
+        public DFA21(BaseRecognizer recognizer) {
+            this.recognizer = recognizer;
+            this.decisionNumber = 21;
+            this.eot = DFA21_eot;
+            this.eof = DFA21_eof;
+            this.min = DFA21_min;
+            this.max = DFA21_max;
+            this.accept = DFA21_accept;
+            this.special = DFA21_special;
+            this.transition = DFA21_transition;
+        }
+        public String getDescription() {
+            return "1:1: Tokens : ( T__13 | T__14 | T__15 | T__16 | T__17 | T__18 | T__19 | T__20 | T__21 | T__22 | T__23 | T__24 | T__25 | T__26 | T__27 | T__28 | T__29 | T__30 | T__31 | T__32 | T__33 | T__34 | T__35 | T__36 | T__37 | T__38 | T__39 | T__40 | T__41 | T__42 | T__43 | T__44 | T__45 | T__46 | T__47 | T__48 | T__49 | T__50 | T__51 | T__52 | T__53 | T__54 | T__55 | T__56 | T__57 | T__58 | T__59 | T__60 | T__61 | T__62 | T__63 | T__64 | T__65 | T__66 | T__67 | T__68 | T__69 | T__70 | T__71 | T__72 | T__73 | T__74 | T__75 | T__76 | T__77 | T__78 | T__79 | T__80 | T__81 | T__82 | T__83 | T__84 | T__85 | T__86 | T__87 | T__88 | T__89 | T__90 | T__91 | T__92 | T__93 | T__94 | T__95 | T__96 | T__97 | T__98 | T__99 | T__100 | T__101 | T__102 | T__103 | T__104 | T__105 | T__106 | T__107 | T__108 | T__109 | T__110 | T__111 | T__112 | T__113 | T__114 | T__115 | T__116 | T__117 | T__118 | T__119 | T__120 | T__121 | T__122 | T__123 | T__124 | T__125 | T__126 | T__127 | T__128 | T__129 | T__130 | T__131 | T__132 | T__133 | T__134 | T__135 | T__136 | T__137 | T__138 | T__139 | T__140 | T__141 | T__142 | T__143 | T__144 | T__145 | T__146 | T__147 | T__148 | T__149 | T__150 | T__151 | T__152 | T__153 | T__154 | 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 | T__189 | T__190 | T__191 | T__192 | T__193 | T__194 | T__195 | T__196 | T__197 | T__198 | T__199 | T__200 | T__201 | T__202 | T__203 | T__204 | T__205 | T__206 | T__207 | T__208 | T__209 | T__210 | T__211 | T__212 | T__213 | T__214 | T__215 | T__216 | T__217 | T__218 | T__219 | T__220 | T__221 | T__222 | T__223 | T__224 | T__225 | T__226 | T__227 | T__228 | T__229 | T__230 | T__231 | T__232 | T__233 | T__234 | T__235 | T__236 | T__237 | T__238 | T__239 | T__240 | T__241 | T__242 | T__243 | T__244 | T__245 | T__246 | T__247 | T__248 | T__249 | T__250 | T__251 | T__252 | T__253 | T__254 | 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 LA21_0 = input.LA(1);
+
+                        s = -1;
+                        if ( (LA21_0=='p') ) {s = 1;}
+
+                        else if ( (LA21_0=='{') ) {s = 2;}
+
+                        else if ( (LA21_0=='l') ) {s = 3;}
+
+                        else if ( (LA21_0=='e') ) {s = 4;}
+
+                        else if ( (LA21_0=='f') ) {s = 5;}
+
+                        else if ( (LA21_0=='}') ) {s = 6;}
+
+                        else if ( (LA21_0=='c') ) {s = 7;}
+
+                        else if ( (LA21_0=='m') ) {s = 8;}
+
+                        else if ( (LA21_0=='s') ) {s = 9;}
+
+                        else if ( (LA21_0=='t') ) {s = 10;}
+
+                        else if ( (LA21_0=='o') ) {s = 11;}
+
+                        else if ( (LA21_0=='b') ) {s = 12;}
+
+                        else if ( (LA21_0=='r') ) {s = 13;}
+
+                        else if ( (LA21_0=='d') ) {s = 14;}
+
+                        else if ( (LA21_0=='a') ) {s = 15;}
+
+                        else if ( (LA21_0=='u') ) {s = 16;}
+
+                        else if ( (LA21_0=='n') ) {s = 17;}
+
+                        else if ( (LA21_0=='h') ) {s = 18;}
+
+                        else if ( (LA21_0=='g') ) {s = 19;}
+
+                        else if ( (LA21_0=='i') ) {s = 20;}
+
+                        else if ( (LA21_0=='(') ) {s = 21;}
+
+                        else if ( (LA21_0==')') ) {s = 22;}
+
+                        else if ( (LA21_0=='-') ) {s = 23;}
+
+                        else if ( (LA21_0=='.') ) {s = 24;}
+
+                        else if ( (LA21_0=='*') ) {s = 25;}
+
+                        else if ( (LA21_0=='@') ) {s = 26;}
+
+                        else if ( (LA21_0==',') ) {s = 27;}
+
+                        else if ( (LA21_0=='=') ) {s = 28;}
+
+                        else if ( (LA21_0=='#') ) {s = 29;}
+
+                        else if ( (LA21_0=='[') ) {s = 30;}
+
+                        else if ( (LA21_0==']') ) {s = 31;}
+
+                        else if ( (LA21_0=='+') ) {s = 32;}
+
+                        else if ( (LA21_0=='/') ) {s = 33;}
+
+                        else if ( (LA21_0=='%') ) {s = 34;}
+
+                        else if ( (LA21_0=='<') ) {s = 35;}
+
+                        else if ( (LA21_0=='>') ) {s = 36;}
+
+                        else if ( (LA21_0=='|') ) {s = 37;}
+
+                        else if ( (LA21_0=='&') ) {s = 38;}
+
+                        else if ( (LA21_0=='!') ) {s = 39;}
+
+                        else if ( (LA21_0=='?') ) {s = 40;}
+
+                        else if ( (LA21_0==':') ) {s = 41;}
+
+                        else if ( (LA21_0==';') ) {s = 42;}
+
+                        else if ( (LA21_0=='w') ) {s = 43;}
+
+                        else if ( (LA21_0=='v') ) {s = 44;}
+
+                        else if ( (LA21_0=='0') ) {s = 45;}
+
+                        else if ( ((LA21_0>='1' && LA21_0<='9')) ) {s = 46;}
+
+                        else if ( (LA21_0=='^') ) {s = 47;}
+
+                        else if ( (LA21_0=='$'||(LA21_0>='A' && LA21_0<='Z')||LA21_0=='_'||(LA21_0>='j' && LA21_0<='k')||LA21_0=='q'||(LA21_0>='x' && LA21_0<='z')) ) {s = 48;}
+
+                        else if ( (LA21_0=='\"') ) {s = 49;}
+
+                        else if ( (LA21_0=='\'') ) {s = 50;}
+
+                        else if ( ((LA21_0>='\t' && LA21_0<='\n')||LA21_0=='\r'||LA21_0==' ') ) {s = 51;}
+
+                        else if ( ((LA21_0>='\u0000' && LA21_0<='\b')||(LA21_0>='\u000B' && LA21_0<='\f')||(LA21_0>='\u000E' && LA21_0<='\u001F')||LA21_0=='\\'||LA21_0=='`'||(LA21_0>='~' && LA21_0<='\uFFFF')) ) {s = 52;}
+
+                        if ( s>=0 ) return s;
+                        break;
+            }
+            NoViableAltException nvae =
+                new NoViableAltException(getDescription(), 21, _s, input);
+            error(nvae);
+            throw nvae;
+        }
+    }
+ 
+
+}
diff --git a/org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSLParser.java b/org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSLParser.java
new file mode 100644
index 0000000..3bb52f8
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSLParser.java
@@ -0,0 +1,10015 @@
+/**
+ *                                                                            
+ *  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.reportdsl.parser.antlr.internal; 
+
+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.emf.common.util.Enumerator;
+import org.eclipse.xtext.parser.antlr.AbstractInternalAntlrParser;
+import org.eclipse.xtext.parser.antlr.XtextTokenStream;
+import org.eclipse.xtext.parser.antlr.XtextTokenStream.HiddenTokens;
+import org.eclipse.xtext.parser.antlr.AntlrDatatypeRuleToken;
+import org.eclipse.osbp.xtext.reportdsl.services.ReportDSLGrammarAccess;
+
+
+
+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 InternalReportDSLParser extends AbstractInternalAntlrParser {
+    public static final String[] tokenNames = new String[] {
+        "<invalid>", "<EOR>", "<DOWN>", "<UP>", "RULE_STRING", "RULE_ID", "RULE_INT", "RULE_HEX", "RULE_DECIMAL", "RULE_ML_COMMENT", "RULE_SL_COMMENT", "RULE_WS", "RULE_ANY_OTHER", "'package'", "'{'", "'layout-data'", "'externalCssURI'", "'from bundle'", "'}'", "'formatters'", "'colors'", "'fonts'", "'medias'", "'media'", "'styles'", "'pagetemplate'", "'type'", "'orientation'", "'topmargin'", "'leftmargin'", "'bottommargin'", "'rightmargin'", "'color'", "'darkens'", "'by-percent'", "'lightens'", "'transforms'", "'towards'", "'font'", "'extends'", "'family'", "'bold'", "'size'", "'style'", "'formatter'", "'backgroundcolor'", "'alternate'", "'textcolor'", "'textalign'", "'border-top'", "'border-bottom'", "'border-left'", "'border-right'", "'padding-top'", "'padding-bottom'", "'padding-left'", "'padding-right'", "'margin-top'", "'margin-bottom'", "'margin-left'", "'margin-right'", "'uomo'", "'ui'", "'report'", "'number'", "'currency'", "'date'", "'date+time'", "'time'", "'described by'", "'toolbar'", "'datamart'", "'rendering'", "'file'", "'template'", "'header'", "'showOnFirst'", "'height'", "'detail'", "'footer'", "'showOnLast'", "'grid'", "'as'", "'row'", "'cell'", "'columnspan'", "'table'", "'detailheader'", "'detailfooter'", "'group'", "'by'", "'details'", "'all'", "'image'", "'intervals'", "'hidelabel'", "'lookups'", "'path'", "'dynamic'", "'resize'", "'property'", "'aggregate'", "'on-group'", "'title'", "'of'", "'('", "')'", "'up to'", "'days in past'", "'string'", "'-'", "'cellcolor'", "'icon'", "'trend'", "'subtitle'", "'subsubtitle'", "'label'", "'text'", "'autotext'", "'scale'", "'import'", "'.'", "'*'", "'@'", "','", "'='", "'#'", "'['", "']'", "'+='", "'-='", "'*='", "'/='", "'%='", "'<'", "'>'", "'>='", "'||'", "'&&'", "'=='", "'!='", "'==='", "'!=='", "'instanceof'", "'->'", "'..<'", "'..'", "'=>'", "'<>'", "'?:'", "'+'", "'**'", "'/'", "'%'", "'!'", "'++'", "'--'", "'::'", "'?.'", "'|'", "';'", "'if'", "'else'", "'switch'", "':'", "'default'", "'case'", "'for'", "'while'", "'do'", "'var'", "'val'", "'static'", "'extension'", "'super'", "'new'", "'false'", "'true'", "'null'", "'typeof'", "'throw'", "'return'", "'try'", "'finally'", "'synchronized'", "'catch'", "'?'", "'&'", "'mm'", "'cm'", "'pt'", "'inch'", "'pc'", "'em'", "'ex'", "'px'", "'a4'", "'a3'", "'a5'", "'us-letter'", "'us-legal'", "'us-ledger'", "'us-super-b'", "'portrait'", "'landscape'", "'normal'", "'italic'", "'oblique'", "'monospace'", "'sans-serif'", "'serif'", "'left'", "'center'", "'right'", "'unformatted'", "'general-number'", "'fixed'", "'percent'", "'scientific'", "'custom'", "'html'", "'pdf'", "'count'", "'running-count'", "'sum'", "'average'", "'minimum'", "'maximum'", "'running-sum'", "'divide'", "'concat'", "'rising'", "'bad-rising'", "'sloping'", "'good-sloping'", "'stagnating'", "'none'", "'solid'", "'dotted'", "'dashed'", "'double'", "'groove'", "'ridge'", "'inset'", "'outset'", "'page-number'", "'total-page'", "'page-number-unfiltered'", "'total-page-unfiltered'", "'page-variable'", "'size-to-image'", "'scale-to-item'", "'clip'", "'url'", "'embed'"
+    };
+    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__254=254;
+    public static final int T__132=132;
+    public static final int T__253=253;
+    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 T__250=250;
+    public static final int RULE_ID=5;
+    public static final int T__131=131;
+    public static final int T__252=252;
+    public static final int T__130=130;
+    public static final int T__251=251;
+    public static final int RULE_INT=6;
+    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__247=247;
+    public static final int T__63=63;
+    public static final int T__125=125;
+    public static final int T__246=246;
+    public static final int T__64=64;
+    public static final int T__128=128;
+    public static final int T__249=249;
+    public static final int T__65=65;
+    public static final int T__127=127;
+    public static final int T__248=248;
+    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__221=221;
+    public static final int T__220=220;
+    public static final int T__102=102;
+    public static final int T__223=223;
+    public static final int T__101=101;
+    public static final int T__222=222;
+    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 T__218=218;
+    public static final int T__217=217;
+    public static final int T__13=13;
+    public static final int T__14=14;
+    public static final int T__219=219;
+    public static final int T__214=214;
+    public static final int T__213=213;
+    public static final int T__216=216;
+    public static final int T__215=215;
+    public static final int T__210=210;
+    public static final int T__212=212;
+    public static final int T__211=211;
+    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__207=207;
+    public static final int T__23=23;
+    public static final int T__206=206;
+    public static final int T__24=24;
+    public static final int T__209=209;
+    public static final int T__25=25;
+    public static final int T__208=208;
+    public static final int T__203=203;
+    public static final int T__202=202;
+    public static final int T__20=20;
+    public static final int T__205=205;
+    public static final int T__21=21;
+    public static final int T__204=204;
+    public static final int T__122=122;
+    public static final int T__243=243;
+    public static final int T__121=121;
+    public static final int T__242=242;
+    public static final int T__124=124;
+    public static final int T__245=245;
+    public static final int T__123=123;
+    public static final int T__244=244;
+    public static final int T__120=120;
+    public static final int T__241=241;
+    public static final int T__240=240;
+    public static final int RULE_SL_COMMENT=10;
+    public static final int T__119=119;
+    public static final int T__118=118;
+    public static final int T__239=239;
+    public static final int T__115=115;
+    public static final int T__236=236;
+    public static final int EOF=-1;
+    public static final int T__114=114;
+    public static final int T__235=235;
+    public static final int T__117=117;
+    public static final int T__238=238;
+    public static final int T__116=116;
+    public static final int T__237=237;
+    public static final int T__111=111;
+    public static final int T__232=232;
+    public static final int T__110=110;
+    public static final int T__231=231;
+    public static final int T__113=113;
+    public static final int T__234=234;
+    public static final int T__112=112;
+    public static final int T__233=233;
+    public static final int T__230=230;
+    public static final int T__108=108;
+    public static final int T__229=229;
+    public static final int T__107=107;
+    public static final int T__228=228;
+    public static final int T__109=109;
+    public static final int T__104=104;
+    public static final int T__225=225;
+    public static final int T__103=103;
+    public static final int T__224=224;
+    public static final int T__106=106;
+    public static final int T__227=227;
+    public static final int T__105=105;
+    public static final int T__226=226;
+    public static final int RULE_HEX=7;
+    public static final int RULE_ML_COMMENT=9;
+    public static final int T__201=201;
+    public static final int T__200=200;
+    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__189=189;
+    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__199=199;
+    public static final int T__81=81;
+    public static final int T__198=198;
+    public static final int T__82=82;
+    public static final int T__83=83;
+    public static final int T__195=195;
+    public static final int T__194=194;
+    public static final int RULE_WS=11;
+    public static final int T__197=197;
+    public static final int T__196=196;
+    public static final int T__191=191;
+    public static final int T__190=190;
+    public static final int T__193=193;
+    public static final int T__192=192;
+    public static final int RULE_ANY_OTHER=12;
+    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 InternalReportDSLParser(TokenStream input) {
+            this(input, new RecognizerSharedState());
+        }
+        public InternalReportDSLParser(TokenStream input, RecognizerSharedState state) {
+            super(input, state);
+             
+        }
+        
+
+    public String[] getTokenNames() { return InternalReportDSLParser.tokenNames; }
+    public String getGrammarFileName() { return "../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g"; }
+
+
+
+     	private ReportDSLGrammarAccess grammarAccess;
+     	
+        public InternalReportDSLParser(TokenStream input, ReportDSLGrammarAccess grammarAccess) {
+            this(input);
+            this.grammarAccess = grammarAccess;
+            registerRules(grammarAccess.getGrammar());
+        }
+        
+        @Override
+        protected String getFirstRuleName() {
+        	return "ReportModel";	
+       	}
+       	
+       	@Override
+       	protected ReportDSLGrammarAccess getGrammarAccess() {
+       		return grammarAccess;
+       	}
+
+
+
+    // $ANTLR start "entryRuleReportModel"
+    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:68:1: entryRuleReportModel returns [EObject current=null] : iv_ruleReportModel= ruleReportModel EOF ;
+    public final EObject entryRuleReportModel() throws RecognitionException {
+        EObject current = null;
+
+        EObject iv_ruleReportModel = null;
+
+
+        try {
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:69:2: (iv_ruleReportModel= ruleReportModel EOF )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:70:2: iv_ruleReportModel= ruleReportModel EOF
+            {
+            if ( state.backtracking==0 ) {
+               newCompositeNode(grammarAccess.getReportModelRule()); 
+            }
+            pushFollow(FOLLOW_ruleReportModel_in_entryRuleReportModel75);
+            iv_ruleReportModel=ruleReportModel();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+               current =iv_ruleReportModel; 
+            }
+            match(input,EOF,FOLLOW_EOF_in_entryRuleReportModel85); if (state.failed) return current;
+
+            }
+
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleReportModel"
+
+
+    // $ANTLR start "ruleReportModel"
+    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:77:1: ruleReportModel returns [EObject current=null] : ( (lv_pckg_0_0= ruleReportPackage ) )* ;
+    public final EObject ruleReportModel() throws RecognitionException {
+        EObject current = null;
+
+        EObject lv_pckg_0_0 = null;
+
+
+         enterRule(); 
+            
+        try {
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:80:28: ( ( (lv_pckg_0_0= ruleReportPackage ) )* )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:81:1: ( (lv_pckg_0_0= ruleReportPackage ) )*
+            {
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:81:1: ( (lv_pckg_0_0= ruleReportPackage ) )*
+            loop1:
+            do {
+                int alt1=2;
+                switch ( input.LA(1) ) {
+                case 13:
+                    {
+                    alt1=1;
+                    }
+                    break;
+
+                }
+
+                switch (alt1) {
+            	case 1 :
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:82:1: (lv_pckg_0_0= ruleReportPackage )
+            	    {
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:82:1: (lv_pckg_0_0= ruleReportPackage )
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:83:3: lv_pckg_0_0= ruleReportPackage
+            	    {
+            	    if ( state.backtracking==0 ) {
+            	       
+            	      	        newCompositeNode(grammarAccess.getReportModelAccess().getPckgReportPackageParserRuleCall_0()); 
+            	      	    
+            	    }
+            	    pushFollow(FOLLOW_ruleReportPackage_in_ruleReportModel130);
+            	    lv_pckg_0_0=ruleReportPackage();
+
+            	    state._fsp--;
+            	    if (state.failed) return current;
+            	    if ( state.backtracking==0 ) {
+
+            	      	        if (current==null) {
+            	      	            current = createModelElementForParent(grammarAccess.getReportModelRule());
+            	      	        }
+            	             		add(
+            	             			current, 
+            	             			"pckg",
+            	              		lv_pckg_0_0, 
+            	              		"ReportPackage");
+            	      	        afterParserOrEnumRuleCall();
+            	      	    
+            	    }
+
+            	    }
+
+
+            	    }
+            	    break;
+
+            	default :
+            	    break loop1;
+                }
+            } while (true);
+
+
+            }
+
+            if ( state.backtracking==0 ) {
+               leaveRule(); 
+            }
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleReportModel"
+
+
+    // $ANTLR start "entryRuleReportPackage"
+    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:107:1: entryRuleReportPackage returns [EObject current=null] : iv_ruleReportPackage= ruleReportPackage EOF ;
+    public final EObject entryRuleReportPackage() throws RecognitionException {
+        EObject current = null;
+
+        EObject iv_ruleReportPackage = null;
+
+
+        try {
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:108:2: (iv_ruleReportPackage= ruleReportPackage EOF )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:109:2: iv_ruleReportPackage= ruleReportPackage EOF
+            {
+            if ( state.backtracking==0 ) {
+               newCompositeNode(grammarAccess.getReportPackageRule()); 
+            }
+            pushFollow(FOLLOW_ruleReportPackage_in_entryRuleReportPackage166);
+            iv_ruleReportPackage=ruleReportPackage();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+               current =iv_ruleReportPackage; 
+            }
+            match(input,EOF,FOLLOW_EOF_in_entryRuleReportPackage176); if (state.failed) return current;
+
+            }
+
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleReportPackage"
+
+
+    // $ANTLR start "ruleReportPackage"
+    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:116:1: ruleReportPackage returns [EObject current=null] : ( () otherlv_1= 'package' ( (lv_name_2_0= ruleQualifiedName ) ) otherlv_3= '{' ( (lv_imports_4_0= ruleReportImport ) )* (otherlv_5= 'layout-data' otherlv_6= '{' (otherlv_7= 'externalCssURI' ( (lv_externalCssURI_8_0= RULE_STRING ) ) (otherlv_9= 'from bundle' ( (lv_externalCssURIBundle_10_0= RULE_STRING ) ) )? )? ( (lv_pagetemplates_11_0= rulePageTemplates ) ) ( (lv_formatters_12_0= ruleSomeFormats ) ) ( (lv_colors_13_0= ruleColors ) ) ( (lv_fonts_14_0= ruleFonts ) ) ( (lv_medias_15_0= ruleMedias ) ) ( (lv_styles_16_0= ruleStyles ) ) otherlv_17= '}' )? ( (lv_reports_18_0= ruleReport ) )* otherlv_19= '}' ) ;
+    public final EObject ruleReportPackage() throws RecognitionException {
+        EObject current = null;
+
+        Token otherlv_1=null;
+        Token otherlv_3=null;
+        Token otherlv_5=null;
+        Token otherlv_6=null;
+        Token otherlv_7=null;
+        Token lv_externalCssURI_8_0=null;
+        Token otherlv_9=null;
+        Token lv_externalCssURIBundle_10_0=null;
+        Token otherlv_17=null;
+        Token otherlv_19=null;
+        AntlrDatatypeRuleToken lv_name_2_0 = null;
+
+        EObject lv_imports_4_0 = null;
+
+        EObject lv_pagetemplates_11_0 = null;
+
+        EObject lv_formatters_12_0 = null;
+
+        EObject lv_colors_13_0 = null;
+
+        EObject lv_fonts_14_0 = null;
+
+        EObject lv_medias_15_0 = null;
+
+        EObject lv_styles_16_0 = null;
+
+        EObject lv_reports_18_0 = null;
+
+
+         enterRule(); 
+            
+        try {
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:119:28: ( ( () otherlv_1= 'package' ( (lv_name_2_0= ruleQualifiedName ) ) otherlv_3= '{' ( (lv_imports_4_0= ruleReportImport ) )* (otherlv_5= 'layout-data' otherlv_6= '{' (otherlv_7= 'externalCssURI' ( (lv_externalCssURI_8_0= RULE_STRING ) ) (otherlv_9= 'from bundle' ( (lv_externalCssURIBundle_10_0= RULE_STRING ) ) )? )? ( (lv_pagetemplates_11_0= rulePageTemplates ) ) ( (lv_formatters_12_0= ruleSomeFormats ) ) ( (lv_colors_13_0= ruleColors ) ) ( (lv_fonts_14_0= ruleFonts ) ) ( (lv_medias_15_0= ruleMedias ) ) ( (lv_styles_16_0= ruleStyles ) ) otherlv_17= '}' )? ( (lv_reports_18_0= ruleReport ) )* otherlv_19= '}' ) )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:120:1: ( () otherlv_1= 'package' ( (lv_name_2_0= ruleQualifiedName ) ) otherlv_3= '{' ( (lv_imports_4_0= ruleReportImport ) )* (otherlv_5= 'layout-data' otherlv_6= '{' (otherlv_7= 'externalCssURI' ( (lv_externalCssURI_8_0= RULE_STRING ) ) (otherlv_9= 'from bundle' ( (lv_externalCssURIBundle_10_0= RULE_STRING ) ) )? )? ( (lv_pagetemplates_11_0= rulePageTemplates ) ) ( (lv_formatters_12_0= ruleSomeFormats ) ) ( (lv_colors_13_0= ruleColors ) ) ( (lv_fonts_14_0= ruleFonts ) ) ( (lv_medias_15_0= ruleMedias ) ) ( (lv_styles_16_0= ruleStyles ) ) otherlv_17= '}' )? ( (lv_reports_18_0= ruleReport ) )* otherlv_19= '}' )
+            {
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:120:1: ( () otherlv_1= 'package' ( (lv_name_2_0= ruleQualifiedName ) ) otherlv_3= '{' ( (lv_imports_4_0= ruleReportImport ) )* (otherlv_5= 'layout-data' otherlv_6= '{' (otherlv_7= 'externalCssURI' ( (lv_externalCssURI_8_0= RULE_STRING ) ) (otherlv_9= 'from bundle' ( (lv_externalCssURIBundle_10_0= RULE_STRING ) ) )? )? ( (lv_pagetemplates_11_0= rulePageTemplates ) ) ( (lv_formatters_12_0= ruleSomeFormats ) ) ( (lv_colors_13_0= ruleColors ) ) ( (lv_fonts_14_0= ruleFonts ) ) ( (lv_medias_15_0= ruleMedias ) ) ( (lv_styles_16_0= ruleStyles ) ) otherlv_17= '}' )? ( (lv_reports_18_0= ruleReport ) )* otherlv_19= '}' )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:120:2: () otherlv_1= 'package' ( (lv_name_2_0= ruleQualifiedName ) ) otherlv_3= '{' ( (lv_imports_4_0= ruleReportImport ) )* (otherlv_5= 'layout-data' otherlv_6= '{' (otherlv_7= 'externalCssURI' ( (lv_externalCssURI_8_0= RULE_STRING ) ) (otherlv_9= 'from bundle' ( (lv_externalCssURIBundle_10_0= RULE_STRING ) ) )? )? ( (lv_pagetemplates_11_0= rulePageTemplates ) ) ( (lv_formatters_12_0= ruleSomeFormats ) ) ( (lv_colors_13_0= ruleColors ) ) ( (lv_fonts_14_0= ruleFonts ) ) ( (lv_medias_15_0= ruleMedias ) ) ( (lv_styles_16_0= ruleStyles ) ) otherlv_17= '}' )? ( (lv_reports_18_0= ruleReport ) )* otherlv_19= '}'
+            {
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:120:2: ()
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:121:5: 
+            {
+            if ( state.backtracking==0 ) {
+
+                      current = forceCreateModelElement(
+                          grammarAccess.getReportPackageAccess().getReportPackageAction_0(),
+                          current);
+                  
+            }
+
+            }
+
+            otherlv_1=(Token)match(input,13,FOLLOW_13_in_ruleReportPackage222); if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+                  	newLeafNode(otherlv_1, grammarAccess.getReportPackageAccess().getPackageKeyword_1());
+                  
+            }
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:130:1: ( (lv_name_2_0= ruleQualifiedName ) )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:131:1: (lv_name_2_0= ruleQualifiedName )
+            {
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:131:1: (lv_name_2_0= ruleQualifiedName )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:132:3: lv_name_2_0= ruleQualifiedName
+            {
+            if ( state.backtracking==0 ) {
+               
+              	        newCompositeNode(grammarAccess.getReportPackageAccess().getNameQualifiedNameParserRuleCall_2_0()); 
+              	    
+            }
+            pushFollow(FOLLOW_ruleQualifiedName_in_ruleReportPackage243);
+            lv_name_2_0=ruleQualifiedName();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+              	        if (current==null) {
+              	            current = createModelElementForParent(grammarAccess.getReportPackageRule());
+              	        }
+                     		set(
+                     			current, 
+                     			"name",
+                      		lv_name_2_0, 
+                      		"QualifiedName");
+              	        afterParserOrEnumRuleCall();
+              	    
+            }
+
+            }
+
+
+            }
+
+            otherlv_3=(Token)match(input,14,FOLLOW_14_in_ruleReportPackage255); if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+                  	newLeafNode(otherlv_3, grammarAccess.getReportPackageAccess().getLeftCurlyBracketKeyword_3());
+                  
+            }
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:152:1: ( (lv_imports_4_0= ruleReportImport ) )*
+            loop2:
+            do {
+                int alt2=2;
+                switch ( input.LA(1) ) {
+                case 120:
+                    {
+                    alt2=1;
+                    }
+                    break;
+
+                }
+
+                switch (alt2) {
+            	case 1 :
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:153:1: (lv_imports_4_0= ruleReportImport )
+            	    {
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:153:1: (lv_imports_4_0= ruleReportImport )
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:154:3: lv_imports_4_0= ruleReportImport
+            	    {
+            	    if ( state.backtracking==0 ) {
+            	       
+            	      	        newCompositeNode(grammarAccess.getReportPackageAccess().getImportsReportImportParserRuleCall_4_0()); 
+            	      	    
+            	    }
+            	    pushFollow(FOLLOW_ruleReportImport_in_ruleReportPackage276);
+            	    lv_imports_4_0=ruleReportImport();
+
+            	    state._fsp--;
+            	    if (state.failed) return current;
+            	    if ( state.backtracking==0 ) {
+
+            	      	        if (current==null) {
+            	      	            current = createModelElementForParent(grammarAccess.getReportPackageRule());
+            	      	        }
+            	             		add(
+            	             			current, 
+            	             			"imports",
+            	              		lv_imports_4_0, 
+            	              		"ReportImport");
+            	      	        afterParserOrEnumRuleCall();
+            	      	    
+            	    }
+
+            	    }
+
+
+            	    }
+            	    break;
+
+            	default :
+            	    break loop2;
+                }
+            } while (true);
+
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:170:3: (otherlv_5= 'layout-data' otherlv_6= '{' (otherlv_7= 'externalCssURI' ( (lv_externalCssURI_8_0= RULE_STRING ) ) (otherlv_9= 'from bundle' ( (lv_externalCssURIBundle_10_0= RULE_STRING ) ) )? )? ( (lv_pagetemplates_11_0= rulePageTemplates ) ) ( (lv_formatters_12_0= ruleSomeFormats ) ) ( (lv_colors_13_0= ruleColors ) ) ( (lv_fonts_14_0= ruleFonts ) ) ( (lv_medias_15_0= ruleMedias ) ) ( (lv_styles_16_0= ruleStyles ) ) otherlv_17= '}' )?
+            int alt5=2;
+            switch ( input.LA(1) ) {
+                case 15:
+                    {
+                    alt5=1;
+                    }
+                    break;
+            }
+
+            switch (alt5) {
+                case 1 :
+                    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:170:5: otherlv_5= 'layout-data' otherlv_6= '{' (otherlv_7= 'externalCssURI' ( (lv_externalCssURI_8_0= RULE_STRING ) ) (otherlv_9= 'from bundle' ( (lv_externalCssURIBundle_10_0= RULE_STRING ) ) )? )? ( (lv_pagetemplates_11_0= rulePageTemplates ) ) ( (lv_formatters_12_0= ruleSomeFormats ) ) ( (lv_colors_13_0= ruleColors ) ) ( (lv_fonts_14_0= ruleFonts ) ) ( (lv_medias_15_0= ruleMedias ) ) ( (lv_styles_16_0= ruleStyles ) ) otherlv_17= '}'
+                    {
+                    otherlv_5=(Token)match(input,15,FOLLOW_15_in_ruleReportPackage290); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                          	newLeafNode(otherlv_5, grammarAccess.getReportPackageAccess().getLayoutDataKeyword_5_0());
+                          
+                    }
+                    otherlv_6=(Token)match(input,14,FOLLOW_14_in_ruleReportPackage302); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                          	newLeafNode(otherlv_6, grammarAccess.getReportPackageAccess().getLeftCurlyBracketKeyword_5_1());
+                          
+                    }
+                    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:178:1: (otherlv_7= 'externalCssURI' ( (lv_externalCssURI_8_0= RULE_STRING ) ) (otherlv_9= 'from bundle' ( (lv_externalCssURIBundle_10_0= RULE_STRING ) ) )? )?
+                    int alt4=2;
+                    switch ( input.LA(1) ) {
+                        case 16:
+                            {
+                            alt4=1;
+                            }
+                            break;
+                    }
+
+                    switch (alt4) {
+                        case 1 :
+                            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:178:3: otherlv_7= 'externalCssURI' ( (lv_externalCssURI_8_0= RULE_STRING ) ) (otherlv_9= 'from bundle' ( (lv_externalCssURIBundle_10_0= RULE_STRING ) ) )?
+                            {
+                            otherlv_7=(Token)match(input,16,FOLLOW_16_in_ruleReportPackage315); if (state.failed) return current;
+                            if ( state.backtracking==0 ) {
+
+                                  	newLeafNode(otherlv_7, grammarAccess.getReportPackageAccess().getExternalCssURIKeyword_5_2_0());
+                                  
+                            }
+                            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:182:1: ( (lv_externalCssURI_8_0= RULE_STRING ) )
+                            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:183:1: (lv_externalCssURI_8_0= RULE_STRING )
+                            {
+                            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:183:1: (lv_externalCssURI_8_0= RULE_STRING )
+                            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:184:3: lv_externalCssURI_8_0= RULE_STRING
+                            {
+                            lv_externalCssURI_8_0=(Token)match(input,RULE_STRING,FOLLOW_RULE_STRING_in_ruleReportPackage332); if (state.failed) return current;
+                            if ( state.backtracking==0 ) {
+
+                              			newLeafNode(lv_externalCssURI_8_0, grammarAccess.getReportPackageAccess().getExternalCssURISTRINGTerminalRuleCall_5_2_1_0()); 
+                              		
+                            }
+                            if ( state.backtracking==0 ) {
+
+                              	        if (current==null) {
+                              	            current = createModelElement(grammarAccess.getReportPackageRule());
+                              	        }
+                                     		setWithLastConsumed(
+                                     			current, 
+                                     			"externalCssURI",
+                                      		lv_externalCssURI_8_0, 
+                                      		"STRING");
+                              	    
+                            }
+
+                            }
+
+
+                            }
+
+                            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:200:2: (otherlv_9= 'from bundle' ( (lv_externalCssURIBundle_10_0= RULE_STRING ) ) )?
+                            int alt3=2;
+                            switch ( input.LA(1) ) {
+                                case 17:
+                                    {
+                                    alt3=1;
+                                    }
+                                    break;
+                            }
+
+                            switch (alt3) {
+                                case 1 :
+                                    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:200:4: otherlv_9= 'from bundle' ( (lv_externalCssURIBundle_10_0= RULE_STRING ) )
+                                    {
+                                    otherlv_9=(Token)match(input,17,FOLLOW_17_in_ruleReportPackage350); if (state.failed) return current;
+                                    if ( state.backtracking==0 ) {
+
+                                          	newLeafNode(otherlv_9, grammarAccess.getReportPackageAccess().getFromBundleKeyword_5_2_2_0());
+                                          
+                                    }
+                                    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:204:1: ( (lv_externalCssURIBundle_10_0= RULE_STRING ) )
+                                    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:205:1: (lv_externalCssURIBundle_10_0= RULE_STRING )
+                                    {
+                                    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:205:1: (lv_externalCssURIBundle_10_0= RULE_STRING )
+                                    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:206:3: lv_externalCssURIBundle_10_0= RULE_STRING
+                                    {
+                                    lv_externalCssURIBundle_10_0=(Token)match(input,RULE_STRING,FOLLOW_RULE_STRING_in_ruleReportPackage367); if (state.failed) return current;
+                                    if ( state.backtracking==0 ) {
+
+                                      			newLeafNode(lv_externalCssURIBundle_10_0, grammarAccess.getReportPackageAccess().getExternalCssURIBundleSTRINGTerminalRuleCall_5_2_2_1_0()); 
+                                      		
+                                    }
+                                    if ( state.backtracking==0 ) {
+
+                                      	        if (current==null) {
+                                      	            current = createModelElement(grammarAccess.getReportPackageRule());
+                                      	        }
+                                             		setWithLastConsumed(
+                                             			current, 
+                                             			"externalCssURIBundle",
+                                              		lv_externalCssURIBundle_10_0, 
+                                              		"STRING");
+                                      	    
+                                    }
+
+                                    }
+
+
+                                    }
+
+
+                                    }
+                                    break;
+
+                            }
+
+
+                            }
+                            break;
+
+                    }
+
+                    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:222:6: ( (lv_pagetemplates_11_0= rulePageTemplates ) )
+                    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:223:1: (lv_pagetemplates_11_0= rulePageTemplates )
+                    {
+                    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:223:1: (lv_pagetemplates_11_0= rulePageTemplates )
+                    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:224:3: lv_pagetemplates_11_0= rulePageTemplates
+                    {
+                    if ( state.backtracking==0 ) {
+                       
+                      	        newCompositeNode(grammarAccess.getReportPackageAccess().getPagetemplatesPageTemplatesParserRuleCall_5_3_0()); 
+                      	    
+                    }
+                    pushFollow(FOLLOW_rulePageTemplates_in_ruleReportPackage397);
+                    lv_pagetemplates_11_0=rulePageTemplates();
+
+                    state._fsp--;
+                    if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                      	        if (current==null) {
+                      	            current = createModelElementForParent(grammarAccess.getReportPackageRule());
+                      	        }
+                             		set(
+                             			current, 
+                             			"pagetemplates",
+                              		lv_pagetemplates_11_0, 
+                              		"PageTemplates");
+                      	        afterParserOrEnumRuleCall();
+                      	    
+                    }
+
+                    }
+
+
+                    }
+
+                    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:240:2: ( (lv_formatters_12_0= ruleSomeFormats ) )
+                    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:241:1: (lv_formatters_12_0= ruleSomeFormats )
+                    {
+                    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:241:1: (lv_formatters_12_0= ruleSomeFormats )
+                    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:242:3: lv_formatters_12_0= ruleSomeFormats
+                    {
+                    if ( state.backtracking==0 ) {
+                       
+                      	        newCompositeNode(grammarAccess.getReportPackageAccess().getFormattersSomeFormatsParserRuleCall_5_4_0()); 
+                      	    
+                    }
+                    pushFollow(FOLLOW_ruleSomeFormats_in_ruleReportPackage418);
+                    lv_formatters_12_0=ruleSomeFormats();
+
+                    state._fsp--;
+                    if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                      	        if (current==null) {
+                      	            current = createModelElementForParent(grammarAccess.getReportPackageRule());
+                      	        }
+                             		set(
+                             			current, 
+                             			"formatters",
+                              		lv_formatters_12_0, 
+                              		"SomeFormats");
+                      	        afterParserOrEnumRuleCall();
+                      	    
+                    }
+
+                    }
+
+
+                    }
+
+                    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:258:2: ( (lv_colors_13_0= ruleColors ) )
+                    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:259:1: (lv_colors_13_0= ruleColors )
+                    {
+                    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:259:1: (lv_colors_13_0= ruleColors )
+                    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:260:3: lv_colors_13_0= ruleColors
+                    {
+                    if ( state.backtracking==0 ) {
+                       
+                      	        newCompositeNode(grammarAccess.getReportPackageAccess().getColorsColorsParserRuleCall_5_5_0()); 
+                      	    
+                    }
+                    pushFollow(FOLLOW_ruleColors_in_ruleReportPackage439);
+                    lv_colors_13_0=ruleColors();
+
+                    state._fsp--;
+                    if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                      	        if (current==null) {
+                      	            current = createModelElementForParent(grammarAccess.getReportPackageRule());
+                      	        }
+                             		set(
+                             			current, 
+                             			"colors",
+                              		lv_colors_13_0, 
+                              		"Colors");
+                      	        afterParserOrEnumRuleCall();
+                      	    
+                    }
+
+                    }
+
+
+                    }
+
+                    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:276:2: ( (lv_fonts_14_0= ruleFonts ) )
+                    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:277:1: (lv_fonts_14_0= ruleFonts )
+                    {
+                    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:277:1: (lv_fonts_14_0= ruleFonts )
+                    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:278:3: lv_fonts_14_0= ruleFonts
+                    {
+                    if ( state.backtracking==0 ) {
+                       
+                      	        newCompositeNode(grammarAccess.getReportPackageAccess().getFontsFontsParserRuleCall_5_6_0()); 
+                      	    
+                    }
+                    pushFollow(FOLLOW_ruleFonts_in_ruleReportPackage460);
+                    lv_fonts_14_0=ruleFonts();
+
+                    state._fsp--;
+                    if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                      	        if (current==null) {
+                      	            current = createModelElementForParent(grammarAccess.getReportPackageRule());
+                      	        }
+                             		set(
+                             			current, 
+                             			"fonts",
+                              		lv_fonts_14_0, 
+                              		"Fonts");
+                      	        afterParserOrEnumRuleCall();
+                      	    
+                    }
+
+                    }
+
+
+                    }
+
+                    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:294:2: ( (lv_medias_15_0= ruleMedias ) )
+                    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:295:1: (lv_medias_15_0= ruleMedias )
+                    {
+                    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:295:1: (lv_medias_15_0= ruleMedias )
+                    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:296:3: lv_medias_15_0= ruleMedias
+                    {
+                    if ( state.backtracking==0 ) {
+                       
+                      	        newCompositeNode(grammarAccess.getReportPackageAccess().getMediasMediasParserRuleCall_5_7_0()); 
+                      	    
+                    }
+                    pushFollow(FOLLOW_ruleMedias_in_ruleReportPackage481);
+                    lv_medias_15_0=ruleMedias();
+
+                    state._fsp--;
+                    if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                      	        if (current==null) {
+                      	            current = createModelElementForParent(grammarAccess.getReportPackageRule());
+                      	        }
+                             		set(
+                             			current, 
+                             			"medias",
+                              		lv_medias_15_0, 
+                              		"Medias");
+                      	        afterParserOrEnumRuleCall();
+                      	    
+                    }
+
+                    }
+
+
+                    }
+
+                    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:312:2: ( (lv_styles_16_0= ruleStyles ) )
+                    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:313:1: (lv_styles_16_0= ruleStyles )
+                    {
+                    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:313:1: (lv_styles_16_0= ruleStyles )
+                    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:314:3: lv_styles_16_0= ruleStyles
+                    {
+                    if ( state.backtracking==0 ) {
+                       
+                      	        newCompositeNode(grammarAccess.getReportPackageAccess().getStylesStylesParserRuleCall_5_8_0()); 
+                      	    
+                    }
+                    pushFollow(FOLLOW_ruleStyles_in_ruleReportPackage502);
+                    lv_styles_16_0=ruleStyles();
+
+                    state._fsp--;
+                    if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                      	        if (current==null) {
+                      	            current = createModelElementForParent(grammarAccess.getReportPackageRule());
+                      	        }
+                             		set(
+                             			current, 
+                             			"styles",
+                              		lv_styles_16_0, 
+                              		"Styles");
+                      	        afterParserOrEnumRuleCall();
+                      	    
+                    }
+
+                    }
+
+
+                    }
+
+                    otherlv_17=(Token)match(input,18,FOLLOW_18_in_ruleReportPackage514); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                          	newLeafNode(otherlv_17, grammarAccess.getReportPackageAccess().getRightCurlyBracketKeyword_5_9());
+                          
+                    }
+
+                    }
+                    break;
+
+            }
+
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:334:3: ( (lv_reports_18_0= ruleReport ) )*
+            loop6:
+            do {
+                int alt6=2;
+                switch ( input.LA(1) ) {
+                case 63:
+                    {
+                    alt6=1;
+                    }
+                    break;
+
+                }
+
+                switch (alt6) {
+            	case 1 :
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:335:1: (lv_reports_18_0= ruleReport )
+            	    {
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:335:1: (lv_reports_18_0= ruleReport )
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:336:3: lv_reports_18_0= ruleReport
+            	    {
+            	    if ( state.backtracking==0 ) {
+            	       
+            	      	        newCompositeNode(grammarAccess.getReportPackageAccess().getReportsReportParserRuleCall_6_0()); 
+            	      	    
+            	    }
+            	    pushFollow(FOLLOW_ruleReport_in_ruleReportPackage537);
+            	    lv_reports_18_0=ruleReport();
+
+            	    state._fsp--;
+            	    if (state.failed) return current;
+            	    if ( state.backtracking==0 ) {
+
+            	      	        if (current==null) {
+            	      	            current = createModelElementForParent(grammarAccess.getReportPackageRule());
+            	      	        }
+            	             		add(
+            	             			current, 
+            	             			"reports",
+            	              		lv_reports_18_0, 
+            	              		"Report");
+            	      	        afterParserOrEnumRuleCall();
+            	      	    
+            	    }
+
+            	    }
+
+
+            	    }
+            	    break;
+
+            	default :
+            	    break loop6;
+                }
+            } while (true);
+
+            otherlv_19=(Token)match(input,18,FOLLOW_18_in_ruleReportPackage550); if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+                  	newLeafNode(otherlv_19, grammarAccess.getReportPackageAccess().getRightCurlyBracketKeyword_7());
+                  
+            }
+
+            }
+
+
+            }
+
+            if ( state.backtracking==0 ) {
+               leaveRule(); 
+            }
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleReportPackage"
+
+
+    // $ANTLR start "entryRulePageTemplates"
+    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:364:1: entryRulePageTemplates returns [EObject current=null] : iv_rulePageTemplates= rulePageTemplates EOF ;
+    public final EObject entryRulePageTemplates() throws RecognitionException {
+        EObject current = null;
+
+        EObject iv_rulePageTemplates = null;
+
+
+        try {
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:365:2: (iv_rulePageTemplates= rulePageTemplates EOF )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:366:2: iv_rulePageTemplates= rulePageTemplates EOF
+            {
+            if ( state.backtracking==0 ) {
+               newCompositeNode(grammarAccess.getPageTemplatesRule()); 
+            }
+            pushFollow(FOLLOW_rulePageTemplates_in_entryRulePageTemplates586);
+            iv_rulePageTemplates=rulePageTemplates();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+               current =iv_rulePageTemplates; 
+            }
+            match(input,EOF,FOLLOW_EOF_in_entryRulePageTemplates596); if (state.failed) return current;
+
+            }
+
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRulePageTemplates"
+
+
+    // $ANTLR start "rulePageTemplates"
+    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:373:1: rulePageTemplates returns [EObject current=null] : ( () ( (lv_pagetemplates_1_0= rulePageTemplate ) )* ) ;
+    public final EObject rulePageTemplates() throws RecognitionException {
+        EObject current = null;
+
+        EObject lv_pagetemplates_1_0 = null;
+
+
+         enterRule(); 
+            
+        try {
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:376:28: ( ( () ( (lv_pagetemplates_1_0= rulePageTemplate ) )* ) )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:377:1: ( () ( (lv_pagetemplates_1_0= rulePageTemplate ) )* )
+            {
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:377:1: ( () ( (lv_pagetemplates_1_0= rulePageTemplate ) )* )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:377:2: () ( (lv_pagetemplates_1_0= rulePageTemplate ) )*
+            {
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:377:2: ()
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:378:5: 
+            {
+            if ( state.backtracking==0 ) {
+
+                      current = forceCreateModelElement(
+                          grammarAccess.getPageTemplatesAccess().getPageTemplatesAction_0(),
+                          current);
+                  
+            }
+
+            }
+
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:383:2: ( (lv_pagetemplates_1_0= rulePageTemplate ) )*
+            loop7:
+            do {
+                int alt7=2;
+                switch ( input.LA(1) ) {
+                case 25:
+                    {
+                    alt7=1;
+                    }
+                    break;
+
+                }
+
+                switch (alt7) {
+            	case 1 :
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:384:1: (lv_pagetemplates_1_0= rulePageTemplate )
+            	    {
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:384:1: (lv_pagetemplates_1_0= rulePageTemplate )
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:385:3: lv_pagetemplates_1_0= rulePageTemplate
+            	    {
+            	    if ( state.backtracking==0 ) {
+            	       
+            	      	        newCompositeNode(grammarAccess.getPageTemplatesAccess().getPagetemplatesPageTemplateParserRuleCall_1_0()); 
+            	      	    
+            	    }
+            	    pushFollow(FOLLOW_rulePageTemplate_in_rulePageTemplates651);
+            	    lv_pagetemplates_1_0=rulePageTemplate();
+
+            	    state._fsp--;
+            	    if (state.failed) return current;
+            	    if ( state.backtracking==0 ) {
+
+            	      	        if (current==null) {
+            	      	            current = createModelElementForParent(grammarAccess.getPageTemplatesRule());
+            	      	        }
+            	             		add(
+            	             			current, 
+            	             			"pagetemplates",
+            	              		lv_pagetemplates_1_0, 
+            	              		"PageTemplate");
+            	      	        afterParserOrEnumRuleCall();
+            	      	    
+            	    }
+
+            	    }
+
+
+            	    }
+            	    break;
+
+            	default :
+            	    break loop7;
+                }
+            } while (true);
+
+
+            }
+
+
+            }
+
+            if ( state.backtracking==0 ) {
+               leaveRule(); 
+            }
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "rulePageTemplates"
+
+
+    // $ANTLR start "entryRuleSomeFormats"
+    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:409:1: entryRuleSomeFormats returns [EObject current=null] : iv_ruleSomeFormats= ruleSomeFormats EOF ;
+    public final EObject entryRuleSomeFormats() throws RecognitionException {
+        EObject current = null;
+
+        EObject iv_ruleSomeFormats = null;
+
+
+        try {
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:410:2: (iv_ruleSomeFormats= ruleSomeFormats EOF )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:411:2: iv_ruleSomeFormats= ruleSomeFormats EOF
+            {
+            if ( state.backtracking==0 ) {
+               newCompositeNode(grammarAccess.getSomeFormatsRule()); 
+            }
+            pushFollow(FOLLOW_ruleSomeFormats_in_entryRuleSomeFormats688);
+            iv_ruleSomeFormats=ruleSomeFormats();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+               current =iv_ruleSomeFormats; 
+            }
+            match(input,EOF,FOLLOW_EOF_in_entryRuleSomeFormats698); if (state.failed) return current;
+
+            }
+
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleSomeFormats"
+
+
+    // $ANTLR start "ruleSomeFormats"
+    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:418:1: ruleSomeFormats returns [EObject current=null] : ( () otherlv_1= 'formatters' otherlv_2= '{' ( (lv_formatters_3_0= ruleSomeFormat ) )* otherlv_4= '}' ) ;
+    public final EObject ruleSomeFormats() throws RecognitionException {
+        EObject current = null;
+
+        Token otherlv_1=null;
+        Token otherlv_2=null;
+        Token otherlv_4=null;
+        EObject lv_formatters_3_0 = null;
+
+
+         enterRule(); 
+            
+        try {
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:421:28: ( ( () otherlv_1= 'formatters' otherlv_2= '{' ( (lv_formatters_3_0= ruleSomeFormat ) )* otherlv_4= '}' ) )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:422:1: ( () otherlv_1= 'formatters' otherlv_2= '{' ( (lv_formatters_3_0= ruleSomeFormat ) )* otherlv_4= '}' )
+            {
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:422:1: ( () otherlv_1= 'formatters' otherlv_2= '{' ( (lv_formatters_3_0= ruleSomeFormat ) )* otherlv_4= '}' )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:422:2: () otherlv_1= 'formatters' otherlv_2= '{' ( (lv_formatters_3_0= ruleSomeFormat ) )* otherlv_4= '}'
+            {
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:422:2: ()
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:423:5: 
+            {
+            if ( state.backtracking==0 ) {
+
+                      current = forceCreateModelElement(
+                          grammarAccess.getSomeFormatsAccess().getSomeFormatsAction_0(),
+                          current);
+                  
+            }
+
+            }
+
+            otherlv_1=(Token)match(input,19,FOLLOW_19_in_ruleSomeFormats744); if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+                  	newLeafNode(otherlv_1, grammarAccess.getSomeFormatsAccess().getFormattersKeyword_1());
+                  
+            }
+            otherlv_2=(Token)match(input,14,FOLLOW_14_in_ruleSomeFormats756); if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+                  	newLeafNode(otherlv_2, grammarAccess.getSomeFormatsAccess().getLeftCurlyBracketKeyword_2());
+                  
+            }
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:436:1: ( (lv_formatters_3_0= ruleSomeFormat ) )*
+            loop8:
+            do {
+                int alt8=2;
+                switch ( input.LA(1) ) {
+                case 61:
+                case 64:
+                case 65:
+                case 66:
+                case 67:
+                case 68:
+                    {
+                    alt8=1;
+                    }
+                    break;
+
+                }
+
+                switch (alt8) {
+            	case 1 :
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:437:1: (lv_formatters_3_0= ruleSomeFormat )
+            	    {
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:437:1: (lv_formatters_3_0= ruleSomeFormat )
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:438:3: lv_formatters_3_0= ruleSomeFormat
+            	    {
+            	    if ( state.backtracking==0 ) {
+            	       
+            	      	        newCompositeNode(grammarAccess.getSomeFormatsAccess().getFormattersSomeFormatParserRuleCall_3_0()); 
+            	      	    
+            	    }
+            	    pushFollow(FOLLOW_ruleSomeFormat_in_ruleSomeFormats777);
+            	    lv_formatters_3_0=ruleSomeFormat();
+
+            	    state._fsp--;
+            	    if (state.failed) return current;
+            	    if ( state.backtracking==0 ) {
+
+            	      	        if (current==null) {
+            	      	            current = createModelElementForParent(grammarAccess.getSomeFormatsRule());
+            	      	        }
+            	             		add(
+            	             			current, 
+            	             			"formatters",
+            	              		lv_formatters_3_0, 
+            	              		"SomeFormat");
+            	      	        afterParserOrEnumRuleCall();
+            	      	    
+            	    }
+
+            	    }
+
+
+            	    }
+            	    break;
+
+            	default :
+            	    break loop8;
+                }
+            } while (true);
+
+            otherlv_4=(Token)match(input,18,FOLLOW_18_in_ruleSomeFormats790); if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+                  	newLeafNode(otherlv_4, grammarAccess.getSomeFormatsAccess().getRightCurlyBracketKeyword_4());
+                  
+            }
+
+            }
+
+
+            }
+
+            if ( state.backtracking==0 ) {
+               leaveRule(); 
+            }
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleSomeFormats"
+
+
+    // $ANTLR start "entryRuleColors"
+    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:466:1: entryRuleColors returns [EObject current=null] : iv_ruleColors= ruleColors EOF ;
+    public final EObject entryRuleColors() throws RecognitionException {
+        EObject current = null;
+
+        EObject iv_ruleColors = null;
+
+
+        try {
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:467:2: (iv_ruleColors= ruleColors EOF )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:468:2: iv_ruleColors= ruleColors EOF
+            {
+            if ( state.backtracking==0 ) {
+               newCompositeNode(grammarAccess.getColorsRule()); 
+            }
+            pushFollow(FOLLOW_ruleColors_in_entryRuleColors826);
+            iv_ruleColors=ruleColors();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+               current =iv_ruleColors; 
+            }
+            match(input,EOF,FOLLOW_EOF_in_entryRuleColors836); if (state.failed) return current;
+
+            }
+
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleColors"
+
+
+    // $ANTLR start "ruleColors"
+    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:475:1: ruleColors returns [EObject current=null] : ( () otherlv_1= 'colors' otherlv_2= '{' ( (lv_colors_3_0= ruleColor ) )* otherlv_4= '}' ) ;
+    public final EObject ruleColors() throws RecognitionException {
+        EObject current = null;
+
+        Token otherlv_1=null;
+        Token otherlv_2=null;
+        Token otherlv_4=null;
+        EObject lv_colors_3_0 = null;
+
+
+         enterRule(); 
+            
+        try {
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:478:28: ( ( () otherlv_1= 'colors' otherlv_2= '{' ( (lv_colors_3_0= ruleColor ) )* otherlv_4= '}' ) )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:479:1: ( () otherlv_1= 'colors' otherlv_2= '{' ( (lv_colors_3_0= ruleColor ) )* otherlv_4= '}' )
+            {
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:479:1: ( () otherlv_1= 'colors' otherlv_2= '{' ( (lv_colors_3_0= ruleColor ) )* otherlv_4= '}' )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:479:2: () otherlv_1= 'colors' otherlv_2= '{' ( (lv_colors_3_0= ruleColor ) )* otherlv_4= '}'
+            {
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:479:2: ()
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:480:5: 
+            {
+            if ( state.backtracking==0 ) {
+
+                      current = forceCreateModelElement(
+                          grammarAccess.getColorsAccess().getColorsAction_0(),
+                          current);
+                  
+            }
+
+            }
+
+            otherlv_1=(Token)match(input,20,FOLLOW_20_in_ruleColors882); if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+                  	newLeafNode(otherlv_1, grammarAccess.getColorsAccess().getColorsKeyword_1());
+                  
+            }
+            otherlv_2=(Token)match(input,14,FOLLOW_14_in_ruleColors894); if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+                  	newLeafNode(otherlv_2, grammarAccess.getColorsAccess().getLeftCurlyBracketKeyword_2());
+                  
+            }
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:493:1: ( (lv_colors_3_0= ruleColor ) )*
+            loop9:
+            do {
+                int alt9=2;
+                switch ( input.LA(1) ) {
+                case 32:
+                    {
+                    alt9=1;
+                    }
+                    break;
+
+                }
+
+                switch (alt9) {
+            	case 1 :
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:494:1: (lv_colors_3_0= ruleColor )
+            	    {
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:494:1: (lv_colors_3_0= ruleColor )
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:495:3: lv_colors_3_0= ruleColor
+            	    {
+            	    if ( state.backtracking==0 ) {
+            	       
+            	      	        newCompositeNode(grammarAccess.getColorsAccess().getColorsColorParserRuleCall_3_0()); 
+            	      	    
+            	    }
+            	    pushFollow(FOLLOW_ruleColor_in_ruleColors915);
+            	    lv_colors_3_0=ruleColor();
+
+            	    state._fsp--;
+            	    if (state.failed) return current;
+            	    if ( state.backtracking==0 ) {
+
+            	      	        if (current==null) {
+            	      	            current = createModelElementForParent(grammarAccess.getColorsRule());
+            	      	        }
+            	             		add(
+            	             			current, 
+            	             			"colors",
+            	              		lv_colors_3_0, 
+            	              		"Color");
+            	      	        afterParserOrEnumRuleCall();
+            	      	    
+            	    }
+
+            	    }
+
+
+            	    }
+            	    break;
+
+            	default :
+            	    break loop9;
+                }
+            } while (true);
+
+            otherlv_4=(Token)match(input,18,FOLLOW_18_in_ruleColors928); if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+                  	newLeafNode(otherlv_4, grammarAccess.getColorsAccess().getRightCurlyBracketKeyword_4());
+                  
+            }
+
+            }
+
+
+            }
+
+            if ( state.backtracking==0 ) {
+               leaveRule(); 
+            }
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleColors"
+
+
+    // $ANTLR start "entryRuleFonts"
+    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:523:1: entryRuleFonts returns [EObject current=null] : iv_ruleFonts= ruleFonts EOF ;
+    public final EObject entryRuleFonts() throws RecognitionException {
+        EObject current = null;
+
+        EObject iv_ruleFonts = null;
+
+
+        try {
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:524:2: (iv_ruleFonts= ruleFonts EOF )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:525:2: iv_ruleFonts= ruleFonts EOF
+            {
+            if ( state.backtracking==0 ) {
+               newCompositeNode(grammarAccess.getFontsRule()); 
+            }
+            pushFollow(FOLLOW_ruleFonts_in_entryRuleFonts964);
+            iv_ruleFonts=ruleFonts();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+               current =iv_ruleFonts; 
+            }
+            match(input,EOF,FOLLOW_EOF_in_entryRuleFonts974); if (state.failed) return current;
+
+            }
+
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleFonts"
+
+
+    // $ANTLR start "ruleFonts"
+    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:532:1: ruleFonts returns [EObject current=null] : ( () otherlv_1= 'fonts' otherlv_2= '{' ( (lv_fonts_3_0= ruleFont ) )* otherlv_4= '}' ) ;
+    public final EObject ruleFonts() throws RecognitionException {
+        EObject current = null;
+
+        Token otherlv_1=null;
+        Token otherlv_2=null;
+        Token otherlv_4=null;
+        EObject lv_fonts_3_0 = null;
+
+
+         enterRule(); 
+            
+        try {
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:535:28: ( ( () otherlv_1= 'fonts' otherlv_2= '{' ( (lv_fonts_3_0= ruleFont ) )* otherlv_4= '}' ) )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:536:1: ( () otherlv_1= 'fonts' otherlv_2= '{' ( (lv_fonts_3_0= ruleFont ) )* otherlv_4= '}' )
+            {
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:536:1: ( () otherlv_1= 'fonts' otherlv_2= '{' ( (lv_fonts_3_0= ruleFont ) )* otherlv_4= '}' )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:536:2: () otherlv_1= 'fonts' otherlv_2= '{' ( (lv_fonts_3_0= ruleFont ) )* otherlv_4= '}'
+            {
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:536:2: ()
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:537:5: 
+            {
+            if ( state.backtracking==0 ) {
+
+                      current = forceCreateModelElement(
+                          grammarAccess.getFontsAccess().getFontsAction_0(),
+                          current);
+                  
+            }
+
+            }
+
+            otherlv_1=(Token)match(input,21,FOLLOW_21_in_ruleFonts1020); if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+                  	newLeafNode(otherlv_1, grammarAccess.getFontsAccess().getFontsKeyword_1());
+                  
+            }
+            otherlv_2=(Token)match(input,14,FOLLOW_14_in_ruleFonts1032); if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+                  	newLeafNode(otherlv_2, grammarAccess.getFontsAccess().getLeftCurlyBracketKeyword_2());
+                  
+            }
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:550:1: ( (lv_fonts_3_0= ruleFont ) )*
+            loop10:
+            do {
+                int alt10=2;
+                switch ( input.LA(1) ) {
+                case 18:
+                    {
+                    switch ( input.LA(2) ) {
+                    case 18:
+                    case 38:
+                    case 41:
+                    case 42:
+                    case 205:
+                    case 206:
+                    case 207:
+                        {
+                        alt10=1;
+                        }
+                        break;
+
+                    }
+
+                    }
+                    break;
+                case 38:
+                case 41:
+                case 42:
+                case 205:
+                case 206:
+                case 207:
+                    {
+                    alt10=1;
+                    }
+                    break;
+
+                }
+
+                switch (alt10) {
+            	case 1 :
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:551:1: (lv_fonts_3_0= ruleFont )
+            	    {
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:551:1: (lv_fonts_3_0= ruleFont )
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:552:3: lv_fonts_3_0= ruleFont
+            	    {
+            	    if ( state.backtracking==0 ) {
+            	       
+            	      	        newCompositeNode(grammarAccess.getFontsAccess().getFontsFontParserRuleCall_3_0()); 
+            	      	    
+            	    }
+            	    pushFollow(FOLLOW_ruleFont_in_ruleFonts1053);
+            	    lv_fonts_3_0=ruleFont();
+
+            	    state._fsp--;
+            	    if (state.failed) return current;
+            	    if ( state.backtracking==0 ) {
+
+            	      	        if (current==null) {
+            	      	            current = createModelElementForParent(grammarAccess.getFontsRule());
+            	      	        }
+            	             		add(
+            	             			current, 
+            	             			"fonts",
+            	              		lv_fonts_3_0, 
+            	              		"Font");
+            	      	        afterParserOrEnumRuleCall();
+            	      	    
+            	    }
+
+            	    }
+
+
+            	    }
+            	    break;
+
+            	default :
+            	    break loop10;
+                }
+            } while (true);
+
+            otherlv_4=(Token)match(input,18,FOLLOW_18_in_ruleFonts1066); if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+                  	newLeafNode(otherlv_4, grammarAccess.getFontsAccess().getRightCurlyBracketKeyword_4());
+                  
+            }
+
+            }
+
+
+            }
+
+            if ( state.backtracking==0 ) {
+               leaveRule(); 
+            }
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleFonts"
+
+
+    // $ANTLR start "entryRuleMedias"
+    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:580:1: entryRuleMedias returns [EObject current=null] : iv_ruleMedias= ruleMedias EOF ;
+    public final EObject entryRuleMedias() throws RecognitionException {
+        EObject current = null;
+
+        EObject iv_ruleMedias = null;
+
+
+        try {
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:581:2: (iv_ruleMedias= ruleMedias EOF )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:582:2: iv_ruleMedias= ruleMedias EOF
+            {
+            if ( state.backtracking==0 ) {
+               newCompositeNode(grammarAccess.getMediasRule()); 
+            }
+            pushFollow(FOLLOW_ruleMedias_in_entryRuleMedias1102);
+            iv_ruleMedias=ruleMedias();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+               current =iv_ruleMedias; 
+            }
+            match(input,EOF,FOLLOW_EOF_in_entryRuleMedias1112); if (state.failed) return current;
+
+            }
+
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleMedias"
+
+
+    // $ANTLR start "ruleMedias"
+    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:589:1: ruleMedias returns [EObject current=null] : ( () otherlv_1= 'medias' otherlv_2= '{' ( (lv_medias_3_0= ruleMedia ) )* otherlv_4= '}' ) ;
+    public final EObject ruleMedias() throws RecognitionException {
+        EObject current = null;
+
+        Token otherlv_1=null;
+        Token otherlv_2=null;
+        Token otherlv_4=null;
+        EObject lv_medias_3_0 = null;
+
+
+         enterRule(); 
+            
+        try {
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:592:28: ( ( () otherlv_1= 'medias' otherlv_2= '{' ( (lv_medias_3_0= ruleMedia ) )* otherlv_4= '}' ) )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:593:1: ( () otherlv_1= 'medias' otherlv_2= '{' ( (lv_medias_3_0= ruleMedia ) )* otherlv_4= '}' )
+            {
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:593:1: ( () otherlv_1= 'medias' otherlv_2= '{' ( (lv_medias_3_0= ruleMedia ) )* otherlv_4= '}' )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:593:2: () otherlv_1= 'medias' otherlv_2= '{' ( (lv_medias_3_0= ruleMedia ) )* otherlv_4= '}'
+            {
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:593:2: ()
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:594:5: 
+            {
+            if ( state.backtracking==0 ) {
+
+                      current = forceCreateModelElement(
+                          grammarAccess.getMediasAccess().getMediasAction_0(),
+                          current);
+                  
+            }
+
+            }
+
+            otherlv_1=(Token)match(input,22,FOLLOW_22_in_ruleMedias1158); if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+                  	newLeafNode(otherlv_1, grammarAccess.getMediasAccess().getMediasKeyword_1());
+                  
+            }
+            otherlv_2=(Token)match(input,14,FOLLOW_14_in_ruleMedias1170); if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+                  	newLeafNode(otherlv_2, grammarAccess.getMediasAccess().getLeftCurlyBracketKeyword_2());
+                  
+            }
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:607:1: ( (lv_medias_3_0= ruleMedia ) )*
+            loop11:
+            do {
+                int alt11=2;
+                switch ( input.LA(1) ) {
+                case 23:
+                    {
+                    alt11=1;
+                    }
+                    break;
+
+                }
+
+                switch (alt11) {
+            	case 1 :
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:608:1: (lv_medias_3_0= ruleMedia )
+            	    {
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:608:1: (lv_medias_3_0= ruleMedia )
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:609:3: lv_medias_3_0= ruleMedia
+            	    {
+            	    if ( state.backtracking==0 ) {
+            	       
+            	      	        newCompositeNode(grammarAccess.getMediasAccess().getMediasMediaParserRuleCall_3_0()); 
+            	      	    
+            	    }
+            	    pushFollow(FOLLOW_ruleMedia_in_ruleMedias1191);
+            	    lv_medias_3_0=ruleMedia();
+
+            	    state._fsp--;
+            	    if (state.failed) return current;
+            	    if ( state.backtracking==0 ) {
+
+            	      	        if (current==null) {
+            	      	            current = createModelElementForParent(grammarAccess.getMediasRule());
+            	      	        }
+            	             		add(
+            	             			current, 
+            	             			"medias",
+            	              		lv_medias_3_0, 
+            	              		"Media");
+            	      	        afterParserOrEnumRuleCall();
+            	      	    
+            	    }
+
+            	    }
+
+
+            	    }
+            	    break;
+
+            	default :
+            	    break loop11;
+                }
+            } while (true);
+
+            otherlv_4=(Token)match(input,18,FOLLOW_18_in_ruleMedias1204); if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+                  	newLeafNode(otherlv_4, grammarAccess.getMediasAccess().getRightCurlyBracketKeyword_4());
+                  
+            }
+
+            }
+
+
+            }
+
+            if ( state.backtracking==0 ) {
+               leaveRule(); 
+            }
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleMedias"
+
+
+    // $ANTLR start "entryRuleMedia"
+    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:637:1: entryRuleMedia returns [EObject current=null] : iv_ruleMedia= ruleMedia EOF ;
+    public final EObject entryRuleMedia() throws RecognitionException {
+        EObject current = null;
+
+        EObject iv_ruleMedia = null;
+
+
+        try {
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:638:2: (iv_ruleMedia= ruleMedia EOF )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:639:2: iv_ruleMedia= ruleMedia EOF
+            {
+            if ( state.backtracking==0 ) {
+               newCompositeNode(grammarAccess.getMediaRule()); 
+            }
+            pushFollow(FOLLOW_ruleMedia_in_entryRuleMedia1240);
+            iv_ruleMedia=ruleMedia();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+               current =iv_ruleMedia; 
+            }
+            match(input,EOF,FOLLOW_EOF_in_entryRuleMedia1250); if (state.failed) return current;
+
+            }
+
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleMedia"
+
+
+    // $ANTLR start "ruleMedia"
+    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:646:1: ruleMedia returns [EObject current=null] : (otherlv_0= 'media' ( (lv_name_1_0= RULE_ID ) ) ) ;
+    public final EObject ruleMedia() throws RecognitionException {
+        EObject current = null;
+
+        Token otherlv_0=null;
+        Token lv_name_1_0=null;
+
+         enterRule(); 
+            
+        try {
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:649:28: ( (otherlv_0= 'media' ( (lv_name_1_0= RULE_ID ) ) ) )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:650:1: (otherlv_0= 'media' ( (lv_name_1_0= RULE_ID ) ) )
+            {
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:650:1: (otherlv_0= 'media' ( (lv_name_1_0= RULE_ID ) ) )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:650:3: otherlv_0= 'media' ( (lv_name_1_0= RULE_ID ) )
+            {
+            otherlv_0=(Token)match(input,23,FOLLOW_23_in_ruleMedia1287); if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+                  	newLeafNode(otherlv_0, grammarAccess.getMediaAccess().getMediaKeyword_0());
+                  
+            }
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:654:1: ( (lv_name_1_0= RULE_ID ) )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:655:1: (lv_name_1_0= RULE_ID )
+            {
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:655:1: (lv_name_1_0= RULE_ID )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:656:3: lv_name_1_0= RULE_ID
+            {
+            lv_name_1_0=(Token)match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleMedia1304); if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+              			newLeafNode(lv_name_1_0, grammarAccess.getMediaAccess().getNameIDTerminalRuleCall_1_0()); 
+              		
+            }
+            if ( state.backtracking==0 ) {
+
+              	        if (current==null) {
+              	            current = createModelElement(grammarAccess.getMediaRule());
+              	        }
+                     		setWithLastConsumed(
+                     			current, 
+                     			"name",
+                      		lv_name_1_0, 
+                      		"ID");
+              	    
+            }
+
+            }
+
+
+            }
+
+
+            }
+
+
+            }
+
+            if ( state.backtracking==0 ) {
+               leaveRule(); 
+            }
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleMedia"
+
+
+    // $ANTLR start "entryRuleStyles"
+    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:680:1: entryRuleStyles returns [EObject current=null] : iv_ruleStyles= ruleStyles EOF ;
+    public final EObject entryRuleStyles() throws RecognitionException {
+        EObject current = null;
+
+        EObject iv_ruleStyles = null;
+
+
+        try {
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:681:2: (iv_ruleStyles= ruleStyles EOF )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:682:2: iv_ruleStyles= ruleStyles EOF
+            {
+            if ( state.backtracking==0 ) {
+               newCompositeNode(grammarAccess.getStylesRule()); 
+            }
+            pushFollow(FOLLOW_ruleStyles_in_entryRuleStyles1345);
+            iv_ruleStyles=ruleStyles();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+               current =iv_ruleStyles; 
+            }
+            match(input,EOF,FOLLOW_EOF_in_entryRuleStyles1355); if (state.failed) return current;
+
+            }
+
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleStyles"
+
+
+    // $ANTLR start "ruleStyles"
+    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:689:1: ruleStyles returns [EObject current=null] : ( () otherlv_1= 'styles' otherlv_2= '{' ( (lv_styles_3_0= ruleStyle ) )* otherlv_4= '}' ) ;
+    public final EObject ruleStyles() throws RecognitionException {
+        EObject current = null;
+
+        Token otherlv_1=null;
+        Token otherlv_2=null;
+        Token otherlv_4=null;
+        EObject lv_styles_3_0 = null;
+
+
+         enterRule(); 
+            
+        try {
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:692:28: ( ( () otherlv_1= 'styles' otherlv_2= '{' ( (lv_styles_3_0= ruleStyle ) )* otherlv_4= '}' ) )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:693:1: ( () otherlv_1= 'styles' otherlv_2= '{' ( (lv_styles_3_0= ruleStyle ) )* otherlv_4= '}' )
+            {
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:693:1: ( () otherlv_1= 'styles' otherlv_2= '{' ( (lv_styles_3_0= ruleStyle ) )* otherlv_4= '}' )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:693:2: () otherlv_1= 'styles' otherlv_2= '{' ( (lv_styles_3_0= ruleStyle ) )* otherlv_4= '}'
+            {
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:693:2: ()
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:694:5: 
+            {
+            if ( state.backtracking==0 ) {
+
+                      current = forceCreateModelElement(
+                          grammarAccess.getStylesAccess().getStylesAction_0(),
+                          current);
+                  
+            }
+
+            }
+
+            otherlv_1=(Token)match(input,24,FOLLOW_24_in_ruleStyles1401); if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+                  	newLeafNode(otherlv_1, grammarAccess.getStylesAccess().getStylesKeyword_1());
+                  
+            }
+            otherlv_2=(Token)match(input,14,FOLLOW_14_in_ruleStyles1413); if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+                  	newLeafNode(otherlv_2, grammarAccess.getStylesAccess().getLeftCurlyBracketKeyword_2());
+                  
+            }
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:707:1: ( (lv_styles_3_0= ruleStyle ) )*
+            loop12:
+            do {
+                int alt12=2;
+                switch ( input.LA(1) ) {
+                case 43:
+                    {
+                    alt12=1;
+                    }
+                    break;
+
+                }
+
+                switch (alt12) {
+            	case 1 :
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:708:1: (lv_styles_3_0= ruleStyle )
+            	    {
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:708:1: (lv_styles_3_0= ruleStyle )
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:709:3: lv_styles_3_0= ruleStyle
+            	    {
+            	    if ( state.backtracking==0 ) {
+            	       
+            	      	        newCompositeNode(grammarAccess.getStylesAccess().getStylesStyleParserRuleCall_3_0()); 
+            	      	    
+            	    }
+            	    pushFollow(FOLLOW_ruleStyle_in_ruleStyles1434);
+            	    lv_styles_3_0=ruleStyle();
+
+            	    state._fsp--;
+            	    if (state.failed) return current;
+            	    if ( state.backtracking==0 ) {
+
+            	      	        if (current==null) {
+            	      	            current = createModelElementForParent(grammarAccess.getStylesRule());
+            	      	        }
+            	             		add(
+            	             			current, 
+            	             			"styles",
+            	              		lv_styles_3_0, 
+            	              		"Style");
+            	      	        afterParserOrEnumRuleCall();
+            	      	    
+            	    }
+
+            	    }
+
+
+            	    }
+            	    break;
+
+            	default :
+            	    break loop12;
+                }
+            } while (true);
+
+            otherlv_4=(Token)match(input,18,FOLLOW_18_in_ruleStyles1447); if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+                  	newLeafNode(otherlv_4, grammarAccess.getStylesAccess().getRightCurlyBracketKeyword_4());
+                  
+            }
+
+            }
+
+
+            }
+
+            if ( state.backtracking==0 ) {
+               leaveRule(); 
+            }
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleStyles"
+
+
+    // $ANTLR start "entryRulePageTemplate"
+    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:737:1: entryRulePageTemplate returns [EObject current=null] : iv_rulePageTemplate= rulePageTemplate EOF ;
+    public final EObject entryRulePageTemplate() throws RecognitionException {
+        EObject current = null;
+
+        EObject iv_rulePageTemplate = null;
+
+
+        try {
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:738:2: (iv_rulePageTemplate= rulePageTemplate EOF )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:739:2: iv_rulePageTemplate= rulePageTemplate EOF
+            {
+            if ( state.backtracking==0 ) {
+               newCompositeNode(grammarAccess.getPageTemplateRule()); 
+            }
+            pushFollow(FOLLOW_rulePageTemplate_in_entryRulePageTemplate1483);
+            iv_rulePageTemplate=rulePageTemplate();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+               current =iv_rulePageTemplate; 
+            }
+            match(input,EOF,FOLLOW_EOF_in_entryRulePageTemplate1493); if (state.failed) return current;
+
+            }
+
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRulePageTemplate"
+
+
+    // $ANTLR start "rulePageTemplate"
+    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:746:1: rulePageTemplate returns [EObject current=null] : (otherlv_0= 'pagetemplate' ( (lv_name_1_0= RULE_ID ) ) otherlv_2= '{' otherlv_3= 'type' ( (lv_size_4_0= rulePageSizeEnum ) ) otherlv_5= 'orientation' ( (lv_orientation_6_0= ruleOrientationEnum ) ) otherlv_7= 'topmargin' ( (lv_topMarginValue_8_0= ruleUnsignedNumber ) ) ( (lv_topMarginUnit_9_0= ruleUnitEnum ) ) otherlv_10= 'leftmargin' ( (lv_leftMarginValue_11_0= ruleUnsignedNumber ) ) ( (lv_leftMarginUnit_12_0= ruleUnitEnum ) ) otherlv_13= 'bottommargin' ( (lv_bottomMarginValue_14_0= ruleUnsignedNumber ) ) ( (lv_bottomMarginUnit_15_0= ruleUnitEnum ) ) otherlv_16= 'rightmargin' ( (lv_rightMarginValue_17_0= ruleUnsignedNumber ) ) ( (lv_rightMarginUnit_18_0= ruleUnitEnum ) ) ( (lv_header_19_0= rulePageHeader ) )? ( (lv_footer_20_0= rulePageFooter ) )? otherlv_21= '}' ) ;
+    public final EObject rulePageTemplate() throws RecognitionException {
+        EObject current = null;
+
+        Token otherlv_0=null;
+        Token lv_name_1_0=null;
+        Token otherlv_2=null;
+        Token otherlv_3=null;
+        Token otherlv_5=null;
+        Token otherlv_7=null;
+        Token otherlv_10=null;
+        Token otherlv_13=null;
+        Token otherlv_16=null;
+        Token otherlv_21=null;
+        Enumerator lv_size_4_0 = null;
+
+        Enumerator lv_orientation_6_0 = null;
+
+        AntlrDatatypeRuleToken lv_topMarginValue_8_0 = null;
+
+        Enumerator lv_topMarginUnit_9_0 = null;
+
+        AntlrDatatypeRuleToken lv_leftMarginValue_11_0 = null;
+
+        Enumerator lv_leftMarginUnit_12_0 = null;
+
+        AntlrDatatypeRuleToken lv_bottomMarginValue_14_0 = null;
+
+        Enumerator lv_bottomMarginUnit_15_0 = null;
+
+        AntlrDatatypeRuleToken lv_rightMarginValue_17_0 = null;
+
+        Enumerator lv_rightMarginUnit_18_0 = null;
+
+        EObject lv_header_19_0 = null;
+
+        EObject lv_footer_20_0 = null;
+
+
+         enterRule(); 
+            
+        try {
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:749:28: ( (otherlv_0= 'pagetemplate' ( (lv_name_1_0= RULE_ID ) ) otherlv_2= '{' otherlv_3= 'type' ( (lv_size_4_0= rulePageSizeEnum ) ) otherlv_5= 'orientation' ( (lv_orientation_6_0= ruleOrientationEnum ) ) otherlv_7= 'topmargin' ( (lv_topMarginValue_8_0= ruleUnsignedNumber ) ) ( (lv_topMarginUnit_9_0= ruleUnitEnum ) ) otherlv_10= 'leftmargin' ( (lv_leftMarginValue_11_0= ruleUnsignedNumber ) ) ( (lv_leftMarginUnit_12_0= ruleUnitEnum ) ) otherlv_13= 'bottommargin' ( (lv_bottomMarginValue_14_0= ruleUnsignedNumber ) ) ( (lv_bottomMarginUnit_15_0= ruleUnitEnum ) ) otherlv_16= 'rightmargin' ( (lv_rightMarginValue_17_0= ruleUnsignedNumber ) ) ( (lv_rightMarginUnit_18_0= ruleUnitEnum ) ) ( (lv_header_19_0= rulePageHeader ) )? ( (lv_footer_20_0= rulePageFooter ) )? otherlv_21= '}' ) )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:750:1: (otherlv_0= 'pagetemplate' ( (lv_name_1_0= RULE_ID ) ) otherlv_2= '{' otherlv_3= 'type' ( (lv_size_4_0= rulePageSizeEnum ) ) otherlv_5= 'orientation' ( (lv_orientation_6_0= ruleOrientationEnum ) ) otherlv_7= 'topmargin' ( (lv_topMarginValue_8_0= ruleUnsignedNumber ) ) ( (lv_topMarginUnit_9_0= ruleUnitEnum ) ) otherlv_10= 'leftmargin' ( (lv_leftMarginValue_11_0= ruleUnsignedNumber ) ) ( (lv_leftMarginUnit_12_0= ruleUnitEnum ) ) otherlv_13= 'bottommargin' ( (lv_bottomMarginValue_14_0= ruleUnsignedNumber ) ) ( (lv_bottomMarginUnit_15_0= ruleUnitEnum ) ) otherlv_16= 'rightmargin' ( (lv_rightMarginValue_17_0= ruleUnsignedNumber ) ) ( (lv_rightMarginUnit_18_0= ruleUnitEnum ) ) ( (lv_header_19_0= rulePageHeader ) )? ( (lv_footer_20_0= rulePageFooter ) )? otherlv_21= '}' )
+            {
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:750:1: (otherlv_0= 'pagetemplate' ( (lv_name_1_0= RULE_ID ) ) otherlv_2= '{' otherlv_3= 'type' ( (lv_size_4_0= rulePageSizeEnum ) ) otherlv_5= 'orientation' ( (lv_orientation_6_0= ruleOrientationEnum ) ) otherlv_7= 'topmargin' ( (lv_topMarginValue_8_0= ruleUnsignedNumber ) ) ( (lv_topMarginUnit_9_0= ruleUnitEnum ) ) otherlv_10= 'leftmargin' ( (lv_leftMarginValue_11_0= ruleUnsignedNumber ) ) ( (lv_leftMarginUnit_12_0= ruleUnitEnum ) ) otherlv_13= 'bottommargin' ( (lv_bottomMarginValue_14_0= ruleUnsignedNumber ) ) ( (lv_bottomMarginUnit_15_0= ruleUnitEnum ) ) otherlv_16= 'rightmargin' ( (lv_rightMarginValue_17_0= ruleUnsignedNumber ) ) ( (lv_rightMarginUnit_18_0= ruleUnitEnum ) ) ( (lv_header_19_0= rulePageHeader ) )? ( (lv_footer_20_0= rulePageFooter ) )? otherlv_21= '}' )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:750:3: otherlv_0= 'pagetemplate' ( (lv_name_1_0= RULE_ID ) ) otherlv_2= '{' otherlv_3= 'type' ( (lv_size_4_0= rulePageSizeEnum ) ) otherlv_5= 'orientation' ( (lv_orientation_6_0= ruleOrientationEnum ) ) otherlv_7= 'topmargin' ( (lv_topMarginValue_8_0= ruleUnsignedNumber ) ) ( (lv_topMarginUnit_9_0= ruleUnitEnum ) ) otherlv_10= 'leftmargin' ( (lv_leftMarginValue_11_0= ruleUnsignedNumber ) ) ( (lv_leftMarginUnit_12_0= ruleUnitEnum ) ) otherlv_13= 'bottommargin' ( (lv_bottomMarginValue_14_0= ruleUnsignedNumber ) ) ( (lv_bottomMarginUnit_15_0= ruleUnitEnum ) ) otherlv_16= 'rightmargin' ( (lv_rightMarginValue_17_0= ruleUnsignedNumber ) ) ( (lv_rightMarginUnit_18_0= ruleUnitEnum ) ) ( (lv_header_19_0= rulePageHeader ) )? ( (lv_footer_20_0= rulePageFooter ) )? otherlv_21= '}'
+            {
+            otherlv_0=(Token)match(input,25,FOLLOW_25_in_rulePageTemplate1530); if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+                  	newLeafNode(otherlv_0, grammarAccess.getPageTemplateAccess().getPagetemplateKeyword_0());
+                  
+            }
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:754:1: ( (lv_name_1_0= RULE_ID ) )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:755:1: (lv_name_1_0= RULE_ID )
+            {
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:755:1: (lv_name_1_0= RULE_ID )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:756:3: lv_name_1_0= RULE_ID
+            {
+            lv_name_1_0=(Token)match(input,RULE_ID,FOLLOW_RULE_ID_in_rulePageTemplate1547); if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+              			newLeafNode(lv_name_1_0, grammarAccess.getPageTemplateAccess().getNameIDTerminalRuleCall_1_0()); 
+              		
+            }
+            if ( state.backtracking==0 ) {
+
+              	        if (current==null) {
+              	            current = createModelElement(grammarAccess.getPageTemplateRule());
+              	        }
+                     		setWithLastConsumed(
+                     			current, 
+                     			"name",
+                      		lv_name_1_0, 
+                      		"ID");
+              	    
+            }
+
+            }
+
+
+            }
+
+            otherlv_2=(Token)match(input,14,FOLLOW_14_in_rulePageTemplate1564); if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+                  	newLeafNode(otherlv_2, grammarAccess.getPageTemplateAccess().getLeftCurlyBracketKeyword_2());
+                  
+            }
+            otherlv_3=(Token)match(input,26,FOLLOW_26_in_rulePageTemplate1576); if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+                  	newLeafNode(otherlv_3, grammarAccess.getPageTemplateAccess().getTypeKeyword_3());
+                  
+            }
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:780:1: ( (lv_size_4_0= rulePageSizeEnum ) )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:781:1: (lv_size_4_0= rulePageSizeEnum )
+            {
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:781:1: (lv_size_4_0= rulePageSizeEnum )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:782:3: lv_size_4_0= rulePageSizeEnum
+            {
+            if ( state.backtracking==0 ) {
+               
+              	        newCompositeNode(grammarAccess.getPageTemplateAccess().getSizePageSizeEnumEnumRuleCall_4_0()); 
+              	    
+            }
+            pushFollow(FOLLOW_rulePageSizeEnum_in_rulePageTemplate1597);
+            lv_size_4_0=rulePageSizeEnum();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+              	        if (current==null) {
+              	            current = createModelElementForParent(grammarAccess.getPageTemplateRule());
+              	        }
+                     		set(
+                     			current, 
+                     			"size",
+                      		lv_size_4_0, 
+                      		"PageSizeEnum");
+              	        afterParserOrEnumRuleCall();
+              	    
+            }
+
+            }
+
+
+            }
+
+            otherlv_5=(Token)match(input,27,FOLLOW_27_in_rulePageTemplate1609); if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+                  	newLeafNode(otherlv_5, grammarAccess.getPageTemplateAccess().getOrientationKeyword_5());
+                  
+            }
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:802:1: ( (lv_orientation_6_0= ruleOrientationEnum ) )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:803:1: (lv_orientation_6_0= ruleOrientationEnum )
+            {
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:803:1: (lv_orientation_6_0= ruleOrientationEnum )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:804:3: lv_orientation_6_0= ruleOrientationEnum
+            {
+            if ( state.backtracking==0 ) {
+               
+              	        newCompositeNode(grammarAccess.getPageTemplateAccess().getOrientationOrientationEnumEnumRuleCall_6_0()); 
+              	    
+            }
+            pushFollow(FOLLOW_ruleOrientationEnum_in_rulePageTemplate1630);
+            lv_orientation_6_0=ruleOrientationEnum();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+              	        if (current==null) {
+              	            current = createModelElementForParent(grammarAccess.getPageTemplateRule());
+              	        }
+                     		set(
+                     			current, 
+                     			"orientation",
+                      		lv_orientation_6_0, 
+                      		"OrientationEnum");
+              	        afterParserOrEnumRuleCall();
+              	    
+            }
+
+            }
+
+
+            }
+
+            otherlv_7=(Token)match(input,28,FOLLOW_28_in_rulePageTemplate1642); if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+                  	newLeafNode(otherlv_7, grammarAccess.getPageTemplateAccess().getTopmarginKeyword_7());
+                  
+            }
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:824:1: ( (lv_topMarginValue_8_0= ruleUnsignedNumber ) )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:825:1: (lv_topMarginValue_8_0= ruleUnsignedNumber )
+            {
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:825:1: (lv_topMarginValue_8_0= ruleUnsignedNumber )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:826:3: lv_topMarginValue_8_0= ruleUnsignedNumber
+            {
+            if ( state.backtracking==0 ) {
+               
+              	        newCompositeNode(grammarAccess.getPageTemplateAccess().getTopMarginValueUnsignedNumberParserRuleCall_8_0()); 
+              	    
+            }
+            pushFollow(FOLLOW_ruleUnsignedNumber_in_rulePageTemplate1663);
+            lv_topMarginValue_8_0=ruleUnsignedNumber();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+              	        if (current==null) {
+              	            current = createModelElementForParent(grammarAccess.getPageTemplateRule());
+              	        }
+                     		set(
+                     			current, 
+                     			"topMarginValue",
+                      		lv_topMarginValue_8_0, 
+                      		"UnsignedNumber");
+              	        afterParserOrEnumRuleCall();
+              	    
+            }
+
+            }
+
+
+            }
+
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:842:2: ( (lv_topMarginUnit_9_0= ruleUnitEnum ) )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:843:1: (lv_topMarginUnit_9_0= ruleUnitEnum )
+            {
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:843:1: (lv_topMarginUnit_9_0= ruleUnitEnum )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:844:3: lv_topMarginUnit_9_0= ruleUnitEnum
+            {
+            if ( state.backtracking==0 ) {
+               
+              	        newCompositeNode(grammarAccess.getPageTemplateAccess().getTopMarginUnitUnitEnumEnumRuleCall_9_0()); 
+              	    
+            }
+            pushFollow(FOLLOW_ruleUnitEnum_in_rulePageTemplate1684);
+            lv_topMarginUnit_9_0=ruleUnitEnum();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+              	        if (current==null) {
+              	            current = createModelElementForParent(grammarAccess.getPageTemplateRule());
+              	        }
+                     		set(
+                     			current, 
+                     			"topMarginUnit",
+                      		lv_topMarginUnit_9_0, 
+                      		"UnitEnum");
+              	        afterParserOrEnumRuleCall();
+              	    
+            }
+
+            }
+
+
+            }
+
+            otherlv_10=(Token)match(input,29,FOLLOW_29_in_rulePageTemplate1696); if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+                  	newLeafNode(otherlv_10, grammarAccess.getPageTemplateAccess().getLeftmarginKeyword_10());
+                  
+            }
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:864:1: ( (lv_leftMarginValue_11_0= ruleUnsignedNumber ) )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:865:1: (lv_leftMarginValue_11_0= ruleUnsignedNumber )
+            {
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:865:1: (lv_leftMarginValue_11_0= ruleUnsignedNumber )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:866:3: lv_leftMarginValue_11_0= ruleUnsignedNumber
+            {
+            if ( state.backtracking==0 ) {
+               
+              	        newCompositeNode(grammarAccess.getPageTemplateAccess().getLeftMarginValueUnsignedNumberParserRuleCall_11_0()); 
+              	    
+            }
+            pushFollow(FOLLOW_ruleUnsignedNumber_in_rulePageTemplate1717);
+            lv_leftMarginValue_11_0=ruleUnsignedNumber();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+              	        if (current==null) {
+              	            current = createModelElementForParent(grammarAccess.getPageTemplateRule());
+              	        }
+                     		set(
+                     			current, 
+                     			"leftMarginValue",
+                      		lv_leftMarginValue_11_0, 
+                      		"UnsignedNumber");
+              	        afterParserOrEnumRuleCall();
+              	    
+            }
+
+            }
+
+
+            }
+
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:882:2: ( (lv_leftMarginUnit_12_0= ruleUnitEnum ) )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:883:1: (lv_leftMarginUnit_12_0= ruleUnitEnum )
+            {
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:883:1: (lv_leftMarginUnit_12_0= ruleUnitEnum )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:884:3: lv_leftMarginUnit_12_0= ruleUnitEnum
+            {
+            if ( state.backtracking==0 ) {
+               
+              	        newCompositeNode(grammarAccess.getPageTemplateAccess().getLeftMarginUnitUnitEnumEnumRuleCall_12_0()); 
+              	    
+            }
+            pushFollow(FOLLOW_ruleUnitEnum_in_rulePageTemplate1738);
+            lv_leftMarginUnit_12_0=ruleUnitEnum();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+              	        if (current==null) {
+              	            current = createModelElementForParent(grammarAccess.getPageTemplateRule());
+              	        }
+                     		set(
+                     			current, 
+                     			"leftMarginUnit",
+                      		lv_leftMarginUnit_12_0, 
+                      		"UnitEnum");
+              	        afterParserOrEnumRuleCall();
+              	    
+            }
+
+            }
+
+
+            }
+
+            otherlv_13=(Token)match(input,30,FOLLOW_30_in_rulePageTemplate1750); if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+                  	newLeafNode(otherlv_13, grammarAccess.getPageTemplateAccess().getBottommarginKeyword_13());
+                  
+            }
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:904:1: ( (lv_bottomMarginValue_14_0= ruleUnsignedNumber ) )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:905:1: (lv_bottomMarginValue_14_0= ruleUnsignedNumber )
+            {
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:905:1: (lv_bottomMarginValue_14_0= ruleUnsignedNumber )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:906:3: lv_bottomMarginValue_14_0= ruleUnsignedNumber
+            {
+            if ( state.backtracking==0 ) {
+               
+              	        newCompositeNode(grammarAccess.getPageTemplateAccess().getBottomMarginValueUnsignedNumberParserRuleCall_14_0()); 
+              	    
+            }
+            pushFollow(FOLLOW_ruleUnsignedNumber_in_rulePageTemplate1771);
+            lv_bottomMarginValue_14_0=ruleUnsignedNumber();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+              	        if (current==null) {
+              	            current = createModelElementForParent(grammarAccess.getPageTemplateRule());
+              	        }
+                     		set(
+                     			current, 
+                     			"bottomMarginValue",
+                      		lv_bottomMarginValue_14_0, 
+                      		"UnsignedNumber");
+              	        afterParserOrEnumRuleCall();
+              	    
+            }
+
+            }
+
+
+            }
+
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:922:2: ( (lv_bottomMarginUnit_15_0= ruleUnitEnum ) )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:923:1: (lv_bottomMarginUnit_15_0= ruleUnitEnum )
+            {
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:923:1: (lv_bottomMarginUnit_15_0= ruleUnitEnum )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:924:3: lv_bottomMarginUnit_15_0= ruleUnitEnum
+            {
+            if ( state.backtracking==0 ) {
+               
+              	        newCompositeNode(grammarAccess.getPageTemplateAccess().getBottomMarginUnitUnitEnumEnumRuleCall_15_0()); 
+              	    
+            }
+            pushFollow(FOLLOW_ruleUnitEnum_in_rulePageTemplate1792);
+            lv_bottomMarginUnit_15_0=ruleUnitEnum();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+              	        if (current==null) {
+              	            current = createModelElementForParent(grammarAccess.getPageTemplateRule());
+              	        }
+                     		set(
+                     			current, 
+                     			"bottomMarginUnit",
+                      		lv_bottomMarginUnit_15_0, 
+                      		"UnitEnum");
+              	        afterParserOrEnumRuleCall();
+              	    
+            }
+
+            }
+
+
+            }
+
+            otherlv_16=(Token)match(input,31,FOLLOW_31_in_rulePageTemplate1804); if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+                  	newLeafNode(otherlv_16, grammarAccess.getPageTemplateAccess().getRightmarginKeyword_16());
+                  
+            }
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:944:1: ( (lv_rightMarginValue_17_0= ruleUnsignedNumber ) )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:945:1: (lv_rightMarginValue_17_0= ruleUnsignedNumber )
+            {
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:945:1: (lv_rightMarginValue_17_0= ruleUnsignedNumber )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:946:3: lv_rightMarginValue_17_0= ruleUnsignedNumber
+            {
+            if ( state.backtracking==0 ) {
+               
+              	        newCompositeNode(grammarAccess.getPageTemplateAccess().getRightMarginValueUnsignedNumberParserRuleCall_17_0()); 
+              	    
+            }
+            pushFollow(FOLLOW_ruleUnsignedNumber_in_rulePageTemplate1825);
+            lv_rightMarginValue_17_0=ruleUnsignedNumber();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+              	        if (current==null) {
+              	            current = createModelElementForParent(grammarAccess.getPageTemplateRule());
+              	        }
+                     		set(
+                     			current, 
+                     			"rightMarginValue",
+                      		lv_rightMarginValue_17_0, 
+                      		"UnsignedNumber");
+              	        afterParserOrEnumRuleCall();
+              	    
+            }
+
+            }
+
+
+            }
+
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:962:2: ( (lv_rightMarginUnit_18_0= ruleUnitEnum ) )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:963:1: (lv_rightMarginUnit_18_0= ruleUnitEnum )
+            {
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:963:1: (lv_rightMarginUnit_18_0= ruleUnitEnum )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:964:3: lv_rightMarginUnit_18_0= ruleUnitEnum
+            {
+            if ( state.backtracking==0 ) {
+               
+              	        newCompositeNode(grammarAccess.getPageTemplateAccess().getRightMarginUnitUnitEnumEnumRuleCall_18_0()); 
+              	    
+            }
+            pushFollow(FOLLOW_ruleUnitEnum_in_rulePageTemplate1846);
+            lv_rightMarginUnit_18_0=ruleUnitEnum();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+              	        if (current==null) {
+              	            current = createModelElementForParent(grammarAccess.getPageTemplateRule());
+              	        }
+                     		set(
+                     			current, 
+                     			"rightMarginUnit",
+                      		lv_rightMarginUnit_18_0, 
+                      		"UnitEnum");
+              	        afterParserOrEnumRuleCall();
+              	    
+            }
+
+            }
+
+
+            }
+
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:980:2: ( (lv_header_19_0= rulePageHeader ) )?
+            int alt13=2;
+            switch ( input.LA(1) ) {
+                case 75:
+                    {
+                    alt13=1;
+                    }
+                    break;
+            }
+
+            switch (alt13) {
+                case 1 :
+                    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:981:1: (lv_header_19_0= rulePageHeader )
+                    {
+                    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:981:1: (lv_header_19_0= rulePageHeader )
+                    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:982:3: lv_header_19_0= rulePageHeader
+                    {
+                    if ( state.backtracking==0 ) {
+                       
+                      	        newCompositeNode(grammarAccess.getPageTemplateAccess().getHeaderPageHeaderParserRuleCall_19_0()); 
+                      	    
+                    }
+                    pushFollow(FOLLOW_rulePageHeader_in_rulePageTemplate1867);
+                    lv_header_19_0=rulePageHeader();
+
+                    state._fsp--;
+                    if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                      	        if (current==null) {
+                      	            current = createModelElementForParent(grammarAccess.getPageTemplateRule());
+                      	        }
+                             		set(
+                             			current, 
+                             			"header",
+                              		lv_header_19_0, 
+                              		"PageHeader");
+                      	        afterParserOrEnumRuleCall();
+                      	    
+                    }
+
+                    }
+
+
+                    }
+                    break;
+
+            }
+
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:998:3: ( (lv_footer_20_0= rulePageFooter ) )?
+            int alt14=2;
+            switch ( input.LA(1) ) {
+                case 79:
+                    {
+                    alt14=1;
+                    }
+                    break;
+            }
+
+            switch (alt14) {
+                case 1 :
+                    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:999:1: (lv_footer_20_0= rulePageFooter )
+                    {
+                    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:999:1: (lv_footer_20_0= rulePageFooter )
+                    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1000:3: lv_footer_20_0= rulePageFooter
+                    {
+                    if ( state.backtracking==0 ) {
+                       
+                      	        newCompositeNode(grammarAccess.getPageTemplateAccess().getFooterPageFooterParserRuleCall_20_0()); 
+                      	    
+                    }
+                    pushFollow(FOLLOW_rulePageFooter_in_rulePageTemplate1889);
+                    lv_footer_20_0=rulePageFooter();
+
+                    state._fsp--;
+                    if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                      	        if (current==null) {
+                      	            current = createModelElementForParent(grammarAccess.getPageTemplateRule());
+                      	        }
+                             		set(
+                             			current, 
+                             			"footer",
+                              		lv_footer_20_0, 
+                              		"PageFooter");
+                      	        afterParserOrEnumRuleCall();
+                      	    
+                    }
+
+                    }
+
+
+                    }
+                    break;
+
+            }
+
+            otherlv_21=(Token)match(input,18,FOLLOW_18_in_rulePageTemplate1902); if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+                  	newLeafNode(otherlv_21, grammarAccess.getPageTemplateAccess().getRightCurlyBracketKeyword_21());
+                  
+            }
+
+            }
+
+
+            }
+
+            if ( state.backtracking==0 ) {
+               leaveRule(); 
+            }
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "rulePageTemplate"
+
+
+    // $ANTLR start "entryRuleUnsignedNumber"
+    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1028:1: entryRuleUnsignedNumber returns [String current=null] : iv_ruleUnsignedNumber= ruleUnsignedNumber EOF ;
+    public final String entryRuleUnsignedNumber() throws RecognitionException {
+        String current = null;
+
+        AntlrDatatypeRuleToken iv_ruleUnsignedNumber = null;
+
+
+        try {
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1029:2: (iv_ruleUnsignedNumber= ruleUnsignedNumber EOF )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1030:2: iv_ruleUnsignedNumber= ruleUnsignedNumber EOF
+            {
+            if ( state.backtracking==0 ) {
+               newCompositeNode(grammarAccess.getUnsignedNumberRule()); 
+            }
+            pushFollow(FOLLOW_ruleUnsignedNumber_in_entryRuleUnsignedNumber1939);
+            iv_ruleUnsignedNumber=ruleUnsignedNumber();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+               current =iv_ruleUnsignedNumber.getText(); 
+            }
+            match(input,EOF,FOLLOW_EOF_in_entryRuleUnsignedNumber1950); if (state.failed) return current;
+
+            }
+
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleUnsignedNumber"
+
+
+    // $ANTLR start "ruleUnsignedNumber"
+    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1037:1: ruleUnsignedNumber returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : this_Number_0= ruleNumber ;
+    public final AntlrDatatypeRuleToken ruleUnsignedNumber() throws RecognitionException {
+        AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();
+
+        AntlrDatatypeRuleToken this_Number_0 = null;
+
+
+         enterRule(); 
+            
+        try {
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1040:28: (this_Number_0= ruleNumber )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1042:5: this_Number_0= ruleNumber
+            {
+            if ( state.backtracking==0 ) {
+               
+                      newCompositeNode(grammarAccess.getUnsignedNumberAccess().getNumberParserRuleCall()); 
+                  
+            }
+            pushFollow(FOLLOW_ruleNumber_in_ruleUnsignedNumber1996);
+            this_Number_0=ruleNumber();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+              		current.merge(this_Number_0);
+                  
+            }
+            if ( state.backtracking==0 ) {
+               
+                      afterParserOrEnumRuleCall();
+                  
+            }
+
+            }
+
+            if ( state.backtracking==0 ) {
+               leaveRule(); 
+            }
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleUnsignedNumber"
+
+
+    // $ANTLR start "entryRuleColor"
+    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1060:1: entryRuleColor returns [EObject current=null] : iv_ruleColor= ruleColor EOF ;
+    public final EObject entryRuleColor() throws RecognitionException {
+        EObject current = null;
+
+        EObject iv_ruleColor = null;
+
+
+        try {
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1061:2: (iv_ruleColor= ruleColor EOF )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1062:2: iv_ruleColor= ruleColor EOF
+            {
+            if ( state.backtracking==0 ) {
+               newCompositeNode(grammarAccess.getColorRule()); 
+            }
+            pushFollow(FOLLOW_ruleColor_in_entryRuleColor2040);
+            iv_ruleColor=ruleColor();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+               current =iv_ruleColor; 
+            }
+            match(input,EOF,FOLLOW_EOF_in_entryRuleColor2050); if (state.failed) return current;
+
+            }
+
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleColor"
+
+
+    // $ANTLR start "ruleColor"
+    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1069:1: ruleColor returns [EObject current=null] : (otherlv_0= 'color' ( (lv_name_1_0= RULE_ID ) ) ( ( (lv_color_2_0= RULE_STRING ) ) | (otherlv_3= 'darkens' ( (otherlv_4= RULE_ID ) ) otherlv_5= 'by-percent' ( (lv_darkensby_6_0= RULE_INT ) ) ) | (otherlv_7= 'lightens' ( (otherlv_8= RULE_ID ) ) otherlv_9= 'by-percent' ( (lv_lightensby_10_0= RULE_INT ) ) ) | (otherlv_11= 'transforms' ( (otherlv_12= RULE_ID ) ) otherlv_13= 'by-percent' ( (lv_transformsby_14_0= RULE_INT ) ) otherlv_15= 'towards' ( (otherlv_16= RULE_ID ) ) ) ) ) ;
+    public final EObject ruleColor() throws RecognitionException {
+        EObject current = null;
+
+        Token otherlv_0=null;
+        Token lv_name_1_0=null;
+        Token lv_color_2_0=null;
+        Token otherlv_3=null;
+        Token otherlv_4=null;
+        Token otherlv_5=null;
+        Token lv_darkensby_6_0=null;
+        Token otherlv_7=null;
+        Token otherlv_8=null;
+        Token otherlv_9=null;
+        Token lv_lightensby_10_0=null;
+        Token otherlv_11=null;
+        Token otherlv_12=null;
+        Token otherlv_13=null;
+        Token lv_transformsby_14_0=null;
+        Token otherlv_15=null;
+        Token otherlv_16=null;
+
+         enterRule(); 
+            
+        try {
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1072:28: ( (otherlv_0= 'color' ( (lv_name_1_0= RULE_ID ) ) ( ( (lv_color_2_0= RULE_STRING ) ) | (otherlv_3= 'darkens' ( (otherlv_4= RULE_ID ) ) otherlv_5= 'by-percent' ( (lv_darkensby_6_0= RULE_INT ) ) ) | (otherlv_7= 'lightens' ( (otherlv_8= RULE_ID ) ) otherlv_9= 'by-percent' ( (lv_lightensby_10_0= RULE_INT ) ) ) | (otherlv_11= 'transforms' ( (otherlv_12= RULE_ID ) ) otherlv_13= 'by-percent' ( (lv_transformsby_14_0= RULE_INT ) ) otherlv_15= 'towards' ( (otherlv_16= RULE_ID ) ) ) ) ) )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1073:1: (otherlv_0= 'color' ( (lv_name_1_0= RULE_ID ) ) ( ( (lv_color_2_0= RULE_STRING ) ) | (otherlv_3= 'darkens' ( (otherlv_4= RULE_ID ) ) otherlv_5= 'by-percent' ( (lv_darkensby_6_0= RULE_INT ) ) ) | (otherlv_7= 'lightens' ( (otherlv_8= RULE_ID ) ) otherlv_9= 'by-percent' ( (lv_lightensby_10_0= RULE_INT ) ) ) | (otherlv_11= 'transforms' ( (otherlv_12= RULE_ID ) ) otherlv_13= 'by-percent' ( (lv_transformsby_14_0= RULE_INT ) ) otherlv_15= 'towards' ( (otherlv_16= RULE_ID ) ) ) ) )
+            {
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1073:1: (otherlv_0= 'color' ( (lv_name_1_0= RULE_ID ) ) ( ( (lv_color_2_0= RULE_STRING ) ) | (otherlv_3= 'darkens' ( (otherlv_4= RULE_ID ) ) otherlv_5= 'by-percent' ( (lv_darkensby_6_0= RULE_INT ) ) ) | (otherlv_7= 'lightens' ( (otherlv_8= RULE_ID ) ) otherlv_9= 'by-percent' ( (lv_lightensby_10_0= RULE_INT ) ) ) | (otherlv_11= 'transforms' ( (otherlv_12= RULE_ID ) ) otherlv_13= 'by-percent' ( (lv_transformsby_14_0= RULE_INT ) ) otherlv_15= 'towards' ( (otherlv_16= RULE_ID ) ) ) ) )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1073:3: otherlv_0= 'color' ( (lv_name_1_0= RULE_ID ) ) ( ( (lv_color_2_0= RULE_STRING ) ) | (otherlv_3= 'darkens' ( (otherlv_4= RULE_ID ) ) otherlv_5= 'by-percent' ( (lv_darkensby_6_0= RULE_INT ) ) ) | (otherlv_7= 'lightens' ( (otherlv_8= RULE_ID ) ) otherlv_9= 'by-percent' ( (lv_lightensby_10_0= RULE_INT ) ) ) | (otherlv_11= 'transforms' ( (otherlv_12= RULE_ID ) ) otherlv_13= 'by-percent' ( (lv_transformsby_14_0= RULE_INT ) ) otherlv_15= 'towards' ( (otherlv_16= RULE_ID ) ) ) )
+            {
+            otherlv_0=(Token)match(input,32,FOLLOW_32_in_ruleColor2087); if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+                  	newLeafNode(otherlv_0, grammarAccess.getColorAccess().getColorKeyword_0());
+                  
+            }
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1077:1: ( (lv_name_1_0= RULE_ID ) )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1078:1: (lv_name_1_0= RULE_ID )
+            {
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1078:1: (lv_name_1_0= RULE_ID )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1079:3: lv_name_1_0= RULE_ID
+            {
+            lv_name_1_0=(Token)match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleColor2104); if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+              			newLeafNode(lv_name_1_0, grammarAccess.getColorAccess().getNameIDTerminalRuleCall_1_0()); 
+              		
+            }
+            if ( state.backtracking==0 ) {
+
+              	        if (current==null) {
+              	            current = createModelElement(grammarAccess.getColorRule());
+              	        }
+                     		setWithLastConsumed(
+                     			current, 
+                     			"name",
+                      		lv_name_1_0, 
+                      		"ID");
+              	    
+            }
+
+            }
+
+
+            }
+
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1095:2: ( ( (lv_color_2_0= RULE_STRING ) ) | (otherlv_3= 'darkens' ( (otherlv_4= RULE_ID ) ) otherlv_5= 'by-percent' ( (lv_darkensby_6_0= RULE_INT ) ) ) | (otherlv_7= 'lightens' ( (otherlv_8= RULE_ID ) ) otherlv_9= 'by-percent' ( (lv_lightensby_10_0= RULE_INT ) ) ) | (otherlv_11= 'transforms' ( (otherlv_12= RULE_ID ) ) otherlv_13= 'by-percent' ( (lv_transformsby_14_0= RULE_INT ) ) otherlv_15= 'towards' ( (otherlv_16= RULE_ID ) ) ) )
+            int alt15=4;
+            switch ( input.LA(1) ) {
+            case RULE_STRING:
+                {
+                alt15=1;
+                }
+                break;
+            case 33:
+                {
+                alt15=2;
+                }
+                break;
+            case 35:
+                {
+                alt15=3;
+                }
+                break;
+            case 36:
+                {
+                alt15=4;
+                }
+                break;
+            default:
+                if (state.backtracking>0) {state.failed=true; return current;}
+                NoViableAltException nvae =
+                    new NoViableAltException("", 15, 0, input);
+
+                throw nvae;
+            }
+
+            switch (alt15) {
+                case 1 :
+                    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1095:3: ( (lv_color_2_0= RULE_STRING ) )
+                    {
+                    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1095:3: ( (lv_color_2_0= RULE_STRING ) )
+                    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1096:1: (lv_color_2_0= RULE_STRING )
+                    {
+                    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1096:1: (lv_color_2_0= RULE_STRING )
+                    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1097:3: lv_color_2_0= RULE_STRING
+                    {
+                    lv_color_2_0=(Token)match(input,RULE_STRING,FOLLOW_RULE_STRING_in_ruleColor2127); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                      			newLeafNode(lv_color_2_0, grammarAccess.getColorAccess().getColorSTRINGTerminalRuleCall_2_0_0()); 
+                      		
+                    }
+                    if ( state.backtracking==0 ) {
+
+                      	        if (current==null) {
+                      	            current = createModelElement(grammarAccess.getColorRule());
+                      	        }
+                             		setWithLastConsumed(
+                             			current, 
+                             			"color",
+                              		lv_color_2_0, 
+                              		"STRING");
+                      	    
+                    }
+
+                    }
+
+
+                    }
+
+
+                    }
+                    break;
+                case 2 :
+                    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1114:6: (otherlv_3= 'darkens' ( (otherlv_4= RULE_ID ) ) otherlv_5= 'by-percent' ( (lv_darkensby_6_0= RULE_INT ) ) )
+                    {
+                    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1114:6: (otherlv_3= 'darkens' ( (otherlv_4= RULE_ID ) ) otherlv_5= 'by-percent' ( (lv_darkensby_6_0= RULE_INT ) ) )
+                    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1114:8: otherlv_3= 'darkens' ( (otherlv_4= RULE_ID ) ) otherlv_5= 'by-percent' ( (lv_darkensby_6_0= RULE_INT ) )
+                    {
+                    otherlv_3=(Token)match(input,33,FOLLOW_33_in_ruleColor2151); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                          	newLeafNode(otherlv_3, grammarAccess.getColorAccess().getDarkensKeyword_2_1_0());
+                          
+                    }
+                    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1118:1: ( (otherlv_4= RULE_ID ) )
+                    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1119:1: (otherlv_4= RULE_ID )
+                    {
+                    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1119:1: (otherlv_4= RULE_ID )
+                    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1120:3: otherlv_4= RULE_ID
+                    {
+                    if ( state.backtracking==0 ) {
+
+                      			if (current==null) {
+                      	            current = createModelElement(grammarAccess.getColorRule());
+                      	        }
+                              
+                    }
+                    otherlv_4=(Token)match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleColor2171); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                      		newLeafNode(otherlv_4, grammarAccess.getColorAccess().getBasecolorColorCrossReference_2_1_1_0()); 
+                      	
+                    }
+
+                    }
+
+
+                    }
+
+                    otherlv_5=(Token)match(input,34,FOLLOW_34_in_ruleColor2183); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                          	newLeafNode(otherlv_5, grammarAccess.getColorAccess().getByPercentKeyword_2_1_2());
+                          
+                    }
+                    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1135:1: ( (lv_darkensby_6_0= RULE_INT ) )
+                    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1136:1: (lv_darkensby_6_0= RULE_INT )
+                    {
+                    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1136:1: (lv_darkensby_6_0= RULE_INT )
+                    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1137:3: lv_darkensby_6_0= RULE_INT
+                    {
+                    lv_darkensby_6_0=(Token)match(input,RULE_INT,FOLLOW_RULE_INT_in_ruleColor2200); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                      			newLeafNode(lv_darkensby_6_0, grammarAccess.getColorAccess().getDarkensbyINTTerminalRuleCall_2_1_3_0()); 
+                      		
+                    }
+                    if ( state.backtracking==0 ) {
+
+                      	        if (current==null) {
+                      	            current = createModelElement(grammarAccess.getColorRule());
+                      	        }
+                             		setWithLastConsumed(
+                             			current, 
+                             			"darkensby",
+                              		lv_darkensby_6_0, 
+                              		"INT");
+                      	    
+                    }
+
+                    }
+
+
+                    }
+
+
+                    }
+
+
+                    }
+                    break;
+                case 3 :
+                    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1154:6: (otherlv_7= 'lightens' ( (otherlv_8= RULE_ID ) ) otherlv_9= 'by-percent' ( (lv_lightensby_10_0= RULE_INT ) ) )
+                    {
+                    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1154:6: (otherlv_7= 'lightens' ( (otherlv_8= RULE_ID ) ) otherlv_9= 'by-percent' ( (lv_lightensby_10_0= RULE_INT ) ) )
+                    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1154:8: otherlv_7= 'lightens' ( (otherlv_8= RULE_ID ) ) otherlv_9= 'by-percent' ( (lv_lightensby_10_0= RULE_INT ) )
+                    {
+                    otherlv_7=(Token)match(input,35,FOLLOW_35_in_ruleColor2225); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                          	newLeafNode(otherlv_7, grammarAccess.getColorAccess().getLightensKeyword_2_2_0());
+                          
+                    }
+                    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1158:1: ( (otherlv_8= RULE_ID ) )
+                    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1159:1: (otherlv_8= RULE_ID )
+                    {
+                    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1159:1: (otherlv_8= RULE_ID )
+                    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1160:3: otherlv_8= RULE_ID
+                    {
+                    if ( state.backtracking==0 ) {
+
+                      			if (current==null) {
+                      	            current = createModelElement(grammarAccess.getColorRule());
+                      	        }
+                              
+                    }
+                    otherlv_8=(Token)match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleColor2245); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                      		newLeafNode(otherlv_8, grammarAccess.getColorAccess().getBasecolorColorCrossReference_2_2_1_0()); 
+                      	
+                    }
+
+                    }
+
+
+                    }
+
+                    otherlv_9=(Token)match(input,34,FOLLOW_34_in_ruleColor2257); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                          	newLeafNode(otherlv_9, grammarAccess.getColorAccess().getByPercentKeyword_2_2_2());
+                          
+                    }
+                    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1175:1: ( (lv_lightensby_10_0= RULE_INT ) )
+                    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1176:1: (lv_lightensby_10_0= RULE_INT )
+                    {
+                    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1176:1: (lv_lightensby_10_0= RULE_INT )
+                    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1177:3: lv_lightensby_10_0= RULE_INT
+                    {
+                    lv_lightensby_10_0=(Token)match(input,RULE_INT,FOLLOW_RULE_INT_in_ruleColor2274); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                      			newLeafNode(lv_lightensby_10_0, grammarAccess.getColorAccess().getLightensbyINTTerminalRuleCall_2_2_3_0()); 
+                      		
+                    }
+                    if ( state.backtracking==0 ) {
+
+                      	        if (current==null) {
+                      	            current = createModelElement(grammarAccess.getColorRule());
+                      	        }
+                             		setWithLastConsumed(
+                             			current, 
+                             			"lightensby",
+                              		lv_lightensby_10_0, 
+                              		"INT");
+                      	    
+                    }
+
+                    }
+
+
+                    }
+
+
+                    }
+
+
+                    }
+                    break;
+                case 4 :
+                    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1194:6: (otherlv_11= 'transforms' ( (otherlv_12= RULE_ID ) ) otherlv_13= 'by-percent' ( (lv_transformsby_14_0= RULE_INT ) ) otherlv_15= 'towards' ( (otherlv_16= RULE_ID ) ) )
+                    {
+                    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1194:6: (otherlv_11= 'transforms' ( (otherlv_12= RULE_ID ) ) otherlv_13= 'by-percent' ( (lv_transformsby_14_0= RULE_INT ) ) otherlv_15= 'towards' ( (otherlv_16= RULE_ID ) ) )
+                    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1194:8: otherlv_11= 'transforms' ( (otherlv_12= RULE_ID ) ) otherlv_13= 'by-percent' ( (lv_transformsby_14_0= RULE_INT ) ) otherlv_15= 'towards' ( (otherlv_16= RULE_ID ) )
+                    {
+                    otherlv_11=(Token)match(input,36,FOLLOW_36_in_ruleColor2299); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                          	newLeafNode(otherlv_11, grammarAccess.getColorAccess().getTransformsKeyword_2_3_0());
+                          
+                    }
+                    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1198:1: ( (otherlv_12= RULE_ID ) )
+                    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1199:1: (otherlv_12= RULE_ID )
+                    {
+                    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1199:1: (otherlv_12= RULE_ID )
+                    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1200:3: otherlv_12= RULE_ID
+                    {
+                    if ( state.backtracking==0 ) {
+
+                      			if (current==null) {
+                      	            current = createModelElement(grammarAccess.getColorRule());
+                      	        }
+                              
+                    }
+                    otherlv_12=(Token)match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleColor2319); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                      		newLeafNode(otherlv_12, grammarAccess.getColorAccess().getBasecolorColorCrossReference_2_3_1_0()); 
+                      	
+                    }
+
+                    }
+
+
+                    }
+
+                    otherlv_13=(Token)match(input,34,FOLLOW_34_in_ruleColor2331); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                          	newLeafNode(otherlv_13, grammarAccess.getColorAccess().getByPercentKeyword_2_3_2());
+                          
+                    }
+                    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1215:1: ( (lv_transformsby_14_0= RULE_INT ) )
+                    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1216:1: (lv_transformsby_14_0= RULE_INT )
+                    {
+                    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1216:1: (lv_transformsby_14_0= RULE_INT )
+                    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1217:3: lv_transformsby_14_0= RULE_INT
+                    {
+                    lv_transformsby_14_0=(Token)match(input,RULE_INT,FOLLOW_RULE_INT_in_ruleColor2348); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                      			newLeafNode(lv_transformsby_14_0, grammarAccess.getColorAccess().getTransformsbyINTTerminalRuleCall_2_3_3_0()); 
+                      		
+                    }
+                    if ( state.backtracking==0 ) {
+
+                      	        if (current==null) {
+                      	            current = createModelElement(grammarAccess.getColorRule());
+                      	        }
+                             		setWithLastConsumed(
+                             			current, 
+                             			"transformsby",
+                              		lv_transformsby_14_0, 
+                              		"INT");
+                      	    
+                    }
+
+                    }
+
+
+                    }
+
+                    otherlv_15=(Token)match(input,37,FOLLOW_37_in_ruleColor2365); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                          	newLeafNode(otherlv_15, grammarAccess.getColorAccess().getTowardsKeyword_2_3_4());
+                          
+                    }
+                    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1237:1: ( (otherlv_16= RULE_ID ) )
+                    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1238:1: (otherlv_16= RULE_ID )
+                    {
+                    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1238:1: (otherlv_16= RULE_ID )
+                    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1239:3: otherlv_16= RULE_ID
+                    {
+                    if ( state.backtracking==0 ) {
+
+                      			if (current==null) {
+                      	            current = createModelElement(grammarAccess.getColorRule());
+                      	        }
+                              
+                    }
+                    otherlv_16=(Token)match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleColor2385); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                      		newLeafNode(otherlv_16, grammarAccess.getColorAccess().getTargetcolorColorCrossReference_2_3_5_0()); 
+                      	
+                    }
+
+                    }
+
+
+                    }
+
+
+                    }
+
+
+                    }
+                    break;
+
+            }
+
+
+            }
+
+
+            }
+
+            if ( state.backtracking==0 ) {
+               leaveRule(); 
+            }
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleColor"
+
+
+    // $ANTLR start "entryRuleFont"
+    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1258:1: entryRuleFont returns [EObject current=null] : iv_ruleFont= ruleFont EOF ;
+    public final EObject entryRuleFont() throws RecognitionException {
+        EObject current = null;
+
+        EObject iv_ruleFont = null;
+
+
+        try {
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1259:2: (iv_ruleFont= ruleFont EOF )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1260:2: iv_ruleFont= ruleFont EOF
+            {
+            if ( state.backtracking==0 ) {
+               newCompositeNode(grammarAccess.getFontRule()); 
+            }
+            pushFollow(FOLLOW_ruleFont_in_entryRuleFont2423);
+            iv_ruleFont=ruleFont();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+               current =iv_ruleFont; 
+            }
+            match(input,EOF,FOLLOW_EOF_in_entryRuleFont2433); if (state.failed) return current;
+
+            }
+
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleFont"
+
+
+    // $ANTLR start "ruleFont"
+    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1267:1: ruleFont returns [EObject current=null] : ( ( ( ( ({...}? => ( ({...}? => (otherlv_1= 'font' ( (lv_name_2_0= RULE_ID ) ) otherlv_3= '{' (otherlv_4= 'extends' ( (otherlv_5= RULE_ID ) ) )? (otherlv_6= 'family' ( (lv_family_7_0= ruleFontFamily ) ) )? ) ) ) ) | ({...}? => ( ({...}? => ( (lv_style_8_0= ruleFontStyleEnum ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_bold_9_0= 'bold' ) ) ) ) ) | ({...}? => ( ({...}? => ( (otherlv_10= 'size' ( (lv_sizevalue_11_0= ruleUnsignedNumber ) ) ( (lv_sizeunit_12_0= ruleUnitEnum ) ) )? otherlv_13= '}' ) ) ) ) )+ {...}?) ) ) ;
+    public final EObject ruleFont() throws RecognitionException {
+        EObject current = null;
+
+        Token otherlv_1=null;
+        Token lv_name_2_0=null;
+        Token otherlv_3=null;
+        Token otherlv_4=null;
+        Token otherlv_5=null;
+        Token otherlv_6=null;
+        Token lv_bold_9_0=null;
+        Token otherlv_10=null;
+        Token otherlv_13=null;
+        EObject lv_family_7_0 = null;
+
+        Enumerator lv_style_8_0 = null;
+
+        AntlrDatatypeRuleToken lv_sizevalue_11_0 = null;
+
+        Enumerator lv_sizeunit_12_0 = null;
+
+
+         enterRule(); 
+            
+        try {
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1270:28: ( ( ( ( ( ({...}? => ( ({...}? => (otherlv_1= 'font' ( (lv_name_2_0= RULE_ID ) ) otherlv_3= '{' (otherlv_4= 'extends' ( (otherlv_5= RULE_ID ) ) )? (otherlv_6= 'family' ( (lv_family_7_0= ruleFontFamily ) ) )? ) ) ) ) | ({...}? => ( ({...}? => ( (lv_style_8_0= ruleFontStyleEnum ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_bold_9_0= 'bold' ) ) ) ) ) | ({...}? => ( ({...}? => ( (otherlv_10= 'size' ( (lv_sizevalue_11_0= ruleUnsignedNumber ) ) ( (lv_sizeunit_12_0= ruleUnitEnum ) ) )? otherlv_13= '}' ) ) ) ) )+ {...}?) ) ) )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1271:1: ( ( ( ( ({...}? => ( ({...}? => (otherlv_1= 'font' ( (lv_name_2_0= RULE_ID ) ) otherlv_3= '{' (otherlv_4= 'extends' ( (otherlv_5= RULE_ID ) ) )? (otherlv_6= 'family' ( (lv_family_7_0= ruleFontFamily ) ) )? ) ) ) ) | ({...}? => ( ({...}? => ( (lv_style_8_0= ruleFontStyleEnum ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_bold_9_0= 'bold' ) ) ) ) ) | ({...}? => ( ({...}? => ( (otherlv_10= 'size' ( (lv_sizevalue_11_0= ruleUnsignedNumber ) ) ( (lv_sizeunit_12_0= ruleUnitEnum ) ) )? otherlv_13= '}' ) ) ) ) )+ {...}?) ) )
+            {
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1271:1: ( ( ( ( ({...}? => ( ({...}? => (otherlv_1= 'font' ( (lv_name_2_0= RULE_ID ) ) otherlv_3= '{' (otherlv_4= 'extends' ( (otherlv_5= RULE_ID ) ) )? (otherlv_6= 'family' ( (lv_family_7_0= ruleFontFamily ) ) )? ) ) ) ) | ({...}? => ( ({...}? => ( (lv_style_8_0= ruleFontStyleEnum ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_bold_9_0= 'bold' ) ) ) ) ) | ({...}? => ( ({...}? => ( (otherlv_10= 'size' ( (lv_sizevalue_11_0= ruleUnsignedNumber ) ) ( (lv_sizeunit_12_0= ruleUnitEnum ) ) )? otherlv_13= '}' ) ) ) ) )+ {...}?) ) )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1273:1: ( ( ( ({...}? => ( ({...}? => (otherlv_1= 'font' ( (lv_name_2_0= RULE_ID ) ) otherlv_3= '{' (otherlv_4= 'extends' ( (otherlv_5= RULE_ID ) ) )? (otherlv_6= 'family' ( (lv_family_7_0= ruleFontFamily ) ) )? ) ) ) ) | ({...}? => ( ({...}? => ( (lv_style_8_0= ruleFontStyleEnum ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_bold_9_0= 'bold' ) ) ) ) ) | ({...}? => ( ({...}? => ( (otherlv_10= 'size' ( (lv_sizevalue_11_0= ruleUnsignedNumber ) ) ( (lv_sizeunit_12_0= ruleUnitEnum ) ) )? otherlv_13= '}' ) ) ) ) )+ {...}?) )
+            {
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1273:1: ( ( ( ({...}? => ( ({...}? => (otherlv_1= 'font' ( (lv_name_2_0= RULE_ID ) ) otherlv_3= '{' (otherlv_4= 'extends' ( (otherlv_5= RULE_ID ) ) )? (otherlv_6= 'family' ( (lv_family_7_0= ruleFontFamily ) ) )? ) ) ) ) | ({...}? => ( ({...}? => ( (lv_style_8_0= ruleFontStyleEnum ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_bold_9_0= 'bold' ) ) ) ) ) | ({...}? => ( ({...}? => ( (otherlv_10= 'size' ( (lv_sizevalue_11_0= ruleUnsignedNumber ) ) ( (lv_sizeunit_12_0= ruleUnitEnum ) ) )? otherlv_13= '}' ) ) ) ) )+ {...}?) )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1274:2: ( ( ({...}? => ( ({...}? => (otherlv_1= 'font' ( (lv_name_2_0= RULE_ID ) ) otherlv_3= '{' (otherlv_4= 'extends' ( (otherlv_5= RULE_ID ) ) )? (otherlv_6= 'family' ( (lv_family_7_0= ruleFontFamily ) ) )? ) ) ) ) | ({...}? => ( ({...}? => ( (lv_style_8_0= ruleFontStyleEnum ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_bold_9_0= 'bold' ) ) ) ) ) | ({...}? => ( ({...}? => ( (otherlv_10= 'size' ( (lv_sizevalue_11_0= ruleUnsignedNumber ) ) ( (lv_sizeunit_12_0= ruleUnitEnum ) ) )? otherlv_13= '}' ) ) ) ) )+ {...}?)
+            {
+            getUnorderedGroupHelper().enter(grammarAccess.getFontAccess().getUnorderedGroup());
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1277:2: ( ( ({...}? => ( ({...}? => (otherlv_1= 'font' ( (lv_name_2_0= RULE_ID ) ) otherlv_3= '{' (otherlv_4= 'extends' ( (otherlv_5= RULE_ID ) ) )? (otherlv_6= 'family' ( (lv_family_7_0= ruleFontFamily ) ) )? ) ) ) ) | ({...}? => ( ({...}? => ( (lv_style_8_0= ruleFontStyleEnum ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_bold_9_0= 'bold' ) ) ) ) ) | ({...}? => ( ({...}? => ( (otherlv_10= 'size' ( (lv_sizevalue_11_0= ruleUnsignedNumber ) ) ( (lv_sizeunit_12_0= ruleUnitEnum ) ) )? otherlv_13= '}' ) ) ) ) )+ {...}?)
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1278:3: ( ({...}? => ( ({...}? => (otherlv_1= 'font' ( (lv_name_2_0= RULE_ID ) ) otherlv_3= '{' (otherlv_4= 'extends' ( (otherlv_5= RULE_ID ) ) )? (otherlv_6= 'family' ( (lv_family_7_0= ruleFontFamily ) ) )? ) ) ) ) | ({...}? => ( ({...}? => ( (lv_style_8_0= ruleFontStyleEnum ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_bold_9_0= 'bold' ) ) ) ) ) | ({...}? => ( ({...}? => ( (otherlv_10= 'size' ( (lv_sizevalue_11_0= ruleUnsignedNumber ) ) ( (lv_sizeunit_12_0= ruleUnitEnum ) ) )? otherlv_13= '}' ) ) ) ) )+ {...}?
+            {
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1278:3: ( ({...}? => ( ({...}? => (otherlv_1= 'font' ( (lv_name_2_0= RULE_ID ) ) otherlv_3= '{' (otherlv_4= 'extends' ( (otherlv_5= RULE_ID ) ) )? (otherlv_6= 'family' ( (lv_family_7_0= ruleFontFamily ) ) )? ) ) ) ) | ({...}? => ( ({...}? => ( (lv_style_8_0= ruleFontStyleEnum ) ) ) ) ) | ({...}? => ( ({...}? => ( (lv_bold_9_0= 'bold' ) ) ) ) ) | ({...}? => ( ({...}? => ( (otherlv_10= 'size' ( (lv_sizevalue_11_0= ruleUnsignedNumber ) ) ( (lv_sizeunit_12_0= ruleUnitEnum ) ) )? otherlv_13= '}' ) ) ) ) )+
+            int cnt19=0;
+            loop19:
+            do {
+                int alt19=5;
+                switch ( input.LA(1) ) {
+                case 18:
+                    {
+                    int LA19_1 = input.LA(2);
+
+                    if ( getUnorderedGroupHelper().canSelect(grammarAccess.getFontAccess().getUnorderedGroup(), 3) ) {
+                        alt19=4;
+                    }
+
+
+                    }
+                    break;
+                case 38:
+                    {
+                    int LA19_2 = input.LA(2);
+
+                    if ( getUnorderedGroupHelper().canSelect(grammarAccess.getFontAccess().getUnorderedGroup(), 0) ) {
+                        alt19=1;
+                    }
+
+
+                    }
+                    break;
+                case 205:
+                    {
+                    int LA19_3 = input.LA(2);
+
+                    if ( getUnorderedGroupHelper().canSelect(grammarAccess.getFontAccess().getUnorderedGroup(), 1) ) {
+                        alt19=2;
+                    }
+
+
+                    }
+                    break;
+                case 206:
+                    {
+                    int LA19_4 = input.LA(2);
+
+                    if ( getUnorderedGroupHelper().canSelect(grammarAccess.getFontAccess().getUnorderedGroup(), 1) ) {
+                        alt19=2;
+                    }
+
+
+                    }
+                    break;
+                case 207:
+                    {
+                    int LA19_5 = input.LA(2);
+
+                    if ( getUnorderedGroupHelper().canSelect(grammarAccess.getFontAccess().getUnorderedGroup(), 1) ) {
+                        alt19=2;
+                    }
+
+
+                    }
+                    break;
+                case 41:
+                    {
+                    int LA19_6 = input.LA(2);
+
+                    if ( getUnorderedGroupHelper().canSelect(grammarAccess.getFontAccess().getUnorderedGroup(), 2) ) {
+                        alt19=3;
+                    }
+
+
+                    }
+                    break;
+                case 42:
+                    {
+                    int LA19_7 = input.LA(2);
+
+                    if ( getUnorderedGroupHelper().canSelect(grammarAccess.getFontAccess().getUnorderedGroup(), 3) ) {
+                        alt19=4;
+                    }
+
+
+                    }
+                    break;
+
+                }
+
+                switch (alt19) {
+            	case 1 :
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1280:4: ({...}? => ( ({...}? => (otherlv_1= 'font' ( (lv_name_2_0= RULE_ID ) ) otherlv_3= '{' (otherlv_4= 'extends' ( (otherlv_5= RULE_ID ) ) )? (otherlv_6= 'family' ( (lv_family_7_0= ruleFontFamily ) ) )? ) ) ) )
+            	    {
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1280:4: ({...}? => ( ({...}? => (otherlv_1= 'font' ( (lv_name_2_0= RULE_ID ) ) otherlv_3= '{' (otherlv_4= 'extends' ( (otherlv_5= RULE_ID ) ) )? (otherlv_6= 'family' ( (lv_family_7_0= ruleFontFamily ) ) )? ) ) ) )
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1281:5: {...}? => ( ({...}? => (otherlv_1= 'font' ( (lv_name_2_0= RULE_ID ) ) otherlv_3= '{' (otherlv_4= 'extends' ( (otherlv_5= RULE_ID ) ) )? (otherlv_6= 'family' ( (lv_family_7_0= ruleFontFamily ) ) )? ) ) )
+            	    {
+            	    if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getFontAccess().getUnorderedGroup(), 0) ) {
+            	        if (state.backtracking>0) {state.failed=true; return current;}
+            	        throw new FailedPredicateException(input, "ruleFont", "getUnorderedGroupHelper().canSelect(grammarAccess.getFontAccess().getUnorderedGroup(), 0)");
+            	    }
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1281:99: ( ({...}? => (otherlv_1= 'font' ( (lv_name_2_0= RULE_ID ) ) otherlv_3= '{' (otherlv_4= 'extends' ( (otherlv_5= RULE_ID ) ) )? (otherlv_6= 'family' ( (lv_family_7_0= ruleFontFamily ) ) )? ) ) )
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1282:6: ({...}? => (otherlv_1= 'font' ( (lv_name_2_0= RULE_ID ) ) otherlv_3= '{' (otherlv_4= 'extends' ( (otherlv_5= RULE_ID ) ) )? (otherlv_6= 'family' ( (lv_family_7_0= ruleFontFamily ) ) )? ) )
+            	    {
+            	    getUnorderedGroupHelper().select(grammarAccess.getFontAccess().getUnorderedGroup(), 0);
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1285:6: ({...}? => (otherlv_1= 'font' ( (lv_name_2_0= RULE_ID ) ) otherlv_3= '{' (otherlv_4= 'extends' ( (otherlv_5= RULE_ID ) ) )? (otherlv_6= 'family' ( (lv_family_7_0= ruleFontFamily ) ) )? ) )
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1285:7: {...}? => (otherlv_1= 'font' ( (lv_name_2_0= RULE_ID ) ) otherlv_3= '{' (otherlv_4= 'extends' ( (otherlv_5= RULE_ID ) ) )? (otherlv_6= 'family' ( (lv_family_7_0= ruleFontFamily ) ) )? )
+            	    {
+            	    if ( !((true)) ) {
+            	        if (state.backtracking>0) {state.failed=true; return current;}
+            	        throw new FailedPredicateException(input, "ruleFont", "true");
+            	    }
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1285:16: (otherlv_1= 'font' ( (lv_name_2_0= RULE_ID ) ) otherlv_3= '{' (otherlv_4= 'extends' ( (otherlv_5= RULE_ID ) ) )? (otherlv_6= 'family' ( (lv_family_7_0= ruleFontFamily ) ) )? )
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1285:18: otherlv_1= 'font' ( (lv_name_2_0= RULE_ID ) ) otherlv_3= '{' (otherlv_4= 'extends' ( (otherlv_5= RULE_ID ) ) )? (otherlv_6= 'family' ( (lv_family_7_0= ruleFontFamily ) ) )?
+            	    {
+            	    otherlv_1=(Token)match(input,38,FOLLOW_38_in_ruleFont2515); if (state.failed) return current;
+            	    if ( state.backtracking==0 ) {
+
+            	          	newLeafNode(otherlv_1, grammarAccess.getFontAccess().getFontKeyword_0_0());
+            	          
+            	    }
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1289:1: ( (lv_name_2_0= RULE_ID ) )
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1290:1: (lv_name_2_0= RULE_ID )
+            	    {
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1290:1: (lv_name_2_0= RULE_ID )
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1291:3: lv_name_2_0= RULE_ID
+            	    {
+            	    lv_name_2_0=(Token)match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleFont2532); if (state.failed) return current;
+            	    if ( state.backtracking==0 ) {
+
+            	      			newLeafNode(lv_name_2_0, grammarAccess.getFontAccess().getNameIDTerminalRuleCall_0_1_0()); 
+            	      		
+            	    }
+            	    if ( state.backtracking==0 ) {
+
+            	      	        if (current==null) {
+            	      	            current = createModelElement(grammarAccess.getFontRule());
+            	      	        }
+            	             		setWithLastConsumed(
+            	             			current, 
+            	             			"name",
+            	              		lv_name_2_0, 
+            	              		"ID");
+            	      	    
+            	    }
+
+            	    }
+
+
+            	    }
+
+            	    otherlv_3=(Token)match(input,14,FOLLOW_14_in_ruleFont2549); if (state.failed) return current;
+            	    if ( state.backtracking==0 ) {
+
+            	          	newLeafNode(otherlv_3, grammarAccess.getFontAccess().getLeftCurlyBracketKeyword_0_2());
+            	          
+            	    }
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1311:1: (otherlv_4= 'extends' ( (otherlv_5= RULE_ID ) ) )?
+            	    int alt16=2;
+            	    switch ( input.LA(1) ) {
+            	        case 39:
+            	            {
+            	            alt16=1;
+            	            }
+            	            break;
+            	    }
+
+            	    switch (alt16) {
+            	        case 1 :
+            	            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1311:3: otherlv_4= 'extends' ( (otherlv_5= RULE_ID ) )
+            	            {
+            	            otherlv_4=(Token)match(input,39,FOLLOW_39_in_ruleFont2562); if (state.failed) return current;
+            	            if ( state.backtracking==0 ) {
+
+            	                  	newLeafNode(otherlv_4, grammarAccess.getFontAccess().getExtendsKeyword_0_3_0());
+            	                  
+            	            }
+            	            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1315:1: ( (otherlv_5= RULE_ID ) )
+            	            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1316:1: (otherlv_5= RULE_ID )
+            	            {
+            	            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1316:1: (otherlv_5= RULE_ID )
+            	            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1317:3: otherlv_5= RULE_ID
+            	            {
+            	            if ( state.backtracking==0 ) {
+
+            	              			if (current==null) {
+            	              	            current = createModelElement(grammarAccess.getFontRule());
+            	              	        }
+            	                      
+            	            }
+            	            otherlv_5=(Token)match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleFont2582); if (state.failed) return current;
+            	            if ( state.backtracking==0 ) {
+
+            	              		newLeafNode(otherlv_5, grammarAccess.getFontAccess().getExtendsFontCrossReference_0_3_1_0()); 
+            	              	
+            	            }
+
+            	            }
+
+
+            	            }
+
+
+            	            }
+            	            break;
+
+            	    }
+
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1328:4: (otherlv_6= 'family' ( (lv_family_7_0= ruleFontFamily ) ) )?
+            	    int alt17=2;
+            	    switch ( input.LA(1) ) {
+            	        case 40:
+            	            {
+            	            alt17=1;
+            	            }
+            	            break;
+            	    }
+
+            	    switch (alt17) {
+            	        case 1 :
+            	            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1328:6: otherlv_6= 'family' ( (lv_family_7_0= ruleFontFamily ) )
+            	            {
+            	            otherlv_6=(Token)match(input,40,FOLLOW_40_in_ruleFont2597); if (state.failed) return current;
+            	            if ( state.backtracking==0 ) {
+
+            	                  	newLeafNode(otherlv_6, grammarAccess.getFontAccess().getFamilyKeyword_0_4_0());
+            	                  
+            	            }
+            	            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1332:1: ( (lv_family_7_0= ruleFontFamily ) )
+            	            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1333:1: (lv_family_7_0= ruleFontFamily )
+            	            {
+            	            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1333:1: (lv_family_7_0= ruleFontFamily )
+            	            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1334:3: lv_family_7_0= ruleFontFamily
+            	            {
+            	            if ( state.backtracking==0 ) {
+            	               
+            	              	        newCompositeNode(grammarAccess.getFontAccess().getFamilyFontFamilyParserRuleCall_0_4_1_0()); 
+            	              	    
+            	            }
+            	            pushFollow(FOLLOW_ruleFontFamily_in_ruleFont2618);
+            	            lv_family_7_0=ruleFontFamily();
+
+            	            state._fsp--;
+            	            if (state.failed) return current;
+            	            if ( state.backtracking==0 ) {
+
+            	              	        if (current==null) {
+            	              	            current = createModelElementForParent(grammarAccess.getFontRule());
+            	              	        }
+            	                     		set(
+            	                     			current, 
+            	                     			"family",
+            	                      		lv_family_7_0, 
+            	                      		"FontFamily");
+            	              	        afterParserOrEnumRuleCall();
+            	              	    
+            	            }
+
+            	            }
+
+
+            	            }
+
+
+            	            }
+            	            break;
+
+            	    }
+
+
+            	    }
+
+
+            	    }
+
+            	    getUnorderedGroupHelper().returnFromSelection(grammarAccess.getFontAccess().getUnorderedGroup());
+
+            	    }
+
+
+            	    }
+
+
+            	    }
+            	    break;
+            	case 2 :
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1357:4: ({...}? => ( ({...}? => ( (lv_style_8_0= ruleFontStyleEnum ) ) ) ) )
+            	    {
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1357:4: ({...}? => ( ({...}? => ( (lv_style_8_0= ruleFontStyleEnum ) ) ) ) )
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1358:5: {...}? => ( ({...}? => ( (lv_style_8_0= ruleFontStyleEnum ) ) ) )
+            	    {
+            	    if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getFontAccess().getUnorderedGroup(), 1) ) {
+            	        if (state.backtracking>0) {state.failed=true; return current;}
+            	        throw new FailedPredicateException(input, "ruleFont", "getUnorderedGroupHelper().canSelect(grammarAccess.getFontAccess().getUnorderedGroup(), 1)");
+            	    }
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1358:99: ( ({...}? => ( (lv_style_8_0= ruleFontStyleEnum ) ) ) )
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1359:6: ({...}? => ( (lv_style_8_0= ruleFontStyleEnum ) ) )
+            	    {
+            	    getUnorderedGroupHelper().select(grammarAccess.getFontAccess().getUnorderedGroup(), 1);
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1362:6: ({...}? => ( (lv_style_8_0= ruleFontStyleEnum ) ) )
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1362:7: {...}? => ( (lv_style_8_0= ruleFontStyleEnum ) )
+            	    {
+            	    if ( !((true)) ) {
+            	        if (state.backtracking>0) {state.failed=true; return current;}
+            	        throw new FailedPredicateException(input, "ruleFont", "true");
+            	    }
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1362:16: ( (lv_style_8_0= ruleFontStyleEnum ) )
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1363:1: (lv_style_8_0= ruleFontStyleEnum )
+            	    {
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1363:1: (lv_style_8_0= ruleFontStyleEnum )
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1364:3: lv_style_8_0= ruleFontStyleEnum
+            	    {
+            	    if ( state.backtracking==0 ) {
+            	       
+            	      	        newCompositeNode(grammarAccess.getFontAccess().getStyleFontStyleEnumEnumRuleCall_1_0()); 
+            	      	    
+            	    }
+            	    pushFollow(FOLLOW_ruleFontStyleEnum_in_ruleFont2696);
+            	    lv_style_8_0=ruleFontStyleEnum();
+
+            	    state._fsp--;
+            	    if (state.failed) return current;
+            	    if ( state.backtracking==0 ) {
+
+            	      	        if (current==null) {
+            	      	            current = createModelElementForParent(grammarAccess.getFontRule());
+            	      	        }
+            	             		set(
+            	             			current, 
+            	             			"style",
+            	              		lv_style_8_0, 
+            	              		"FontStyleEnum");
+            	      	        afterParserOrEnumRuleCall();
+            	      	    
+            	    }
+
+            	    }
+
+
+            	    }
+
+
+            	    }
+
+            	    getUnorderedGroupHelper().returnFromSelection(grammarAccess.getFontAccess().getUnorderedGroup());
+
+            	    }
+
+
+            	    }
+
+
+            	    }
+            	    break;
+            	case 3 :
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1387:4: ({...}? => ( ({...}? => ( (lv_bold_9_0= 'bold' ) ) ) ) )
+            	    {
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1387:4: ({...}? => ( ({...}? => ( (lv_bold_9_0= 'bold' ) ) ) ) )
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1388:5: {...}? => ( ({...}? => ( (lv_bold_9_0= 'bold' ) ) ) )
+            	    {
+            	    if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getFontAccess().getUnorderedGroup(), 2) ) {
+            	        if (state.backtracking>0) {state.failed=true; return current;}
+            	        throw new FailedPredicateException(input, "ruleFont", "getUnorderedGroupHelper().canSelect(grammarAccess.getFontAccess().getUnorderedGroup(), 2)");
+            	    }
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1388:99: ( ({...}? => ( (lv_bold_9_0= 'bold' ) ) ) )
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1389:6: ({...}? => ( (lv_bold_9_0= 'bold' ) ) )
+            	    {
+            	    getUnorderedGroupHelper().select(grammarAccess.getFontAccess().getUnorderedGroup(), 2);
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1392:6: ({...}? => ( (lv_bold_9_0= 'bold' ) ) )
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1392:7: {...}? => ( (lv_bold_9_0= 'bold' ) )
+            	    {
+            	    if ( !((true)) ) {
+            	        if (state.backtracking>0) {state.failed=true; return current;}
+            	        throw new FailedPredicateException(input, "ruleFont", "true");
+            	    }
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1392:16: ( (lv_bold_9_0= 'bold' ) )
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1393:1: (lv_bold_9_0= 'bold' )
+            	    {
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1393:1: (lv_bold_9_0= 'bold' )
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1394:3: lv_bold_9_0= 'bold'
+            	    {
+            	    lv_bold_9_0=(Token)match(input,41,FOLLOW_41_in_ruleFont2768); if (state.failed) return current;
+            	    if ( state.backtracking==0 ) {
+
+            	              newLeafNode(lv_bold_9_0, grammarAccess.getFontAccess().getBoldBoldKeyword_2_0());
+            	          
+            	    }
+            	    if ( state.backtracking==0 ) {
+
+            	      	        if (current==null) {
+            	      	            current = createModelElement(grammarAccess.getFontRule());
+            	      	        }
+            	             		setWithLastConsumed(current, "bold", true, "bold");
+            	      	    
+            	    }
+
+            	    }
+
+
+            	    }
+
+
+            	    }
+
+            	    getUnorderedGroupHelper().returnFromSelection(grammarAccess.getFontAccess().getUnorderedGroup());
+
+            	    }
+
+
+            	    }
+
+
+            	    }
+            	    break;
+            	case 4 :
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1414:4: ({...}? => ( ({...}? => ( (otherlv_10= 'size' ( (lv_sizevalue_11_0= ruleUnsignedNumber ) ) ( (lv_sizeunit_12_0= ruleUnitEnum ) ) )? otherlv_13= '}' ) ) ) )
+            	    {
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1414:4: ({...}? => ( ({...}? => ( (otherlv_10= 'size' ( (lv_sizevalue_11_0= ruleUnsignedNumber ) ) ( (lv_sizeunit_12_0= ruleUnitEnum ) ) )? otherlv_13= '}' ) ) ) )
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1415:5: {...}? => ( ({...}? => ( (otherlv_10= 'size' ( (lv_sizevalue_11_0= ruleUnsignedNumber ) ) ( (lv_sizeunit_12_0= ruleUnitEnum ) ) )? otherlv_13= '}' ) ) )
+            	    {
+            	    if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getFontAccess().getUnorderedGroup(), 3) ) {
+            	        if (state.backtracking>0) {state.failed=true; return current;}
+            	        throw new FailedPredicateException(input, "ruleFont", "getUnorderedGroupHelper().canSelect(grammarAccess.getFontAccess().getUnorderedGroup(), 3)");
+            	    }
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1415:99: ( ({...}? => ( (otherlv_10= 'size' ( (lv_sizevalue_11_0= ruleUnsignedNumber ) ) ( (lv_sizeunit_12_0= ruleUnitEnum ) ) )? otherlv_13= '}' ) ) )
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1416:6: ({...}? => ( (otherlv_10= 'size' ( (lv_sizevalue_11_0= ruleUnsignedNumber ) ) ( (lv_sizeunit_12_0= ruleUnitEnum ) ) )? otherlv_13= '}' ) )
+            	    {
+            	    getUnorderedGroupHelper().select(grammarAccess.getFontAccess().getUnorderedGroup(), 3);
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1419:6: ({...}? => ( (otherlv_10= 'size' ( (lv_sizevalue_11_0= ruleUnsignedNumber ) ) ( (lv_sizeunit_12_0= ruleUnitEnum ) ) )? otherlv_13= '}' ) )
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1419:7: {...}? => ( (otherlv_10= 'size' ( (lv_sizevalue_11_0= ruleUnsignedNumber ) ) ( (lv_sizeunit_12_0= ruleUnitEnum ) ) )? otherlv_13= '}' )
+            	    {
+            	    if ( !((true)) ) {
+            	        if (state.backtracking>0) {state.failed=true; return current;}
+            	        throw new FailedPredicateException(input, "ruleFont", "true");
+            	    }
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1419:16: ( (otherlv_10= 'size' ( (lv_sizevalue_11_0= ruleUnsignedNumber ) ) ( (lv_sizeunit_12_0= ruleUnitEnum ) ) )? otherlv_13= '}' )
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1419:17: (otherlv_10= 'size' ( (lv_sizevalue_11_0= ruleUnsignedNumber ) ) ( (lv_sizeunit_12_0= ruleUnitEnum ) ) )? otherlv_13= '}'
+            	    {
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1419:17: (otherlv_10= 'size' ( (lv_sizevalue_11_0= ruleUnsignedNumber ) ) ( (lv_sizeunit_12_0= ruleUnitEnum ) ) )?
+            	    int alt18=2;
+            	    switch ( input.LA(1) ) {
+            	        case 42:
+            	            {
+            	            alt18=1;
+            	            }
+            	            break;
+            	    }
+
+            	    switch (alt18) {
+            	        case 1 :
+            	            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1419:19: otherlv_10= 'size' ( (lv_sizevalue_11_0= ruleUnsignedNumber ) ) ( (lv_sizeunit_12_0= ruleUnitEnum ) )
+            	            {
+            	            otherlv_10=(Token)match(input,42,FOLLOW_42_in_ruleFont2849); if (state.failed) return current;
+            	            if ( state.backtracking==0 ) {
+
+            	                  	newLeafNode(otherlv_10, grammarAccess.getFontAccess().getSizeKeyword_3_0_0());
+            	                  
+            	            }
+            	            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1423:1: ( (lv_sizevalue_11_0= ruleUnsignedNumber ) )
+            	            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1424:1: (lv_sizevalue_11_0= ruleUnsignedNumber )
+            	            {
+            	            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1424:1: (lv_sizevalue_11_0= ruleUnsignedNumber )
+            	            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1425:3: lv_sizevalue_11_0= ruleUnsignedNumber
+            	            {
+            	            if ( state.backtracking==0 ) {
+            	               
+            	              	        newCompositeNode(grammarAccess.getFontAccess().getSizevalueUnsignedNumberParserRuleCall_3_0_1_0()); 
+            	              	    
+            	            }
+            	            pushFollow(FOLLOW_ruleUnsignedNumber_in_ruleFont2870);
+            	            lv_sizevalue_11_0=ruleUnsignedNumber();
+
+            	            state._fsp--;
+            	            if (state.failed) return current;
+            	            if ( state.backtracking==0 ) {
+
+            	              	        if (current==null) {
+            	              	            current = createModelElementForParent(grammarAccess.getFontRule());
+            	              	        }
+            	                     		set(
+            	                     			current, 
+            	                     			"sizevalue",
+            	                      		lv_sizevalue_11_0, 
+            	                      		"UnsignedNumber");
+            	              	        afterParserOrEnumRuleCall();
+            	              	    
+            	            }
+
+            	            }
+
+
+            	            }
+
+            	            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1441:2: ( (lv_sizeunit_12_0= ruleUnitEnum ) )
+            	            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1442:1: (lv_sizeunit_12_0= ruleUnitEnum )
+            	            {
+            	            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1442:1: (lv_sizeunit_12_0= ruleUnitEnum )
+            	            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1443:3: lv_sizeunit_12_0= ruleUnitEnum
+            	            {
+            	            if ( state.backtracking==0 ) {
+            	               
+            	              	        newCompositeNode(grammarAccess.getFontAccess().getSizeunitUnitEnumEnumRuleCall_3_0_2_0()); 
+            	              	    
+            	            }
+            	            pushFollow(FOLLOW_ruleUnitEnum_in_ruleFont2891);
+            	            lv_sizeunit_12_0=ruleUnitEnum();
+
+            	            state._fsp--;
+            	            if (state.failed) return current;
+            	            if ( state.backtracking==0 ) {
+
+            	              	        if (current==null) {
+            	              	            current = createModelElementForParent(grammarAccess.getFontRule());
+            	              	        }
+            	                     		set(
+            	                     			current, 
+            	                     			"sizeunit",
+            	                      		lv_sizeunit_12_0, 
+            	                      		"UnitEnum");
+            	              	        afterParserOrEnumRuleCall();
+            	              	    
+            	            }
+
+            	            }
+
+
+            	            }
+
+
+            	            }
+            	            break;
+
+            	    }
+
+            	    otherlv_13=(Token)match(input,18,FOLLOW_18_in_ruleFont2905); if (state.failed) return current;
+            	    if ( state.backtracking==0 ) {
+
+            	          	newLeafNode(otherlv_13, grammarAccess.getFontAccess().getRightCurlyBracketKeyword_3_1());
+            	          
+            	    }
+
+            	    }
+
+
+            	    }
+
+            	    getUnorderedGroupHelper().returnFromSelection(grammarAccess.getFontAccess().getUnorderedGroup());
+
+            	    }
+
+
+            	    }
+
+
+            	    }
+            	    break;
+
+            	default :
+            	    if ( cnt19 >= 1 ) break loop19;
+            	    if (state.backtracking>0) {state.failed=true; return current;}
+                        EarlyExitException eee =
+                            new EarlyExitException(19, input);
+                        throw eee;
+                }
+                cnt19++;
+            } while (true);
+
+            if ( ! getUnorderedGroupHelper().canLeave(grammarAccess.getFontAccess().getUnorderedGroup()) ) {
+                if (state.backtracking>0) {state.failed=true; return current;}
+                throw new FailedPredicateException(input, "ruleFont", "getUnorderedGroupHelper().canLeave(grammarAccess.getFontAccess().getUnorderedGroup())");
+            }
+
+            }
+
+
+            }
+
+            getUnorderedGroupHelper().leave(grammarAccess.getFontAccess().getUnorderedGroup());
+
+            }
+
+
+            }
+
+            if ( state.backtracking==0 ) {
+               leaveRule(); 
+            }
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleFont"
+
+
+    // $ANTLR start "entryRuleFontFamily"
+    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1486:1: entryRuleFontFamily returns [EObject current=null] : iv_ruleFontFamily= ruleFontFamily EOF ;
+    public final EObject entryRuleFontFamily() throws RecognitionException {
+        EObject current = null;
+
+        EObject iv_ruleFontFamily = null;
+
+
+        try {
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1487:2: (iv_ruleFontFamily= ruleFontFamily EOF )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1488:2: iv_ruleFontFamily= ruleFontFamily EOF
+            {
+            if ( state.backtracking==0 ) {
+               newCompositeNode(grammarAccess.getFontFamilyRule()); 
+            }
+            pushFollow(FOLLOW_ruleFontFamily_in_entryRuleFontFamily2987);
+            iv_ruleFontFamily=ruleFontFamily();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+               current =iv_ruleFontFamily; 
+            }
+            match(input,EOF,FOLLOW_EOF_in_entryRuleFontFamily2997); if (state.failed) return current;
+
+            }
+
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleFontFamily"
+
+
+    // $ANTLR start "ruleFontFamily"
+    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1495:1: ruleFontFamily returns [EObject current=null] : (this_BuildInFontFamily_0= ruleBuildInFontFamily | this_CustomFontFamily_1= ruleCustomFontFamily ) ;
+    public final EObject ruleFontFamily() throws RecognitionException {
+        EObject current = null;
+
+        EObject this_BuildInFontFamily_0 = null;
+
+        EObject this_CustomFontFamily_1 = null;
+
+
+         enterRule(); 
+            
+        try {
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1498:28: ( (this_BuildInFontFamily_0= ruleBuildInFontFamily | this_CustomFontFamily_1= ruleCustomFontFamily ) )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1499:1: (this_BuildInFontFamily_0= ruleBuildInFontFamily | this_CustomFontFamily_1= ruleCustomFontFamily )
+            {
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1499:1: (this_BuildInFontFamily_0= ruleBuildInFontFamily | this_CustomFontFamily_1= ruleCustomFontFamily )
+            int alt20=2;
+            switch ( input.LA(1) ) {
+            case 208:
+            case 209:
+            case 210:
+                {
+                alt20=1;
+                }
+                break;
+            case RULE_STRING:
+                {
+                alt20=2;
+                }
+                break;
+            default:
+                if (state.backtracking>0) {state.failed=true; return current;}
+                NoViableAltException nvae =
+                    new NoViableAltException("", 20, 0, input);
+
+                throw nvae;
+            }
+
+            switch (alt20) {
+                case 1 :
+                    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1500:5: this_BuildInFontFamily_0= ruleBuildInFontFamily
+                    {
+                    if ( state.backtracking==0 ) {
+                       
+                              newCompositeNode(grammarAccess.getFontFamilyAccess().getBuildInFontFamilyParserRuleCall_0()); 
+                          
+                    }
+                    pushFollow(FOLLOW_ruleBuildInFontFamily_in_ruleFontFamily3044);
+                    this_BuildInFontFamily_0=ruleBuildInFontFamily();
+
+                    state._fsp--;
+                    if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+                       
+                              current = this_BuildInFontFamily_0; 
+                              afterParserOrEnumRuleCall();
+                          
+                    }
+
+                    }
+                    break;
+                case 2 :
+                    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1510:5: this_CustomFontFamily_1= ruleCustomFontFamily
+                    {
+                    if ( state.backtracking==0 ) {
+                       
+                              newCompositeNode(grammarAccess.getFontFamilyAccess().getCustomFontFamilyParserRuleCall_1()); 
+                          
+                    }
+                    pushFollow(FOLLOW_ruleCustomFontFamily_in_ruleFontFamily3071);
+                    this_CustomFontFamily_1=ruleCustomFontFamily();
+
+                    state._fsp--;
+                    if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+                       
+                              current = this_CustomFontFamily_1; 
+                              afterParserOrEnumRuleCall();
+                          
+                    }
+
+                    }
+                    break;
+
+            }
+
+
+            }
+
+            if ( state.backtracking==0 ) {
+               leaveRule(); 
+            }
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleFontFamily"
+
+
+    // $ANTLR start "entryRuleBuildInFontFamily"
+    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1526:1: entryRuleBuildInFontFamily returns [EObject current=null] : iv_ruleBuildInFontFamily= ruleBuildInFontFamily EOF ;
+    public final EObject entryRuleBuildInFontFamily() throws RecognitionException {
+        EObject current = null;
+
+        EObject iv_ruleBuildInFontFamily = null;
+
+
+        try {
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1527:2: (iv_ruleBuildInFontFamily= ruleBuildInFontFamily EOF )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1528:2: iv_ruleBuildInFontFamily= ruleBuildInFontFamily EOF
+            {
+            if ( state.backtracking==0 ) {
+               newCompositeNode(grammarAccess.getBuildInFontFamilyRule()); 
+            }
+            pushFollow(FOLLOW_ruleBuildInFontFamily_in_entryRuleBuildInFontFamily3106);
+            iv_ruleBuildInFontFamily=ruleBuildInFontFamily();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+               current =iv_ruleBuildInFontFamily; 
+            }
+            match(input,EOF,FOLLOW_EOF_in_entryRuleBuildInFontFamily3116); if (state.failed) return current;
+
+            }
+
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleBuildInFontFamily"
+
+
+    // $ANTLR start "ruleBuildInFontFamily"
+    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1535:1: ruleBuildInFontFamily returns [EObject current=null] : ( (lv_custom_0_0= ruleBuildInFontFamilyEnum ) ) ;
+    public final EObject ruleBuildInFontFamily() throws RecognitionException {
+        EObject current = null;
+
+        Enumerator lv_custom_0_0 = null;
+
+
+         enterRule(); 
+            
+        try {
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1538:28: ( ( (lv_custom_0_0= ruleBuildInFontFamilyEnum ) ) )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1539:1: ( (lv_custom_0_0= ruleBuildInFontFamilyEnum ) )
+            {
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1539:1: ( (lv_custom_0_0= ruleBuildInFontFamilyEnum ) )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1540:1: (lv_custom_0_0= ruleBuildInFontFamilyEnum )
+            {
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1540:1: (lv_custom_0_0= ruleBuildInFontFamilyEnum )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1541:3: lv_custom_0_0= ruleBuildInFontFamilyEnum
+            {
+            if ( state.backtracking==0 ) {
+               
+              	        newCompositeNode(grammarAccess.getBuildInFontFamilyAccess().getCustomBuildInFontFamilyEnumEnumRuleCall_0()); 
+              	    
+            }
+            pushFollow(FOLLOW_ruleBuildInFontFamilyEnum_in_ruleBuildInFontFamily3161);
+            lv_custom_0_0=ruleBuildInFontFamilyEnum();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+              	        if (current==null) {
+              	            current = createModelElementForParent(grammarAccess.getBuildInFontFamilyRule());
+              	        }
+                     		set(
+                     			current, 
+                     			"custom",
+                      		lv_custom_0_0, 
+                      		"BuildInFontFamilyEnum");
+              	        afterParserOrEnumRuleCall();
+              	    
+            }
+
+            }
+
+
+            }
+
+
+            }
+
+            if ( state.backtracking==0 ) {
+               leaveRule(); 
+            }
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleBuildInFontFamily"
+
+
+    // $ANTLR start "entryRuleCustomFontFamily"
+    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1565:1: entryRuleCustomFontFamily returns [EObject current=null] : iv_ruleCustomFontFamily= ruleCustomFontFamily EOF ;
+    public final EObject entryRuleCustomFontFamily() throws RecognitionException {
+        EObject current = null;
+
+        EObject iv_ruleCustomFontFamily = null;
+
+
+        try {
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1566:2: (iv_ruleCustomFontFamily= ruleCustomFontFamily EOF )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1567:2: iv_ruleCustomFontFamily= ruleCustomFontFamily EOF
+            {
+            if ( state.backtracking==0 ) {
+               newCompositeNode(grammarAccess.getCustomFontFamilyRule()); 
+            }
+            pushFollow(FOLLOW_ruleCustomFontFamily_in_entryRuleCustomFontFamily3196);
+            iv_ruleCustomFontFamily=ruleCustomFontFamily();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+               current =iv_ruleCustomFontFamily; 
+            }
+            match(input,EOF,FOLLOW_EOF_in_entryRuleCustomFontFamily3206); if (state.failed) return current;
+
+            }
+
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleCustomFontFamily"
+
+
+    // $ANTLR start "ruleCustomFontFamily"
+    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1574:1: ruleCustomFontFamily returns [EObject current=null] : ( (lv_custom_0_0= RULE_STRING ) ) ;
+    public final EObject ruleCustomFontFamily() throws RecognitionException {
+        EObject current = null;
+
+        Token lv_custom_0_0=null;
+
+         enterRule(); 
+            
+        try {
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1577:28: ( ( (lv_custom_0_0= RULE_STRING ) ) )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1578:1: ( (lv_custom_0_0= RULE_STRING ) )
+            {
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1578:1: ( (lv_custom_0_0= RULE_STRING ) )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1579:1: (lv_custom_0_0= RULE_STRING )
+            {
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1579:1: (lv_custom_0_0= RULE_STRING )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1580:3: lv_custom_0_0= RULE_STRING
+            {
+            lv_custom_0_0=(Token)match(input,RULE_STRING,FOLLOW_RULE_STRING_in_ruleCustomFontFamily3247); if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+              			newLeafNode(lv_custom_0_0, grammarAccess.getCustomFontFamilyAccess().getCustomSTRINGTerminalRuleCall_0()); 
+              		
+            }
+            if ( state.backtracking==0 ) {
+
+              	        if (current==null) {
+              	            current = createModelElement(grammarAccess.getCustomFontFamilyRule());
+              	        }
+                     		setWithLastConsumed(
+                     			current, 
+                     			"custom",
+                      		lv_custom_0_0, 
+                      		"STRING");
+              	    
+            }
+
+            }
+
+
+            }
+
+
+            }
+
+            if ( state.backtracking==0 ) {
+               leaveRule(); 
+            }
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleCustomFontFamily"
+
+
+    // $ANTLR start "entryRuleBorderStyle"
+    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1604:1: entryRuleBorderStyle returns [EObject current=null] : iv_ruleBorderStyle= ruleBorderStyle EOF ;
+    public final EObject entryRuleBorderStyle() throws RecognitionException {
+        EObject current = null;
+
+        EObject iv_ruleBorderStyle = null;
+
+
+        try {
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1605:2: (iv_ruleBorderStyle= ruleBorderStyle EOF )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1606:2: iv_ruleBorderStyle= ruleBorderStyle EOF
+            {
+            if ( state.backtracking==0 ) {
+               newCompositeNode(grammarAccess.getBorderStyleRule()); 
+            }
+            pushFollow(FOLLOW_ruleBorderStyle_in_entryRuleBorderStyle3287);
+            iv_ruleBorderStyle=ruleBorderStyle();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+               current =iv_ruleBorderStyle; 
+            }
+            match(input,EOF,FOLLOW_EOF_in_entryRuleBorderStyle3297); if (state.failed) return current;
+
+            }
+
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleBorderStyle"
+
+
+    // $ANTLR start "ruleBorderStyle"
+    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1613:1: ruleBorderStyle returns [EObject current=null] : ( ( (lv_type_0_0= ruleBorderTypeEnum ) ) ( (lv_widthvalue_1_0= ruleUnsignedNumber ) ) ( (lv_widthunit_2_0= ruleUnitEnum ) ) ( (otherlv_3= RULE_ID ) ) ) ;
+    public final EObject ruleBorderStyle() throws RecognitionException {
+        EObject current = null;
+
+        Token otherlv_3=null;
+        Enumerator lv_type_0_0 = null;
+
+        AntlrDatatypeRuleToken lv_widthvalue_1_0 = null;
+
+        Enumerator lv_widthunit_2_0 = null;
+
+
+         enterRule(); 
+            
+        try {
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1616:28: ( ( ( (lv_type_0_0= ruleBorderTypeEnum ) ) ( (lv_widthvalue_1_0= ruleUnsignedNumber ) ) ( (lv_widthunit_2_0= ruleUnitEnum ) ) ( (otherlv_3= RULE_ID ) ) ) )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1617:1: ( ( (lv_type_0_0= ruleBorderTypeEnum ) ) ( (lv_widthvalue_1_0= ruleUnsignedNumber ) ) ( (lv_widthunit_2_0= ruleUnitEnum ) ) ( (otherlv_3= RULE_ID ) ) )
+            {
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1617:1: ( ( (lv_type_0_0= ruleBorderTypeEnum ) ) ( (lv_widthvalue_1_0= ruleUnsignedNumber ) ) ( (lv_widthunit_2_0= ruleUnitEnum ) ) ( (otherlv_3= RULE_ID ) ) )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1617:2: ( (lv_type_0_0= ruleBorderTypeEnum ) ) ( (lv_widthvalue_1_0= ruleUnsignedNumber ) ) ( (lv_widthunit_2_0= ruleUnitEnum ) ) ( (otherlv_3= RULE_ID ) )
+            {
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1617:2: ( (lv_type_0_0= ruleBorderTypeEnum ) )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1618:1: (lv_type_0_0= ruleBorderTypeEnum )
+            {
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1618:1: (lv_type_0_0= ruleBorderTypeEnum )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1619:3: lv_type_0_0= ruleBorderTypeEnum
+            {
+            if ( state.backtracking==0 ) {
+               
+              	        newCompositeNode(grammarAccess.getBorderStyleAccess().getTypeBorderTypeEnumEnumRuleCall_0_0()); 
+              	    
+            }
+            pushFollow(FOLLOW_ruleBorderTypeEnum_in_ruleBorderStyle3343);
+            lv_type_0_0=ruleBorderTypeEnum();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+              	        if (current==null) {
+              	            current = createModelElementForParent(grammarAccess.getBorderStyleRule());
+              	        }
+                     		set(
+                     			current, 
+                     			"type",
+                      		lv_type_0_0, 
+                      		"BorderTypeEnum");
+              	        afterParserOrEnumRuleCall();
+              	    
+            }
+
+            }
+
+
+            }
+
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1635:2: ( (lv_widthvalue_1_0= ruleUnsignedNumber ) )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1636:1: (lv_widthvalue_1_0= ruleUnsignedNumber )
+            {
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1636:1: (lv_widthvalue_1_0= ruleUnsignedNumber )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1637:3: lv_widthvalue_1_0= ruleUnsignedNumber
+            {
+            if ( state.backtracking==0 ) {
+               
+              	        newCompositeNode(grammarAccess.getBorderStyleAccess().getWidthvalueUnsignedNumberParserRuleCall_1_0()); 
+              	    
+            }
+            pushFollow(FOLLOW_ruleUnsignedNumber_in_ruleBorderStyle3364);
+            lv_widthvalue_1_0=ruleUnsignedNumber();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+              	        if (current==null) {
+              	            current = createModelElementForParent(grammarAccess.getBorderStyleRule());
+              	        }
+                     		set(
+                     			current, 
+                     			"widthvalue",
+                      		lv_widthvalue_1_0, 
+                      		"UnsignedNumber");
+              	        afterParserOrEnumRuleCall();
+              	    
+            }
+
+            }
+
+
+            }
+
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1653:2: ( (lv_widthunit_2_0= ruleUnitEnum ) )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1654:1: (lv_widthunit_2_0= ruleUnitEnum )
+            {
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1654:1: (lv_widthunit_2_0= ruleUnitEnum )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1655:3: lv_widthunit_2_0= ruleUnitEnum
+            {
+            if ( state.backtracking==0 ) {
+               
+              	        newCompositeNode(grammarAccess.getBorderStyleAccess().getWidthunitUnitEnumEnumRuleCall_2_0()); 
+              	    
+            }
+            pushFollow(FOLLOW_ruleUnitEnum_in_ruleBorderStyle3385);
+            lv_widthunit_2_0=ruleUnitEnum();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+              	        if (current==null) {
+              	            current = createModelElementForParent(grammarAccess.getBorderStyleRule());
+              	        }
+                     		set(
+                     			current, 
+                     			"widthunit",
+                      		lv_widthunit_2_0, 
+                      		"UnitEnum");
+              	        afterParserOrEnumRuleCall();
+              	    
+            }
+
+            }
+
+
+            }
+
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1671:2: ( (otherlv_3= RULE_ID ) )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1672:1: (otherlv_3= RULE_ID )
+            {
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1672:1: (otherlv_3= RULE_ID )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1673:3: otherlv_3= RULE_ID
+            {
+            if ( state.backtracking==0 ) {
+
+              			if (current==null) {
+              	            current = createModelElement(grammarAccess.getBorderStyleRule());
+              	        }
+                      
+            }
+            otherlv_3=(Token)match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleBorderStyle3405); if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+              		newLeafNode(otherlv_3, grammarAccess.getBorderStyleAccess().getColorColorCrossReference_3_0()); 
+              	
+            }
+
+            }
+
+
+            }
+
+
+            }
+
+
+            }
+
+            if ( state.backtracking==0 ) {
+               leaveRule(); 
+            }
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleBorderStyle"
+
+
+    // $ANTLR start "entryRuleStyle"
+    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1692:1: entryRuleStyle returns [EObject current=null] : iv_ruleStyle= ruleStyle EOF ;
+    public final EObject entryRuleStyle() throws RecognitionException {
+        EObject current = null;
+
+        EObject iv_ruleStyle = null;
+
+
+        try {
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1693:2: (iv_ruleStyle= ruleStyle EOF )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1694:2: iv_ruleStyle= ruleStyle EOF
+            {
+            if ( state.backtracking==0 ) {
+               newCompositeNode(grammarAccess.getStyleRule()); 
+            }
+            pushFollow(FOLLOW_ruleStyle_in_entryRuleStyle3441);
+            iv_ruleStyle=ruleStyle();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+               current =iv_ruleStyle; 
+            }
+            match(input,EOF,FOLLOW_EOF_in_entryRuleStyle3451); if (state.failed) return current;
+
+            }
+
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleStyle"
+
+
+    // $ANTLR start "ruleStyle"
+    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1701:1: ruleStyle returns [EObject current=null] : (otherlv_0= 'style' ( (lv_name_1_0= RULE_ID ) ) otherlv_2= '{' (otherlv_3= 'extends' ( (otherlv_4= RULE_ID ) ) )? ( ( ( ( ({...}? => ( ({...}? => (otherlv_6= 'formatter' ( (otherlv_7= RULE_ID ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_8= 'font' ( (otherlv_9= RULE_ID ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_10= 'backgroundcolor' ( (otherlv_11= RULE_ID ) ) (otherlv_12= 'alternate' ( (otherlv_13= RULE_ID ) ) )? ) ) ) ) | ({...}? => ( ({...}? => (otherlv_14= 'textcolor' ( (otherlv_15= RULE_ID ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_16= 'textalign' ( (lv_textalign_17_0= ruleTextAlignEnum ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_18= 'border-top' ( (lv_borderTop_19_0= ruleBorderStyle ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_20= 'border-bottom' ( (lv_borderBottom_21_0= ruleBorderStyle ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_22= 'border-left' ( (lv_borderLeft_23_0= ruleBorderStyle ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_24= 'border-right' ( (lv_borderRight_25_0= ruleBorderStyle ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_26= 'padding-top' ( (lv_paddingTopValue_27_0= ruleUnsignedNumber ) ) ( (lv_paddingTopUnit_28_0= ruleUnitEnum ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_29= 'padding-bottom' ( (lv_paddingBottomValue_30_0= ruleUnsignedNumber ) ) ( (lv_paddingBottomUnit_31_0= ruleUnitEnum ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_32= 'padding-left' ( (lv_paddingLeftValue_33_0= ruleUnsignedNumber ) ) ( (lv_paddingLeftUnit_34_0= ruleUnitEnum ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_35= 'padding-right' ( (lv_paddingRightValue_36_0= ruleUnsignedNumber ) ) ( (lv_paddingRightUnit_37_0= ruleUnitEnum ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_38= 'margin-top' ( (lv_marginTopValue_39_0= ruleUnsignedNumber ) ) ( (lv_marginTopUnit_40_0= ruleUnitEnum ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_41= 'margin-bottom' ( (lv_marginBottomValue_42_0= ruleUnsignedNumber ) ) ( (lv_marginBottomUnit_43_0= ruleUnitEnum ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_44= 'margin-left' ( (lv_marginLeftValue_45_0= ruleUnsignedNumber ) ) ( (lv_marginLeftUnit_46_0= ruleUnitEnum ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_47= 'margin-right' ( (lv_marginRightValue_48_0= ruleUnsignedNumber ) ) ( (lv_marginRightUnit_49_0= ruleUnitEnum ) ) ) ) ) ) )* ) ) ) ( (lv_mediastyles_50_0= ruleMediaStyle ) )* otherlv_51= '}' ) ;
+    public final EObject ruleStyle() throws RecognitionException {
+        EObject current = null;
+
+        Token otherlv_0=null;
+        Token lv_name_1_0=null;
+        Token otherlv_2=null;
+        Token otherlv_3=null;
+        Token otherlv_4=null;
+        Token otherlv_6=null;
+        Token otherlv_7=null;
+        Token otherlv_8=null;
+        Token otherlv_9=null;
+        Token otherlv_10=null;
+        Token otherlv_11=null;
+        Token otherlv_12=null;
+        Token otherlv_13=null;
+        Token otherlv_14=null;
+        Token otherlv_15=null;
+        Token otherlv_16=null;
+        Token otherlv_18=null;
+        Token otherlv_20=null;
+        Token otherlv_22=null;
+        Token otherlv_24=null;
+        Token otherlv_26=null;
+        Token otherlv_29=null;
+        Token otherlv_32=null;
+        Token otherlv_35=null;
+        Token otherlv_38=null;
+        Token otherlv_41=null;
+        Token otherlv_44=null;
+        Token otherlv_47=null;
+        Token otherlv_51=null;
+        Enumerator lv_textalign_17_0 = null;
+
+        EObject lv_borderTop_19_0 = null;
+
+        EObject lv_borderBottom_21_0 = null;
+
+        EObject lv_borderLeft_23_0 = null;
+
+        EObject lv_borderRight_25_0 = null;
+
+        AntlrDatatypeRuleToken lv_paddingTopValue_27_0 = null;
+
+        Enumerator lv_paddingTopUnit_28_0 = null;
+
+        AntlrDatatypeRuleToken lv_paddingBottomValue_30_0 = null;
+
+        Enumerator lv_paddingBottomUnit_31_0 = null;
+
+        AntlrDatatypeRuleToken lv_paddingLeftValue_33_0 = null;
+
+        Enumerator lv_paddingLeftUnit_34_0 = null;
+
+        AntlrDatatypeRuleToken lv_paddingRightValue_36_0 = null;
+
+        Enumerator lv_paddingRightUnit_37_0 = null;
+
+        AntlrDatatypeRuleToken lv_marginTopValue_39_0 = null;
+
+        Enumerator lv_marginTopUnit_40_0 = null;
+
+        AntlrDatatypeRuleToken lv_marginBottomValue_42_0 = null;
+
+        Enumerator lv_marginBottomUnit_43_0 = null;
+
+        AntlrDatatypeRuleToken lv_marginLeftValue_45_0 = null;
+
+        Enumerator lv_marginLeftUnit_46_0 = null;
+
+        AntlrDatatypeRuleToken lv_marginRightValue_48_0 = null;
+
+        Enumerator lv_marginRightUnit_49_0 = null;
+
+        EObject lv_mediastyles_50_0 = null;
+
+
+         enterRule(); 
+            
+        try {
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1704:28: ( (otherlv_0= 'style' ( (lv_name_1_0= RULE_ID ) ) otherlv_2= '{' (otherlv_3= 'extends' ( (otherlv_4= RULE_ID ) ) )? ( ( ( ( ({...}? => ( ({...}? => (otherlv_6= 'formatter' ( (otherlv_7= RULE_ID ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_8= 'font' ( (otherlv_9= RULE_ID ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_10= 'backgroundcolor' ( (otherlv_11= RULE_ID ) ) (otherlv_12= 'alternate' ( (otherlv_13= RULE_ID ) ) )? ) ) ) ) | ({...}? => ( ({...}? => (otherlv_14= 'textcolor' ( (otherlv_15= RULE_ID ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_16= 'textalign' ( (lv_textalign_17_0= ruleTextAlignEnum ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_18= 'border-top' ( (lv_borderTop_19_0= ruleBorderStyle ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_20= 'border-bottom' ( (lv_borderBottom_21_0= ruleBorderStyle ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_22= 'border-left' ( (lv_borderLeft_23_0= ruleBorderStyle ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_24= 'border-right' ( (lv_borderRight_25_0= ruleBorderStyle ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_26= 'padding-top' ( (lv_paddingTopValue_27_0= ruleUnsignedNumber ) ) ( (lv_paddingTopUnit_28_0= ruleUnitEnum ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_29= 'padding-bottom' ( (lv_paddingBottomValue_30_0= ruleUnsignedNumber ) ) ( (lv_paddingBottomUnit_31_0= ruleUnitEnum ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_32= 'padding-left' ( (lv_paddingLeftValue_33_0= ruleUnsignedNumber ) ) ( (lv_paddingLeftUnit_34_0= ruleUnitEnum ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_35= 'padding-right' ( (lv_paddingRightValue_36_0= ruleUnsignedNumber ) ) ( (lv_paddingRightUnit_37_0= ruleUnitEnum ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_38= 'margin-top' ( (lv_marginTopValue_39_0= ruleUnsignedNumber ) ) ( (lv_marginTopUnit_40_0= ruleUnitEnum ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_41= 'margin-bottom' ( (lv_marginBottomValue_42_0= ruleUnsignedNumber ) ) ( (lv_marginBottomUnit_43_0= ruleUnitEnum ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_44= 'margin-left' ( (lv_marginLeftValue_45_0= ruleUnsignedNumber ) ) ( (lv_marginLeftUnit_46_0= ruleUnitEnum ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_47= 'margin-right' ( (lv_marginRightValue_48_0= ruleUnsignedNumber ) ) ( (lv_marginRightUnit_49_0= ruleUnitEnum ) ) ) ) ) ) )* ) ) ) ( (lv_mediastyles_50_0= ruleMediaStyle ) )* otherlv_51= '}' ) )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1705:1: (otherlv_0= 'style' ( (lv_name_1_0= RULE_ID ) ) otherlv_2= '{' (otherlv_3= 'extends' ( (otherlv_4= RULE_ID ) ) )? ( ( ( ( ({...}? => ( ({...}? => (otherlv_6= 'formatter' ( (otherlv_7= RULE_ID ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_8= 'font' ( (otherlv_9= RULE_ID ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_10= 'backgroundcolor' ( (otherlv_11= RULE_ID ) ) (otherlv_12= 'alternate' ( (otherlv_13= RULE_ID ) ) )? ) ) ) ) | ({...}? => ( ({...}? => (otherlv_14= 'textcolor' ( (otherlv_15= RULE_ID ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_16= 'textalign' ( (lv_textalign_17_0= ruleTextAlignEnum ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_18= 'border-top' ( (lv_borderTop_19_0= ruleBorderStyle ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_20= 'border-bottom' ( (lv_borderBottom_21_0= ruleBorderStyle ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_22= 'border-left' ( (lv_borderLeft_23_0= ruleBorderStyle ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_24= 'border-right' ( (lv_borderRight_25_0= ruleBorderStyle ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_26= 'padding-top' ( (lv_paddingTopValue_27_0= ruleUnsignedNumber ) ) ( (lv_paddingTopUnit_28_0= ruleUnitEnum ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_29= 'padding-bottom' ( (lv_paddingBottomValue_30_0= ruleUnsignedNumber ) ) ( (lv_paddingBottomUnit_31_0= ruleUnitEnum ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_32= 'padding-left' ( (lv_paddingLeftValue_33_0= ruleUnsignedNumber ) ) ( (lv_paddingLeftUnit_34_0= ruleUnitEnum ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_35= 'padding-right' ( (lv_paddingRightValue_36_0= ruleUnsignedNumber ) ) ( (lv_paddingRightUnit_37_0= ruleUnitEnum ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_38= 'margin-top' ( (lv_marginTopValue_39_0= ruleUnsignedNumber ) ) ( (lv_marginTopUnit_40_0= ruleUnitEnum ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_41= 'margin-bottom' ( (lv_marginBottomValue_42_0= ruleUnsignedNumber ) ) ( (lv_marginBottomUnit_43_0= ruleUnitEnum ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_44= 'margin-left' ( (lv_marginLeftValue_45_0= ruleUnsignedNumber ) ) ( (lv_marginLeftUnit_46_0= ruleUnitEnum ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_47= 'margin-right' ( (lv_marginRightValue_48_0= ruleUnsignedNumber ) ) ( (lv_marginRightUnit_49_0= ruleUnitEnum ) ) ) ) ) ) )* ) ) ) ( (lv_mediastyles_50_0= ruleMediaStyle ) )* otherlv_51= '}' )
+            {
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1705:1: (otherlv_0= 'style' ( (lv_name_1_0= RULE_ID ) ) otherlv_2= '{' (otherlv_3= 'extends' ( (otherlv_4= RULE_ID ) ) )? ( ( ( ( ({...}? => ( ({...}? => (otherlv_6= 'formatter' ( (otherlv_7= RULE_ID ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_8= 'font' ( (otherlv_9= RULE_ID ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_10= 'backgroundcolor' ( (otherlv_11= RULE_ID ) ) (otherlv_12= 'alternate' ( (otherlv_13= RULE_ID ) ) )? ) ) ) ) | ({...}? => ( ({...}? => (otherlv_14= 'textcolor' ( (otherlv_15= RULE_ID ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_16= 'textalign' ( (lv_textalign_17_0= ruleTextAlignEnum ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_18= 'border-top' ( (lv_borderTop_19_0= ruleBorderStyle ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_20= 'border-bottom' ( (lv_borderBottom_21_0= ruleBorderStyle ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_22= 'border-left' ( (lv_borderLeft_23_0= ruleBorderStyle ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_24= 'border-right' ( (lv_borderRight_25_0= ruleBorderStyle ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_26= 'padding-top' ( (lv_paddingTopValue_27_0= ruleUnsignedNumber ) ) ( (lv_paddingTopUnit_28_0= ruleUnitEnum ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_29= 'padding-bottom' ( (lv_paddingBottomValue_30_0= ruleUnsignedNumber ) ) ( (lv_paddingBottomUnit_31_0= ruleUnitEnum ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_32= 'padding-left' ( (lv_paddingLeftValue_33_0= ruleUnsignedNumber ) ) ( (lv_paddingLeftUnit_34_0= ruleUnitEnum ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_35= 'padding-right' ( (lv_paddingRightValue_36_0= ruleUnsignedNumber ) ) ( (lv_paddingRightUnit_37_0= ruleUnitEnum ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_38= 'margin-top' ( (lv_marginTopValue_39_0= ruleUnsignedNumber ) ) ( (lv_marginTopUnit_40_0= ruleUnitEnum ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_41= 'margin-bottom' ( (lv_marginBottomValue_42_0= ruleUnsignedNumber ) ) ( (lv_marginBottomUnit_43_0= ruleUnitEnum ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_44= 'margin-left' ( (lv_marginLeftValue_45_0= ruleUnsignedNumber ) ) ( (lv_marginLeftUnit_46_0= ruleUnitEnum ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_47= 'margin-right' ( (lv_marginRightValue_48_0= ruleUnsignedNumber ) ) ( (lv_marginRightUnit_49_0= ruleUnitEnum ) ) ) ) ) ) )* ) ) ) ( (lv_mediastyles_50_0= ruleMediaStyle ) )* otherlv_51= '}' )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1705:3: otherlv_0= 'style' ( (lv_name_1_0= RULE_ID ) ) otherlv_2= '{' (otherlv_3= 'extends' ( (otherlv_4= RULE_ID ) ) )? ( ( ( ( ({...}? => ( ({...}? => (otherlv_6= 'formatter' ( (otherlv_7= RULE_ID ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_8= 'font' ( (otherlv_9= RULE_ID ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_10= 'backgroundcolor' ( (otherlv_11= RULE_ID ) ) (otherlv_12= 'alternate' ( (otherlv_13= RULE_ID ) ) )? ) ) ) ) | ({...}? => ( ({...}? => (otherlv_14= 'textcolor' ( (otherlv_15= RULE_ID ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_16= 'textalign' ( (lv_textalign_17_0= ruleTextAlignEnum ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_18= 'border-top' ( (lv_borderTop_19_0= ruleBorderStyle ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_20= 'border-bottom' ( (lv_borderBottom_21_0= ruleBorderStyle ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_22= 'border-left' ( (lv_borderLeft_23_0= ruleBorderStyle ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_24= 'border-right' ( (lv_borderRight_25_0= ruleBorderStyle ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_26= 'padding-top' ( (lv_paddingTopValue_27_0= ruleUnsignedNumber ) ) ( (lv_paddingTopUnit_28_0= ruleUnitEnum ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_29= 'padding-bottom' ( (lv_paddingBottomValue_30_0= ruleUnsignedNumber ) ) ( (lv_paddingBottomUnit_31_0= ruleUnitEnum ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_32= 'padding-left' ( (lv_paddingLeftValue_33_0= ruleUnsignedNumber ) ) ( (lv_paddingLeftUnit_34_0= ruleUnitEnum ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_35= 'padding-right' ( (lv_paddingRightValue_36_0= ruleUnsignedNumber ) ) ( (lv_paddingRightUnit_37_0= ruleUnitEnum ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_38= 'margin-top' ( (lv_marginTopValue_39_0= ruleUnsignedNumber ) ) ( (lv_marginTopUnit_40_0= ruleUnitEnum ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_41= 'margin-bottom' ( (lv_marginBottomValue_42_0= ruleUnsignedNumber ) ) ( (lv_marginBottomUnit_43_0= ruleUnitEnum ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_44= 'margin-left' ( (lv_marginLeftValue_45_0= ruleUnsignedNumber ) ) ( (lv_marginLeftUnit_46_0= ruleUnitEnum ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_47= 'margin-right' ( (lv_marginRightValue_48_0= ruleUnsignedNumber ) ) ( (lv_marginRightUnit_49_0= ruleUnitEnum ) ) ) ) ) ) )* ) ) ) ( (lv_mediastyles_50_0= ruleMediaStyle ) )* otherlv_51= '}'
+            {
+            otherlv_0=(Token)match(input,43,FOLLOW_43_in_ruleStyle3488); if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+                  	newLeafNode(otherlv_0, grammarAccess.getStyleAccess().getStyleKeyword_0());
+                  
+            }
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1709:1: ( (lv_name_1_0= RULE_ID ) )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1710:1: (lv_name_1_0= RULE_ID )
+            {
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1710:1: (lv_name_1_0= RULE_ID )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1711:3: lv_name_1_0= RULE_ID
+            {
+            lv_name_1_0=(Token)match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleStyle3505); if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+              			newLeafNode(lv_name_1_0, grammarAccess.getStyleAccess().getNameIDTerminalRuleCall_1_0()); 
+              		
+            }
+            if ( state.backtracking==0 ) {
+
+              	        if (current==null) {
+              	            current = createModelElement(grammarAccess.getStyleRule());
+              	        }
+                     		setWithLastConsumed(
+                     			current, 
+                     			"name",
+                      		lv_name_1_0, 
+                      		"ID");
+              	    
+            }
+
+            }
+
+
+            }
+
+            otherlv_2=(Token)match(input,14,FOLLOW_14_in_ruleStyle3522); if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+                  	newLeafNode(otherlv_2, grammarAccess.getStyleAccess().getLeftCurlyBracketKeyword_2());
+                  
+            }
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1731:1: (otherlv_3= 'extends' ( (otherlv_4= RULE_ID ) ) )?
+            int alt21=2;
+            switch ( input.LA(1) ) {
+                case 39:
+                    {
+                    alt21=1;
+                    }
+                    break;
+            }
+
+            switch (alt21) {
+                case 1 :
+                    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1731:3: otherlv_3= 'extends' ( (otherlv_4= RULE_ID ) )
+                    {
+                    otherlv_3=(Token)match(input,39,FOLLOW_39_in_ruleStyle3535); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                          	newLeafNode(otherlv_3, grammarAccess.getStyleAccess().getExtendsKeyword_3_0());
+                          
+                    }
+                    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1735:1: ( (otherlv_4= RULE_ID ) )
+                    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1736:1: (otherlv_4= RULE_ID )
+                    {
+                    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1736:1: (otherlv_4= RULE_ID )
+                    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1737:3: otherlv_4= RULE_ID
+                    {
+                    if ( state.backtracking==0 ) {
+
+                      			if (current==null) {
+                      	            current = createModelElement(grammarAccess.getStyleRule());
+                      	        }
+                              
+                    }
+                    otherlv_4=(Token)match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleStyle3555); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                      		newLeafNode(otherlv_4, grammarAccess.getStyleAccess().getExtendsStyleCrossReference_3_1_0()); 
+                      	
+                    }
+
+                    }
+
+
+                    }
+
+
+                    }
+                    break;
+
+            }
+
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1748:4: ( ( ( ( ({...}? => ( ({...}? => (otherlv_6= 'formatter' ( (otherlv_7= RULE_ID ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_8= 'font' ( (otherlv_9= RULE_ID ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_10= 'backgroundcolor' ( (otherlv_11= RULE_ID ) ) (otherlv_12= 'alternate' ( (otherlv_13= RULE_ID ) ) )? ) ) ) ) | ({...}? => ( ({...}? => (otherlv_14= 'textcolor' ( (otherlv_15= RULE_ID ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_16= 'textalign' ( (lv_textalign_17_0= ruleTextAlignEnum ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_18= 'border-top' ( (lv_borderTop_19_0= ruleBorderStyle ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_20= 'border-bottom' ( (lv_borderBottom_21_0= ruleBorderStyle ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_22= 'border-left' ( (lv_borderLeft_23_0= ruleBorderStyle ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_24= 'border-right' ( (lv_borderRight_25_0= ruleBorderStyle ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_26= 'padding-top' ( (lv_paddingTopValue_27_0= ruleUnsignedNumber ) ) ( (lv_paddingTopUnit_28_0= ruleUnitEnum ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_29= 'padding-bottom' ( (lv_paddingBottomValue_30_0= ruleUnsignedNumber ) ) ( (lv_paddingBottomUnit_31_0= ruleUnitEnum ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_32= 'padding-left' ( (lv_paddingLeftValue_33_0= ruleUnsignedNumber ) ) ( (lv_paddingLeftUnit_34_0= ruleUnitEnum ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_35= 'padding-right' ( (lv_paddingRightValue_36_0= ruleUnsignedNumber ) ) ( (lv_paddingRightUnit_37_0= ruleUnitEnum ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_38= 'margin-top' ( (lv_marginTopValue_39_0= ruleUnsignedNumber ) ) ( (lv_marginTopUnit_40_0= ruleUnitEnum ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_41= 'margin-bottom' ( (lv_marginBottomValue_42_0= ruleUnsignedNumber ) ) ( (lv_marginBottomUnit_43_0= ruleUnitEnum ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_44= 'margin-left' ( (lv_marginLeftValue_45_0= ruleUnsignedNumber ) ) ( (lv_marginLeftUnit_46_0= ruleUnitEnum ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_47= 'margin-right' ( (lv_marginRightValue_48_0= ruleUnsignedNumber ) ) ( (lv_marginRightUnit_49_0= ruleUnitEnum ) ) ) ) ) ) )* ) ) )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1750:1: ( ( ( ({...}? => ( ({...}? => (otherlv_6= 'formatter' ( (otherlv_7= RULE_ID ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_8= 'font' ( (otherlv_9= RULE_ID ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_10= 'backgroundcolor' ( (otherlv_11= RULE_ID ) ) (otherlv_12= 'alternate' ( (otherlv_13= RULE_ID ) ) )? ) ) ) ) | ({...}? => ( ({...}? => (otherlv_14= 'textcolor' ( (otherlv_15= RULE_ID ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_16= 'textalign' ( (lv_textalign_17_0= ruleTextAlignEnum ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_18= 'border-top' ( (lv_borderTop_19_0= ruleBorderStyle ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_20= 'border-bottom' ( (lv_borderBottom_21_0= ruleBorderStyle ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_22= 'border-left' ( (lv_borderLeft_23_0= ruleBorderStyle ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_24= 'border-right' ( (lv_borderRight_25_0= ruleBorderStyle ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_26= 'padding-top' ( (lv_paddingTopValue_27_0= ruleUnsignedNumber ) ) ( (lv_paddingTopUnit_28_0= ruleUnitEnum ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_29= 'padding-bottom' ( (lv_paddingBottomValue_30_0= ruleUnsignedNumber ) ) ( (lv_paddingBottomUnit_31_0= ruleUnitEnum ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_32= 'padding-left' ( (lv_paddingLeftValue_33_0= ruleUnsignedNumber ) ) ( (lv_paddingLeftUnit_34_0= ruleUnitEnum ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_35= 'padding-right' ( (lv_paddingRightValue_36_0= ruleUnsignedNumber ) ) ( (lv_paddingRightUnit_37_0= ruleUnitEnum ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_38= 'margin-top' ( (lv_marginTopValue_39_0= ruleUnsignedNumber ) ) ( (lv_marginTopUnit_40_0= ruleUnitEnum ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_41= 'margin-bottom' ( (lv_marginBottomValue_42_0= ruleUnsignedNumber ) ) ( (lv_marginBottomUnit_43_0= ruleUnitEnum ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_44= 'margin-left' ( (lv_marginLeftValue_45_0= ruleUnsignedNumber ) ) ( (lv_marginLeftUnit_46_0= ruleUnitEnum ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_47= 'margin-right' ( (lv_marginRightValue_48_0= ruleUnsignedNumber ) ) ( (lv_marginRightUnit_49_0= ruleUnitEnum ) ) ) ) ) ) )* ) )
+            {
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1750:1: ( ( ( ({...}? => ( ({...}? => (otherlv_6= 'formatter' ( (otherlv_7= RULE_ID ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_8= 'font' ( (otherlv_9= RULE_ID ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_10= 'backgroundcolor' ( (otherlv_11= RULE_ID ) ) (otherlv_12= 'alternate' ( (otherlv_13= RULE_ID ) ) )? ) ) ) ) | ({...}? => ( ({...}? => (otherlv_14= 'textcolor' ( (otherlv_15= RULE_ID ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_16= 'textalign' ( (lv_textalign_17_0= ruleTextAlignEnum ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_18= 'border-top' ( (lv_borderTop_19_0= ruleBorderStyle ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_20= 'border-bottom' ( (lv_borderBottom_21_0= ruleBorderStyle ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_22= 'border-left' ( (lv_borderLeft_23_0= ruleBorderStyle ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_24= 'border-right' ( (lv_borderRight_25_0= ruleBorderStyle ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_26= 'padding-top' ( (lv_paddingTopValue_27_0= ruleUnsignedNumber ) ) ( (lv_paddingTopUnit_28_0= ruleUnitEnum ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_29= 'padding-bottom' ( (lv_paddingBottomValue_30_0= ruleUnsignedNumber ) ) ( (lv_paddingBottomUnit_31_0= ruleUnitEnum ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_32= 'padding-left' ( (lv_paddingLeftValue_33_0= ruleUnsignedNumber ) ) ( (lv_paddingLeftUnit_34_0= ruleUnitEnum ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_35= 'padding-right' ( (lv_paddingRightValue_36_0= ruleUnsignedNumber ) ) ( (lv_paddingRightUnit_37_0= ruleUnitEnum ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_38= 'margin-top' ( (lv_marginTopValue_39_0= ruleUnsignedNumber ) ) ( (lv_marginTopUnit_40_0= ruleUnitEnum ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_41= 'margin-bottom' ( (lv_marginBottomValue_42_0= ruleUnsignedNumber ) ) ( (lv_marginBottomUnit_43_0= ruleUnitEnum ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_44= 'margin-left' ( (lv_marginLeftValue_45_0= ruleUnsignedNumber ) ) ( (lv_marginLeftUnit_46_0= ruleUnitEnum ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_47= 'margin-right' ( (lv_marginRightValue_48_0= ruleUnsignedNumber ) ) ( (lv_marginRightUnit_49_0= ruleUnitEnum ) ) ) ) ) ) )* ) )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1751:2: ( ( ({...}? => ( ({...}? => (otherlv_6= 'formatter' ( (otherlv_7= RULE_ID ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_8= 'font' ( (otherlv_9= RULE_ID ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_10= 'backgroundcolor' ( (otherlv_11= RULE_ID ) ) (otherlv_12= 'alternate' ( (otherlv_13= RULE_ID ) ) )? ) ) ) ) | ({...}? => ( ({...}? => (otherlv_14= 'textcolor' ( (otherlv_15= RULE_ID ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_16= 'textalign' ( (lv_textalign_17_0= ruleTextAlignEnum ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_18= 'border-top' ( (lv_borderTop_19_0= ruleBorderStyle ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_20= 'border-bottom' ( (lv_borderBottom_21_0= ruleBorderStyle ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_22= 'border-left' ( (lv_borderLeft_23_0= ruleBorderStyle ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_24= 'border-right' ( (lv_borderRight_25_0= ruleBorderStyle ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_26= 'padding-top' ( (lv_paddingTopValue_27_0= ruleUnsignedNumber ) ) ( (lv_paddingTopUnit_28_0= ruleUnitEnum ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_29= 'padding-bottom' ( (lv_paddingBottomValue_30_0= ruleUnsignedNumber ) ) ( (lv_paddingBottomUnit_31_0= ruleUnitEnum ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_32= 'padding-left' ( (lv_paddingLeftValue_33_0= ruleUnsignedNumber ) ) ( (lv_paddingLeftUnit_34_0= ruleUnitEnum ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_35= 'padding-right' ( (lv_paddingRightValue_36_0= ruleUnsignedNumber ) ) ( (lv_paddingRightUnit_37_0= ruleUnitEnum ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_38= 'margin-top' ( (lv_marginTopValue_39_0= ruleUnsignedNumber ) ) ( (lv_marginTopUnit_40_0= ruleUnitEnum ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_41= 'margin-bottom' ( (lv_marginBottomValue_42_0= ruleUnsignedNumber ) ) ( (lv_marginBottomUnit_43_0= ruleUnitEnum ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_44= 'margin-left' ( (lv_marginLeftValue_45_0= ruleUnsignedNumber ) ) ( (lv_marginLeftUnit_46_0= ruleUnitEnum ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_47= 'margin-right' ( (lv_marginRightValue_48_0= ruleUnsignedNumber ) ) ( (lv_marginRightUnit_49_0= ruleUnitEnum ) ) ) ) ) ) )* )
+            {
+            getUnorderedGroupHelper().enter(grammarAccess.getStyleAccess().getUnorderedGroup_4());
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1754:2: ( ( ({...}? => ( ({...}? => (otherlv_6= 'formatter' ( (otherlv_7= RULE_ID ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_8= 'font' ( (otherlv_9= RULE_ID ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_10= 'backgroundcolor' ( (otherlv_11= RULE_ID ) ) (otherlv_12= 'alternate' ( (otherlv_13= RULE_ID ) ) )? ) ) ) ) | ({...}? => ( ({...}? => (otherlv_14= 'textcolor' ( (otherlv_15= RULE_ID ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_16= 'textalign' ( (lv_textalign_17_0= ruleTextAlignEnum ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_18= 'border-top' ( (lv_borderTop_19_0= ruleBorderStyle ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_20= 'border-bottom' ( (lv_borderBottom_21_0= ruleBorderStyle ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_22= 'border-left' ( (lv_borderLeft_23_0= ruleBorderStyle ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_24= 'border-right' ( (lv_borderRight_25_0= ruleBorderStyle ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_26= 'padding-top' ( (lv_paddingTopValue_27_0= ruleUnsignedNumber ) ) ( (lv_paddingTopUnit_28_0= ruleUnitEnum ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_29= 'padding-bottom' ( (lv_paddingBottomValue_30_0= ruleUnsignedNumber ) ) ( (lv_paddingBottomUnit_31_0= ruleUnitEnum ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_32= 'padding-left' ( (lv_paddingLeftValue_33_0= ruleUnsignedNumber ) ) ( (lv_paddingLeftUnit_34_0= ruleUnitEnum ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_35= 'padding-right' ( (lv_paddingRightValue_36_0= ruleUnsignedNumber ) ) ( (lv_paddingRightUnit_37_0= ruleUnitEnum ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_38= 'margin-top' ( (lv_marginTopValue_39_0= ruleUnsignedNumber ) ) ( (lv_marginTopUnit_40_0= ruleUnitEnum ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_41= 'margin-bottom' ( (lv_marginBottomValue_42_0= ruleUnsignedNumber ) ) ( (lv_marginBottomUnit_43_0= ruleUnitEnum ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_44= 'margin-left' ( (lv_marginLeftValue_45_0= ruleUnsignedNumber ) ) ( (lv_marginLeftUnit_46_0= ruleUnitEnum ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_47= 'margin-right' ( (lv_marginRightValue_48_0= ruleUnsignedNumber ) ) ( (lv_marginRightUnit_49_0= ruleUnitEnum ) ) ) ) ) ) )* )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1755:3: ( ({...}? => ( ({...}? => (otherlv_6= 'formatter' ( (otherlv_7= RULE_ID ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_8= 'font' ( (otherlv_9= RULE_ID ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_10= 'backgroundcolor' ( (otherlv_11= RULE_ID ) ) (otherlv_12= 'alternate' ( (otherlv_13= RULE_ID ) ) )? ) ) ) ) | ({...}? => ( ({...}? => (otherlv_14= 'textcolor' ( (otherlv_15= RULE_ID ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_16= 'textalign' ( (lv_textalign_17_0= ruleTextAlignEnum ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_18= 'border-top' ( (lv_borderTop_19_0= ruleBorderStyle ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_20= 'border-bottom' ( (lv_borderBottom_21_0= ruleBorderStyle ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_22= 'border-left' ( (lv_borderLeft_23_0= ruleBorderStyle ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_24= 'border-right' ( (lv_borderRight_25_0= ruleBorderStyle ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_26= 'padding-top' ( (lv_paddingTopValue_27_0= ruleUnsignedNumber ) ) ( (lv_paddingTopUnit_28_0= ruleUnitEnum ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_29= 'padding-bottom' ( (lv_paddingBottomValue_30_0= ruleUnsignedNumber ) ) ( (lv_paddingBottomUnit_31_0= ruleUnitEnum ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_32= 'padding-left' ( (lv_paddingLeftValue_33_0= ruleUnsignedNumber ) ) ( (lv_paddingLeftUnit_34_0= ruleUnitEnum ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_35= 'padding-right' ( (lv_paddingRightValue_36_0= ruleUnsignedNumber ) ) ( (lv_paddingRightUnit_37_0= ruleUnitEnum ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_38= 'margin-top' ( (lv_marginTopValue_39_0= ruleUnsignedNumber ) ) ( (lv_marginTopUnit_40_0= ruleUnitEnum ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_41= 'margin-bottom' ( (lv_marginBottomValue_42_0= ruleUnsignedNumber ) ) ( (lv_marginBottomUnit_43_0= ruleUnitEnum ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_44= 'margin-left' ( (lv_marginLeftValue_45_0= ruleUnsignedNumber ) ) ( (lv_marginLeftUnit_46_0= ruleUnitEnum ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_47= 'margin-right' ( (lv_marginRightValue_48_0= ruleUnsignedNumber ) ) ( (lv_marginRightUnit_49_0= ruleUnitEnum ) ) ) ) ) ) )*
+            {
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1755:3: ( ({...}? => ( ({...}? => (otherlv_6= 'formatter' ( (otherlv_7= RULE_ID ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_8= 'font' ( (otherlv_9= RULE_ID ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_10= 'backgroundcolor' ( (otherlv_11= RULE_ID ) ) (otherlv_12= 'alternate' ( (otherlv_13= RULE_ID ) ) )? ) ) ) ) | ({...}? => ( ({...}? => (otherlv_14= 'textcolor' ( (otherlv_15= RULE_ID ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_16= 'textalign' ( (lv_textalign_17_0= ruleTextAlignEnum ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_18= 'border-top' ( (lv_borderTop_19_0= ruleBorderStyle ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_20= 'border-bottom' ( (lv_borderBottom_21_0= ruleBorderStyle ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_22= 'border-left' ( (lv_borderLeft_23_0= ruleBorderStyle ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_24= 'border-right' ( (lv_borderRight_25_0= ruleBorderStyle ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_26= 'padding-top' ( (lv_paddingTopValue_27_0= ruleUnsignedNumber ) ) ( (lv_paddingTopUnit_28_0= ruleUnitEnum ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_29= 'padding-bottom' ( (lv_paddingBottomValue_30_0= ruleUnsignedNumber ) ) ( (lv_paddingBottomUnit_31_0= ruleUnitEnum ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_32= 'padding-left' ( (lv_paddingLeftValue_33_0= ruleUnsignedNumber ) ) ( (lv_paddingLeftUnit_34_0= ruleUnitEnum ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_35= 'padding-right' ( (lv_paddingRightValue_36_0= ruleUnsignedNumber ) ) ( (lv_paddingRightUnit_37_0= ruleUnitEnum ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_38= 'margin-top' ( (lv_marginTopValue_39_0= ruleUnsignedNumber ) ) ( (lv_marginTopUnit_40_0= ruleUnitEnum ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_41= 'margin-bottom' ( (lv_marginBottomValue_42_0= ruleUnsignedNumber ) ) ( (lv_marginBottomUnit_43_0= ruleUnitEnum ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_44= 'margin-left' ( (lv_marginLeftValue_45_0= ruleUnsignedNumber ) ) ( (lv_marginLeftUnit_46_0= ruleUnitEnum ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_47= 'margin-right' ( (lv_marginRightValue_48_0= ruleUnsignedNumber ) ) ( (lv_marginRightUnit_49_0= ruleUnitEnum ) ) ) ) ) ) )*
+            loop23:
+            do {
+                int alt23=18;
+                int LA23_0 = input.LA(1);
+
+                if ( LA23_0 ==44 && getUnorderedGroupHelper().canSelect(grammarAccess.getStyleAccess().getUnorderedGroup_4(), 0) ) {
+                    alt23=1;
+                }
+                else if ( LA23_0 ==38 && getUnorderedGroupHelper().canSelect(grammarAccess.getStyleAccess().getUnorderedGroup_4(), 1) ) {
+                    alt23=2;
+                }
+                else if ( LA23_0 ==45 && getUnorderedGroupHelper().canSelect(grammarAccess.getStyleAccess().getUnorderedGroup_4(), 2) ) {
+                    alt23=3;
+                }
+                else if ( LA23_0 ==47 && getUnorderedGroupHelper().canSelect(grammarAccess.getStyleAccess().getUnorderedGroup_4(), 3) ) {
+                    alt23=4;
+                }
+                else if ( LA23_0 ==48 && getUnorderedGroupHelper().canSelect(grammarAccess.getStyleAccess().getUnorderedGroup_4(), 4) ) {
+                    alt23=5;
+                }
+                else if ( LA23_0 ==49 && getUnorderedGroupHelper().canSelect(grammarAccess.getStyleAccess().getUnorderedGroup_4(), 5) ) {
+                    alt23=6;
+                }
+                else if ( LA23_0 ==50 && getUnorderedGroupHelper().canSelect(grammarAccess.getStyleAccess().getUnorderedGroup_4(), 6) ) {
+                    alt23=7;
+                }
+                else if ( LA23_0 ==51 && getUnorderedGroupHelper().canSelect(grammarAccess.getStyleAccess().getUnorderedGroup_4(), 7) ) {
+                    alt23=8;
+                }
+                else if ( LA23_0 ==52 && getUnorderedGroupHelper().canSelect(grammarAccess.getStyleAccess().getUnorderedGroup_4(), 8) ) {
+                    alt23=9;
+                }
+                else if ( LA23_0 ==53 && getUnorderedGroupHelper().canSelect(grammarAccess.getStyleAccess().getUnorderedGroup_4(), 9) ) {
+                    alt23=10;
+                }
+                else if ( LA23_0 ==54 && getUnorderedGroupHelper().canSelect(grammarAccess.getStyleAccess().getUnorderedGroup_4(), 10) ) {
+                    alt23=11;
+                }
+                else if ( LA23_0 ==55 && getUnorderedGroupHelper().canSelect(grammarAccess.getStyleAccess().getUnorderedGroup_4(), 11) ) {
+                    alt23=12;
+                }
+                else if ( LA23_0 ==56 && getUnorderedGroupHelper().canSelect(grammarAccess.getStyleAccess().getUnorderedGroup_4(), 12) ) {
+                    alt23=13;
+                }
+                else if ( LA23_0 ==57 && getUnorderedGroupHelper().canSelect(grammarAccess.getStyleAccess().getUnorderedGroup_4(), 13) ) {
+                    alt23=14;
+                }
+                else if ( LA23_0 ==58 && getUnorderedGroupHelper().canSelect(grammarAccess.getStyleAccess().getUnorderedGroup_4(), 14) ) {
+                    alt23=15;
+                }
+                else if ( LA23_0 ==59 && getUnorderedGroupHelper().canSelect(grammarAccess.getStyleAccess().getUnorderedGroup_4(), 15) ) {
+                    alt23=16;
+                }
+                else if ( LA23_0 ==60 && getUnorderedGroupHelper().canSelect(grammarAccess.getStyleAccess().getUnorderedGroup_4(), 16) ) {
+                    alt23=17;
+                }
+
+
+                switch (alt23) {
+            	case 1 :
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1757:4: ({...}? => ( ({...}? => (otherlv_6= 'formatter' ( (otherlv_7= RULE_ID ) ) ) ) ) )
+            	    {
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1757:4: ({...}? => ( ({...}? => (otherlv_6= 'formatter' ( (otherlv_7= RULE_ID ) ) ) ) ) )
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1758:5: {...}? => ( ({...}? => (otherlv_6= 'formatter' ( (otherlv_7= RULE_ID ) ) ) ) )
+            	    {
+            	    if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getStyleAccess().getUnorderedGroup_4(), 0) ) {
+            	        if (state.backtracking>0) {state.failed=true; return current;}
+            	        throw new FailedPredicateException(input, "ruleStyle", "getUnorderedGroupHelper().canSelect(grammarAccess.getStyleAccess().getUnorderedGroup_4(), 0)");
+            	    }
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1758:102: ( ({...}? => (otherlv_6= 'formatter' ( (otherlv_7= RULE_ID ) ) ) ) )
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1759:6: ({...}? => (otherlv_6= 'formatter' ( (otherlv_7= RULE_ID ) ) ) )
+            	    {
+            	    getUnorderedGroupHelper().select(grammarAccess.getStyleAccess().getUnorderedGroup_4(), 0);
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1762:6: ({...}? => (otherlv_6= 'formatter' ( (otherlv_7= RULE_ID ) ) ) )
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1762:7: {...}? => (otherlv_6= 'formatter' ( (otherlv_7= RULE_ID ) ) )
+            	    {
+            	    if ( !((true)) ) {
+            	        if (state.backtracking>0) {state.failed=true; return current;}
+            	        throw new FailedPredicateException(input, "ruleStyle", "true");
+            	    }
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1762:16: (otherlv_6= 'formatter' ( (otherlv_7= RULE_ID ) ) )
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1762:18: otherlv_6= 'formatter' ( (otherlv_7= RULE_ID ) )
+            	    {
+            	    otherlv_6=(Token)match(input,44,FOLLOW_44_in_ruleStyle3615); if (state.failed) return current;
+            	    if ( state.backtracking==0 ) {
+
+            	          	newLeafNode(otherlv_6, grammarAccess.getStyleAccess().getFormatterKeyword_4_0_0());
+            	          
+            	    }
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1766:1: ( (otherlv_7= RULE_ID ) )
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1767:1: (otherlv_7= RULE_ID )
+            	    {
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1767:1: (otherlv_7= RULE_ID )
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1768:3: otherlv_7= RULE_ID
+            	    {
+            	    if ( state.backtracking==0 ) {
+
+            	      			if (current==null) {
+            	      	            current = createModelElement(grammarAccess.getStyleRule());
+            	      	        }
+            	              
+            	    }
+            	    otherlv_7=(Token)match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleStyle3635); if (state.failed) return current;
+            	    if ( state.backtracking==0 ) {
+
+            	      		newLeafNode(otherlv_7, grammarAccess.getStyleAccess().getFormatSomeFormatCrossReference_4_0_1_0()); 
+            	      	
+            	    }
+
+            	    }
+
+
+            	    }
+
+
+            	    }
+
+
+            	    }
+
+            	    getUnorderedGroupHelper().returnFromSelection(grammarAccess.getStyleAccess().getUnorderedGroup_4());
+
+            	    }
+
+
+            	    }
+
+
+            	    }
+            	    break;
+            	case 2 :
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1786:4: ({...}? => ( ({...}? => (otherlv_8= 'font' ( (otherlv_9= RULE_ID ) ) ) ) ) )
+            	    {
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1786:4: ({...}? => ( ({...}? => (otherlv_8= 'font' ( (otherlv_9= RULE_ID ) ) ) ) ) )
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1787:5: {...}? => ( ({...}? => (otherlv_8= 'font' ( (otherlv_9= RULE_ID ) ) ) ) )
+            	    {
+            	    if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getStyleAccess().getUnorderedGroup_4(), 1) ) {
+            	        if (state.backtracking>0) {state.failed=true; return current;}
+            	        throw new FailedPredicateException(input, "ruleStyle", "getUnorderedGroupHelper().canSelect(grammarAccess.getStyleAccess().getUnorderedGroup_4(), 1)");
+            	    }
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1787:102: ( ({...}? => (otherlv_8= 'font' ( (otherlv_9= RULE_ID ) ) ) ) )
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1788:6: ({...}? => (otherlv_8= 'font' ( (otherlv_9= RULE_ID ) ) ) )
+            	    {
+            	    getUnorderedGroupHelper().select(grammarAccess.getStyleAccess().getUnorderedGroup_4(), 1);
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1791:6: ({...}? => (otherlv_8= 'font' ( (otherlv_9= RULE_ID ) ) ) )
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1791:7: {...}? => (otherlv_8= 'font' ( (otherlv_9= RULE_ID ) ) )
+            	    {
+            	    if ( !((true)) ) {
+            	        if (state.backtracking>0) {state.failed=true; return current;}
+            	        throw new FailedPredicateException(input, "ruleStyle", "true");
+            	    }
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1791:16: (otherlv_8= 'font' ( (otherlv_9= RULE_ID ) ) )
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1791:18: otherlv_8= 'font' ( (otherlv_9= RULE_ID ) )
+            	    {
+            	    otherlv_8=(Token)match(input,38,FOLLOW_38_in_ruleStyle3703); if (state.failed) return current;
+            	    if ( state.backtracking==0 ) {
+
+            	          	newLeafNode(otherlv_8, grammarAccess.getStyleAccess().getFontKeyword_4_1_0());
+            	          
+            	    }
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1795:1: ( (otherlv_9= RULE_ID ) )
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1796:1: (otherlv_9= RULE_ID )
+            	    {
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1796:1: (otherlv_9= RULE_ID )
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1797:3: otherlv_9= RULE_ID
+            	    {
+            	    if ( state.backtracking==0 ) {
+
+            	      			if (current==null) {
+            	      	            current = createModelElement(grammarAccess.getStyleRule());
+            	      	        }
+            	              
+            	    }
+            	    otherlv_9=(Token)match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleStyle3723); if (state.failed) return current;
+            	    if ( state.backtracking==0 ) {
+
+            	      		newLeafNode(otherlv_9, grammarAccess.getStyleAccess().getFontFontCrossReference_4_1_1_0()); 
+            	      	
+            	    }
+
+            	    }
+
+
+            	    }
+
+
+            	    }
+
+
+            	    }
+
+            	    getUnorderedGroupHelper().returnFromSelection(grammarAccess.getStyleAccess().getUnorderedGroup_4());
+
+            	    }
+
+
+            	    }
+
+
+            	    }
+            	    break;
+            	case 3 :
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1815:4: ({...}? => ( ({...}? => (otherlv_10= 'backgroundcolor' ( (otherlv_11= RULE_ID ) ) (otherlv_12= 'alternate' ( (otherlv_13= RULE_ID ) ) )? ) ) ) )
+            	    {
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1815:4: ({...}? => ( ({...}? => (otherlv_10= 'backgroundcolor' ( (otherlv_11= RULE_ID ) ) (otherlv_12= 'alternate' ( (otherlv_13= RULE_ID ) ) )? ) ) ) )
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1816:5: {...}? => ( ({...}? => (otherlv_10= 'backgroundcolor' ( (otherlv_11= RULE_ID ) ) (otherlv_12= 'alternate' ( (otherlv_13= RULE_ID ) ) )? ) ) )
+            	    {
+            	    if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getStyleAccess().getUnorderedGroup_4(), 2) ) {
+            	        if (state.backtracking>0) {state.failed=true; return current;}
+            	        throw new FailedPredicateException(input, "ruleStyle", "getUnorderedGroupHelper().canSelect(grammarAccess.getStyleAccess().getUnorderedGroup_4(), 2)");
+            	    }
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1816:102: ( ({...}? => (otherlv_10= 'backgroundcolor' ( (otherlv_11= RULE_ID ) ) (otherlv_12= 'alternate' ( (otherlv_13= RULE_ID ) ) )? ) ) )
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1817:6: ({...}? => (otherlv_10= 'backgroundcolor' ( (otherlv_11= RULE_ID ) ) (otherlv_12= 'alternate' ( (otherlv_13= RULE_ID ) ) )? ) )
+            	    {
+            	    getUnorderedGroupHelper().select(grammarAccess.getStyleAccess().getUnorderedGroup_4(), 2);
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1820:6: ({...}? => (otherlv_10= 'backgroundcolor' ( (otherlv_11= RULE_ID ) ) (otherlv_12= 'alternate' ( (otherlv_13= RULE_ID ) ) )? ) )
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1820:7: {...}? => (otherlv_10= 'backgroundcolor' ( (otherlv_11= RULE_ID ) ) (otherlv_12= 'alternate' ( (otherlv_13= RULE_ID ) ) )? )
+            	    {
+            	    if ( !((true)) ) {
+            	        if (state.backtracking>0) {state.failed=true; return current;}
+            	        throw new FailedPredicateException(input, "ruleStyle", "true");
+            	    }
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1820:16: (otherlv_10= 'backgroundcolor' ( (otherlv_11= RULE_ID ) ) (otherlv_12= 'alternate' ( (otherlv_13= RULE_ID ) ) )? )
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1820:18: otherlv_10= 'backgroundcolor' ( (otherlv_11= RULE_ID ) ) (otherlv_12= 'alternate' ( (otherlv_13= RULE_ID ) ) )?
+            	    {
+            	    otherlv_10=(Token)match(input,45,FOLLOW_45_in_ruleStyle3791); if (state.failed) return current;
+            	    if ( state.backtracking==0 ) {
+
+            	          	newLeafNode(otherlv_10, grammarAccess.getStyleAccess().getBackgroundcolorKeyword_4_2_0());
+            	          
+            	    }
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1824:1: ( (otherlv_11= RULE_ID ) )
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1825:1: (otherlv_11= RULE_ID )
+            	    {
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1825:1: (otherlv_11= RULE_ID )
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1826:3: otherlv_11= RULE_ID
+            	    {
+            	    if ( state.backtracking==0 ) {
+
+            	      			if (current==null) {
+            	      	            current = createModelElement(grammarAccess.getStyleRule());
+            	      	        }
+            	              
+            	    }
+            	    otherlv_11=(Token)match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleStyle3811); if (state.failed) return current;
+            	    if ( state.backtracking==0 ) {
+
+            	      		newLeafNode(otherlv_11, grammarAccess.getStyleAccess().getBackgroundcolorColorCrossReference_4_2_1_0()); 
+            	      	
+            	    }
+
+            	    }
+
+
+            	    }
+
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1837:2: (otherlv_12= 'alternate' ( (otherlv_13= RULE_ID ) ) )?
+            	    int alt22=2;
+            	    switch ( input.LA(1) ) {
+            	        case 46:
+            	            {
+            	            alt22=1;
+            	            }
+            	            break;
+            	    }
+
+            	    switch (alt22) {
+            	        case 1 :
+            	            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1837:4: otherlv_12= 'alternate' ( (otherlv_13= RULE_ID ) )
+            	            {
+            	            otherlv_12=(Token)match(input,46,FOLLOW_46_in_ruleStyle3824); if (state.failed) return current;
+            	            if ( state.backtracking==0 ) {
+
+            	                  	newLeafNode(otherlv_12, grammarAccess.getStyleAccess().getAlternateKeyword_4_2_2_0());
+            	                  
+            	            }
+            	            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1841:1: ( (otherlv_13= RULE_ID ) )
+            	            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1842:1: (otherlv_13= RULE_ID )
+            	            {
+            	            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1842:1: (otherlv_13= RULE_ID )
+            	            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1843:3: otherlv_13= RULE_ID
+            	            {
+            	            if ( state.backtracking==0 ) {
+
+            	              			if (current==null) {
+            	              	            current = createModelElement(grammarAccess.getStyleRule());
+            	              	        }
+            	                      
+            	            }
+            	            otherlv_13=(Token)match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleStyle3844); if (state.failed) return current;
+            	            if ( state.backtracking==0 ) {
+
+            	              		newLeafNode(otherlv_13, grammarAccess.getStyleAccess().getBackgroundcolor_alternateColorCrossReference_4_2_2_1_0()); 
+            	              	
+            	            }
+
+            	            }
+
+
+            	            }
+
+
+            	            }
+            	            break;
+
+            	    }
+
+
+            	    }
+
+
+            	    }
+
+            	    getUnorderedGroupHelper().returnFromSelection(grammarAccess.getStyleAccess().getUnorderedGroup_4());
+
+            	    }
+
+
+            	    }
+
+
+            	    }
+            	    break;
+            	case 4 :
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1861:4: ({...}? => ( ({...}? => (otherlv_14= 'textcolor' ( (otherlv_15= RULE_ID ) ) ) ) ) )
+            	    {
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1861:4: ({...}? => ( ({...}? => (otherlv_14= 'textcolor' ( (otherlv_15= RULE_ID ) ) ) ) ) )
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1862:5: {...}? => ( ({...}? => (otherlv_14= 'textcolor' ( (otherlv_15= RULE_ID ) ) ) ) )
+            	    {
+            	    if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getStyleAccess().getUnorderedGroup_4(), 3) ) {
+            	        if (state.backtracking>0) {state.failed=true; return current;}
+            	        throw new FailedPredicateException(input, "ruleStyle", "getUnorderedGroupHelper().canSelect(grammarAccess.getStyleAccess().getUnorderedGroup_4(), 3)");
+            	    }
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1862:102: ( ({...}? => (otherlv_14= 'textcolor' ( (otherlv_15= RULE_ID ) ) ) ) )
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1863:6: ({...}? => (otherlv_14= 'textcolor' ( (otherlv_15= RULE_ID ) ) ) )
+            	    {
+            	    getUnorderedGroupHelper().select(grammarAccess.getStyleAccess().getUnorderedGroup_4(), 3);
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1866:6: ({...}? => (otherlv_14= 'textcolor' ( (otherlv_15= RULE_ID ) ) ) )
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1866:7: {...}? => (otherlv_14= 'textcolor' ( (otherlv_15= RULE_ID ) ) )
+            	    {
+            	    if ( !((true)) ) {
+            	        if (state.backtracking>0) {state.failed=true; return current;}
+            	        throw new FailedPredicateException(input, "ruleStyle", "true");
+            	    }
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1866:16: (otherlv_14= 'textcolor' ( (otherlv_15= RULE_ID ) ) )
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1866:18: otherlv_14= 'textcolor' ( (otherlv_15= RULE_ID ) )
+            	    {
+            	    otherlv_14=(Token)match(input,47,FOLLOW_47_in_ruleStyle3914); if (state.failed) return current;
+            	    if ( state.backtracking==0 ) {
+
+            	          	newLeafNode(otherlv_14, grammarAccess.getStyleAccess().getTextcolorKeyword_4_3_0());
+            	          
+            	    }
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1870:1: ( (otherlv_15= RULE_ID ) )
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1871:1: (otherlv_15= RULE_ID )
+            	    {
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1871:1: (otherlv_15= RULE_ID )
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1872:3: otherlv_15= RULE_ID
+            	    {
+            	    if ( state.backtracking==0 ) {
+
+            	      			if (current==null) {
+            	      	            current = createModelElement(grammarAccess.getStyleRule());
+            	      	        }
+            	              
+            	    }
+            	    otherlv_15=(Token)match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleStyle3934); if (state.failed) return current;
+            	    if ( state.backtracking==0 ) {
+
+            	      		newLeafNode(otherlv_15, grammarAccess.getStyleAccess().getTextcolorColorCrossReference_4_3_1_0()); 
+            	      	
+            	    }
+
+            	    }
+
+
+            	    }
+
+
+            	    }
+
+
+            	    }
+
+            	    getUnorderedGroupHelper().returnFromSelection(grammarAccess.getStyleAccess().getUnorderedGroup_4());
+
+            	    }
+
+
+            	    }
+
+
+            	    }
+            	    break;
+            	case 5 :
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1890:4: ({...}? => ( ({...}? => (otherlv_16= 'textalign' ( (lv_textalign_17_0= ruleTextAlignEnum ) ) ) ) ) )
+            	    {
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1890:4: ({...}? => ( ({...}? => (otherlv_16= 'textalign' ( (lv_textalign_17_0= ruleTextAlignEnum ) ) ) ) ) )
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1891:5: {...}? => ( ({...}? => (otherlv_16= 'textalign' ( (lv_textalign_17_0= ruleTextAlignEnum ) ) ) ) )
+            	    {
+            	    if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getStyleAccess().getUnorderedGroup_4(), 4) ) {
+            	        if (state.backtracking>0) {state.failed=true; return current;}
+            	        throw new FailedPredicateException(input, "ruleStyle", "getUnorderedGroupHelper().canSelect(grammarAccess.getStyleAccess().getUnorderedGroup_4(), 4)");
+            	    }
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1891:102: ( ({...}? => (otherlv_16= 'textalign' ( (lv_textalign_17_0= ruleTextAlignEnum ) ) ) ) )
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1892:6: ({...}? => (otherlv_16= 'textalign' ( (lv_textalign_17_0= ruleTextAlignEnum ) ) ) )
+            	    {
+            	    getUnorderedGroupHelper().select(grammarAccess.getStyleAccess().getUnorderedGroup_4(), 4);
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1895:6: ({...}? => (otherlv_16= 'textalign' ( (lv_textalign_17_0= ruleTextAlignEnum ) ) ) )
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1895:7: {...}? => (otherlv_16= 'textalign' ( (lv_textalign_17_0= ruleTextAlignEnum ) ) )
+            	    {
+            	    if ( !((true)) ) {
+            	        if (state.backtracking>0) {state.failed=true; return current;}
+            	        throw new FailedPredicateException(input, "ruleStyle", "true");
+            	    }
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1895:16: (otherlv_16= 'textalign' ( (lv_textalign_17_0= ruleTextAlignEnum ) ) )
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1895:18: otherlv_16= 'textalign' ( (lv_textalign_17_0= ruleTextAlignEnum ) )
+            	    {
+            	    otherlv_16=(Token)match(input,48,FOLLOW_48_in_ruleStyle4002); if (state.failed) return current;
+            	    if ( state.backtracking==0 ) {
+
+            	          	newLeafNode(otherlv_16, grammarAccess.getStyleAccess().getTextalignKeyword_4_4_0());
+            	          
+            	    }
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1899:1: ( (lv_textalign_17_0= ruleTextAlignEnum ) )
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1900:1: (lv_textalign_17_0= ruleTextAlignEnum )
+            	    {
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1900:1: (lv_textalign_17_0= ruleTextAlignEnum )
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1901:3: lv_textalign_17_0= ruleTextAlignEnum
+            	    {
+            	    if ( state.backtracking==0 ) {
+            	       
+            	      	        newCompositeNode(grammarAccess.getStyleAccess().getTextalignTextAlignEnumEnumRuleCall_4_4_1_0()); 
+            	      	    
+            	    }
+            	    pushFollow(FOLLOW_ruleTextAlignEnum_in_ruleStyle4023);
+            	    lv_textalign_17_0=ruleTextAlignEnum();
+
+            	    state._fsp--;
+            	    if (state.failed) return current;
+            	    if ( state.backtracking==0 ) {
+
+            	      	        if (current==null) {
+            	      	            current = createModelElementForParent(grammarAccess.getStyleRule());
+            	      	        }
+            	             		set(
+            	             			current, 
+            	             			"textalign",
+            	              		lv_textalign_17_0, 
+            	              		"TextAlignEnum");
+            	      	        afterParserOrEnumRuleCall();
+            	      	    
+            	    }
+
+            	    }
+
+
+            	    }
+
+
+            	    }
+
+
+            	    }
+
+            	    getUnorderedGroupHelper().returnFromSelection(grammarAccess.getStyleAccess().getUnorderedGroup_4());
+
+            	    }
+
+
+            	    }
+
+
+            	    }
+            	    break;
+            	case 6 :
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1924:4: ({...}? => ( ({...}? => (otherlv_18= 'border-top' ( (lv_borderTop_19_0= ruleBorderStyle ) ) ) ) ) )
+            	    {
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1924:4: ({...}? => ( ({...}? => (otherlv_18= 'border-top' ( (lv_borderTop_19_0= ruleBorderStyle ) ) ) ) ) )
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1925:5: {...}? => ( ({...}? => (otherlv_18= 'border-top' ( (lv_borderTop_19_0= ruleBorderStyle ) ) ) ) )
+            	    {
+            	    if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getStyleAccess().getUnorderedGroup_4(), 5) ) {
+            	        if (state.backtracking>0) {state.failed=true; return current;}
+            	        throw new FailedPredicateException(input, "ruleStyle", "getUnorderedGroupHelper().canSelect(grammarAccess.getStyleAccess().getUnorderedGroup_4(), 5)");
+            	    }
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1925:102: ( ({...}? => (otherlv_18= 'border-top' ( (lv_borderTop_19_0= ruleBorderStyle ) ) ) ) )
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1926:6: ({...}? => (otherlv_18= 'border-top' ( (lv_borderTop_19_0= ruleBorderStyle ) ) ) )
+            	    {
+            	    getUnorderedGroupHelper().select(grammarAccess.getStyleAccess().getUnorderedGroup_4(), 5);
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1929:6: ({...}? => (otherlv_18= 'border-top' ( (lv_borderTop_19_0= ruleBorderStyle ) ) ) )
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1929:7: {...}? => (otherlv_18= 'border-top' ( (lv_borderTop_19_0= ruleBorderStyle ) ) )
+            	    {
+            	    if ( !((true)) ) {
+            	        if (state.backtracking>0) {state.failed=true; return current;}
+            	        throw new FailedPredicateException(input, "ruleStyle", "true");
+            	    }
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1929:16: (otherlv_18= 'border-top' ( (lv_borderTop_19_0= ruleBorderStyle ) ) )
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1929:18: otherlv_18= 'border-top' ( (lv_borderTop_19_0= ruleBorderStyle ) )
+            	    {
+            	    otherlv_18=(Token)match(input,49,FOLLOW_49_in_ruleStyle4091); if (state.failed) return current;
+            	    if ( state.backtracking==0 ) {
+
+            	          	newLeafNode(otherlv_18, grammarAccess.getStyleAccess().getBorderTopKeyword_4_5_0());
+            	          
+            	    }
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1933:1: ( (lv_borderTop_19_0= ruleBorderStyle ) )
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1934:1: (lv_borderTop_19_0= ruleBorderStyle )
+            	    {
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1934:1: (lv_borderTop_19_0= ruleBorderStyle )
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1935:3: lv_borderTop_19_0= ruleBorderStyle
+            	    {
+            	    if ( state.backtracking==0 ) {
+            	       
+            	      	        newCompositeNode(grammarAccess.getStyleAccess().getBorderTopBorderStyleParserRuleCall_4_5_1_0()); 
+            	      	    
+            	    }
+            	    pushFollow(FOLLOW_ruleBorderStyle_in_ruleStyle4112);
+            	    lv_borderTop_19_0=ruleBorderStyle();
+
+            	    state._fsp--;
+            	    if (state.failed) return current;
+            	    if ( state.backtracking==0 ) {
+
+            	      	        if (current==null) {
+            	      	            current = createModelElementForParent(grammarAccess.getStyleRule());
+            	      	        }
+            	             		set(
+            	             			current, 
+            	             			"borderTop",
+            	              		lv_borderTop_19_0, 
+            	              		"BorderStyle");
+            	      	        afterParserOrEnumRuleCall();
+            	      	    
+            	    }
+
+            	    }
+
+
+            	    }
+
+
+            	    }
+
+
+            	    }
+
+            	    getUnorderedGroupHelper().returnFromSelection(grammarAccess.getStyleAccess().getUnorderedGroup_4());
+
+            	    }
+
+
+            	    }
+
+
+            	    }
+            	    break;
+            	case 7 :
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1958:4: ({...}? => ( ({...}? => (otherlv_20= 'border-bottom' ( (lv_borderBottom_21_0= ruleBorderStyle ) ) ) ) ) )
+            	    {
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1958:4: ({...}? => ( ({...}? => (otherlv_20= 'border-bottom' ( (lv_borderBottom_21_0= ruleBorderStyle ) ) ) ) ) )
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1959:5: {...}? => ( ({...}? => (otherlv_20= 'border-bottom' ( (lv_borderBottom_21_0= ruleBorderStyle ) ) ) ) )
+            	    {
+            	    if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getStyleAccess().getUnorderedGroup_4(), 6) ) {
+            	        if (state.backtracking>0) {state.failed=true; return current;}
+            	        throw new FailedPredicateException(input, "ruleStyle", "getUnorderedGroupHelper().canSelect(grammarAccess.getStyleAccess().getUnorderedGroup_4(), 6)");
+            	    }
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1959:102: ( ({...}? => (otherlv_20= 'border-bottom' ( (lv_borderBottom_21_0= ruleBorderStyle ) ) ) ) )
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1960:6: ({...}? => (otherlv_20= 'border-bottom' ( (lv_borderBottom_21_0= ruleBorderStyle ) ) ) )
+            	    {
+            	    getUnorderedGroupHelper().select(grammarAccess.getStyleAccess().getUnorderedGroup_4(), 6);
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1963:6: ({...}? => (otherlv_20= 'border-bottom' ( (lv_borderBottom_21_0= ruleBorderStyle ) ) ) )
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1963:7: {...}? => (otherlv_20= 'border-bottom' ( (lv_borderBottom_21_0= ruleBorderStyle ) ) )
+            	    {
+            	    if ( !((true)) ) {
+            	        if (state.backtracking>0) {state.failed=true; return current;}
+            	        throw new FailedPredicateException(input, "ruleStyle", "true");
+            	    }
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1963:16: (otherlv_20= 'border-bottom' ( (lv_borderBottom_21_0= ruleBorderStyle ) ) )
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1963:18: otherlv_20= 'border-bottom' ( (lv_borderBottom_21_0= ruleBorderStyle ) )
+            	    {
+            	    otherlv_20=(Token)match(input,50,FOLLOW_50_in_ruleStyle4180); if (state.failed) return current;
+            	    if ( state.backtracking==0 ) {
+
+            	          	newLeafNode(otherlv_20, grammarAccess.getStyleAccess().getBorderBottomKeyword_4_6_0());
+            	          
+            	    }
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1967:1: ( (lv_borderBottom_21_0= ruleBorderStyle ) )
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1968:1: (lv_borderBottom_21_0= ruleBorderStyle )
+            	    {
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1968:1: (lv_borderBottom_21_0= ruleBorderStyle )
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1969:3: lv_borderBottom_21_0= ruleBorderStyle
+            	    {
+            	    if ( state.backtracking==0 ) {
+            	       
+            	      	        newCompositeNode(grammarAccess.getStyleAccess().getBorderBottomBorderStyleParserRuleCall_4_6_1_0()); 
+            	      	    
+            	    }
+            	    pushFollow(FOLLOW_ruleBorderStyle_in_ruleStyle4201);
+            	    lv_borderBottom_21_0=ruleBorderStyle();
+
+            	    state._fsp--;
+            	    if (state.failed) return current;
+            	    if ( state.backtracking==0 ) {
+
+            	      	        if (current==null) {
+            	      	            current = createModelElementForParent(grammarAccess.getStyleRule());
+            	      	        }
+            	             		set(
+            	             			current, 
+            	             			"borderBottom",
+            	              		lv_borderBottom_21_0, 
+            	              		"BorderStyle");
+            	      	        afterParserOrEnumRuleCall();
+            	      	    
+            	    }
+
+            	    }
+
+
+            	    }
+
+
+            	    }
+
+
+            	    }
+
+            	    getUnorderedGroupHelper().returnFromSelection(grammarAccess.getStyleAccess().getUnorderedGroup_4());
+
+            	    }
+
+
+            	    }
+
+
+            	    }
+            	    break;
+            	case 8 :
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1992:4: ({...}? => ( ({...}? => (otherlv_22= 'border-left' ( (lv_borderLeft_23_0= ruleBorderStyle ) ) ) ) ) )
+            	    {
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1992:4: ({...}? => ( ({...}? => (otherlv_22= 'border-left' ( (lv_borderLeft_23_0= ruleBorderStyle ) ) ) ) ) )
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1993:5: {...}? => ( ({...}? => (otherlv_22= 'border-left' ( (lv_borderLeft_23_0= ruleBorderStyle ) ) ) ) )
+            	    {
+            	    if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getStyleAccess().getUnorderedGroup_4(), 7) ) {
+            	        if (state.backtracking>0) {state.failed=true; return current;}
+            	        throw new FailedPredicateException(input, "ruleStyle", "getUnorderedGroupHelper().canSelect(grammarAccess.getStyleAccess().getUnorderedGroup_4(), 7)");
+            	    }
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1993:102: ( ({...}? => (otherlv_22= 'border-left' ( (lv_borderLeft_23_0= ruleBorderStyle ) ) ) ) )
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1994:6: ({...}? => (otherlv_22= 'border-left' ( (lv_borderLeft_23_0= ruleBorderStyle ) ) ) )
+            	    {
+            	    getUnorderedGroupHelper().select(grammarAccess.getStyleAccess().getUnorderedGroup_4(), 7);
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1997:6: ({...}? => (otherlv_22= 'border-left' ( (lv_borderLeft_23_0= ruleBorderStyle ) ) ) )
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1997:7: {...}? => (otherlv_22= 'border-left' ( (lv_borderLeft_23_0= ruleBorderStyle ) ) )
+            	    {
+            	    if ( !((true)) ) {
+            	        if (state.backtracking>0) {state.failed=true; return current;}
+            	        throw new FailedPredicateException(input, "ruleStyle", "true");
+            	    }
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1997:16: (otherlv_22= 'border-left' ( (lv_borderLeft_23_0= ruleBorderStyle ) ) )
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:1997:18: otherlv_22= 'border-left' ( (lv_borderLeft_23_0= ruleBorderStyle ) )
+            	    {
+            	    otherlv_22=(Token)match(input,51,FOLLOW_51_in_ruleStyle4269); if (state.failed) return current;
+            	    if ( state.backtracking==0 ) {
+
+            	          	newLeafNode(otherlv_22, grammarAccess.getStyleAccess().getBorderLeftKeyword_4_7_0());
+            	          
+            	    }
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:2001:1: ( (lv_borderLeft_23_0= ruleBorderStyle ) )
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:2002:1: (lv_borderLeft_23_0= ruleBorderStyle )
+            	    {
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:2002:1: (lv_borderLeft_23_0= ruleBorderStyle )
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:2003:3: lv_borderLeft_23_0= ruleBorderStyle
+            	    {
+            	    if ( state.backtracking==0 ) {
+            	       
+            	      	        newCompositeNode(grammarAccess.getStyleAccess().getBorderLeftBorderStyleParserRuleCall_4_7_1_0()); 
+            	      	    
+            	    }
+            	    pushFollow(FOLLOW_ruleBorderStyle_in_ruleStyle4290);
+            	    lv_borderLeft_23_0=ruleBorderStyle();
+
+            	    state._fsp--;
+            	    if (state.failed) return current;
+            	    if ( state.backtracking==0 ) {
+
+            	      	        if (current==null) {
+            	      	            current = createModelElementForParent(grammarAccess.getStyleRule());
+            	      	        }
+            	             		set(
+            	             			current, 
+            	             			"borderLeft",
+            	              		lv_borderLeft_23_0, 
+            	              		"BorderStyle");
+            	      	        afterParserOrEnumRuleCall();
+            	      	    
+            	    }
+
+            	    }
+
+
+            	    }
+
+
+            	    }
+
+
+            	    }
+
+            	    getUnorderedGroupHelper().returnFromSelection(grammarAccess.getStyleAccess().getUnorderedGroup_4());
+
+            	    }
+
+
+            	    }
+
+
+            	    }
+            	    break;
+            	case 9 :
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:2026:4: ({...}? => ( ({...}? => (otherlv_24= 'border-right' ( (lv_borderRight_25_0= ruleBorderStyle ) ) ) ) ) )
+            	    {
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:2026:4: ({...}? => ( ({...}? => (otherlv_24= 'border-right' ( (lv_borderRight_25_0= ruleBorderStyle ) ) ) ) ) )
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:2027:5: {...}? => ( ({...}? => (otherlv_24= 'border-right' ( (lv_borderRight_25_0= ruleBorderStyle ) ) ) ) )
+            	    {
+            	    if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getStyleAccess().getUnorderedGroup_4(), 8) ) {
+            	        if (state.backtracking>0) {state.failed=true; return current;}
+            	        throw new FailedPredicateException(input, "ruleStyle", "getUnorderedGroupHelper().canSelect(grammarAccess.getStyleAccess().getUnorderedGroup_4(), 8)");
+            	    }
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:2027:102: ( ({...}? => (otherlv_24= 'border-right' ( (lv_borderRight_25_0= ruleBorderStyle ) ) ) ) )
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:2028:6: ({...}? => (otherlv_24= 'border-right' ( (lv_borderRight_25_0= ruleBorderStyle ) ) ) )
+            	    {
+            	    getUnorderedGroupHelper().select(grammarAccess.getStyleAccess().getUnorderedGroup_4(), 8);
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:2031:6: ({...}? => (otherlv_24= 'border-right' ( (lv_borderRight_25_0= ruleBorderStyle ) ) ) )
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:2031:7: {...}? => (otherlv_24= 'border-right' ( (lv_borderRight_25_0= ruleBorderStyle ) ) )
+            	    {
+            	    if ( !((true)) ) {
+            	        if (state.backtracking>0) {state.failed=true; return current;}
+            	        throw new FailedPredicateException(input, "ruleStyle", "true");
+            	    }
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:2031:16: (otherlv_24= 'border-right' ( (lv_borderRight_25_0= ruleBorderStyle ) ) )
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:2031:18: otherlv_24= 'border-right' ( (lv_borderRight_25_0= ruleBorderStyle ) )
+            	    {
+            	    otherlv_24=(Token)match(input,52,FOLLOW_52_in_ruleStyle4358); if (state.failed) return current;
+            	    if ( state.backtracking==0 ) {
+
+            	          	newLeafNode(otherlv_24, grammarAccess.getStyleAccess().getBorderRightKeyword_4_8_0());
+            	          
+            	    }
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:2035:1: ( (lv_borderRight_25_0= ruleBorderStyle ) )
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:2036:1: (lv_borderRight_25_0= ruleBorderStyle )
+            	    {
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:2036:1: (lv_borderRight_25_0= ruleBorderStyle )
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:2037:3: lv_borderRight_25_0= ruleBorderStyle
+            	    {
+            	    if ( state.backtracking==0 ) {
+            	       
+            	      	        newCompositeNode(grammarAccess.getStyleAccess().getBorderRightBorderStyleParserRuleCall_4_8_1_0()); 
+            	      	    
+            	    }
+            	    pushFollow(FOLLOW_ruleBorderStyle_in_ruleStyle4379);
+            	    lv_borderRight_25_0=ruleBorderStyle();
+
+            	    state._fsp--;
+            	    if (state.failed) return current;
+            	    if ( state.backtracking==0 ) {
+
+            	      	        if (current==null) {
+            	      	            current = createModelElementForParent(grammarAccess.getStyleRule());
+            	      	        }
+            	             		set(
+            	             			current, 
+            	             			"borderRight",
+            	              		lv_borderRight_25_0, 
+            	              		"BorderStyle");
+            	      	        afterParserOrEnumRuleCall();
+            	      	    
+            	    }
+
+            	    }
+
+
+            	    }
+
+
+            	    }
+
+
+            	    }
+
+            	    getUnorderedGroupHelper().returnFromSelection(grammarAccess.getStyleAccess().getUnorderedGroup_4());
+
+            	    }
+
+
+            	    }
+
+
+            	    }
+            	    break;
+            	case 10 :
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:2060:4: ({...}? => ( ({...}? => (otherlv_26= 'padding-top' ( (lv_paddingTopValue_27_0= ruleUnsignedNumber ) ) ( (lv_paddingTopUnit_28_0= ruleUnitEnum ) ) ) ) ) )
+            	    {
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:2060:4: ({...}? => ( ({...}? => (otherlv_26= 'padding-top' ( (lv_paddingTopValue_27_0= ruleUnsignedNumber ) ) ( (lv_paddingTopUnit_28_0= ruleUnitEnum ) ) ) ) ) )
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:2061:5: {...}? => ( ({...}? => (otherlv_26= 'padding-top' ( (lv_paddingTopValue_27_0= ruleUnsignedNumber ) ) ( (lv_paddingTopUnit_28_0= ruleUnitEnum ) ) ) ) )
+            	    {
+            	    if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getStyleAccess().getUnorderedGroup_4(), 9) ) {
+            	        if (state.backtracking>0) {state.failed=true; return current;}
+            	        throw new FailedPredicateException(input, "ruleStyle", "getUnorderedGroupHelper().canSelect(grammarAccess.getStyleAccess().getUnorderedGroup_4(), 9)");
+            	    }
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:2061:102: ( ({...}? => (otherlv_26= 'padding-top' ( (lv_paddingTopValue_27_0= ruleUnsignedNumber ) ) ( (lv_paddingTopUnit_28_0= ruleUnitEnum ) ) ) ) )
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:2062:6: ({...}? => (otherlv_26= 'padding-top' ( (lv_paddingTopValue_27_0= ruleUnsignedNumber ) ) ( (lv_paddingTopUnit_28_0= ruleUnitEnum ) ) ) )
+            	    {
+            	    getUnorderedGroupHelper().select(grammarAccess.getStyleAccess().getUnorderedGroup_4(), 9);
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:2065:6: ({...}? => (otherlv_26= 'padding-top' ( (lv_paddingTopValue_27_0= ruleUnsignedNumber ) ) ( (lv_paddingTopUnit_28_0= ruleUnitEnum ) ) ) )
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:2065:7: {...}? => (otherlv_26= 'padding-top' ( (lv_paddingTopValue_27_0= ruleUnsignedNumber ) ) ( (lv_paddingTopUnit_28_0= ruleUnitEnum ) ) )
+            	    {
+            	    if ( !((true)) ) {
+            	        if (state.backtracking>0) {state.failed=true; return current;}
+            	        throw new FailedPredicateException(input, "ruleStyle", "true");
+            	    }
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:2065:16: (otherlv_26= 'padding-top' ( (lv_paddingTopValue_27_0= ruleUnsignedNumber ) ) ( (lv_paddingTopUnit_28_0= ruleUnitEnum ) ) )
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:2065:18: otherlv_26= 'padding-top' ( (lv_paddingTopValue_27_0= ruleUnsignedNumber ) ) ( (lv_paddingTopUnit_28_0= ruleUnitEnum ) )
+            	    {
+            	    otherlv_26=(Token)match(input,53,FOLLOW_53_in_ruleStyle4447); if (state.failed) return current;
+            	    if ( state.backtracking==0 ) {
+
+            	          	newLeafNode(otherlv_26, grammarAccess.getStyleAccess().getPaddingTopKeyword_4_9_0());
+            	          
+            	    }
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:2069:1: ( (lv_paddingTopValue_27_0= ruleUnsignedNumber ) )
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:2070:1: (lv_paddingTopValue_27_0= ruleUnsignedNumber )
+            	    {
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:2070:1: (lv_paddingTopValue_27_0= ruleUnsignedNumber )
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:2071:3: lv_paddingTopValue_27_0= ruleUnsignedNumber
+            	    {
+            	    if ( state.backtracking==0 ) {
+            	       
+            	      	        newCompositeNode(grammarAccess.getStyleAccess().getPaddingTopValueUnsignedNumberParserRuleCall_4_9_1_0()); 
+            	      	    
+            	    }
+            	    pushFollow(FOLLOW_ruleUnsignedNumber_in_ruleStyle4468);
+            	    lv_paddingTopValue_27_0=ruleUnsignedNumber();
+
+            	    state._fsp--;
+            	    if (state.failed) return current;
+            	    if ( state.backtracking==0 ) {
+
+            	      	        if (current==null) {
+            	      	            current = createModelElementForParent(grammarAccess.getStyleRule());
+            	      	        }
+            	             		set(
+            	             			current, 
+            	             			"paddingTopValue",
+            	              		lv_paddingTopValue_27_0, 
+            	              		"UnsignedNumber");
+            	      	        afterParserOrEnumRuleCall();
+            	      	    
+            	    }
+
+            	    }
+
+
+            	    }
+
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:2087:2: ( (lv_paddingTopUnit_28_0= ruleUnitEnum ) )
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:2088:1: (lv_paddingTopUnit_28_0= ruleUnitEnum )
+            	    {
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:2088:1: (lv_paddingTopUnit_28_0= ruleUnitEnum )
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:2089:3: lv_paddingTopUnit_28_0= ruleUnitEnum
+            	    {
+            	    if ( state.backtracking==0 ) {
+            	       
+            	      	        newCompositeNode(grammarAccess.getStyleAccess().getPaddingTopUnitUnitEnumEnumRuleCall_4_9_2_0()); 
+            	      	    
+            	    }
+            	    pushFollow(FOLLOW_ruleUnitEnum_in_ruleStyle4489);
+            	    lv_paddingTopUnit_28_0=ruleUnitEnum();
+
+            	    state._fsp--;
+            	    if (state.failed) return current;
+            	    if ( state.backtracking==0 ) {
+
+            	      	        if (current==null) {
+            	      	            current = createModelElementForParent(grammarAccess.getStyleRule());
+            	      	        }
+            	             		set(
+            	             			current, 
+            	             			"paddingTopUnit",
+            	              		lv_paddingTopUnit_28_0, 
+            	              		"UnitEnum");
+            	      	        afterParserOrEnumRuleCall();
+            	      	    
+            	    }
+
+            	    }
+
+
+            	    }
+
+
+            	    }
+
+
+            	    }
+
+            	    getUnorderedGroupHelper().returnFromSelection(grammarAccess.getStyleAccess().getUnorderedGroup_4());
+
+            	    }
+
+
+            	    }
+
+
+            	    }
+            	    break;
+            	case 11 :
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:2112:4: ({...}? => ( ({...}? => (otherlv_29= 'padding-bottom' ( (lv_paddingBottomValue_30_0= ruleUnsignedNumber ) ) ( (lv_paddingBottomUnit_31_0= ruleUnitEnum ) ) ) ) ) )
+            	    {
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:2112:4: ({...}? => ( ({...}? => (otherlv_29= 'padding-bottom' ( (lv_paddingBottomValue_30_0= ruleUnsignedNumber ) ) ( (lv_paddingBottomUnit_31_0= ruleUnitEnum ) ) ) ) ) )
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:2113:5: {...}? => ( ({...}? => (otherlv_29= 'padding-bottom' ( (lv_paddingBottomValue_30_0= ruleUnsignedNumber ) ) ( (lv_paddingBottomUnit_31_0= ruleUnitEnum ) ) ) ) )
+            	    {
+            	    if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getStyleAccess().getUnorderedGroup_4(), 10) ) {
+            	        if (state.backtracking>0) {state.failed=true; return current;}
+            	        throw new FailedPredicateException(input, "ruleStyle", "getUnorderedGroupHelper().canSelect(grammarAccess.getStyleAccess().getUnorderedGroup_4(), 10)");
+            	    }
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:2113:103: ( ({...}? => (otherlv_29= 'padding-bottom' ( (lv_paddingBottomValue_30_0= ruleUnsignedNumber ) ) ( (lv_paddingBottomUnit_31_0= ruleUnitEnum ) ) ) ) )
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:2114:6: ({...}? => (otherlv_29= 'padding-bottom' ( (lv_paddingBottomValue_30_0= ruleUnsignedNumber ) ) ( (lv_paddingBottomUnit_31_0= ruleUnitEnum ) ) ) )
+            	    {
+            	    getUnorderedGroupHelper().select(grammarAccess.getStyleAccess().getUnorderedGroup_4(), 10);
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:2117:6: ({...}? => (otherlv_29= 'padding-bottom' ( (lv_paddingBottomValue_30_0= ruleUnsignedNumber ) ) ( (lv_paddingBottomUnit_31_0= ruleUnitEnum ) ) ) )
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:2117:7: {...}? => (otherlv_29= 'padding-bottom' ( (lv_paddingBottomValue_30_0= ruleUnsignedNumber ) ) ( (lv_paddingBottomUnit_31_0= ruleUnitEnum ) ) )
+            	    {
+            	    if ( !((true)) ) {
+            	        if (state.backtracking>0) {state.failed=true; return current;}
+            	        throw new FailedPredicateException(input, "ruleStyle", "true");
+            	    }
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:2117:16: (otherlv_29= 'padding-bottom' ( (lv_paddingBottomValue_30_0= ruleUnsignedNumber ) ) ( (lv_paddingBottomUnit_31_0= ruleUnitEnum ) ) )
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:2117:18: otherlv_29= 'padding-bottom' ( (lv_paddingBottomValue_30_0= ruleUnsignedNumber ) ) ( (lv_paddingBottomUnit_31_0= ruleUnitEnum ) )
+            	    {
+            	    otherlv_29=(Token)match(input,54,FOLLOW_54_in_ruleStyle4557); if (state.failed) return current;
+            	    if ( state.backtracking==0 ) {
+
+            	          	newLeafNode(otherlv_29, grammarAccess.getStyleAccess().getPaddingBottomKeyword_4_10_0());
+            	          
+            	    }
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:2121:1: ( (lv_paddingBottomValue_30_0= ruleUnsignedNumber ) )
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:2122:1: (lv_paddingBottomValue_30_0= ruleUnsignedNumber )
+            	    {
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:2122:1: (lv_paddingBottomValue_30_0= ruleUnsignedNumber )
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:2123:3: lv_paddingBottomValue_30_0= ruleUnsignedNumber
+            	    {
+            	    if ( state.backtracking==0 ) {
+            	       
+            	      	        newCompositeNode(grammarAccess.getStyleAccess().getPaddingBottomValueUnsignedNumberParserRuleCall_4_10_1_0()); 
+            	      	    
+            	    }
+            	    pushFollow(FOLLOW_ruleUnsignedNumber_in_ruleStyle4578);
+            	    lv_paddingBottomValue_30_0=ruleUnsignedNumber();
+
+            	    state._fsp--;
+            	    if (state.failed) return current;
+            	    if ( state.backtracking==0 ) {
+
+            	      	        if (current==null) {
+            	      	            current = createModelElementForParent(grammarAccess.getStyleRule());
+            	      	        }
+            	             		set(
+            	             			current, 
+            	             			"paddingBottomValue",
+            	              		lv_paddingBottomValue_30_0, 
+            	              		"UnsignedNumber");
+            	      	        afterParserOrEnumRuleCall();
+            	      	    
+            	    }
+
+            	    }
+
+
+            	    }
+
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:2139:2: ( (lv_paddingBottomUnit_31_0= ruleUnitEnum ) )
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:2140:1: (lv_paddingBottomUnit_31_0= ruleUnitEnum )
+            	    {
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:2140:1: (lv_paddingBottomUnit_31_0= ruleUnitEnum )
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:2141:3: lv_paddingBottomUnit_31_0= ruleUnitEnum
+            	    {
+            	    if ( state.backtracking==0 ) {
+            	       
+            	      	        newCompositeNode(grammarAccess.getStyleAccess().getPaddingBottomUnitUnitEnumEnumRuleCall_4_10_2_0()); 
+            	      	    
+            	    }
+            	    pushFollow(FOLLOW_ruleUnitEnum_in_ruleStyle4599);
+            	    lv_paddingBottomUnit_31_0=ruleUnitEnum();
+
+            	    state._fsp--;
+            	    if (state.failed) return current;
+            	    if ( state.backtracking==0 ) {
+
+            	      	        if (current==null) {
+            	      	            current = createModelElementForParent(grammarAccess.getStyleRule());
+            	      	        }
+            	             		set(
+            	             			current, 
+            	             			"paddingBottomUnit",
+            	              		lv_paddingBottomUnit_31_0, 
+            	              		"UnitEnum");
+            	      	        afterParserOrEnumRuleCall();
+            	      	    
+            	    }
+
+            	    }
+
+
+            	    }
+
+
+            	    }
+
+
+            	    }
+
+            	    getUnorderedGroupHelper().returnFromSelection(grammarAccess.getStyleAccess().getUnorderedGroup_4());
+
+            	    }
+
+
+            	    }
+
+
+            	    }
+            	    break;
+            	case 12 :
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:2164:4: ({...}? => ( ({...}? => (otherlv_32= 'padding-left' ( (lv_paddingLeftValue_33_0= ruleUnsignedNumber ) ) ( (lv_paddingLeftUnit_34_0= ruleUnitEnum ) ) ) ) ) )
+            	    {
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:2164:4: ({...}? => ( ({...}? => (otherlv_32= 'padding-left' ( (lv_paddingLeftValue_33_0= ruleUnsignedNumber ) ) ( (lv_paddingLeftUnit_34_0= ruleUnitEnum ) ) ) ) ) )
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:2165:5: {...}? => ( ({...}? => (otherlv_32= 'padding-left' ( (lv_paddingLeftValue_33_0= ruleUnsignedNumber ) ) ( (lv_paddingLeftUnit_34_0= ruleUnitEnum ) ) ) ) )
+            	    {
+            	    if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getStyleAccess().getUnorderedGroup_4(), 11) ) {
+            	        if (state.backtracking>0) {state.failed=true; return current;}
+            	        throw new FailedPredicateException(input, "ruleStyle", "getUnorderedGroupHelper().canSelect(grammarAccess.getStyleAccess().getUnorderedGroup_4(), 11)");
+            	    }
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:2165:103: ( ({...}? => (otherlv_32= 'padding-left' ( (lv_paddingLeftValue_33_0= ruleUnsignedNumber ) ) ( (lv_paddingLeftUnit_34_0= ruleUnitEnum ) ) ) ) )
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:2166:6: ({...}? => (otherlv_32= 'padding-left' ( (lv_paddingLeftValue_33_0= ruleUnsignedNumber ) ) ( (lv_paddingLeftUnit_34_0= ruleUnitEnum ) ) ) )
+            	    {
+            	    getUnorderedGroupHelper().select(grammarAccess.getStyleAccess().getUnorderedGroup_4(), 11);
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:2169:6: ({...}? => (otherlv_32= 'padding-left' ( (lv_paddingLeftValue_33_0= ruleUnsignedNumber ) ) ( (lv_paddingLeftUnit_34_0= ruleUnitEnum ) ) ) )
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:2169:7: {...}? => (otherlv_32= 'padding-left' ( (lv_paddingLeftValue_33_0= ruleUnsignedNumber ) ) ( (lv_paddingLeftUnit_34_0= ruleUnitEnum ) ) )
+            	    {
+            	    if ( !((true)) ) {
+            	        if (state.backtracking>0) {state.failed=true; return current;}
+            	        throw new FailedPredicateException(input, "ruleStyle", "true");
+            	    }
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:2169:16: (otherlv_32= 'padding-left' ( (lv_paddingLeftValue_33_0= ruleUnsignedNumber ) ) ( (lv_paddingLeftUnit_34_0= ruleUnitEnum ) ) )
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:2169:18: otherlv_32= 'padding-left' ( (lv_paddingLeftValue_33_0= ruleUnsignedNumber ) ) ( (lv_paddingLeftUnit_34_0= ruleUnitEnum ) )
+            	    {
+            	    otherlv_32=(Token)match(input,55,FOLLOW_55_in_ruleStyle4667); if (state.failed) return current;
+            	    if ( state.backtracking==0 ) {
+
+            	          	newLeafNode(otherlv_32, grammarAccess.getStyleAccess().getPaddingLeftKeyword_4_11_0());
+            	          
+            	    }
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:2173:1: ( (lv_paddingLeftValue_33_0= ruleUnsignedNumber ) )
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:2174:1: (lv_paddingLeftValue_33_0= ruleUnsignedNumber )
+            	    {
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:2174:1: (lv_paddingLeftValue_33_0= ruleUnsignedNumber )
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:2175:3: lv_paddingLeftValue_33_0= ruleUnsignedNumber
+            	    {
+            	    if ( state.backtracking==0 ) {
+            	       
+            	      	        newCompositeNode(grammarAccess.getStyleAccess().getPaddingLeftValueUnsignedNumberParserRuleCall_4_11_1_0()); 
+            	      	    
+            	    }
+            	    pushFollow(FOLLOW_ruleUnsignedNumber_in_ruleStyle4688);
+            	    lv_paddingLeftValue_33_0=ruleUnsignedNumber();
+
+            	    state._fsp--;
+            	    if (state.failed) return current;
+            	    if ( state.backtracking==0 ) {
+
+            	      	        if (current==null) {
+            	      	            current = createModelElementForParent(grammarAccess.getStyleRule());
+            	      	        }
+            	             		set(
+            	             			current, 
+            	             			"paddingLeftValue",
+            	              		lv_paddingLeftValue_33_0, 
+            	              		"UnsignedNumber");
+            	      	        afterParserOrEnumRuleCall();
+            	      	    
+            	    }
+
+            	    }
+
+
+            	    }
+
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:2191:2: ( (lv_paddingLeftUnit_34_0= ruleUnitEnum ) )
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:2192:1: (lv_paddingLeftUnit_34_0= ruleUnitEnum )
+            	    {
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:2192:1: (lv_paddingLeftUnit_34_0= ruleUnitEnum )
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:2193:3: lv_paddingLeftUnit_34_0= ruleUnitEnum
+            	    {
+            	    if ( state.backtracking==0 ) {
+            	       
+            	      	        newCompositeNode(grammarAccess.getStyleAccess().getPaddingLeftUnitUnitEnumEnumRuleCall_4_11_2_0()); 
+            	      	    
+            	    }
+            	    pushFollow(FOLLOW_ruleUnitEnum_in_ruleStyle4709);
+            	    lv_paddingLeftUnit_34_0=ruleUnitEnum();
+
+            	    state._fsp--;
+            	    if (state.failed) return current;
+            	    if ( state.backtracking==0 ) {
+
+            	      	        if (current==null) {
+            	      	            current = createModelElementForParent(grammarAccess.getStyleRule());
+            	      	        }
+            	             		set(
+            	             			current, 
+            	             			"paddingLeftUnit",
+            	              		lv_paddingLeftUnit_34_0, 
+            	              		"UnitEnum");
+            	      	        afterParserOrEnumRuleCall();
+            	      	    
+            	    }
+
+            	    }
+
+
+            	    }
+
+
+            	    }
+
+
+            	    }
+
+            	    getUnorderedGroupHelper().returnFromSelection(grammarAccess.getStyleAccess().getUnorderedGroup_4());
+
+            	    }
+
+
+            	    }
+
+
+            	    }
+            	    break;
+            	case 13 :
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:2216:4: ({...}? => ( ({...}? => (otherlv_35= 'padding-right' ( (lv_paddingRightValue_36_0= ruleUnsignedNumber ) ) ( (lv_paddingRightUnit_37_0= ruleUnitEnum ) ) ) ) ) )
+            	    {
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:2216:4: ({...}? => ( ({...}? => (otherlv_35= 'padding-right' ( (lv_paddingRightValue_36_0= ruleUnsignedNumber ) ) ( (lv_paddingRightUnit_37_0= ruleUnitEnum ) ) ) ) ) )
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:2217:5: {...}? => ( ({...}? => (otherlv_35= 'padding-right' ( (lv_paddingRightValue_36_0= ruleUnsignedNumber ) ) ( (lv_paddingRightUnit_37_0= ruleUnitEnum ) ) ) ) )
+            	    {
+            	    if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getStyleAccess().getUnorderedGroup_4(), 12) ) {
+            	        if (state.backtracking>0) {state.failed=true; return current;}
+            	        throw new FailedPredicateException(input, "ruleStyle", "getUnorderedGroupHelper().canSelect(grammarAccess.getStyleAccess().getUnorderedGroup_4(), 12)");
+            	    }
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:2217:103: ( ({...}? => (otherlv_35= 'padding-right' ( (lv_paddingRightValue_36_0= ruleUnsignedNumber ) ) ( (lv_paddingRightUnit_37_0= ruleUnitEnum ) ) ) ) )
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:2218:6: ({...}? => (otherlv_35= 'padding-right' ( (lv_paddingRightValue_36_0= ruleUnsignedNumber ) ) ( (lv_paddingRightUnit_37_0= ruleUnitEnum ) ) ) )
+            	    {
+            	    getUnorderedGroupHelper().select(grammarAccess.getStyleAccess().getUnorderedGroup_4(), 12);
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:2221:6: ({...}? => (otherlv_35= 'padding-right' ( (lv_paddingRightValue_36_0= ruleUnsignedNumber ) ) ( (lv_paddingRightUnit_37_0= ruleUnitEnum ) ) ) )
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:2221:7: {...}? => (otherlv_35= 'padding-right' ( (lv_paddingRightValue_36_0= ruleUnsignedNumber ) ) ( (lv_paddingRightUnit_37_0= ruleUnitEnum ) ) )
+            	    {
+            	    if ( !((true)) ) {
+            	        if (state.backtracking>0) {state.failed=true; return current;}
+            	        throw new FailedPredicateException(input, "ruleStyle", "true");
+            	    }
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:2221:16: (otherlv_35= 'padding-right' ( (lv_paddingRightValue_36_0= ruleUnsignedNumber ) ) ( (lv_paddingRightUnit_37_0= ruleUnitEnum ) ) )
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:2221:18: otherlv_35= 'padding-right' ( (lv_paddingRightValue_36_0= ruleUnsignedNumber ) ) ( (lv_paddingRightUnit_37_0= ruleUnitEnum ) )
+            	    {
+            	    otherlv_35=(Token)match(input,56,FOLLOW_56_in_ruleStyle4777); if (state.failed) return current;
+            	    if ( state.backtracking==0 ) {
+
+            	          	newLeafNode(otherlv_35, grammarAccess.getStyleAccess().getPaddingRightKeyword_4_12_0());
+            	          
+            	    }
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:2225:1: ( (lv_paddingRightValue_36_0= ruleUnsignedNumber ) )
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:2226:1: (lv_paddingRightValue_36_0= ruleUnsignedNumber )
+            	    {
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:2226:1: (lv_paddingRightValue_36_0= ruleUnsignedNumber )
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:2227:3: lv_paddingRightValue_36_0= ruleUnsignedNumber
+            	    {
+            	    if ( state.backtracking==0 ) {
+            	       
+            	      	        newCompositeNode(grammarAccess.getStyleAccess().getPaddingRightValueUnsignedNumberParserRuleCall_4_12_1_0()); 
+            	      	    
+            	    }
+            	    pushFollow(FOLLOW_ruleUnsignedNumber_in_ruleStyle4798);
+            	    lv_paddingRightValue_36_0=ruleUnsignedNumber();
+
+            	    state._fsp--;
+            	    if (state.failed) return current;
+            	    if ( state.backtracking==0 ) {
+
+            	      	        if (current==null) {
+            	      	            current = createModelElementForParent(grammarAccess.getStyleRule());
+            	      	        }
+            	             		set(
+            	             			current, 
+            	             			"paddingRightValue",
+            	              		lv_paddingRightValue_36_0, 
+            	              		"UnsignedNumber");
+            	      	        afterParserOrEnumRuleCall();
+            	      	    
+            	    }
+
+            	    }
+
+
+            	    }
+
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:2243:2: ( (lv_paddingRightUnit_37_0= ruleUnitEnum ) )
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:2244:1: (lv_paddingRightUnit_37_0= ruleUnitEnum )
+            	    {
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:2244:1: (lv_paddingRightUnit_37_0= ruleUnitEnum )
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:2245:3: lv_paddingRightUnit_37_0= ruleUnitEnum
+            	    {
+            	    if ( state.backtracking==0 ) {
+            	       
+            	      	        newCompositeNode(grammarAccess.getStyleAccess().getPaddingRightUnitUnitEnumEnumRuleCall_4_12_2_0()); 
+            	      	    
+            	    }
+            	    pushFollow(FOLLOW_ruleUnitEnum_in_ruleStyle4819);
+            	    lv_paddingRightUnit_37_0=ruleUnitEnum();
+
+            	    state._fsp--;
+            	    if (state.failed) return current;
+            	    if ( state.backtracking==0 ) {
+
+            	      	        if (current==null) {
+            	      	            current = createModelElementForParent(grammarAccess.getStyleRule());
+            	      	        }
+            	             		set(
+            	             			current, 
+            	             			"paddingRightUnit",
+            	              		lv_paddingRightUnit_37_0, 
+            	              		"UnitEnum");
+            	      	        afterParserOrEnumRuleCall();
+            	      	    
+            	    }
+
+            	    }
+
+
+            	    }
+
+
+            	    }
+
+
+            	    }
+
+            	    getUnorderedGroupHelper().returnFromSelection(grammarAccess.getStyleAccess().getUnorderedGroup_4());
+
+            	    }
+
+
+            	    }
+
+
+            	    }
+            	    break;
+            	case 14 :
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:2268:4: ({...}? => ( ({...}? => (otherlv_38= 'margin-top' ( (lv_marginTopValue_39_0= ruleUnsignedNumber ) ) ( (lv_marginTopUnit_40_0= ruleUnitEnum ) ) ) ) ) )
+            	    {
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:2268:4: ({...}? => ( ({...}? => (otherlv_38= 'margin-top' ( (lv_marginTopValue_39_0= ruleUnsignedNumber ) ) ( (lv_marginTopUnit_40_0= ruleUnitEnum ) ) ) ) ) )
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:2269:5: {...}? => ( ({...}? => (otherlv_38= 'margin-top' ( (lv_marginTopValue_39_0= ruleUnsignedNumber ) ) ( (lv_marginTopUnit_40_0= ruleUnitEnum ) ) ) ) )
+            	    {
+            	    if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getStyleAccess().getUnorderedGroup_4(), 13) ) {
+            	        if (state.backtracking>0) {state.failed=true; return current;}
+            	        throw new FailedPredicateException(input, "ruleStyle", "getUnorderedGroupHelper().canSelect(grammarAccess.getStyleAccess().getUnorderedGroup_4(), 13)");
+            	    }
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:2269:103: ( ({...}? => (otherlv_38= 'margin-top' ( (lv_marginTopValue_39_0= ruleUnsignedNumber ) ) ( (lv_marginTopUnit_40_0= ruleUnitEnum ) ) ) ) )
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:2270:6: ({...}? => (otherlv_38= 'margin-top' ( (lv_marginTopValue_39_0= ruleUnsignedNumber ) ) ( (lv_marginTopUnit_40_0= ruleUnitEnum ) ) ) )
+            	    {
+            	    getUnorderedGroupHelper().select(grammarAccess.getStyleAccess().getUnorderedGroup_4(), 13);
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:2273:6: ({...}? => (otherlv_38= 'margin-top' ( (lv_marginTopValue_39_0= ruleUnsignedNumber ) ) ( (lv_marginTopUnit_40_0= ruleUnitEnum ) ) ) )
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:2273:7: {...}? => (otherlv_38= 'margin-top' ( (lv_marginTopValue_39_0= ruleUnsignedNumber ) ) ( (lv_marginTopUnit_40_0= ruleUnitEnum ) ) )
+            	    {
+            	    if ( !((true)) ) {
+            	        if (state.backtracking>0) {state.failed=true; return current;}
+            	        throw new FailedPredicateException(input, "ruleStyle", "true");
+            	    }
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:2273:16: (otherlv_38= 'margin-top' ( (lv_marginTopValue_39_0= ruleUnsignedNumber ) ) ( (lv_marginTopUnit_40_0= ruleUnitEnum ) ) )
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:2273:18: otherlv_38= 'margin-top' ( (lv_marginTopValue_39_0= ruleUnsignedNumber ) ) ( (lv_marginTopUnit_40_0= ruleUnitEnum ) )
+            	    {
+            	    otherlv_38=(Token)match(input,57,FOLLOW_57_in_ruleStyle4887); if (state.failed) return current;
+            	    if ( state.backtracking==0 ) {
+
+            	          	newLeafNode(otherlv_38, grammarAccess.getStyleAccess().getMarginTopKeyword_4_13_0());
+            	          
+            	    }
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:2277:1: ( (lv_marginTopValue_39_0= ruleUnsignedNumber ) )
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:2278:1: (lv_marginTopValue_39_0= ruleUnsignedNumber )
+            	    {
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:2278:1: (lv_marginTopValue_39_0= ruleUnsignedNumber )
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:2279:3: lv_marginTopValue_39_0= ruleUnsignedNumber
+            	    {
+            	    if ( state.backtracking==0 ) {
+            	       
+            	      	        newCompositeNode(grammarAccess.getStyleAccess().getMarginTopValueUnsignedNumberParserRuleCall_4_13_1_0()); 
+            	      	    
+            	    }
+            	    pushFollow(FOLLOW_ruleUnsignedNumber_in_ruleStyle4908);
+            	    lv_marginTopValue_39_0=ruleUnsignedNumber();
+
+            	    state._fsp--;
+            	    if (state.failed) return current;
+            	    if ( state.backtracking==0 ) {
+
+            	      	        if (current==null) {
+            	      	            current = createModelElementForParent(grammarAccess.getStyleRule());
+            	      	        }
+            	             		set(
+            	             			current, 
+            	             			"marginTopValue",
+            	              		lv_marginTopValue_39_0, 
+            	              		"UnsignedNumber");
+            	      	        afterParserOrEnumRuleCall();
+            	      	    
+            	    }
+
+            	    }
+
+
+            	    }
+
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:2295:2: ( (lv_marginTopUnit_40_0= ruleUnitEnum ) )
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:2296:1: (lv_marginTopUnit_40_0= ruleUnitEnum )
+            	    {
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:2296:1: (lv_marginTopUnit_40_0= ruleUnitEnum )
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:2297:3: lv_marginTopUnit_40_0= ruleUnitEnum
+            	    {
+            	    if ( state.backtracking==0 ) {
+            	       
+            	      	        newCompositeNode(grammarAccess.getStyleAccess().getMarginTopUnitUnitEnumEnumRuleCall_4_13_2_0()); 
+            	      	    
+            	    }
+            	    pushFollow(FOLLOW_ruleUnitEnum_in_ruleStyle4929);
+            	    lv_marginTopUnit_40_0=ruleUnitEnum();
+
+            	    state._fsp--;
+            	    if (state.failed) return current;
+            	    if ( state.backtracking==0 ) {
+
+            	      	        if (current==null) {
+            	      	            current = createModelElementForParent(grammarAccess.getStyleRule());
+            	      	        }
+            	             		set(
+            	             			current, 
+            	             			"marginTopUnit",
+            	              		lv_marginTopUnit_40_0, 
+            	              		"UnitEnum");
+            	      	        afterParserOrEnumRuleCall();
+            	      	    
+            	    }
+
+            	    }
+
+
+            	    }
+
+
+            	    }
+
+
+            	    }
+
+            	    getUnorderedGroupHelper().returnFromSelection(grammarAccess.getStyleAccess().getUnorderedGroup_4());
+
+            	    }
+
+
+            	    }
+
+
+            	    }
+            	    break;
+            	case 15 :
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:2320:4: ({...}? => ( ({...}? => (otherlv_41= 'margin-bottom' ( (lv_marginBottomValue_42_0= ruleUnsignedNumber ) ) ( (lv_marginBottomUnit_43_0= ruleUnitEnum ) ) ) ) ) )
+            	    {
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:2320:4: ({...}? => ( ({...}? => (otherlv_41= 'margin-bottom' ( (lv_marginBottomValue_42_0= ruleUnsignedNumber ) ) ( (lv_marginBottomUnit_43_0= ruleUnitEnum ) ) ) ) ) )
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:2321:5: {...}? => ( ({...}? => (otherlv_41= 'margin-bottom' ( (lv_marginBottomValue_42_0= ruleUnsignedNumber ) ) ( (lv_marginBottomUnit_43_0= ruleUnitEnum ) ) ) ) )
+            	    {
+            	    if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getStyleAccess().getUnorderedGroup_4(), 14) ) {
+            	        if (state.backtracking>0) {state.failed=true; return current;}
+            	        throw new FailedPredicateException(input, "ruleStyle", "getUnorderedGroupHelper().canSelect(grammarAccess.getStyleAccess().getUnorderedGroup_4(), 14)");
+            	    }
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:2321:103: ( ({...}? => (otherlv_41= 'margin-bottom' ( (lv_marginBottomValue_42_0= ruleUnsignedNumber ) ) ( (lv_marginBottomUnit_43_0= ruleUnitEnum ) ) ) ) )
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:2322:6: ({...}? => (otherlv_41= 'margin-bottom' ( (lv_marginBottomValue_42_0= ruleUnsignedNumber ) ) ( (lv_marginBottomUnit_43_0= ruleUnitEnum ) ) ) )
+            	    {
+            	    getUnorderedGroupHelper().select(grammarAccess.getStyleAccess().getUnorderedGroup_4(), 14);
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:2325:6: ({...}? => (otherlv_41= 'margin-bottom' ( (lv_marginBottomValue_42_0= ruleUnsignedNumber ) ) ( (lv_marginBottomUnit_43_0= ruleUnitEnum ) ) ) )
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:2325:7: {...}? => (otherlv_41= 'margin-bottom' ( (lv_marginBottomValue_42_0= ruleUnsignedNumber ) ) ( (lv_marginBottomUnit_43_0= ruleUnitEnum ) ) )
+            	    {
+            	    if ( !((true)) ) {
+            	        if (state.backtracking>0) {state.failed=true; return current;}
+            	        throw new FailedPredicateException(input, "ruleStyle", "true");
+            	    }
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:2325:16: (otherlv_41= 'margin-bottom' ( (lv_marginBottomValue_42_0= ruleUnsignedNumber ) ) ( (lv_marginBottomUnit_43_0= ruleUnitEnum ) ) )
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:2325:18: otherlv_41= 'margin-bottom' ( (lv_marginBottomValue_42_0= ruleUnsignedNumber ) ) ( (lv_marginBottomUnit_43_0= ruleUnitEnum ) )
+            	    {
+            	    otherlv_41=(Token)match(input,58,FOLLOW_58_in_ruleStyle4997); if (state.failed) return current;
+            	    if ( state.backtracking==0 ) {
+
+            	          	newLeafNode(otherlv_41, grammarAccess.getStyleAccess().getMarginBottomKeyword_4_14_0());
+            	          
+            	    }
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:2329:1: ( (lv_marginBottomValue_42_0= ruleUnsignedNumber ) )
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:2330:1: (lv_marginBottomValue_42_0= ruleUnsignedNumber )
+            	    {
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:2330:1: (lv_marginBottomValue_42_0= ruleUnsignedNumber )
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:2331:3: lv_marginBottomValue_42_0= ruleUnsignedNumber
+            	    {
+            	    if ( state.backtracking==0 ) {
+            	       
+            	      	        newCompositeNode(grammarAccess.getStyleAccess().getMarginBottomValueUnsignedNumberParserRuleCall_4_14_1_0()); 
+            	      	    
+            	    }
+            	    pushFollow(FOLLOW_ruleUnsignedNumber_in_ruleStyle5018);
+            	    lv_marginBottomValue_42_0=ruleUnsignedNumber();
+
+            	    state._fsp--;
+            	    if (state.failed) return current;
+            	    if ( state.backtracking==0 ) {
+
+            	      	        if (current==null) {
+            	      	            current = createModelElementForParent(grammarAccess.getStyleRule());
+            	      	        }
+            	             		set(
+            	             			current, 
+            	             			"marginBottomValue",
+            	              		lv_marginBottomValue_42_0, 
+            	              		"UnsignedNumber");
+            	      	        afterParserOrEnumRuleCall();
+            	      	    
+            	    }
+
+            	    }
+
+
+            	    }
+
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:2347:2: ( (lv_marginBottomUnit_43_0= ruleUnitEnum ) )
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:2348:1: (lv_marginBottomUnit_43_0= ruleUnitEnum )
+            	    {
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:2348:1: (lv_marginBottomUnit_43_0= ruleUnitEnum )
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:2349:3: lv_marginBottomUnit_43_0= ruleUnitEnum
+            	    {
+            	    if ( state.backtracking==0 ) {
+            	       
+            	      	        newCompositeNode(grammarAccess.getStyleAccess().getMarginBottomUnitUnitEnumEnumRuleCall_4_14_2_0()); 
+            	      	    
+            	    }
+            	    pushFollow(FOLLOW_ruleUnitEnum_in_ruleStyle5039);
+            	    lv_marginBottomUnit_43_0=ruleUnitEnum();
+
+            	    state._fsp--;
+            	    if (state.failed) return current;
+            	    if ( state.backtracking==0 ) {
+
+            	      	        if (current==null) {
+            	      	            current = createModelElementForParent(grammarAccess.getStyleRule());
+            	      	        }
+            	             		set(
+            	             			current, 
+            	             			"marginBottomUnit",
+            	              		lv_marginBottomUnit_43_0, 
+            	              		"UnitEnum");
+            	      	        afterParserOrEnumRuleCall();
+            	      	    
+            	    }
+
+            	    }
+
+
+            	    }
+
+
+            	    }
+
+
+            	    }
+
+            	    getUnorderedGroupHelper().returnFromSelection(grammarAccess.getStyleAccess().getUnorderedGroup_4());
+
+            	    }
+
+
+            	    }
+
+
+            	    }
+            	    break;
+            	case 16 :
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:2372:4: ({...}? => ( ({...}? => (otherlv_44= 'margin-left' ( (lv_marginLeftValue_45_0= ruleUnsignedNumber ) ) ( (lv_marginLeftUnit_46_0= ruleUnitEnum ) ) ) ) ) )
+            	    {
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:2372:4: ({...}? => ( ({...}? => (otherlv_44= 'margin-left' ( (lv_marginLeftValue_45_0= ruleUnsignedNumber ) ) ( (lv_marginLeftUnit_46_0= ruleUnitEnum ) ) ) ) ) )
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:2373:5: {...}? => ( ({...}? => (otherlv_44= 'margin-left' ( (lv_marginLeftValue_45_0= ruleUnsignedNumber ) ) ( (lv_marginLeftUnit_46_0= ruleUnitEnum ) ) ) ) )
+            	    {
+            	    if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getStyleAccess().getUnorderedGroup_4(), 15) ) {
+            	        if (state.backtracking>0) {state.failed=true; return current;}
+            	        throw new FailedPredicateException(input, "ruleStyle", "getUnorderedGroupHelper().canSelect(grammarAccess.getStyleAccess().getUnorderedGroup_4(), 15)");
+            	    }
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:2373:103: ( ({...}? => (otherlv_44= 'margin-left' ( (lv_marginLeftValue_45_0= ruleUnsignedNumber ) ) ( (lv_marginLeftUnit_46_0= ruleUnitEnum ) ) ) ) )
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:2374:6: ({...}? => (otherlv_44= 'margin-left' ( (lv_marginLeftValue_45_0= ruleUnsignedNumber ) ) ( (lv_marginLeftUnit_46_0= ruleUnitEnum ) ) ) )
+            	    {
+            	    getUnorderedGroupHelper().select(grammarAccess.getStyleAccess().getUnorderedGroup_4(), 15);
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:2377:6: ({...}? => (otherlv_44= 'margin-left' ( (lv_marginLeftValue_45_0= ruleUnsignedNumber ) ) ( (lv_marginLeftUnit_46_0= ruleUnitEnum ) ) ) )
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:2377:7: {...}? => (otherlv_44= 'margin-left' ( (lv_marginLeftValue_45_0= ruleUnsignedNumber ) ) ( (lv_marginLeftUnit_46_0= ruleUnitEnum ) ) )
+            	    {
+            	    if ( !((true)) ) {
+            	        if (state.backtracking>0) {state.failed=true; return current;}
+            	        throw new FailedPredicateException(input, "ruleStyle", "true");
+            	    }
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:2377:16: (otherlv_44= 'margin-left' ( (lv_marginLeftValue_45_0= ruleUnsignedNumber ) ) ( (lv_marginLeftUnit_46_0= ruleUnitEnum ) ) )
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:2377:18: otherlv_44= 'margin-left' ( (lv_marginLeftValue_45_0= ruleUnsignedNumber ) ) ( (lv_marginLeftUnit_46_0= ruleUnitEnum ) )
+            	    {
+            	    otherlv_44=(Token)match(input,59,FOLLOW_59_in_ruleStyle5107); if (state.failed) return current;
+            	    if ( state.backtracking==0 ) {
+
+            	          	newLeafNode(otherlv_44, grammarAccess.getStyleAccess().getMarginLeftKeyword_4_15_0());
+            	          
+            	    }
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:2381:1: ( (lv_marginLeftValue_45_0= ruleUnsignedNumber ) )
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:2382:1: (lv_marginLeftValue_45_0= ruleUnsignedNumber )
+            	    {
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:2382:1: (lv_marginLeftValue_45_0= ruleUnsignedNumber )
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:2383:3: lv_marginLeftValue_45_0= ruleUnsignedNumber
+            	    {
+            	    if ( state.backtracking==0 ) {
+            	       
+            	      	        newCompositeNode(grammarAccess.getStyleAccess().getMarginLeftValueUnsignedNumberParserRuleCall_4_15_1_0()); 
+            	      	    
+            	    }
+            	    pushFollow(FOLLOW_ruleUnsignedNumber_in_ruleStyle5128);
+            	    lv_marginLeftValue_45_0=ruleUnsignedNumber();
+
+            	    state._fsp--;
+            	    if (state.failed) return current;
+            	    if ( state.backtracking==0 ) {
+
+            	      	        if (current==null) {
+            	      	            current = createModelElementForParent(grammarAccess.getStyleRule());
+            	      	        }
+            	             		set(
+            	             			current, 
+            	             			"marginLeftValue",
+            	              		lv_marginLeftValue_45_0, 
+            	              		"UnsignedNumber");
+            	      	        afterParserOrEnumRuleCall();
+            	      	    
+            	    }
+
+            	    }
+
+
+            	    }
+
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:2399:2: ( (lv_marginLeftUnit_46_0= ruleUnitEnum ) )
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:2400:1: (lv_marginLeftUnit_46_0= ruleUnitEnum )
+            	    {
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:2400:1: (lv_marginLeftUnit_46_0= ruleUnitEnum )
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:2401:3: lv_marginLeftUnit_46_0= ruleUnitEnum
+            	    {
+            	    if ( state.backtracking==0 ) {
+            	       
+            	      	        newCompositeNode(grammarAccess.getStyleAccess().getMarginLeftUnitUnitEnumEnumRuleCall_4_15_2_0()); 
+            	      	    
+            	    }
+            	    pushFollow(FOLLOW_ruleUnitEnum_in_ruleStyle5149);
+            	    lv_marginLeftUnit_46_0=ruleUnitEnum();
+
+            	    state._fsp--;
+            	    if (state.failed) return current;
+            	    if ( state.backtracking==0 ) {
+
+            	      	        if (current==null) {
+            	      	            current = createModelElementForParent(grammarAccess.getStyleRule());
+            	      	        }
+            	             		set(
+            	             			current, 
+            	             			"marginLeftUnit",
+            	              		lv_marginLeftUnit_46_0, 
+            	              		"UnitEnum");
+            	      	        afterParserOrEnumRuleCall();
+            	      	    
+            	    }
+
+            	    }
+
+
+            	    }
+
+
+            	    }
+
+
+            	    }
+
+            	    getUnorderedGroupHelper().returnFromSelection(grammarAccess.getStyleAccess().getUnorderedGroup_4());
+
+            	    }
+
+
+            	    }
+
+
+            	    }
+            	    break;
+            	case 17 :
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:2424:4: ({...}? => ( ({...}? => (otherlv_47= 'margin-right' ( (lv_marginRightValue_48_0= ruleUnsignedNumber ) ) ( (lv_marginRightUnit_49_0= ruleUnitEnum ) ) ) ) ) )
+            	    {
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:2424:4: ({...}? => ( ({...}? => (otherlv_47= 'margin-right' ( (lv_marginRightValue_48_0= ruleUnsignedNumber ) ) ( (lv_marginRightUnit_49_0= ruleUnitEnum ) ) ) ) ) )
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:2425:5: {...}? => ( ({...}? => (otherlv_47= 'margin-right' ( (lv_marginRightValue_48_0= ruleUnsignedNumber ) ) ( (lv_marginRightUnit_49_0= ruleUnitEnum ) ) ) ) )
+            	    {
+            	    if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getStyleAccess().getUnorderedGroup_4(), 16) ) {
+            	        if (state.backtracking>0) {state.failed=true; return current;}
+            	        throw new FailedPredicateException(input, "ruleStyle", "getUnorderedGroupHelper().canSelect(grammarAccess.getStyleAccess().getUnorderedGroup_4(), 16)");
+            	    }
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:2425:103: ( ({...}? => (otherlv_47= 'margin-right' ( (lv_marginRightValue_48_0= ruleUnsignedNumber ) ) ( (lv_marginRightUnit_49_0= ruleUnitEnum ) ) ) ) )
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:2426:6: ({...}? => (otherlv_47= 'margin-right' ( (lv_marginRightValue_48_0= ruleUnsignedNumber ) ) ( (lv_marginRightUnit_49_0= ruleUnitEnum ) ) ) )
+            	    {
+            	    getUnorderedGroupHelper().select(grammarAccess.getStyleAccess().getUnorderedGroup_4(), 16);
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:2429:6: ({...}? => (otherlv_47= 'margin-right' ( (lv_marginRightValue_48_0= ruleUnsignedNumber ) ) ( (lv_marginRightUnit_49_0= ruleUnitEnum ) ) ) )
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:2429:7: {...}? => (otherlv_47= 'margin-right' ( (lv_marginRightValue_48_0= ruleUnsignedNumber ) ) ( (lv_marginRightUnit_49_0= ruleUnitEnum ) ) )
+            	    {
+            	    if ( !((true)) ) {
+            	        if (state.backtracking>0) {state.failed=true; return current;}
+            	        throw new FailedPredicateException(input, "ruleStyle", "true");
+            	    }
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:2429:16: (otherlv_47= 'margin-right' ( (lv_marginRightValue_48_0= ruleUnsignedNumber ) ) ( (lv_marginRightUnit_49_0= ruleUnitEnum ) ) )
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:2429:18: otherlv_47= 'margin-right' ( (lv_marginRightValue_48_0= ruleUnsignedNumber ) ) ( (lv_marginRightUnit_49_0= ruleUnitEnum ) )
+            	    {
+            	    otherlv_47=(Token)match(input,60,FOLLOW_60_in_ruleStyle5217); if (state.failed) return current;
+            	    if ( state.backtracking==0 ) {
+
+            	          	newLeafNode(otherlv_47, grammarAccess.getStyleAccess().getMarginRightKeyword_4_16_0());
+            	          
+            	    }
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:2433:1: ( (lv_marginRightValue_48_0= ruleUnsignedNumber ) )
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:2434:1: (lv_marginRightValue_48_0= ruleUnsignedNumber )
+            	    {
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:2434:1: (lv_marginRightValue_48_0= ruleUnsignedNumber )
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:2435:3: lv_marginRightValue_48_0= ruleUnsignedNumber
+            	    {
+            	    if ( state.backtracking==0 ) {
+            	       
+            	      	        newCompositeNode(grammarAccess.getStyleAccess().getMarginRightValueUnsignedNumberParserRuleCall_4_16_1_0()); 
+            	      	    
+            	    }
+            	    pushFollow(FOLLOW_ruleUnsignedNumber_in_ruleStyle5238);
+            	    lv_marginRightValue_48_0=ruleUnsignedNumber();
+
+            	    state._fsp--;
+            	    if (state.failed) return current;
+            	    if ( state.backtracking==0 ) {
+
+            	      	        if (current==null) {
+            	      	            current = createModelElementForParent(grammarAccess.getStyleRule());
+            	      	        }
+            	             		set(
+            	             			current, 
+            	             			"marginRightValue",
+            	              		lv_marginRightValue_48_0, 
+            	              		"UnsignedNumber");
+            	      	        afterParserOrEnumRuleCall();
+            	      	    
+            	    }
+
+            	    }
+
+
+            	    }
+
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:2451:2: ( (lv_marginRightUnit_49_0= ruleUnitEnum ) )
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:2452:1: (lv_marginRightUnit_49_0= ruleUnitEnum )
+            	    {
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:2452:1: (lv_marginRightUnit_49_0= ruleUnitEnum )
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:2453:3: lv_marginRightUnit_49_0= ruleUnitEnum
+            	    {
+            	    if ( state.backtracking==0 ) {
+            	       
+            	      	        newCompositeNode(grammarAccess.getStyleAccess().getMarginRightUnitUnitEnumEnumRuleCall_4_16_2_0()); 
+            	      	    
+            	    }
+            	    pushFollow(FOLLOW_ruleUnitEnum_in_ruleStyle5259);
+            	    lv_marginRightUnit_49_0=ruleUnitEnum();
+
+            	    state._fsp--;
+            	    if (state.failed) return current;
+            	    if ( state.backtracking==0 ) {
+
+            	      	        if (current==null) {
+            	      	            current = createModelElementForParent(grammarAccess.getStyleRule());
+            	      	        }
+            	             		set(
+            	             			current, 
+            	             			"marginRightUnit",
+            	              		lv_marginRightUnit_49_0, 
+            	              		"UnitEnum");
+            	      	        afterParserOrEnumRuleCall();
+            	      	    
+            	    }
+
+            	    }
+
+
+            	    }
+
+
+            	    }
+
+
+            	    }
+
+            	    getUnorderedGroupHelper().returnFromSelection(grammarAccess.getStyleAccess().getUnorderedGroup_4());
+
+            	    }
+
+
+            	    }
+
+
+            	    }
+            	    break;
+
+            	default :
+            	    break loop23;
+                }
+            } while (true);
+
+
+            }
+
+
+            }
+
+            getUnorderedGroupHelper().leave(grammarAccess.getStyleAccess().getUnorderedGroup_4());
+
+            }
+
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:2483:2: ( (lv_mediastyles_50_0= ruleMediaStyle ) )*
+            loop24:
+            do {
+                int alt24=2;
+                switch ( input.LA(1) ) {
+                case 23:
+                    {
+                    alt24=1;
+                    }
+                    break;
+
+                }
+
+                switch (alt24) {
+            	case 1 :
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:2484:1: (lv_mediastyles_50_0= ruleMediaStyle )
+            	    {
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:2484:1: (lv_mediastyles_50_0= ruleMediaStyle )
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:2485:3: lv_mediastyles_50_0= ruleMediaStyle
+            	    {
+            	    if ( state.backtracking==0 ) {
+            	       
+            	      	        newCompositeNode(grammarAccess.getStyleAccess().getMediastylesMediaStyleParserRuleCall_5_0()); 
+            	      	    
+            	    }
+            	    pushFollow(FOLLOW_ruleMediaStyle_in_ruleStyle5321);
+            	    lv_mediastyles_50_0=ruleMediaStyle();
+
+            	    state._fsp--;
+            	    if (state.failed) return current;
+            	    if ( state.backtracking==0 ) {
+
+            	      	        if (current==null) {
+            	      	            current = createModelElementForParent(grammarAccess.getStyleRule());
+            	      	        }
+            	             		add(
+            	             			current, 
+            	             			"mediastyles",
+            	              		lv_mediastyles_50_0, 
+            	              		"MediaStyle");
+            	      	        afterParserOrEnumRuleCall();
+            	      	    
+            	    }
+
+            	    }
+
+
+            	    }
+            	    break;
+
+            	default :
+            	    break loop24;
+                }
+            } while (true);
+
+            otherlv_51=(Token)match(input,18,FOLLOW_18_in_ruleStyle5334); if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+                  	newLeafNode(otherlv_51, grammarAccess.getStyleAccess().getRightCurlyBracketKeyword_6());
+                  
+            }
+
+            }
+
+
+            }
+
+            if ( state.backtracking==0 ) {
+               leaveRule(); 
+            }
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleStyle"
+
+
+    // $ANTLR start "entryRuleMediaStyle"
+    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:2513:1: entryRuleMediaStyle returns [EObject current=null] : iv_ruleMediaStyle= ruleMediaStyle EOF ;
+    public final EObject entryRuleMediaStyle() throws RecognitionException {
+        EObject current = null;
+
+        EObject iv_ruleMediaStyle = null;
+
+
+        try {
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:2514:2: (iv_ruleMediaStyle= ruleMediaStyle EOF )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:2515:2: iv_ruleMediaStyle= ruleMediaStyle EOF
+            {
+            if ( state.backtracking==0 ) {
+               newCompositeNode(grammarAccess.getMediaStyleRule()); 
+            }
+            pushFollow(FOLLOW_ruleMediaStyle_in_entryRuleMediaStyle5370);
+            iv_ruleMediaStyle=ruleMediaStyle();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+               current =iv_ruleMediaStyle; 
+            }
+            match(input,EOF,FOLLOW_EOF_in_entryRuleMediaStyle5380); if (state.failed) return current;
+
+            }
+
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleMediaStyle"
+
+
+    // $ANTLR start "ruleMediaStyle"
+    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:2522:1: ruleMediaStyle returns [EObject current=null] : (otherlv_0= 'media' ( (otherlv_1= RULE_ID ) ) otherlv_2= '{' ( ( ( ( ({...}? => ( ({...}? => (otherlv_4= 'formatter' ( (otherlv_5= RULE_ID ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_6= 'font' ( (otherlv_7= RULE_ID ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_8= 'backgroundcolor' ( (otherlv_9= RULE_ID ) ) (otherlv_10= 'alternate' ( (otherlv_11= RULE_ID ) ) )? ) ) ) ) | ({...}? => ( ({...}? => (otherlv_12= 'textcolor' ( (otherlv_13= RULE_ID ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_14= 'textalign' ( (lv_textalign_15_0= ruleTextAlignEnum ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_16= 'border-top' ( (lv_borderTop_17_0= ruleBorderStyle ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_18= 'border-bottom' ( (lv_borderBottom_19_0= ruleBorderStyle ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_20= 'border-left' ( (lv_borderLeft_21_0= ruleBorderStyle ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_22= 'border-right' ( (lv_borderRight_23_0= ruleBorderStyle ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_24= 'padding-top' ( (lv_paddingTopValue_25_0= ruleUnsignedNumber ) ) ( (lv_paddingTopUnit_26_0= ruleUnitEnum ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_27= 'padding-bottom' ( (lv_paddingBottomValue_28_0= ruleUnsignedNumber ) ) ( (lv_paddingBottomUnit_29_0= ruleUnitEnum ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_30= 'padding-left' ( (lv_paddingLeftValue_31_0= ruleUnsignedNumber ) ) ( (lv_paddingLeftUnit_32_0= ruleUnitEnum ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_33= 'padding-right' ( (lv_paddingRightValue_34_0= ruleUnsignedNumber ) ) ( (lv_paddingRightUnit_35_0= ruleUnitEnum ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_36= 'margin-top' ( (lv_marginTopValue_37_0= ruleUnsignedNumber ) ) ( (lv_marginTopUnit_38_0= ruleUnitEnum ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_39= 'margin-bottom' ( (lv_marginBottomValue_40_0= ruleUnsignedNumber ) ) ( (lv_marginBottomUnit_41_0= ruleUnitEnum ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_42= 'margin-left' ( (lv_marginLeftValue_43_0= ruleUnsignedNumber ) ) ( (lv_marginLeftUnit_44_0= ruleUnitEnum ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_45= 'margin-right' ( (lv_marginRightValue_46_0= ruleUnsignedNumber ) ) ( (lv_marginRightUnit_47_0= ruleUnitEnum ) ) ) ) ) ) )* ) ) ) otherlv_48= '}' ) ;
+    public final EObject ruleMediaStyle() throws RecognitionException {
+        EObject current = null;
+
+        Token otherlv_0=null;
+        Token otherlv_1=null;
+        Token otherlv_2=null;
+        Token otherlv_4=null;
+        Token otherlv_5=null;
+        Token otherlv_6=null;
+        Token otherlv_7=null;
+        Token otherlv_8=null;
+        Token otherlv_9=null;
+        Token otherlv_10=null;
+        Token otherlv_11=null;
+        Token otherlv_12=null;
+        Token otherlv_13=null;
+        Token otherlv_14=null;
+        Token otherlv_16=null;
+        Token otherlv_18=null;
+        Token otherlv_20=null;
+        Token otherlv_22=null;
+        Token otherlv_24=null;
+        Token otherlv_27=null;
+        Token otherlv_30=null;
+        Token otherlv_33=null;
+        Token otherlv_36=null;
+        Token otherlv_39=null;
+        Token otherlv_42=null;
+        Token otherlv_45=null;
+        Token otherlv_48=null;
+        Enumerator lv_textalign_15_0 = null;
+
+        EObject lv_borderTop_17_0 = null;
+
+        EObject lv_borderBottom_19_0 = null;
+
+        EObject lv_borderLeft_21_0 = null;
+
+        EObject lv_borderRight_23_0 = null;
+
+        AntlrDatatypeRuleToken lv_paddingTopValue_25_0 = null;
+
+        Enumerator lv_paddingTopUnit_26_0 = null;
+
+        AntlrDatatypeRuleToken lv_paddingBottomValue_28_0 = null;
+
+        Enumerator lv_paddingBottomUnit_29_0 = null;
+
+        AntlrDatatypeRuleToken lv_paddingLeftValue_31_0 = null;
+
+        Enumerator lv_paddingLeftUnit_32_0 = null;
+
+        AntlrDatatypeRuleToken lv_paddingRightValue_34_0 = null;
+
+        Enumerator lv_paddingRightUnit_35_0 = null;
+
+        AntlrDatatypeRuleToken lv_marginTopValue_37_0 = null;
+
+        Enumerator lv_marginTopUnit_38_0 = null;
+
+        AntlrDatatypeRuleToken lv_marginBottomValue_40_0 = null;
+
+        Enumerator lv_marginBottomUnit_41_0 = null;
+
+        AntlrDatatypeRuleToken lv_marginLeftValue_43_0 = null;
+
+        Enumerator lv_marginLeftUnit_44_0 = null;
+
+        AntlrDatatypeRuleToken lv_marginRightValue_46_0 = null;
+
+        Enumerator lv_marginRightUnit_47_0 = null;
+
+
+         enterRule(); 
+            
+        try {
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:2525:28: ( (otherlv_0= 'media' ( (otherlv_1= RULE_ID ) ) otherlv_2= '{' ( ( ( ( ({...}? => ( ({...}? => (otherlv_4= 'formatter' ( (otherlv_5= RULE_ID ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_6= 'font' ( (otherlv_7= RULE_ID ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_8= 'backgroundcolor' ( (otherlv_9= RULE_ID ) ) (otherlv_10= 'alternate' ( (otherlv_11= RULE_ID ) ) )? ) ) ) ) | ({...}? => ( ({...}? => (otherlv_12= 'textcolor' ( (otherlv_13= RULE_ID ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_14= 'textalign' ( (lv_textalign_15_0= ruleTextAlignEnum ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_16= 'border-top' ( (lv_borderTop_17_0= ruleBorderStyle ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_18= 'border-bottom' ( (lv_borderBottom_19_0= ruleBorderStyle ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_20= 'border-left' ( (lv_borderLeft_21_0= ruleBorderStyle ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_22= 'border-right' ( (lv_borderRight_23_0= ruleBorderStyle ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_24= 'padding-top' ( (lv_paddingTopValue_25_0= ruleUnsignedNumber ) ) ( (lv_paddingTopUnit_26_0= ruleUnitEnum ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_27= 'padding-bottom' ( (lv_paddingBottomValue_28_0= ruleUnsignedNumber ) ) ( (lv_paddingBottomUnit_29_0= ruleUnitEnum ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_30= 'padding-left' ( (lv_paddingLeftValue_31_0= ruleUnsignedNumber ) ) ( (lv_paddingLeftUnit_32_0= ruleUnitEnum ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_33= 'padding-right' ( (lv_paddingRightValue_34_0= ruleUnsignedNumber ) ) ( (lv_paddingRightUnit_35_0= ruleUnitEnum ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_36= 'margin-top' ( (lv_marginTopValue_37_0= ruleUnsignedNumber ) ) ( (lv_marginTopUnit_38_0= ruleUnitEnum ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_39= 'margin-bottom' ( (lv_marginBottomValue_40_0= ruleUnsignedNumber ) ) ( (lv_marginBottomUnit_41_0= ruleUnitEnum ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_42= 'margin-left' ( (lv_marginLeftValue_43_0= ruleUnsignedNumber ) ) ( (lv_marginLeftUnit_44_0= ruleUnitEnum ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_45= 'margin-right' ( (lv_marginRightValue_46_0= ruleUnsignedNumber ) ) ( (lv_marginRightUnit_47_0= ruleUnitEnum ) ) ) ) ) ) )* ) ) ) otherlv_48= '}' ) )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:2526:1: (otherlv_0= 'media' ( (otherlv_1= RULE_ID ) ) otherlv_2= '{' ( ( ( ( ({...}? => ( ({...}? => (otherlv_4= 'formatter' ( (otherlv_5= RULE_ID ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_6= 'font' ( (otherlv_7= RULE_ID ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_8= 'backgroundcolor' ( (otherlv_9= RULE_ID ) ) (otherlv_10= 'alternate' ( (otherlv_11= RULE_ID ) ) )? ) ) ) ) | ({...}? => ( ({...}? => (otherlv_12= 'textcolor' ( (otherlv_13= RULE_ID ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_14= 'textalign' ( (lv_textalign_15_0= ruleTextAlignEnum ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_16= 'border-top' ( (lv_borderTop_17_0= ruleBorderStyle ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_18= 'border-bottom' ( (lv_borderBottom_19_0= ruleBorderStyle ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_20= 'border-left' ( (lv_borderLeft_21_0= ruleBorderStyle ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_22= 'border-right' ( (lv_borderRight_23_0= ruleBorderStyle ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_24= 'padding-top' ( (lv_paddingTopValue_25_0= ruleUnsignedNumber ) ) ( (lv_paddingTopUnit_26_0= ruleUnitEnum ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_27= 'padding-bottom' ( (lv_paddingBottomValue_28_0= ruleUnsignedNumber ) ) ( (lv_paddingBottomUnit_29_0= ruleUnitEnum ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_30= 'padding-left' ( (lv_paddingLeftValue_31_0= ruleUnsignedNumber ) ) ( (lv_paddingLeftUnit_32_0= ruleUnitEnum ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_33= 'padding-right' ( (lv_paddingRightValue_34_0= ruleUnsignedNumber ) ) ( (lv_paddingRightUnit_35_0= ruleUnitEnum ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_36= 'margin-top' ( (lv_marginTopValue_37_0= ruleUnsignedNumber ) ) ( (lv_marginTopUnit_38_0= ruleUnitEnum ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_39= 'margin-bottom' ( (lv_marginBottomValue_40_0= ruleUnsignedNumber ) ) ( (lv_marginBottomUnit_41_0= ruleUnitEnum ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_42= 'margin-left' ( (lv_marginLeftValue_43_0= ruleUnsignedNumber ) ) ( (lv_marginLeftUnit_44_0= ruleUnitEnum ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_45= 'margin-right' ( (lv_marginRightValue_46_0= ruleUnsignedNumber ) ) ( (lv_marginRightUnit_47_0= ruleUnitEnum ) ) ) ) ) ) )* ) ) ) otherlv_48= '}' )
+            {
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:2526:1: (otherlv_0= 'media' ( (otherlv_1= RULE_ID ) ) otherlv_2= '{' ( ( ( ( ({...}? => ( ({...}? => (otherlv_4= 'formatter' ( (otherlv_5= RULE_ID ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_6= 'font' ( (otherlv_7= RULE_ID ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_8= 'backgroundcolor' ( (otherlv_9= RULE_ID ) ) (otherlv_10= 'alternate' ( (otherlv_11= RULE_ID ) ) )? ) ) ) ) | ({...}? => ( ({...}? => (otherlv_12= 'textcolor' ( (otherlv_13= RULE_ID ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_14= 'textalign' ( (lv_textalign_15_0= ruleTextAlignEnum ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_16= 'border-top' ( (lv_borderTop_17_0= ruleBorderStyle ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_18= 'border-bottom' ( (lv_borderBottom_19_0= ruleBorderStyle ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_20= 'border-left' ( (lv_borderLeft_21_0= ruleBorderStyle ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_22= 'border-right' ( (lv_borderRight_23_0= ruleBorderStyle ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_24= 'padding-top' ( (lv_paddingTopValue_25_0= ruleUnsignedNumber ) ) ( (lv_paddingTopUnit_26_0= ruleUnitEnum ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_27= 'padding-bottom' ( (lv_paddingBottomValue_28_0= ruleUnsignedNumber ) ) ( (lv_paddingBottomUnit_29_0= ruleUnitEnum ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_30= 'padding-left' ( (lv_paddingLeftValue_31_0= ruleUnsignedNumber ) ) ( (lv_paddingLeftUnit_32_0= ruleUnitEnum ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_33= 'padding-right' ( (lv_paddingRightValue_34_0= ruleUnsignedNumber ) ) ( (lv_paddingRightUnit_35_0= ruleUnitEnum ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_36= 'margin-top' ( (lv_marginTopValue_37_0= ruleUnsignedNumber ) ) ( (lv_marginTopUnit_38_0= ruleUnitEnum ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_39= 'margin-bottom' ( (lv_marginBottomValue_40_0= ruleUnsignedNumber ) ) ( (lv_marginBottomUnit_41_0= ruleUnitEnum ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_42= 'margin-left' ( (lv_marginLeftValue_43_0= ruleUnsignedNumber ) ) ( (lv_marginLeftUnit_44_0= ruleUnitEnum ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_45= 'margin-right' ( (lv_marginRightValue_46_0= ruleUnsignedNumber ) ) ( (lv_marginRightUnit_47_0= ruleUnitEnum ) ) ) ) ) ) )* ) ) ) otherlv_48= '}' )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:2526:3: otherlv_0= 'media' ( (otherlv_1= RULE_ID ) ) otherlv_2= '{' ( ( ( ( ({...}? => ( ({...}? => (otherlv_4= 'formatter' ( (otherlv_5= RULE_ID ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_6= 'font' ( (otherlv_7= RULE_ID ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_8= 'backgroundcolor' ( (otherlv_9= RULE_ID ) ) (otherlv_10= 'alternate' ( (otherlv_11= RULE_ID ) ) )? ) ) ) ) | ({...}? => ( ({...}? => (otherlv_12= 'textcolor' ( (otherlv_13= RULE_ID ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_14= 'textalign' ( (lv_textalign_15_0= ruleTextAlignEnum ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_16= 'border-top' ( (lv_borderTop_17_0= ruleBorderStyle ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_18= 'border-bottom' ( (lv_borderBottom_19_0= ruleBorderStyle ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_20= 'border-left' ( (lv_borderLeft_21_0= ruleBorderStyle ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_22= 'border-right' ( (lv_borderRight_23_0= ruleBorderStyle ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_24= 'padding-top' ( (lv_paddingTopValue_25_0= ruleUnsignedNumber ) ) ( (lv_paddingTopUnit_26_0= ruleUnitEnum ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_27= 'padding-bottom' ( (lv_paddingBottomValue_28_0= ruleUnsignedNumber ) ) ( (lv_paddingBottomUnit_29_0= ruleUnitEnum ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_30= 'padding-left' ( (lv_paddingLeftValue_31_0= ruleUnsignedNumber ) ) ( (lv_paddingLeftUnit_32_0= ruleUnitEnum ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_33= 'padding-right' ( (lv_paddingRightValue_34_0= ruleUnsignedNumber ) ) ( (lv_paddingRightUnit_35_0= ruleUnitEnum ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_36= 'margin-top' ( (lv_marginTopValue_37_0= ruleUnsignedNumber ) ) ( (lv_marginTopUnit_38_0= ruleUnitEnum ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_39= 'margin-bottom' ( (lv_marginBottomValue_40_0= ruleUnsignedNumber ) ) ( (lv_marginBottomUnit_41_0= ruleUnitEnum ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_42= 'margin-left' ( (lv_marginLeftValue_43_0= ruleUnsignedNumber ) ) ( (lv_marginLeftUnit_44_0= ruleUnitEnum ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_45= 'margin-right' ( (lv_marginRightValue_46_0= ruleUnsignedNumber ) ) ( (lv_marginRightUnit_47_0= ruleUnitEnum ) ) ) ) ) ) )* ) ) ) otherlv_48= '}'
+            {
+            otherlv_0=(Token)match(input,23,FOLLOW_23_in_ruleMediaStyle5417); if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+                  	newLeafNode(otherlv_0, grammarAccess.getMediaStyleAccess().getMediaKeyword_0());
+                  
+            }
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:2530:1: ( (otherlv_1= RULE_ID ) )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:2531:1: (otherlv_1= RULE_ID )
+            {
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:2531:1: (otherlv_1= RULE_ID )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:2532:3: otherlv_1= RULE_ID
+            {
+            if ( state.backtracking==0 ) {
+
+              			if (current==null) {
+              	            current = createModelElement(grammarAccess.getMediaStyleRule());
+              	        }
+                      
+            }
+            otherlv_1=(Token)match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleMediaStyle5437); if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+              		newLeafNode(otherlv_1, grammarAccess.getMediaStyleAccess().getMediaMediaCrossReference_1_0()); 
+              	
+            }
+
+            }
+
+
+            }
+
+            otherlv_2=(Token)match(input,14,FOLLOW_14_in_ruleMediaStyle5449); if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+                  	newLeafNode(otherlv_2, grammarAccess.getMediaStyleAccess().getLeftCurlyBracketKeyword_2());
+                  
+            }
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:2547:1: ( ( ( ( ({...}? => ( ({...}? => (otherlv_4= 'formatter' ( (otherlv_5= RULE_ID ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_6= 'font' ( (otherlv_7= RULE_ID ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_8= 'backgroundcolor' ( (otherlv_9= RULE_ID ) ) (otherlv_10= 'alternate' ( (otherlv_11= RULE_ID ) ) )? ) ) ) ) | ({...}? => ( ({...}? => (otherlv_12= 'textcolor' ( (otherlv_13= RULE_ID ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_14= 'textalign' ( (lv_textalign_15_0= ruleTextAlignEnum ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_16= 'border-top' ( (lv_borderTop_17_0= ruleBorderStyle ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_18= 'border-bottom' ( (lv_borderBottom_19_0= ruleBorderStyle ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_20= 'border-left' ( (lv_borderLeft_21_0= ruleBorderStyle ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_22= 'border-right' ( (lv_borderRight_23_0= ruleBorderStyle ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_24= 'padding-top' ( (lv_paddingTopValue_25_0= ruleUnsignedNumber ) ) ( (lv_paddingTopUnit_26_0= ruleUnitEnum ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_27= 'padding-bottom' ( (lv_paddingBottomValue_28_0= ruleUnsignedNumber ) ) ( (lv_paddingBottomUnit_29_0= ruleUnitEnum ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_30= 'padding-left' ( (lv_paddingLeftValue_31_0= ruleUnsignedNumber ) ) ( (lv_paddingLeftUnit_32_0= ruleUnitEnum ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_33= 'padding-right' ( (lv_paddingRightValue_34_0= ruleUnsignedNumber ) ) ( (lv_paddingRightUnit_35_0= ruleUnitEnum ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_36= 'margin-top' ( (lv_marginTopValue_37_0= ruleUnsignedNumber ) ) ( (lv_marginTopUnit_38_0= ruleUnitEnum ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_39= 'margin-bottom' ( (lv_marginBottomValue_40_0= ruleUnsignedNumber ) ) ( (lv_marginBottomUnit_41_0= ruleUnitEnum ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_42= 'margin-left' ( (lv_marginLeftValue_43_0= ruleUnsignedNumber ) ) ( (lv_marginLeftUnit_44_0= ruleUnitEnum ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_45= 'margin-right' ( (lv_marginRightValue_46_0= ruleUnsignedNumber ) ) ( (lv_marginRightUnit_47_0= ruleUnitEnum ) ) ) ) ) ) )* ) ) )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:2549:1: ( ( ( ({...}? => ( ({...}? => (otherlv_4= 'formatter' ( (otherlv_5= RULE_ID ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_6= 'font' ( (otherlv_7= RULE_ID ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_8= 'backgroundcolor' ( (otherlv_9= RULE_ID ) ) (otherlv_10= 'alternate' ( (otherlv_11= RULE_ID ) ) )? ) ) ) ) | ({...}? => ( ({...}? => (otherlv_12= 'textcolor' ( (otherlv_13= RULE_ID ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_14= 'textalign' ( (lv_textalign_15_0= ruleTextAlignEnum ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_16= 'border-top' ( (lv_borderTop_17_0= ruleBorderStyle ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_18= 'border-bottom' ( (lv_borderBottom_19_0= ruleBorderStyle ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_20= 'border-left' ( (lv_borderLeft_21_0= ruleBorderStyle ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_22= 'border-right' ( (lv_borderRight_23_0= ruleBorderStyle ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_24= 'padding-top' ( (lv_paddingTopValue_25_0= ruleUnsignedNumber ) ) ( (lv_paddingTopUnit_26_0= ruleUnitEnum ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_27= 'padding-bottom' ( (lv_paddingBottomValue_28_0= ruleUnsignedNumber ) ) ( (lv_paddingBottomUnit_29_0= ruleUnitEnum ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_30= 'padding-left' ( (lv_paddingLeftValue_31_0= ruleUnsignedNumber ) ) ( (lv_paddingLeftUnit_32_0= ruleUnitEnum ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_33= 'padding-right' ( (lv_paddingRightValue_34_0= ruleUnsignedNumber ) ) ( (lv_paddingRightUnit_35_0= ruleUnitEnum ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_36= 'margin-top' ( (lv_marginTopValue_37_0= ruleUnsignedNumber ) ) ( (lv_marginTopUnit_38_0= ruleUnitEnum ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_39= 'margin-bottom' ( (lv_marginBottomValue_40_0= ruleUnsignedNumber ) ) ( (lv_marginBottomUnit_41_0= ruleUnitEnum ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_42= 'margin-left' ( (lv_marginLeftValue_43_0= ruleUnsignedNumber ) ) ( (lv_marginLeftUnit_44_0= ruleUnitEnum ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_45= 'margin-right' ( (lv_marginRightValue_46_0= ruleUnsignedNumber ) ) ( (lv_marginRightUnit_47_0= ruleUnitEnum ) ) ) ) ) ) )* ) )
+            {
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:2549:1: ( ( ( ({...}? => ( ({...}? => (otherlv_4= 'formatter' ( (otherlv_5= RULE_ID ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_6= 'font' ( (otherlv_7= RULE_ID ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_8= 'backgroundcolor' ( (otherlv_9= RULE_ID ) ) (otherlv_10= 'alternate' ( (otherlv_11= RULE_ID ) ) )? ) ) ) ) | ({...}? => ( ({...}? => (otherlv_12= 'textcolor' ( (otherlv_13= RULE_ID ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_14= 'textalign' ( (lv_textalign_15_0= ruleTextAlignEnum ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_16= 'border-top' ( (lv_borderTop_17_0= ruleBorderStyle ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_18= 'border-bottom' ( (lv_borderBottom_19_0= ruleBorderStyle ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_20= 'border-left' ( (lv_borderLeft_21_0= ruleBorderStyle ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_22= 'border-right' ( (lv_borderRight_23_0= ruleBorderStyle ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_24= 'padding-top' ( (lv_paddingTopValue_25_0= ruleUnsignedNumber ) ) ( (lv_paddingTopUnit_26_0= ruleUnitEnum ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_27= 'padding-bottom' ( (lv_paddingBottomValue_28_0= ruleUnsignedNumber ) ) ( (lv_paddingBottomUnit_29_0= ruleUnitEnum ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_30= 'padding-left' ( (lv_paddingLeftValue_31_0= ruleUnsignedNumber ) ) ( (lv_paddingLeftUnit_32_0= ruleUnitEnum ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_33= 'padding-right' ( (lv_paddingRightValue_34_0= ruleUnsignedNumber ) ) ( (lv_paddingRightUnit_35_0= ruleUnitEnum ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_36= 'margin-top' ( (lv_marginTopValue_37_0= ruleUnsignedNumber ) ) ( (lv_marginTopUnit_38_0= ruleUnitEnum ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_39= 'margin-bottom' ( (lv_marginBottomValue_40_0= ruleUnsignedNumber ) ) ( (lv_marginBottomUnit_41_0= ruleUnitEnum ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_42= 'margin-left' ( (lv_marginLeftValue_43_0= ruleUnsignedNumber ) ) ( (lv_marginLeftUnit_44_0= ruleUnitEnum ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_45= 'margin-right' ( (lv_marginRightValue_46_0= ruleUnsignedNumber ) ) ( (lv_marginRightUnit_47_0= ruleUnitEnum ) ) ) ) ) ) )* ) )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:2550:2: ( ( ({...}? => ( ({...}? => (otherlv_4= 'formatter' ( (otherlv_5= RULE_ID ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_6= 'font' ( (otherlv_7= RULE_ID ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_8= 'backgroundcolor' ( (otherlv_9= RULE_ID ) ) (otherlv_10= 'alternate' ( (otherlv_11= RULE_ID ) ) )? ) ) ) ) | ({...}? => ( ({...}? => (otherlv_12= 'textcolor' ( (otherlv_13= RULE_ID ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_14= 'textalign' ( (lv_textalign_15_0= ruleTextAlignEnum ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_16= 'border-top' ( (lv_borderTop_17_0= ruleBorderStyle ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_18= 'border-bottom' ( (lv_borderBottom_19_0= ruleBorderStyle ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_20= 'border-left' ( (lv_borderLeft_21_0= ruleBorderStyle ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_22= 'border-right' ( (lv_borderRight_23_0= ruleBorderStyle ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_24= 'padding-top' ( (lv_paddingTopValue_25_0= ruleUnsignedNumber ) ) ( (lv_paddingTopUnit_26_0= ruleUnitEnum ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_27= 'padding-bottom' ( (lv_paddingBottomValue_28_0= ruleUnsignedNumber ) ) ( (lv_paddingBottomUnit_29_0= ruleUnitEnum ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_30= 'padding-left' ( (lv_paddingLeftValue_31_0= ruleUnsignedNumber ) ) ( (lv_paddingLeftUnit_32_0= ruleUnitEnum ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_33= 'padding-right' ( (lv_paddingRightValue_34_0= ruleUnsignedNumber ) ) ( (lv_paddingRightUnit_35_0= ruleUnitEnum ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_36= 'margin-top' ( (lv_marginTopValue_37_0= ruleUnsignedNumber ) ) ( (lv_marginTopUnit_38_0= ruleUnitEnum ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_39= 'margin-bottom' ( (lv_marginBottomValue_40_0= ruleUnsignedNumber ) ) ( (lv_marginBottomUnit_41_0= ruleUnitEnum ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_42= 'margin-left' ( (lv_marginLeftValue_43_0= ruleUnsignedNumber ) ) ( (lv_marginLeftUnit_44_0= ruleUnitEnum ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_45= 'margin-right' ( (lv_marginRightValue_46_0= ruleUnsignedNumber ) ) ( (lv_marginRightUnit_47_0= ruleUnitEnum ) ) ) ) ) ) )* )
+            {
+            getUnorderedGroupHelper().enter(grammarAccess.getMediaStyleAccess().getUnorderedGroup_3());
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:2553:2: ( ( ({...}? => ( ({...}? => (otherlv_4= 'formatter' ( (otherlv_5= RULE_ID ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_6= 'font' ( (otherlv_7= RULE_ID ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_8= 'backgroundcolor' ( (otherlv_9= RULE_ID ) ) (otherlv_10= 'alternate' ( (otherlv_11= RULE_ID ) ) )? ) ) ) ) | ({...}? => ( ({...}? => (otherlv_12= 'textcolor' ( (otherlv_13= RULE_ID ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_14= 'textalign' ( (lv_textalign_15_0= ruleTextAlignEnum ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_16= 'border-top' ( (lv_borderTop_17_0= ruleBorderStyle ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_18= 'border-bottom' ( (lv_borderBottom_19_0= ruleBorderStyle ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_20= 'border-left' ( (lv_borderLeft_21_0= ruleBorderStyle ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_22= 'border-right' ( (lv_borderRight_23_0= ruleBorderStyle ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_24= 'padding-top' ( (lv_paddingTopValue_25_0= ruleUnsignedNumber ) ) ( (lv_paddingTopUnit_26_0= ruleUnitEnum ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_27= 'padding-bottom' ( (lv_paddingBottomValue_28_0= ruleUnsignedNumber ) ) ( (lv_paddingBottomUnit_29_0= ruleUnitEnum ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_30= 'padding-left' ( (lv_paddingLeftValue_31_0= ruleUnsignedNumber ) ) ( (lv_paddingLeftUnit_32_0= ruleUnitEnum ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_33= 'padding-right' ( (lv_paddingRightValue_34_0= ruleUnsignedNumber ) ) ( (lv_paddingRightUnit_35_0= ruleUnitEnum ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_36= 'margin-top' ( (lv_marginTopValue_37_0= ruleUnsignedNumber ) ) ( (lv_marginTopUnit_38_0= ruleUnitEnum ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_39= 'margin-bottom' ( (lv_marginBottomValue_40_0= ruleUnsignedNumber ) ) ( (lv_marginBottomUnit_41_0= ruleUnitEnum ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_42= 'margin-left' ( (lv_marginLeftValue_43_0= ruleUnsignedNumber ) ) ( (lv_marginLeftUnit_44_0= ruleUnitEnum ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_45= 'margin-right' ( (lv_marginRightValue_46_0= ruleUnsignedNumber ) ) ( (lv_marginRightUnit_47_0= ruleUnitEnum ) ) ) ) ) ) )* )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:2554:3: ( ({...}? => ( ({...}? => (otherlv_4= 'formatter' ( (otherlv_5= RULE_ID ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_6= 'font' ( (otherlv_7= RULE_ID ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_8= 'backgroundcolor' ( (otherlv_9= RULE_ID ) ) (otherlv_10= 'alternate' ( (otherlv_11= RULE_ID ) ) )? ) ) ) ) | ({...}? => ( ({...}? => (otherlv_12= 'textcolor' ( (otherlv_13= RULE_ID ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_14= 'textalign' ( (lv_textalign_15_0= ruleTextAlignEnum ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_16= 'border-top' ( (lv_borderTop_17_0= ruleBorderStyle ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_18= 'border-bottom' ( (lv_borderBottom_19_0= ruleBorderStyle ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_20= 'border-left' ( (lv_borderLeft_21_0= ruleBorderStyle ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_22= 'border-right' ( (lv_borderRight_23_0= ruleBorderStyle ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_24= 'padding-top' ( (lv_paddingTopValue_25_0= ruleUnsignedNumber ) ) ( (lv_paddingTopUnit_26_0= ruleUnitEnum ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_27= 'padding-bottom' ( (lv_paddingBottomValue_28_0= ruleUnsignedNumber ) ) ( (lv_paddingBottomUnit_29_0= ruleUnitEnum ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_30= 'padding-left' ( (lv_paddingLeftValue_31_0= ruleUnsignedNumber ) ) ( (lv_paddingLeftUnit_32_0= ruleUnitEnum ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_33= 'padding-right' ( (lv_paddingRightValue_34_0= ruleUnsignedNumber ) ) ( (lv_paddingRightUnit_35_0= ruleUnitEnum ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_36= 'margin-top' ( (lv_marginTopValue_37_0= ruleUnsignedNumber ) ) ( (lv_marginTopUnit_38_0= ruleUnitEnum ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_39= 'margin-bottom' ( (lv_marginBottomValue_40_0= ruleUnsignedNumber ) ) ( (lv_marginBottomUnit_41_0= ruleUnitEnum ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_42= 'margin-left' ( (lv_marginLeftValue_43_0= ruleUnsignedNumber ) ) ( (lv_marginLeftUnit_44_0= ruleUnitEnum ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_45= 'margin-right' ( (lv_marginRightValue_46_0= ruleUnsignedNumber ) ) ( (lv_marginRightUnit_47_0= ruleUnitEnum ) ) ) ) ) ) )*
+            {
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:2554:3: ( ({...}? => ( ({...}? => (otherlv_4= 'formatter' ( (otherlv_5= RULE_ID ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_6= 'font' ( (otherlv_7= RULE_ID ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_8= 'backgroundcolor' ( (otherlv_9= RULE_ID ) ) (otherlv_10= 'alternate' ( (otherlv_11= RULE_ID ) ) )? ) ) ) ) | ({...}? => ( ({...}? => (otherlv_12= 'textcolor' ( (otherlv_13= RULE_ID ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_14= 'textalign' ( (lv_textalign_15_0= ruleTextAlignEnum ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_16= 'border-top' ( (lv_borderTop_17_0= ruleBorderStyle ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_18= 'border-bottom' ( (lv_borderBottom_19_0= ruleBorderStyle ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_20= 'border-left' ( (lv_borderLeft_21_0= ruleBorderStyle ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_22= 'border-right' ( (lv_borderRight_23_0= ruleBorderStyle ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_24= 'padding-top' ( (lv_paddingTopValue_25_0= ruleUnsignedNumber ) ) ( (lv_paddingTopUnit_26_0= ruleUnitEnum ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_27= 'padding-bottom' ( (lv_paddingBottomValue_28_0= ruleUnsignedNumber ) ) ( (lv_paddingBottomUnit_29_0= ruleUnitEnum ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_30= 'padding-left' ( (lv_paddingLeftValue_31_0= ruleUnsignedNumber ) ) ( (lv_paddingLeftUnit_32_0= ruleUnitEnum ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_33= 'padding-right' ( (lv_paddingRightValue_34_0= ruleUnsignedNumber ) ) ( (lv_paddingRightUnit_35_0= ruleUnitEnum ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_36= 'margin-top' ( (lv_marginTopValue_37_0= ruleUnsignedNumber ) ) ( (lv_marginTopUnit_38_0= ruleUnitEnum ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_39= 'margin-bottom' ( (lv_marginBottomValue_40_0= ruleUnsignedNumber ) ) ( (lv_marginBottomUnit_41_0= ruleUnitEnum ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_42= 'margin-left' ( (lv_marginLeftValue_43_0= ruleUnsignedNumber ) ) ( (lv_marginLeftUnit_44_0= ruleUnitEnum ) ) ) ) ) ) | ({...}? => ( ({...}? => (otherlv_45= 'margin-right' ( (lv_marginRightValue_46_0= ruleUnsignedNumber ) ) ( (lv_marginRightUnit_47_0= ruleUnitEnum ) ) ) ) ) ) )*
+            loop26:
+            do {
+                int alt26=18;
+                int LA26_0 = input.LA(1);
+
+                if ( LA26_0 ==44 && getUnorderedGroupHelper().canSelect(grammarAccess.getMediaStyleAccess().getUnorderedGroup_3(), 0) ) {
+                    alt26=1;
+                }
+                else if ( LA26_0 ==38 && getUnorderedGroupHelper().canSelect(grammarAccess.getMediaStyleAccess().getUnorderedGroup_3(), 1) ) {
+                    alt26=2;
+                }
+                else if ( LA26_0 ==45 && getUnorderedGroupHelper().canSelect(grammarAccess.getMediaStyleAccess().getUnorderedGroup_3(), 2) ) {
+                    alt26=3;
+                }
+                else if ( LA26_0 ==47 && getUnorderedGroupHelper().canSelect(grammarAccess.getMediaStyleAccess().getUnorderedGroup_3(), 3) ) {
+                    alt26=4;
+                }
+                else if ( LA26_0 ==48 && getUnorderedGroupHelper().canSelect(grammarAccess.getMediaStyleAccess().getUnorderedGroup_3(), 4) ) {
+                    alt26=5;
+                }
+                else if ( LA26_0 ==49 && getUnorderedGroupHelper().canSelect(grammarAccess.getMediaStyleAccess().getUnorderedGroup_3(), 5) ) {
+                    alt26=6;
+                }
+                else if ( LA26_0 ==50 && getUnorderedGroupHelper().canSelect(grammarAccess.getMediaStyleAccess().getUnorderedGroup_3(), 6) ) {
+                    alt26=7;
+                }
+                else if ( LA26_0 ==51 && getUnorderedGroupHelper().canSelect(grammarAccess.getMediaStyleAccess().getUnorderedGroup_3(), 7) ) {
+                    alt26=8;
+                }
+                else if ( LA26_0 ==52 && getUnorderedGroupHelper().canSelect(grammarAccess.getMediaStyleAccess().getUnorderedGroup_3(), 8) ) {
+                    alt26=9;
+                }
+                else if ( LA26_0 ==53 && getUnorderedGroupHelper().canSelect(grammarAccess.getMediaStyleAccess().getUnorderedGroup_3(), 9) ) {
+                    alt26=10;
+                }
+                else if ( LA26_0 ==54 && getUnorderedGroupHelper().canSelect(grammarAccess.getMediaStyleAccess().getUnorderedGroup_3(), 10) ) {
+                    alt26=11;
+                }
+                else if ( LA26_0 ==55 && getUnorderedGroupHelper().canSelect(grammarAccess.getMediaStyleAccess().getUnorderedGroup_3(), 11) ) {
+                    alt26=12;
+                }
+                else if ( LA26_0 ==56 && getUnorderedGroupHelper().canSelect(grammarAccess.getMediaStyleAccess().getUnorderedGroup_3(), 12) ) {
+                    alt26=13;
+                }
+                else if ( LA26_0 ==57 && getUnorderedGroupHelper().canSelect(grammarAccess.getMediaStyleAccess().getUnorderedGroup_3(), 13) ) {
+                    alt26=14;
+                }
+                else if ( LA26_0 ==58 && getUnorderedGroupHelper().canSelect(grammarAccess.getMediaStyleAccess().getUnorderedGroup_3(), 14) ) {
+                    alt26=15;
+                }
+                else if ( LA26_0 ==59 && getUnorderedGroupHelper().canSelect(grammarAccess.getMediaStyleAccess().getUnorderedGroup_3(), 15) ) {
+                    alt26=16;
+                }
+                else if ( LA26_0 ==60 && getUnorderedGroupHelper().canSelect(grammarAccess.getMediaStyleAccess().getUnorderedGroup_3(), 16) ) {
+                    alt26=17;
+                }
+
+
+                switch (alt26) {
+            	case 1 :
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:2556:4: ({...}? => ( ({...}? => (otherlv_4= 'formatter' ( (otherlv_5= RULE_ID ) ) ) ) ) )
+            	    {
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:2556:4: ({...}? => ( ({...}? => (otherlv_4= 'formatter' ( (otherlv_5= RULE_ID ) ) ) ) ) )
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:2557:5: {...}? => ( ({...}? => (otherlv_4= 'formatter' ( (otherlv_5= RULE_ID ) ) ) ) )
+            	    {
+            	    if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getMediaStyleAccess().getUnorderedGroup_3(), 0) ) {
+            	        if (state.backtracking>0) {state.failed=true; return current;}
+            	        throw new FailedPredicateException(input, "ruleMediaStyle", "getUnorderedGroupHelper().canSelect(grammarAccess.getMediaStyleAccess().getUnorderedGroup_3(), 0)");
+            	    }
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:2557:107: ( ({...}? => (otherlv_4= 'formatter' ( (otherlv_5= RULE_ID ) ) ) ) )
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:2558:6: ({...}? => (otherlv_4= 'formatter' ( (otherlv_5= RULE_ID ) ) ) )
+            	    {
+            	    getUnorderedGroupHelper().select(grammarAccess.getMediaStyleAccess().getUnorderedGroup_3(), 0);
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:2561:6: ({...}? => (otherlv_4= 'formatter' ( (otherlv_5= RULE_ID ) ) ) )
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:2561:7: {...}? => (otherlv_4= 'formatter' ( (otherlv_5= RULE_ID ) ) )
+            	    {
+            	    if ( !((true)) ) {
+            	        if (state.backtracking>0) {state.failed=true; return current;}
+            	        throw new FailedPredicateException(input, "ruleMediaStyle", "true");
+            	    }
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:2561:16: (otherlv_4= 'formatter' ( (otherlv_5= RULE_ID ) ) )
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:2561:18: otherlv_4= 'formatter' ( (otherlv_5= RULE_ID ) )
+            	    {
+            	    otherlv_4=(Token)match(input,44,FOLLOW_44_in_ruleMediaStyle5507); if (state.failed) return current;
+            	    if ( state.backtracking==0 ) {
+
+            	          	newLeafNode(otherlv_4, grammarAccess.getMediaStyleAccess().getFormatterKeyword_3_0_0());
+            	          
+            	    }
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:2565:1: ( (otherlv_5= RULE_ID ) )
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:2566:1: (otherlv_5= RULE_ID )
+            	    {
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:2566:1: (otherlv_5= RULE_ID )
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:2567:3: otherlv_5= RULE_ID
+            	    {
+            	    if ( state.backtracking==0 ) {
+
+            	      			if (current==null) {
+            	      	            current = createModelElement(grammarAccess.getMediaStyleRule());
+            	      	        }
+            	              
+            	    }
+            	    otherlv_5=(Token)match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleMediaStyle5527); if (state.failed) return current;
+            	    if ( state.backtracking==0 ) {
+
+            	      		newLeafNode(otherlv_5, grammarAccess.getMediaStyleAccess().getFormatSomeFormatCrossReference_3_0_1_0()); 
+            	      	
+            	    }
+
+            	    }
+
+
+            	    }
+
+
+            	    }
+
+
+            	    }
+
+            	    getUnorderedGroupHelper().returnFromSelection(grammarAccess.getMediaStyleAccess().getUnorderedGroup_3());
+
+            	    }
+
+
+            	    }
+
+
+            	    }
+            	    break;
+            	case 2 :
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:2585:4: ({...}? => ( ({...}? => (otherlv_6= 'font' ( (otherlv_7= RULE_ID ) ) ) ) ) )
+            	    {
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:2585:4: ({...}? => ( ({...}? => (otherlv_6= 'font' ( (otherlv_7= RULE_ID ) ) ) ) ) )
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:2586:5: {...}? => ( ({...}? => (otherlv_6= 'font' ( (otherlv_7= RULE_ID ) ) ) ) )
+            	    {
+            	    if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getMediaStyleAccess().getUnorderedGroup_3(), 1) ) {
+            	        if (state.backtracking>0) {state.failed=true; return current;}
+            	        throw new FailedPredicateException(input, "ruleMediaStyle", "getUnorderedGroupHelper().canSelect(grammarAccess.getMediaStyleAccess().getUnorderedGroup_3(), 1)");
+            	    }
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:2586:107: ( ({...}? => (otherlv_6= 'font' ( (otherlv_7= RULE_ID ) ) ) ) )
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:2587:6: ({...}? => (otherlv_6= 'font' ( (otherlv_7= RULE_ID ) ) ) )
+            	    {
+            	    getUnorderedGroupHelper().select(grammarAccess.getMediaStyleAccess().getUnorderedGroup_3(), 1);
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:2590:6: ({...}? => (otherlv_6= 'font' ( (otherlv_7= RULE_ID ) ) ) )
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:2590:7: {...}? => (otherlv_6= 'font' ( (otherlv_7= RULE_ID ) ) )
+            	    {
+            	    if ( !((true)) ) {
+            	        if (state.backtracking>0) {state.failed=true; return current;}
+            	        throw new FailedPredicateException(input, "ruleMediaStyle", "true");
+            	    }
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:2590:16: (otherlv_6= 'font' ( (otherlv_7= RULE_ID ) ) )
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:2590:18: otherlv_6= 'font' ( (otherlv_7= RULE_ID ) )
+            	    {
+            	    otherlv_6=(Token)match(input,38,FOLLOW_38_in_ruleMediaStyle5595); if (state.failed) return current;
+            	    if ( state.backtracking==0 ) {
+
+            	          	newLeafNode(otherlv_6, grammarAccess.getMediaStyleAccess().getFontKeyword_3_1_0());
+            	          
+            	    }
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:2594:1: ( (otherlv_7= RULE_ID ) )
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:2595:1: (otherlv_7= RULE_ID )
+            	    {
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:2595:1: (otherlv_7= RULE_ID )
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:2596:3: otherlv_7= RULE_ID
+            	    {
+            	    if ( state.backtracking==0 ) {
+
+            	      			if (current==null) {
+            	      	            current = createModelElement(grammarAccess.getMediaStyleRule());
+            	      	        }
+            	              
+            	    }
+            	    otherlv_7=(Token)match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleMediaStyle5615); if (state.failed) return current;
+            	    if ( state.backtracking==0 ) {
+
+            	      		newLeafNode(otherlv_7, grammarAccess.getMediaStyleAccess().getFontFontCrossReference_3_1_1_0()); 
+            	      	
+            	    }
+
+            	    }
+
+
+            	    }
+
+
+            	    }
+
+
+            	    }
+
+            	    getUnorderedGroupHelper().returnFromSelection(grammarAccess.getMediaStyleAccess().getUnorderedGroup_3());
+
+            	    }
+
+
+            	    }
+
+
+            	    }
+            	    break;
+            	case 3 :
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:2614:4: ({...}? => ( ({...}? => (otherlv_8= 'backgroundcolor' ( (otherlv_9= RULE_ID ) ) (otherlv_10= 'alternate' ( (otherlv_11= RULE_ID ) ) )? ) ) ) )
+            	    {
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:2614:4: ({...}? => ( ({...}? => (otherlv_8= 'backgroundcolor' ( (otherlv_9= RULE_ID ) ) (otherlv_10= 'alternate' ( (otherlv_11= RULE_ID ) ) )? ) ) ) )
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:2615:5: {...}? => ( ({...}? => (otherlv_8= 'backgroundcolor' ( (otherlv_9= RULE_ID ) ) (otherlv_10= 'alternate' ( (otherlv_11= RULE_ID ) ) )? ) ) )
+            	    {
+            	    if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getMediaStyleAccess().getUnorderedGroup_3(), 2) ) {
+            	        if (state.backtracking>0) {state.failed=true; return current;}
+            	        throw new FailedPredicateException(input, "ruleMediaStyle", "getUnorderedGroupHelper().canSelect(grammarAccess.getMediaStyleAccess().getUnorderedGroup_3(), 2)");
+            	    }
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:2615:107: ( ({...}? => (otherlv_8= 'backgroundcolor' ( (otherlv_9= RULE_ID ) ) (otherlv_10= 'alternate' ( (otherlv_11= RULE_ID ) ) )? ) ) )
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:2616:6: ({...}? => (otherlv_8= 'backgroundcolor' ( (otherlv_9= RULE_ID ) ) (otherlv_10= 'alternate' ( (otherlv_11= RULE_ID ) ) )? ) )
+            	    {
+            	    getUnorderedGroupHelper().select(grammarAccess.getMediaStyleAccess().getUnorderedGroup_3(), 2);
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:2619:6: ({...}? => (otherlv_8= 'backgroundcolor' ( (otherlv_9= RULE_ID ) ) (otherlv_10= 'alternate' ( (otherlv_11= RULE_ID ) ) )? ) )
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:2619:7: {...}? => (otherlv_8= 'backgroundcolor' ( (otherlv_9= RULE_ID ) ) (otherlv_10= 'alternate' ( (otherlv_11= RULE_ID ) ) )? )
+            	    {
+            	    if ( !((true)) ) {
+            	        if (state.backtracking>0) {state.failed=true; return current;}
+            	        throw new FailedPredicateException(input, "ruleMediaStyle", "true");
+            	    }
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:2619:16: (otherlv_8= 'backgroundcolor' ( (otherlv_9= RULE_ID ) ) (otherlv_10= 'alternate' ( (otherlv_11= RULE_ID ) ) )? )
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:2619:18: otherlv_8= 'backgroundcolor' ( (otherlv_9= RULE_ID ) ) (otherlv_10= 'alternate' ( (otherlv_11= RULE_ID ) ) )?
+            	    {
+            	    otherlv_8=(Token)match(input,45,FOLLOW_45_in_ruleMediaStyle5683); if (state.failed) return current;
+            	    if ( state.backtracking==0 ) {
+
+            	          	newLeafNode(otherlv_8, grammarAccess.getMediaStyleAccess().getBackgroundcolorKeyword_3_2_0());
+            	          
+            	    }
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:2623:1: ( (otherlv_9= RULE_ID ) )
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:2624:1: (otherlv_9= RULE_ID )
+            	    {
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:2624:1: (otherlv_9= RULE_ID )
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:2625:3: otherlv_9= RULE_ID
+            	    {
+            	    if ( state.backtracking==0 ) {
+
+            	      			if (current==null) {
+            	      	            current = createModelElement(grammarAccess.getMediaStyleRule());
+            	      	        }
+            	              
+            	    }
+            	    otherlv_9=(Token)match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleMediaStyle5703); if (state.failed) return current;
+            	    if ( state.backtracking==0 ) {
+
+            	      		newLeafNode(otherlv_9, grammarAccess.getMediaStyleAccess().getBackgroundcolorColorCrossReference_3_2_1_0()); 
+            	      	
+            	    }
+
+            	    }
+
+
+            	    }
+
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:2636:2: (otherlv_10= 'alternate' ( (otherlv_11= RULE_ID ) ) )?
+            	    int alt25=2;
+            	    switch ( input.LA(1) ) {
+            	        case 46:
+            	            {
+            	            alt25=1;
+            	            }
+            	            break;
+            	    }
+
+            	    switch (alt25) {
+            	        case 1 :
+            	            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:2636:4: otherlv_10= 'alternate' ( (otherlv_11= RULE_ID ) )
+            	            {
+            	            otherlv_10=(Token)match(input,46,FOLLOW_46_in_ruleMediaStyle5716); if (state.failed) return current;
+            	            if ( state.backtracking==0 ) {
+
+            	                  	newLeafNode(otherlv_10, grammarAccess.getMediaStyleAccess().getAlternateKeyword_3_2_2_0());
+            	                  
+            	            }
+            	            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:2640:1: ( (otherlv_11= RULE_ID ) )
+            	            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:2641:1: (otherlv_11= RULE_ID )
+            	            {
+            	            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:2641:1: (otherlv_11= RULE_ID )
+            	            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:2642:3: otherlv_11= RULE_ID
+            	            {
+            	            if ( state.backtracking==0 ) {
+
+            	              			if (current==null) {
+            	              	            current = createModelElement(grammarAccess.getMediaStyleRule());
+            	              	        }
+            	                      
+            	            }
+            	            otherlv_11=(Token)match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleMediaStyle5736); if (state.failed) return current;
+            	            if ( state.backtracking==0 ) {
+
+            	              		newLeafNode(otherlv_11, grammarAccess.getMediaStyleAccess().getBackgroundcolor_alternateColorCrossReference_3_2_2_1_0()); 
+            	              	
+            	            }
+
+            	            }
+
+
+            	            }
+
+
+            	            }
+            	            break;
+
+            	    }
+
+
+            	    }
+
+
+            	    }
+
+            	    getUnorderedGroupHelper().returnFromSelection(grammarAccess.getMediaStyleAccess().getUnorderedGroup_3());
+
+            	    }
+
+
+            	    }
+
+
+            	    }
+            	    break;
+            	case 4 :
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:2660:4: ({...}? => ( ({...}? => (otherlv_12= 'textcolor' ( (otherlv_13= RULE_ID ) ) ) ) ) )
+            	    {
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:2660:4: ({...}? => ( ({...}? => (otherlv_12= 'textcolor' ( (otherlv_13= RULE_ID ) ) ) ) ) )
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:2661:5: {...}? => ( ({...}? => (otherlv_12= 'textcolor' ( (otherlv_13= RULE_ID ) ) ) ) )
+            	    {
+            	    if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getMediaStyleAccess().getUnorderedGroup_3(), 3) ) {
+            	        if (state.backtracking>0) {state.failed=true; return current;}
+            	        throw new FailedPredicateException(input, "ruleMediaStyle", "getUnorderedGroupHelper().canSelect(grammarAccess.getMediaStyleAccess().getUnorderedGroup_3(), 3)");
+            	    }
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:2661:107: ( ({...}? => (otherlv_12= 'textcolor' ( (otherlv_13= RULE_ID ) ) ) ) )
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:2662:6: ({...}? => (otherlv_12= 'textcolor' ( (otherlv_13= RULE_ID ) ) ) )
+            	    {
+            	    getUnorderedGroupHelper().select(grammarAccess.getMediaStyleAccess().getUnorderedGroup_3(), 3);
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:2665:6: ({...}? => (otherlv_12= 'textcolor' ( (otherlv_13= RULE_ID ) ) ) )
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:2665:7: {...}? => (otherlv_12= 'textcolor' ( (otherlv_13= RULE_ID ) ) )
+            	    {
+            	    if ( !((true)) ) {
+            	        if (state.backtracking>0) {state.failed=true; return current;}
+            	        throw new FailedPredicateException(input, "ruleMediaStyle", "true");
+            	    }
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:2665:16: (otherlv_12= 'textcolor' ( (otherlv_13= RULE_ID ) ) )
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:2665:18: otherlv_12= 'textcolor' ( (otherlv_13= RULE_ID ) )
+            	    {
+            	    otherlv_12=(Token)match(input,47,FOLLOW_47_in_ruleMediaStyle5806); if (state.failed) return current;
+            	    if ( state.backtracking==0 ) {
+
+            	          	newLeafNode(otherlv_12, grammarAccess.getMediaStyleAccess().getTextcolorKeyword_3_3_0());
+            	          
+            	    }
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:2669:1: ( (otherlv_13= RULE_ID ) )
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:2670:1: (otherlv_13= RULE_ID )
+            	    {
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:2670:1: (otherlv_13= RULE_ID )
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:2671:3: otherlv_13= RULE_ID
+            	    {
+            	    if ( state.backtracking==0 ) {
+
+            	      			if (current==null) {
+            	      	            current = createModelElement(grammarAccess.getMediaStyleRule());
+            	      	        }
+            	              
+            	    }
+            	    otherlv_13=(Token)match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleMediaStyle5826); if (state.failed) return current;
+            	    if ( state.backtracking==0 ) {
+
+            	      		newLeafNode(otherlv_13, grammarAccess.getMediaStyleAccess().getTextcolorColorCrossReference_3_3_1_0()); 
+            	      	
+            	    }
+
+            	    }
+
+
+            	    }
+
+
+            	    }
+
+
+            	    }
+
+            	    getUnorderedGroupHelper().returnFromSelection(grammarAccess.getMediaStyleAccess().getUnorderedGroup_3());
+
+            	    }
+
+
+            	    }
+
+
+            	    }
+            	    break;
+            	case 5 :
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:2689:4: ({...}? => ( ({...}? => (otherlv_14= 'textalign' ( (lv_textalign_15_0= ruleTextAlignEnum ) ) ) ) ) )
+            	    {
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:2689:4: ({...}? => ( ({...}? => (otherlv_14= 'textalign' ( (lv_textalign_15_0= ruleTextAlignEnum ) ) ) ) ) )
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:2690:5: {...}? => ( ({...}? => (otherlv_14= 'textalign' ( (lv_textalign_15_0= ruleTextAlignEnum ) ) ) ) )
+            	    {
+            	    if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getMediaStyleAccess().getUnorderedGroup_3(), 4) ) {
+            	        if (state.backtracking>0) {state.failed=true; return current;}
+            	        throw new FailedPredicateException(input, "ruleMediaStyle", "getUnorderedGroupHelper().canSelect(grammarAccess.getMediaStyleAccess().getUnorderedGroup_3(), 4)");
+            	    }
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:2690:107: ( ({...}? => (otherlv_14= 'textalign' ( (lv_textalign_15_0= ruleTextAlignEnum ) ) ) ) )
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:2691:6: ({...}? => (otherlv_14= 'textalign' ( (lv_textalign_15_0= ruleTextAlignEnum ) ) ) )
+            	    {
+            	    getUnorderedGroupHelper().select(grammarAccess.getMediaStyleAccess().getUnorderedGroup_3(), 4);
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:2694:6: ({...}? => (otherlv_14= 'textalign' ( (lv_textalign_15_0= ruleTextAlignEnum ) ) ) )
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:2694:7: {...}? => (otherlv_14= 'textalign' ( (lv_textalign_15_0= ruleTextAlignEnum ) ) )
+            	    {
+            	    if ( !((true)) ) {
+            	        if (state.backtracking>0) {state.failed=true; return current;}
+            	        throw new FailedPredicateException(input, "ruleMediaStyle", "true");
+            	    }
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:2694:16: (otherlv_14= 'textalign' ( (lv_textalign_15_0= ruleTextAlignEnum ) ) )
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:2694:18: otherlv_14= 'textalign' ( (lv_textalign_15_0= ruleTextAlignEnum ) )
+            	    {
+            	    otherlv_14=(Token)match(input,48,FOLLOW_48_in_ruleMediaStyle5894); if (state.failed) return current;
+            	    if ( state.backtracking==0 ) {
+
+            	          	newLeafNode(otherlv_14, grammarAccess.getMediaStyleAccess().getTextalignKeyword_3_4_0());
+            	          
+            	    }
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:2698:1: ( (lv_textalign_15_0= ruleTextAlignEnum ) )
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:2699:1: (lv_textalign_15_0= ruleTextAlignEnum )
+            	    {
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:2699:1: (lv_textalign_15_0= ruleTextAlignEnum )
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:2700:3: lv_textalign_15_0= ruleTextAlignEnum
+            	    {
+            	    if ( state.backtracking==0 ) {
+            	       
+            	      	        newCompositeNode(grammarAccess.getMediaStyleAccess().getTextalignTextAlignEnumEnumRuleCall_3_4_1_0()); 
+            	      	    
+            	    }
+            	    pushFollow(FOLLOW_ruleTextAlignEnum_in_ruleMediaStyle5915);
+            	    lv_textalign_15_0=ruleTextAlignEnum();
+
+            	    state._fsp--;
+            	    if (state.failed) return current;
+            	    if ( state.backtracking==0 ) {
+
+            	      	        if (current==null) {
+            	      	            current = createModelElementForParent(grammarAccess.getMediaStyleRule());
+            	      	        }
+            	             		set(
+            	             			current, 
+            	             			"textalign",
+            	              		lv_textalign_15_0, 
+            	              		"TextAlignEnum");
+            	      	        afterParserOrEnumRuleCall();
+            	      	    
+            	    }
+
+            	    }
+
+
+            	    }
+
+
+            	    }
+
+
+            	    }
+
+            	    getUnorderedGroupHelper().returnFromSelection(grammarAccess.getMediaStyleAccess().getUnorderedGroup_3());
+
+            	    }
+
+
+            	    }
+
+
+            	    }
+            	    break;
+            	case 6 :
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:2723:4: ({...}? => ( ({...}? => (otherlv_16= 'border-top' ( (lv_borderTop_17_0= ruleBorderStyle ) ) ) ) ) )
+            	    {
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:2723:4: ({...}? => ( ({...}? => (otherlv_16= 'border-top' ( (lv_borderTop_17_0= ruleBorderStyle ) ) ) ) ) )
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:2724:5: {...}? => ( ({...}? => (otherlv_16= 'border-top' ( (lv_borderTop_17_0= ruleBorderStyle ) ) ) ) )
+            	    {
+            	    if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getMediaStyleAccess().getUnorderedGroup_3(), 5) ) {
+            	        if (state.backtracking>0) {state.failed=true; return current;}
+            	        throw new FailedPredicateException(input, "ruleMediaStyle", "getUnorderedGroupHelper().canSelect(grammarAccess.getMediaStyleAccess().getUnorderedGroup_3(), 5)");
+            	    }
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:2724:107: ( ({...}? => (otherlv_16= 'border-top' ( (lv_borderTop_17_0= ruleBorderStyle ) ) ) ) )
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:2725:6: ({...}? => (otherlv_16= 'border-top' ( (lv_borderTop_17_0= ruleBorderStyle ) ) ) )
+            	    {
+            	    getUnorderedGroupHelper().select(grammarAccess.getMediaStyleAccess().getUnorderedGroup_3(), 5);
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:2728:6: ({...}? => (otherlv_16= 'border-top' ( (lv_borderTop_17_0= ruleBorderStyle ) ) ) )
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:2728:7: {...}? => (otherlv_16= 'border-top' ( (lv_borderTop_17_0= ruleBorderStyle ) ) )
+            	    {
+            	    if ( !((true)) ) {
+            	        if (state.backtracking>0) {state.failed=true; return current;}
+            	        throw new FailedPredicateException(input, "ruleMediaStyle", "true");
+            	    }
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:2728:16: (otherlv_16= 'border-top' ( (lv_borderTop_17_0= ruleBorderStyle ) ) )
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:2728:18: otherlv_16= 'border-top' ( (lv_borderTop_17_0= ruleBorderStyle ) )
+            	    {
+            	    otherlv_16=(Token)match(input,49,FOLLOW_49_in_ruleMediaStyle5983); if (state.failed) return current;
+            	    if ( state.backtracking==0 ) {
+
+            	          	newLeafNode(otherlv_16, grammarAccess.getMediaStyleAccess().getBorderTopKeyword_3_5_0());
+            	          
+            	    }
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:2732:1: ( (lv_borderTop_17_0= ruleBorderStyle ) )
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:2733:1: (lv_borderTop_17_0= ruleBorderStyle )
+            	    {
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:2733:1: (lv_borderTop_17_0= ruleBorderStyle )
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:2734:3: lv_borderTop_17_0= ruleBorderStyle
+            	    {
+            	    if ( state.backtracking==0 ) {
+            	       
+            	      	        newCompositeNode(grammarAccess.getMediaStyleAccess().getBorderTopBorderStyleParserRuleCall_3_5_1_0()); 
+            	      	    
+            	    }
+            	    pushFollow(FOLLOW_ruleBorderStyle_in_ruleMediaStyle6004);
+            	    lv_borderTop_17_0=ruleBorderStyle();
+
+            	    state._fsp--;
+            	    if (state.failed) return current;
+            	    if ( state.backtracking==0 ) {
+
+            	      	        if (current==null) {
+            	      	            current = createModelElementForParent(grammarAccess.getMediaStyleRule());
+            	      	        }
+            	             		set(
+            	             			current, 
+            	             			"borderTop",
+            	              		lv_borderTop_17_0, 
+            	              		"BorderStyle");
+            	      	        afterParserOrEnumRuleCall();
+            	      	    
+            	    }
+
+            	    }
+
+
+            	    }
+
+
+            	    }
+
+
+            	    }
+
+            	    getUnorderedGroupHelper().returnFromSelection(grammarAccess.getMediaStyleAccess().getUnorderedGroup_3());
+
+            	    }
+
+
+            	    }
+
+
+            	    }
+            	    break;
+            	case 7 :
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:2757:4: ({...}? => ( ({...}? => (otherlv_18= 'border-bottom' ( (lv_borderBottom_19_0= ruleBorderStyle ) ) ) ) ) )
+            	    {
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:2757:4: ({...}? => ( ({...}? => (otherlv_18= 'border-bottom' ( (lv_borderBottom_19_0= ruleBorderStyle ) ) ) ) ) )
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:2758:5: {...}? => ( ({...}? => (otherlv_18= 'border-bottom' ( (lv_borderBottom_19_0= ruleBorderStyle ) ) ) ) )
+            	    {
+            	    if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getMediaStyleAccess().getUnorderedGroup_3(), 6) ) {
+            	        if (state.backtracking>0) {state.failed=true; return current;}
+            	        throw new FailedPredicateException(input, "ruleMediaStyle", "getUnorderedGroupHelper().canSelect(grammarAccess.getMediaStyleAccess().getUnorderedGroup_3(), 6)");
+            	    }
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:2758:107: ( ({...}? => (otherlv_18= 'border-bottom' ( (lv_borderBottom_19_0= ruleBorderStyle ) ) ) ) )
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:2759:6: ({...}? => (otherlv_18= 'border-bottom' ( (lv_borderBottom_19_0= ruleBorderStyle ) ) ) )
+            	    {
+            	    getUnorderedGroupHelper().select(grammarAccess.getMediaStyleAccess().getUnorderedGroup_3(), 6);
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:2762:6: ({...}? => (otherlv_18= 'border-bottom' ( (lv_borderBottom_19_0= ruleBorderStyle ) ) ) )
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:2762:7: {...}? => (otherlv_18= 'border-bottom' ( (lv_borderBottom_19_0= ruleBorderStyle ) ) )
+            	    {
+            	    if ( !((true)) ) {
+            	        if (state.backtracking>0) {state.failed=true; return current;}
+            	        throw new FailedPredicateException(input, "ruleMediaStyle", "true");
+            	    }
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:2762:16: (otherlv_18= 'border-bottom' ( (lv_borderBottom_19_0= ruleBorderStyle ) ) )
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:2762:18: otherlv_18= 'border-bottom' ( (lv_borderBottom_19_0= ruleBorderStyle ) )
+            	    {
+            	    otherlv_18=(Token)match(input,50,FOLLOW_50_in_ruleMediaStyle6072); if (state.failed) return current;
+            	    if ( state.backtracking==0 ) {
+
+            	          	newLeafNode(otherlv_18, grammarAccess.getMediaStyleAccess().getBorderBottomKeyword_3_6_0());
+            	          
+            	    }
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:2766:1: ( (lv_borderBottom_19_0= ruleBorderStyle ) )
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:2767:1: (lv_borderBottom_19_0= ruleBorderStyle )
+            	    {
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:2767:1: (lv_borderBottom_19_0= ruleBorderStyle )
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:2768:3: lv_borderBottom_19_0= ruleBorderStyle
+            	    {
+            	    if ( state.backtracking==0 ) {
+            	       
+            	      	        newCompositeNode(grammarAccess.getMediaStyleAccess().getBorderBottomBorderStyleParserRuleCall_3_6_1_0()); 
+            	      	    
+            	    }
+            	    pushFollow(FOLLOW_ruleBorderStyle_in_ruleMediaStyle6093);
+            	    lv_borderBottom_19_0=ruleBorderStyle();
+
+            	    state._fsp--;
+            	    if (state.failed) return current;
+            	    if ( state.backtracking==0 ) {
+
+            	      	        if (current==null) {
+            	      	            current = createModelElementForParent(grammarAccess.getMediaStyleRule());
+            	      	        }
+            	             		set(
+            	             			current, 
+            	             			"borderBottom",
+            	              		lv_borderBottom_19_0, 
+            	              		"BorderStyle");
+            	      	        afterParserOrEnumRuleCall();
+            	      	    
+            	    }
+
+            	    }
+
+
+            	    }
+
+
+            	    }
+
+
+            	    }
+
+            	    getUnorderedGroupHelper().returnFromSelection(grammarAccess.getMediaStyleAccess().getUnorderedGroup_3());
+
+            	    }
+
+
+            	    }
+
+
+            	    }
+            	    break;
+            	case 8 :
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:2791:4: ({...}? => ( ({...}? => (otherlv_20= 'border-left' ( (lv_borderLeft_21_0= ruleBorderStyle ) ) ) ) ) )
+            	    {
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:2791:4: ({...}? => ( ({...}? => (otherlv_20= 'border-left' ( (lv_borderLeft_21_0= ruleBorderStyle ) ) ) ) ) )
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:2792:5: {...}? => ( ({...}? => (otherlv_20= 'border-left' ( (lv_borderLeft_21_0= ruleBorderStyle ) ) ) ) )
+            	    {
+            	    if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getMediaStyleAccess().getUnorderedGroup_3(), 7) ) {
+            	        if (state.backtracking>0) {state.failed=true; return current;}
+            	        throw new FailedPredicateException(input, "ruleMediaStyle", "getUnorderedGroupHelper().canSelect(grammarAccess.getMediaStyleAccess().getUnorderedGroup_3(), 7)");
+            	    }
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:2792:107: ( ({...}? => (otherlv_20= 'border-left' ( (lv_borderLeft_21_0= ruleBorderStyle ) ) ) ) )
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:2793:6: ({...}? => (otherlv_20= 'border-left' ( (lv_borderLeft_21_0= ruleBorderStyle ) ) ) )
+            	    {
+            	    getUnorderedGroupHelper().select(grammarAccess.getMediaStyleAccess().getUnorderedGroup_3(), 7);
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:2796:6: ({...}? => (otherlv_20= 'border-left' ( (lv_borderLeft_21_0= ruleBorderStyle ) ) ) )
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:2796:7: {...}? => (otherlv_20= 'border-left' ( (lv_borderLeft_21_0= ruleBorderStyle ) ) )
+            	    {
+            	    if ( !((true)) ) {
+            	        if (state.backtracking>0) {state.failed=true; return current;}
+            	        throw new FailedPredicateException(input, "ruleMediaStyle", "true");
+            	    }
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:2796:16: (otherlv_20= 'border-left' ( (lv_borderLeft_21_0= ruleBorderStyle ) ) )
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:2796:18: otherlv_20= 'border-left' ( (lv_borderLeft_21_0= ruleBorderStyle ) )
+            	    {
+            	    otherlv_20=(Token)match(input,51,FOLLOW_51_in_ruleMediaStyle6161); if (state.failed) return current;
+            	    if ( state.backtracking==0 ) {
+
+            	          	newLeafNode(otherlv_20, grammarAccess.getMediaStyleAccess().getBorderLeftKeyword_3_7_0());
+            	          
+            	    }
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:2800:1: ( (lv_borderLeft_21_0= ruleBorderStyle ) )
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:2801:1: (lv_borderLeft_21_0= ruleBorderStyle )
+            	    {
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:2801:1: (lv_borderLeft_21_0= ruleBorderStyle )
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:2802:3: lv_borderLeft_21_0= ruleBorderStyle
+            	    {
+            	    if ( state.backtracking==0 ) {
+            	       
+            	      	        newCompositeNode(grammarAccess.getMediaStyleAccess().getBorderLeftBorderStyleParserRuleCall_3_7_1_0()); 
+            	      	    
+            	    }
+            	    pushFollow(FOLLOW_ruleBorderStyle_in_ruleMediaStyle6182);
+            	    lv_borderLeft_21_0=ruleBorderStyle();
+
+            	    state._fsp--;
+            	    if (state.failed) return current;
+            	    if ( state.backtracking==0 ) {
+
+            	      	        if (current==null) {
+            	      	            current = createModelElementForParent(grammarAccess.getMediaStyleRule());
+            	      	        }
+            	             		set(
+            	             			current, 
+            	             			"borderLeft",
+            	              		lv_borderLeft_21_0, 
+            	              		"BorderStyle");
+            	      	        afterParserOrEnumRuleCall();
+            	      	    
+            	    }
+
+            	    }
+
+
+            	    }
+
+
+            	    }
+
+
+            	    }
+
+            	    getUnorderedGroupHelper().returnFromSelection(grammarAccess.getMediaStyleAccess().getUnorderedGroup_3());
+
+            	    }
+
+
+            	    }
+
+
+            	    }
+            	    break;
+            	case 9 :
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:2825:4: ({...}? => ( ({...}? => (otherlv_22= 'border-right' ( (lv_borderRight_23_0= ruleBorderStyle ) ) ) ) ) )
+            	    {
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:2825:4: ({...}? => ( ({...}? => (otherlv_22= 'border-right' ( (lv_borderRight_23_0= ruleBorderStyle ) ) ) ) ) )
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:2826:5: {...}? => ( ({...}? => (otherlv_22= 'border-right' ( (lv_borderRight_23_0= ruleBorderStyle ) ) ) ) )
+            	    {
+            	    if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getMediaStyleAccess().getUnorderedGroup_3(), 8) ) {
+            	        if (state.backtracking>0) {state.failed=true; return current;}
+            	        throw new FailedPredicateException(input, "ruleMediaStyle", "getUnorderedGroupHelper().canSelect(grammarAccess.getMediaStyleAccess().getUnorderedGroup_3(), 8)");
+            	    }
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:2826:107: ( ({...}? => (otherlv_22= 'border-right' ( (lv_borderRight_23_0= ruleBorderStyle ) ) ) ) )
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:2827:6: ({...}? => (otherlv_22= 'border-right' ( (lv_borderRight_23_0= ruleBorderStyle ) ) ) )
+            	    {
+            	    getUnorderedGroupHelper().select(grammarAccess.getMediaStyleAccess().getUnorderedGroup_3(), 8);
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:2830:6: ({...}? => (otherlv_22= 'border-right' ( (lv_borderRight_23_0= ruleBorderStyle ) ) ) )
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:2830:7: {...}? => (otherlv_22= 'border-right' ( (lv_borderRight_23_0= ruleBorderStyle ) ) )
+            	    {
+            	    if ( !((true)) ) {
+            	        if (state.backtracking>0) {state.failed=true; return current;}
+            	        throw new FailedPredicateException(input, "ruleMediaStyle", "true");
+            	    }
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:2830:16: (otherlv_22= 'border-right' ( (lv_borderRight_23_0= ruleBorderStyle ) ) )
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:2830:18: otherlv_22= 'border-right' ( (lv_borderRight_23_0= ruleBorderStyle ) )
+            	    {
+            	    otherlv_22=(Token)match(input,52,FOLLOW_52_in_ruleMediaStyle6250); if (state.failed) return current;
+            	    if ( state.backtracking==0 ) {
+
+            	          	newLeafNode(otherlv_22, grammarAccess.getMediaStyleAccess().getBorderRightKeyword_3_8_0());
+            	          
+            	    }
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:2834:1: ( (lv_borderRight_23_0= ruleBorderStyle ) )
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:2835:1: (lv_borderRight_23_0= ruleBorderStyle )
+            	    {
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:2835:1: (lv_borderRight_23_0= ruleBorderStyle )
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:2836:3: lv_borderRight_23_0= ruleBorderStyle
+            	    {
+            	    if ( state.backtracking==0 ) {
+            	       
+            	      	        newCompositeNode(grammarAccess.getMediaStyleAccess().getBorderRightBorderStyleParserRuleCall_3_8_1_0()); 
+            	      	    
+            	    }
+            	    pushFollow(FOLLOW_ruleBorderStyle_in_ruleMediaStyle6271);
+            	    lv_borderRight_23_0=ruleBorderStyle();
+
+            	    state._fsp--;
+            	    if (state.failed) return current;
+            	    if ( state.backtracking==0 ) {
+
+            	      	        if (current==null) {
+            	      	            current = createModelElementForParent(grammarAccess.getMediaStyleRule());
+            	      	        }
+            	             		set(
+            	             			current, 
+            	             			"borderRight",
+            	              		lv_borderRight_23_0, 
+            	              		"BorderStyle");
+            	      	        afterParserOrEnumRuleCall();
+            	      	    
+            	    }
+
+            	    }
+
+
+            	    }
+
+
+            	    }
+
+
+            	    }
+
+            	    getUnorderedGroupHelper().returnFromSelection(grammarAccess.getMediaStyleAccess().getUnorderedGroup_3());
+
+            	    }
+
+
+            	    }
+
+
+            	    }
+            	    break;
+            	case 10 :
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:2859:4: ({...}? => ( ({...}? => (otherlv_24= 'padding-top' ( (lv_paddingTopValue_25_0= ruleUnsignedNumber ) ) ( (lv_paddingTopUnit_26_0= ruleUnitEnum ) ) ) ) ) )
+            	    {
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:2859:4: ({...}? => ( ({...}? => (otherlv_24= 'padding-top' ( (lv_paddingTopValue_25_0= ruleUnsignedNumber ) ) ( (lv_paddingTopUnit_26_0= ruleUnitEnum ) ) ) ) ) )
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:2860:5: {...}? => ( ({...}? => (otherlv_24= 'padding-top' ( (lv_paddingTopValue_25_0= ruleUnsignedNumber ) ) ( (lv_paddingTopUnit_26_0= ruleUnitEnum ) ) ) ) )
+            	    {
+            	    if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getMediaStyleAccess().getUnorderedGroup_3(), 9) ) {
+            	        if (state.backtracking>0) {state.failed=true; return current;}
+            	        throw new FailedPredicateException(input, "ruleMediaStyle", "getUnorderedGroupHelper().canSelect(grammarAccess.getMediaStyleAccess().getUnorderedGroup_3(), 9)");
+            	    }
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:2860:107: ( ({...}? => (otherlv_24= 'padding-top' ( (lv_paddingTopValue_25_0= ruleUnsignedNumber ) ) ( (lv_paddingTopUnit_26_0= ruleUnitEnum ) ) ) ) )
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:2861:6: ({...}? => (otherlv_24= 'padding-top' ( (lv_paddingTopValue_25_0= ruleUnsignedNumber ) ) ( (lv_paddingTopUnit_26_0= ruleUnitEnum ) ) ) )
+            	    {
+            	    getUnorderedGroupHelper().select(grammarAccess.getMediaStyleAccess().getUnorderedGroup_3(), 9);
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:2864:6: ({...}? => (otherlv_24= 'padding-top' ( (lv_paddingTopValue_25_0= ruleUnsignedNumber ) ) ( (lv_paddingTopUnit_26_0= ruleUnitEnum ) ) ) )
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:2864:7: {...}? => (otherlv_24= 'padding-top' ( (lv_paddingTopValue_25_0= ruleUnsignedNumber ) ) ( (lv_paddingTopUnit_26_0= ruleUnitEnum ) ) )
+            	    {
+            	    if ( !((true)) ) {
+            	        if (state.backtracking>0) {state.failed=true; return current;}
+            	        throw new FailedPredicateException(input, "ruleMediaStyle", "true");
+            	    }
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:2864:16: (otherlv_24= 'padding-top' ( (lv_paddingTopValue_25_0= ruleUnsignedNumber ) ) ( (lv_paddingTopUnit_26_0= ruleUnitEnum ) ) )
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:2864:18: otherlv_24= 'padding-top' ( (lv_paddingTopValue_25_0= ruleUnsignedNumber ) ) ( (lv_paddingTopUnit_26_0= ruleUnitEnum ) )
+            	    {
+            	    otherlv_24=(Token)match(input,53,FOLLOW_53_in_ruleMediaStyle6339); if (state.failed) return current;
+            	    if ( state.backtracking==0 ) {
+
+            	          	newLeafNode(otherlv_24, grammarAccess.getMediaStyleAccess().getPaddingTopKeyword_3_9_0());
+            	          
+            	    }
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:2868:1: ( (lv_paddingTopValue_25_0= ruleUnsignedNumber ) )
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:2869:1: (lv_paddingTopValue_25_0= ruleUnsignedNumber )
+            	    {
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:2869:1: (lv_paddingTopValue_25_0= ruleUnsignedNumber )
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:2870:3: lv_paddingTopValue_25_0= ruleUnsignedNumber
+            	    {
+            	    if ( state.backtracking==0 ) {
+            	       
+            	      	        newCompositeNode(grammarAccess.getMediaStyleAccess().getPaddingTopValueUnsignedNumberParserRuleCall_3_9_1_0()); 
+            	      	    
+            	    }
+            	    pushFollow(FOLLOW_ruleUnsignedNumber_in_ruleMediaStyle6360);
+            	    lv_paddingTopValue_25_0=ruleUnsignedNumber();
+
+            	    state._fsp--;
+            	    if (state.failed) return current;
+            	    if ( state.backtracking==0 ) {
+
+            	      	        if (current==null) {
+            	      	            current = createModelElementForParent(grammarAccess.getMediaStyleRule());
+            	      	        }
+            	             		set(
+            	             			current, 
+            	             			"paddingTopValue",
+            	              		lv_paddingTopValue_25_0, 
+            	              		"UnsignedNumber");
+            	      	        afterParserOrEnumRuleCall();
+            	      	    
+            	    }
+
+            	    }
+
+
+            	    }
+
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:2886:2: ( (lv_paddingTopUnit_26_0= ruleUnitEnum ) )
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:2887:1: (lv_paddingTopUnit_26_0= ruleUnitEnum )
+            	    {
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:2887:1: (lv_paddingTopUnit_26_0= ruleUnitEnum )
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:2888:3: lv_paddingTopUnit_26_0= ruleUnitEnum
+            	    {
+            	    if ( state.backtracking==0 ) {
+            	       
+            	      	        newCompositeNode(grammarAccess.getMediaStyleAccess().getPaddingTopUnitUnitEnumEnumRuleCall_3_9_2_0()); 
+            	      	    
+            	    }
+            	    pushFollow(FOLLOW_ruleUnitEnum_in_ruleMediaStyle6381);
+            	    lv_paddingTopUnit_26_0=ruleUnitEnum();
+
+            	    state._fsp--;
+            	    if (state.failed) return current;
+            	    if ( state.backtracking==0 ) {
+
+            	      	        if (current==null) {
+            	      	            current = createModelElementForParent(grammarAccess.getMediaStyleRule());
+            	      	        }
+            	             		set(
+            	             			current, 
+            	             			"paddingTopUnit",
+            	              		lv_paddingTopUnit_26_0, 
+            	              		"UnitEnum");
+            	      	        afterParserOrEnumRuleCall();
+            	      	    
+            	    }
+
+            	    }
+
+
+            	    }
+
+
+            	    }
+
+
+            	    }
+
+            	    getUnorderedGroupHelper().returnFromSelection(grammarAccess.getMediaStyleAccess().getUnorderedGroup_3());
+
+            	    }
+
+
+            	    }
+
+
+            	    }
+            	    break;
+            	case 11 :
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:2911:4: ({...}? => ( ({...}? => (otherlv_27= 'padding-bottom' ( (lv_paddingBottomValue_28_0= ruleUnsignedNumber ) ) ( (lv_paddingBottomUnit_29_0= ruleUnitEnum ) ) ) ) ) )
+            	    {
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:2911:4: ({...}? => ( ({...}? => (otherlv_27= 'padding-bottom' ( (lv_paddingBottomValue_28_0= ruleUnsignedNumber ) ) ( (lv_paddingBottomUnit_29_0= ruleUnitEnum ) ) ) ) ) )
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:2912:5: {...}? => ( ({...}? => (otherlv_27= 'padding-bottom' ( (lv_paddingBottomValue_28_0= ruleUnsignedNumber ) ) ( (lv_paddingBottomUnit_29_0= ruleUnitEnum ) ) ) ) )
+            	    {
+            	    if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getMediaStyleAccess().getUnorderedGroup_3(), 10) ) {
+            	        if (state.backtracking>0) {state.failed=true; return current;}
+            	        throw new FailedPredicateException(input, "ruleMediaStyle", "getUnorderedGroupHelper().canSelect(grammarAccess.getMediaStyleAccess().getUnorderedGroup_3(), 10)");
+            	    }
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:2912:108: ( ({...}? => (otherlv_27= 'padding-bottom' ( (lv_paddingBottomValue_28_0= ruleUnsignedNumber ) ) ( (lv_paddingBottomUnit_29_0= ruleUnitEnum ) ) ) ) )
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:2913:6: ({...}? => (otherlv_27= 'padding-bottom' ( (lv_paddingBottomValue_28_0= ruleUnsignedNumber ) ) ( (lv_paddingBottomUnit_29_0= ruleUnitEnum ) ) ) )
+            	    {
+            	    getUnorderedGroupHelper().select(grammarAccess.getMediaStyleAccess().getUnorderedGroup_3(), 10);
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:2916:6: ({...}? => (otherlv_27= 'padding-bottom' ( (lv_paddingBottomValue_28_0= ruleUnsignedNumber ) ) ( (lv_paddingBottomUnit_29_0= ruleUnitEnum ) ) ) )
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:2916:7: {...}? => (otherlv_27= 'padding-bottom' ( (lv_paddingBottomValue_28_0= ruleUnsignedNumber ) ) ( (lv_paddingBottomUnit_29_0= ruleUnitEnum ) ) )
+            	    {
+            	    if ( !((true)) ) {
+            	        if (state.backtracking>0) {state.failed=true; return current;}
+            	        throw new FailedPredicateException(input, "ruleMediaStyle", "true");
+            	    }
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:2916:16: (otherlv_27= 'padding-bottom' ( (lv_paddingBottomValue_28_0= ruleUnsignedNumber ) ) ( (lv_paddingBottomUnit_29_0= ruleUnitEnum ) ) )
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:2916:18: otherlv_27= 'padding-bottom' ( (lv_paddingBottomValue_28_0= ruleUnsignedNumber ) ) ( (lv_paddingBottomUnit_29_0= ruleUnitEnum ) )
+            	    {
+            	    otherlv_27=(Token)match(input,54,FOLLOW_54_in_ruleMediaStyle6449); if (state.failed) return current;
+            	    if ( state.backtracking==0 ) {
+
+            	          	newLeafNode(otherlv_27, grammarAccess.getMediaStyleAccess().getPaddingBottomKeyword_3_10_0());
+            	          
+            	    }
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:2920:1: ( (lv_paddingBottomValue_28_0= ruleUnsignedNumber ) )
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:2921:1: (lv_paddingBottomValue_28_0= ruleUnsignedNumber )
+            	    {
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:2921:1: (lv_paddingBottomValue_28_0= ruleUnsignedNumber )
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:2922:3: lv_paddingBottomValue_28_0= ruleUnsignedNumber
+            	    {
+            	    if ( state.backtracking==0 ) {
+            	       
+            	      	        newCompositeNode(grammarAccess.getMediaStyleAccess().getPaddingBottomValueUnsignedNumberParserRuleCall_3_10_1_0()); 
+            	      	    
+            	    }
+            	    pushFollow(FOLLOW_ruleUnsignedNumber_in_ruleMediaStyle6470);
+            	    lv_paddingBottomValue_28_0=ruleUnsignedNumber();
+
+            	    state._fsp--;
+            	    if (state.failed) return current;
+            	    if ( state.backtracking==0 ) {
+
+            	      	        if (current==null) {
+            	      	            current = createModelElementForParent(grammarAccess.getMediaStyleRule());
+            	      	        }
+            	             		set(
+            	             			current, 
+            	             			"paddingBottomValue",
+            	              		lv_paddingBottomValue_28_0, 
+            	              		"UnsignedNumber");
+            	      	        afterParserOrEnumRuleCall();
+            	      	    
+            	    }
+
+            	    }
+
+
+            	    }
+
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:2938:2: ( (lv_paddingBottomUnit_29_0= ruleUnitEnum ) )
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:2939:1: (lv_paddingBottomUnit_29_0= ruleUnitEnum )
+            	    {
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:2939:1: (lv_paddingBottomUnit_29_0= ruleUnitEnum )
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:2940:3: lv_paddingBottomUnit_29_0= ruleUnitEnum
+            	    {
+            	    if ( state.backtracking==0 ) {
+            	       
+            	      	        newCompositeNode(grammarAccess.getMediaStyleAccess().getPaddingBottomUnitUnitEnumEnumRuleCall_3_10_2_0()); 
+            	      	    
+            	    }
+            	    pushFollow(FOLLOW_ruleUnitEnum_in_ruleMediaStyle6491);
+            	    lv_paddingBottomUnit_29_0=ruleUnitEnum();
+
+            	    state._fsp--;
+            	    if (state.failed) return current;
+            	    if ( state.backtracking==0 ) {
+
+            	      	        if (current==null) {
+            	      	            current = createModelElementForParent(grammarAccess.getMediaStyleRule());
+            	      	        }
+            	             		set(
+            	             			current, 
+            	             			"paddingBottomUnit",
+            	              		lv_paddingBottomUnit_29_0, 
+            	              		"UnitEnum");
+            	      	        afterParserOrEnumRuleCall();
+            	      	    
+            	    }
+
+            	    }
+
+
+            	    }
+
+
+            	    }
+
+
+            	    }
+
+            	    getUnorderedGroupHelper().returnFromSelection(grammarAccess.getMediaStyleAccess().getUnorderedGroup_3());
+
+            	    }
+
+
+            	    }
+
+
+            	    }
+            	    break;
+            	case 12 :
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:2963:4: ({...}? => ( ({...}? => (otherlv_30= 'padding-left' ( (lv_paddingLeftValue_31_0= ruleUnsignedNumber ) ) ( (lv_paddingLeftUnit_32_0= ruleUnitEnum ) ) ) ) ) )
+            	    {
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:2963:4: ({...}? => ( ({...}? => (otherlv_30= 'padding-left' ( (lv_paddingLeftValue_31_0= ruleUnsignedNumber ) ) ( (lv_paddingLeftUnit_32_0= ruleUnitEnum ) ) ) ) ) )
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:2964:5: {...}? => ( ({...}? => (otherlv_30= 'padding-left' ( (lv_paddingLeftValue_31_0= ruleUnsignedNumber ) ) ( (lv_paddingLeftUnit_32_0= ruleUnitEnum ) ) ) ) )
+            	    {
+            	    if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getMediaStyleAccess().getUnorderedGroup_3(), 11) ) {
+            	        if (state.backtracking>0) {state.failed=true; return current;}
+            	        throw new FailedPredicateException(input, "ruleMediaStyle", "getUnorderedGroupHelper().canSelect(grammarAccess.getMediaStyleAccess().getUnorderedGroup_3(), 11)");
+            	    }
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:2964:108: ( ({...}? => (otherlv_30= 'padding-left' ( (lv_paddingLeftValue_31_0= ruleUnsignedNumber ) ) ( (lv_paddingLeftUnit_32_0= ruleUnitEnum ) ) ) ) )
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:2965:6: ({...}? => (otherlv_30= 'padding-left' ( (lv_paddingLeftValue_31_0= ruleUnsignedNumber ) ) ( (lv_paddingLeftUnit_32_0= ruleUnitEnum ) ) ) )
+            	    {
+            	    getUnorderedGroupHelper().select(grammarAccess.getMediaStyleAccess().getUnorderedGroup_3(), 11);
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:2968:6: ({...}? => (otherlv_30= 'padding-left' ( (lv_paddingLeftValue_31_0= ruleUnsignedNumber ) ) ( (lv_paddingLeftUnit_32_0= ruleUnitEnum ) ) ) )
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:2968:7: {...}? => (otherlv_30= 'padding-left' ( (lv_paddingLeftValue_31_0= ruleUnsignedNumber ) ) ( (lv_paddingLeftUnit_32_0= ruleUnitEnum ) ) )
+            	    {
+            	    if ( !((true)) ) {
+            	        if (state.backtracking>0) {state.failed=true; return current;}
+            	        throw new FailedPredicateException(input, "ruleMediaStyle", "true");
+            	    }
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:2968:16: (otherlv_30= 'padding-left' ( (lv_paddingLeftValue_31_0= ruleUnsignedNumber ) ) ( (lv_paddingLeftUnit_32_0= ruleUnitEnum ) ) )
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:2968:18: otherlv_30= 'padding-left' ( (lv_paddingLeftValue_31_0= ruleUnsignedNumber ) ) ( (lv_paddingLeftUnit_32_0= ruleUnitEnum ) )
+            	    {
+            	    otherlv_30=(Token)match(input,55,FOLLOW_55_in_ruleMediaStyle6559); if (state.failed) return current;
+            	    if ( state.backtracking==0 ) {
+
+            	          	newLeafNode(otherlv_30, grammarAccess.getMediaStyleAccess().getPaddingLeftKeyword_3_11_0());
+            	          
+            	    }
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:2972:1: ( (lv_paddingLeftValue_31_0= ruleUnsignedNumber ) )
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:2973:1: (lv_paddingLeftValue_31_0= ruleUnsignedNumber )
+            	    {
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:2973:1: (lv_paddingLeftValue_31_0= ruleUnsignedNumber )
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:2974:3: lv_paddingLeftValue_31_0= ruleUnsignedNumber
+            	    {
+            	    if ( state.backtracking==0 ) {
+            	       
+            	      	        newCompositeNode(grammarAccess.getMediaStyleAccess().getPaddingLeftValueUnsignedNumberParserRuleCall_3_11_1_0()); 
+            	      	    
+            	    }
+            	    pushFollow(FOLLOW_ruleUnsignedNumber_in_ruleMediaStyle6580);
+            	    lv_paddingLeftValue_31_0=ruleUnsignedNumber();
+
+            	    state._fsp--;
+            	    if (state.failed) return current;
+            	    if ( state.backtracking==0 ) {
+
+            	      	        if (current==null) {
+            	      	            current = createModelElementForParent(grammarAccess.getMediaStyleRule());
+            	      	        }
+            	             		set(
+            	             			current, 
+            	             			"paddingLeftValue",
+            	              		lv_paddingLeftValue_31_0, 
+            	              		"UnsignedNumber");
+            	      	        afterParserOrEnumRuleCall();
+            	      	    
+            	    }
+
+            	    }
+
+
+            	    }
+
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:2990:2: ( (lv_paddingLeftUnit_32_0= ruleUnitEnum ) )
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:2991:1: (lv_paddingLeftUnit_32_0= ruleUnitEnum )
+            	    {
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:2991:1: (lv_paddingLeftUnit_32_0= ruleUnitEnum )
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:2992:3: lv_paddingLeftUnit_32_0= ruleUnitEnum
+            	    {
+            	    if ( state.backtracking==0 ) {
+            	       
+            	      	        newCompositeNode(grammarAccess.getMediaStyleAccess().getPaddingLeftUnitUnitEnumEnumRuleCall_3_11_2_0()); 
+            	      	    
+            	    }
+            	    pushFollow(FOLLOW_ruleUnitEnum_in_ruleMediaStyle6601);
+            	    lv_paddingLeftUnit_32_0=ruleUnitEnum();
+
+            	    state._fsp--;
+            	    if (state.failed) return current;
+            	    if ( state.backtracking==0 ) {
+
+            	      	        if (current==null) {
+            	      	            current = createModelElementForParent(grammarAccess.getMediaStyleRule());
+            	      	        }
+            	             		set(
+            	             			current, 
+            	             			"paddingLeftUnit",
+            	              		lv_paddingLeftUnit_32_0, 
+            	              		"UnitEnum");
+            	      	        afterParserOrEnumRuleCall();
+            	      	    
+            	    }
+
+            	    }
+
+
+            	    }
+
+
+            	    }
+
+
+            	    }
+
+            	    getUnorderedGroupHelper().returnFromSelection(grammarAccess.getMediaStyleAccess().getUnorderedGroup_3());
+
+            	    }
+
+
+            	    }
+
+
+            	    }
+            	    break;
+            	case 13 :
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:3015:4: ({...}? => ( ({...}? => (otherlv_33= 'padding-right' ( (lv_paddingRightValue_34_0= ruleUnsignedNumber ) ) ( (lv_paddingRightUnit_35_0= ruleUnitEnum ) ) ) ) ) )
+            	    {
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:3015:4: ({...}? => ( ({...}? => (otherlv_33= 'padding-right' ( (lv_paddingRightValue_34_0= ruleUnsignedNumber ) ) ( (lv_paddingRightUnit_35_0= ruleUnitEnum ) ) ) ) ) )
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:3016:5: {...}? => ( ({...}? => (otherlv_33= 'padding-right' ( (lv_paddingRightValue_34_0= ruleUnsignedNumber ) ) ( (lv_paddingRightUnit_35_0= ruleUnitEnum ) ) ) ) )
+            	    {
+            	    if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getMediaStyleAccess().getUnorderedGroup_3(), 12) ) {
+            	        if (state.backtracking>0) {state.failed=true; return current;}
+            	        throw new FailedPredicateException(input, "ruleMediaStyle", "getUnorderedGroupHelper().canSelect(grammarAccess.getMediaStyleAccess().getUnorderedGroup_3(), 12)");
+            	    }
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:3016:108: ( ({...}? => (otherlv_33= 'padding-right' ( (lv_paddingRightValue_34_0= ruleUnsignedNumber ) ) ( (lv_paddingRightUnit_35_0= ruleUnitEnum ) ) ) ) )
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:3017:6: ({...}? => (otherlv_33= 'padding-right' ( (lv_paddingRightValue_34_0= ruleUnsignedNumber ) ) ( (lv_paddingRightUnit_35_0= ruleUnitEnum ) ) ) )
+            	    {
+            	    getUnorderedGroupHelper().select(grammarAccess.getMediaStyleAccess().getUnorderedGroup_3(), 12);
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:3020:6: ({...}? => (otherlv_33= 'padding-right' ( (lv_paddingRightValue_34_0= ruleUnsignedNumber ) ) ( (lv_paddingRightUnit_35_0= ruleUnitEnum ) ) ) )
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:3020:7: {...}? => (otherlv_33= 'padding-right' ( (lv_paddingRightValue_34_0= ruleUnsignedNumber ) ) ( (lv_paddingRightUnit_35_0= ruleUnitEnum ) ) )
+            	    {
+            	    if ( !((true)) ) {
+            	        if (state.backtracking>0) {state.failed=true; return current;}
+            	        throw new FailedPredicateException(input, "ruleMediaStyle", "true");
+            	    }
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:3020:16: (otherlv_33= 'padding-right' ( (lv_paddingRightValue_34_0= ruleUnsignedNumber ) ) ( (lv_paddingRightUnit_35_0= ruleUnitEnum ) ) )
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:3020:18: otherlv_33= 'padding-right' ( (lv_paddingRightValue_34_0= ruleUnsignedNumber ) ) ( (lv_paddingRightUnit_35_0= ruleUnitEnum ) )
+            	    {
+            	    otherlv_33=(Token)match(input,56,FOLLOW_56_in_ruleMediaStyle6669); if (state.failed) return current;
+            	    if ( state.backtracking==0 ) {
+
+            	          	newLeafNode(otherlv_33, grammarAccess.getMediaStyleAccess().getPaddingRightKeyword_3_12_0());
+            	          
+            	    }
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:3024:1: ( (lv_paddingRightValue_34_0= ruleUnsignedNumber ) )
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:3025:1: (lv_paddingRightValue_34_0= ruleUnsignedNumber )
+            	    {
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:3025:1: (lv_paddingRightValue_34_0= ruleUnsignedNumber )
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:3026:3: lv_paddingRightValue_34_0= ruleUnsignedNumber
+            	    {
+            	    if ( state.backtracking==0 ) {
+            	       
+            	      	        newCompositeNode(grammarAccess.getMediaStyleAccess().getPaddingRightValueUnsignedNumberParserRuleCall_3_12_1_0()); 
+            	      	    
+            	    }
+            	    pushFollow(FOLLOW_ruleUnsignedNumber_in_ruleMediaStyle6690);
+            	    lv_paddingRightValue_34_0=ruleUnsignedNumber();
+
+            	    state._fsp--;
+            	    if (state.failed) return current;
+            	    if ( state.backtracking==0 ) {
+
+            	      	        if (current==null) {
+            	      	            current = createModelElementForParent(grammarAccess.getMediaStyleRule());
+            	      	        }
+            	             		set(
+            	             			current, 
+            	             			"paddingRightValue",
+            	              		lv_paddingRightValue_34_0, 
+            	              		"UnsignedNumber");
+            	      	        afterParserOrEnumRuleCall();
+            	      	    
+            	    }
+
+            	    }
+
+
+            	    }
+
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:3042:2: ( (lv_paddingRightUnit_35_0= ruleUnitEnum ) )
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:3043:1: (lv_paddingRightUnit_35_0= ruleUnitEnum )
+            	    {
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:3043:1: (lv_paddingRightUnit_35_0= ruleUnitEnum )
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:3044:3: lv_paddingRightUnit_35_0= ruleUnitEnum
+            	    {
+            	    if ( state.backtracking==0 ) {
+            	       
+            	      	        newCompositeNode(grammarAccess.getMediaStyleAccess().getPaddingRightUnitUnitEnumEnumRuleCall_3_12_2_0()); 
+            	      	    
+            	    }
+            	    pushFollow(FOLLOW_ruleUnitEnum_in_ruleMediaStyle6711);
+            	    lv_paddingRightUnit_35_0=ruleUnitEnum();
+
+            	    state._fsp--;
+            	    if (state.failed) return current;
+            	    if ( state.backtracking==0 ) {
+
+            	      	        if (current==null) {
+            	      	            current = createModelElementForParent(grammarAccess.getMediaStyleRule());
+            	      	        }
+            	             		set(
+            	             			current, 
+            	             			"paddingRightUnit",
+            	              		lv_paddingRightUnit_35_0, 
+            	              		"UnitEnum");
+            	      	        afterParserOrEnumRuleCall();
+            	      	    
+            	    }
+
+            	    }
+
+
+            	    }
+
+
+            	    }
+
+
+            	    }
+
+            	    getUnorderedGroupHelper().returnFromSelection(grammarAccess.getMediaStyleAccess().getUnorderedGroup_3());
+
+            	    }
+
+
+            	    }
+
+
+            	    }
+            	    break;
+            	case 14 :
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:3067:4: ({...}? => ( ({...}? => (otherlv_36= 'margin-top' ( (lv_marginTopValue_37_0= ruleUnsignedNumber ) ) ( (lv_marginTopUnit_38_0= ruleUnitEnum ) ) ) ) ) )
+            	    {
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:3067:4: ({...}? => ( ({...}? => (otherlv_36= 'margin-top' ( (lv_marginTopValue_37_0= ruleUnsignedNumber ) ) ( (lv_marginTopUnit_38_0= ruleUnitEnum ) ) ) ) ) )
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:3068:5: {...}? => ( ({...}? => (otherlv_36= 'margin-top' ( (lv_marginTopValue_37_0= ruleUnsignedNumber ) ) ( (lv_marginTopUnit_38_0= ruleUnitEnum ) ) ) ) )
+            	    {
+            	    if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getMediaStyleAccess().getUnorderedGroup_3(), 13) ) {
+            	        if (state.backtracking>0) {state.failed=true; return current;}
+            	        throw new FailedPredicateException(input, "ruleMediaStyle", "getUnorderedGroupHelper().canSelect(grammarAccess.getMediaStyleAccess().getUnorderedGroup_3(), 13)");
+            	    }
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:3068:108: ( ({...}? => (otherlv_36= 'margin-top' ( (lv_marginTopValue_37_0= ruleUnsignedNumber ) ) ( (lv_marginTopUnit_38_0= ruleUnitEnum ) ) ) ) )
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:3069:6: ({...}? => (otherlv_36= 'margin-top' ( (lv_marginTopValue_37_0= ruleUnsignedNumber ) ) ( (lv_marginTopUnit_38_0= ruleUnitEnum ) ) ) )
+            	    {
+            	    getUnorderedGroupHelper().select(grammarAccess.getMediaStyleAccess().getUnorderedGroup_3(), 13);
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:3072:6: ({...}? => (otherlv_36= 'margin-top' ( (lv_marginTopValue_37_0= ruleUnsignedNumber ) ) ( (lv_marginTopUnit_38_0= ruleUnitEnum ) ) ) )
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:3072:7: {...}? => (otherlv_36= 'margin-top' ( (lv_marginTopValue_37_0= ruleUnsignedNumber ) ) ( (lv_marginTopUnit_38_0= ruleUnitEnum ) ) )
+            	    {
+            	    if ( !((true)) ) {
+            	        if (state.backtracking>0) {state.failed=true; return current;}
+            	        throw new FailedPredicateException(input, "ruleMediaStyle", "true");
+            	    }
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:3072:16: (otherlv_36= 'margin-top' ( (lv_marginTopValue_37_0= ruleUnsignedNumber ) ) ( (lv_marginTopUnit_38_0= ruleUnitEnum ) ) )
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:3072:18: otherlv_36= 'margin-top' ( (lv_marginTopValue_37_0= ruleUnsignedNumber ) ) ( (lv_marginTopUnit_38_0= ruleUnitEnum ) )
+            	    {
+            	    otherlv_36=(Token)match(input,57,FOLLOW_57_in_ruleMediaStyle6779); if (state.failed) return current;
+            	    if ( state.backtracking==0 ) {
+
+            	          	newLeafNode(otherlv_36, grammarAccess.getMediaStyleAccess().getMarginTopKeyword_3_13_0());
+            	          
+            	    }
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:3076:1: ( (lv_marginTopValue_37_0= ruleUnsignedNumber ) )
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:3077:1: (lv_marginTopValue_37_0= ruleUnsignedNumber )
+            	    {
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:3077:1: (lv_marginTopValue_37_0= ruleUnsignedNumber )
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:3078:3: lv_marginTopValue_37_0= ruleUnsignedNumber
+            	    {
+            	    if ( state.backtracking==0 ) {
+            	       
+            	      	        newCompositeNode(grammarAccess.getMediaStyleAccess().getMarginTopValueUnsignedNumberParserRuleCall_3_13_1_0()); 
+            	      	    
+            	    }
+            	    pushFollow(FOLLOW_ruleUnsignedNumber_in_ruleMediaStyle6800);
+            	    lv_marginTopValue_37_0=ruleUnsignedNumber();
+
+            	    state._fsp--;
+            	    if (state.failed) return current;
+            	    if ( state.backtracking==0 ) {
+
+            	      	        if (current==null) {
+            	      	            current = createModelElementForParent(grammarAccess.getMediaStyleRule());
+            	      	        }
+            	             		set(
+            	             			current, 
+            	             			"marginTopValue",
+            	              		lv_marginTopValue_37_0, 
+            	              		"UnsignedNumber");
+            	      	        afterParserOrEnumRuleCall();
+            	      	    
+            	    }
+
+            	    }
+
+
+            	    }
+
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:3094:2: ( (lv_marginTopUnit_38_0= ruleUnitEnum ) )
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:3095:1: (lv_marginTopUnit_38_0= ruleUnitEnum )
+            	    {
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:3095:1: (lv_marginTopUnit_38_0= ruleUnitEnum )
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:3096:3: lv_marginTopUnit_38_0= ruleUnitEnum
+            	    {
+            	    if ( state.backtracking==0 ) {
+            	       
+            	      	        newCompositeNode(grammarAccess.getMediaStyleAccess().getMarginTopUnitUnitEnumEnumRuleCall_3_13_2_0()); 
+            	      	    
+            	    }
+            	    pushFollow(FOLLOW_ruleUnitEnum_in_ruleMediaStyle6821);
+            	    lv_marginTopUnit_38_0=ruleUnitEnum();
+
+            	    state._fsp--;
+            	    if (state.failed) return current;
+            	    if ( state.backtracking==0 ) {
+
+            	      	        if (current==null) {
+            	      	            current = createModelElementForParent(grammarAccess.getMediaStyleRule());
+            	      	        }
+            	             		set(
+            	             			current, 
+            	             			"marginTopUnit",
+            	              		lv_marginTopUnit_38_0, 
+            	              		"UnitEnum");
+            	      	        afterParserOrEnumRuleCall();
+            	      	    
+            	    }
+
+            	    }
+
+
+            	    }
+
+
+            	    }
+
+
+            	    }
+
+            	    getUnorderedGroupHelper().returnFromSelection(grammarAccess.getMediaStyleAccess().getUnorderedGroup_3());
+
+            	    }
+
+
+            	    }
+
+
+            	    }
+            	    break;
+            	case 15 :
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:3119:4: ({...}? => ( ({...}? => (otherlv_39= 'margin-bottom' ( (lv_marginBottomValue_40_0= ruleUnsignedNumber ) ) ( (lv_marginBottomUnit_41_0= ruleUnitEnum ) ) ) ) ) )
+            	    {
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:3119:4: ({...}? => ( ({...}? => (otherlv_39= 'margin-bottom' ( (lv_marginBottomValue_40_0= ruleUnsignedNumber ) ) ( (lv_marginBottomUnit_41_0= ruleUnitEnum ) ) ) ) ) )
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:3120:5: {...}? => ( ({...}? => (otherlv_39= 'margin-bottom' ( (lv_marginBottomValue_40_0= ruleUnsignedNumber ) ) ( (lv_marginBottomUnit_41_0= ruleUnitEnum ) ) ) ) )
+            	    {
+            	    if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getMediaStyleAccess().getUnorderedGroup_3(), 14) ) {
+            	        if (state.backtracking>0) {state.failed=true; return current;}
+            	        throw new FailedPredicateException(input, "ruleMediaStyle", "getUnorderedGroupHelper().canSelect(grammarAccess.getMediaStyleAccess().getUnorderedGroup_3(), 14)");
+            	    }
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:3120:108: ( ({...}? => (otherlv_39= 'margin-bottom' ( (lv_marginBottomValue_40_0= ruleUnsignedNumber ) ) ( (lv_marginBottomUnit_41_0= ruleUnitEnum ) ) ) ) )
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:3121:6: ({...}? => (otherlv_39= 'margin-bottom' ( (lv_marginBottomValue_40_0= ruleUnsignedNumber ) ) ( (lv_marginBottomUnit_41_0= ruleUnitEnum ) ) ) )
+            	    {
+            	    getUnorderedGroupHelper().select(grammarAccess.getMediaStyleAccess().getUnorderedGroup_3(), 14);
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:3124:6: ({...}? => (otherlv_39= 'margin-bottom' ( (lv_marginBottomValue_40_0= ruleUnsignedNumber ) ) ( (lv_marginBottomUnit_41_0= ruleUnitEnum ) ) ) )
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:3124:7: {...}? => (otherlv_39= 'margin-bottom' ( (lv_marginBottomValue_40_0= ruleUnsignedNumber ) ) ( (lv_marginBottomUnit_41_0= ruleUnitEnum ) ) )
+            	    {
+            	    if ( !((true)) ) {
+            	        if (state.backtracking>0) {state.failed=true; return current;}
+            	        throw new FailedPredicateException(input, "ruleMediaStyle", "true");
+            	    }
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:3124:16: (otherlv_39= 'margin-bottom' ( (lv_marginBottomValue_40_0= ruleUnsignedNumber ) ) ( (lv_marginBottomUnit_41_0= ruleUnitEnum ) ) )
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:3124:18: otherlv_39= 'margin-bottom' ( (lv_marginBottomValue_40_0= ruleUnsignedNumber ) ) ( (lv_marginBottomUnit_41_0= ruleUnitEnum ) )
+            	    {
+            	    otherlv_39=(Token)match(input,58,FOLLOW_58_in_ruleMediaStyle6889); if (state.failed) return current;
+            	    if ( state.backtracking==0 ) {
+
+            	          	newLeafNode(otherlv_39, grammarAccess.getMediaStyleAccess().getMarginBottomKeyword_3_14_0());
+            	          
+            	    }
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:3128:1: ( (lv_marginBottomValue_40_0= ruleUnsignedNumber ) )
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:3129:1: (lv_marginBottomValue_40_0= ruleUnsignedNumber )
+            	    {
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:3129:1: (lv_marginBottomValue_40_0= ruleUnsignedNumber )
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:3130:3: lv_marginBottomValue_40_0= ruleUnsignedNumber
+            	    {
+            	    if ( state.backtracking==0 ) {
+            	       
+            	      	        newCompositeNode(grammarAccess.getMediaStyleAccess().getMarginBottomValueUnsignedNumberParserRuleCall_3_14_1_0()); 
+            	      	    
+            	    }
+            	    pushFollow(FOLLOW_ruleUnsignedNumber_in_ruleMediaStyle6910);
+            	    lv_marginBottomValue_40_0=ruleUnsignedNumber();
+
+            	    state._fsp--;
+            	    if (state.failed) return current;
+            	    if ( state.backtracking==0 ) {
+
+            	      	        if (current==null) {
+            	      	            current = createModelElementForParent(grammarAccess.getMediaStyleRule());
+            	      	        }
+            	             		set(
+            	             			current, 
+            	             			"marginBottomValue",
+            	              		lv_marginBottomValue_40_0, 
+            	              		"UnsignedNumber");
+            	      	        afterParserOrEnumRuleCall();
+            	      	    
+            	    }
+
+            	    }
+
+
+            	    }
+
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:3146:2: ( (lv_marginBottomUnit_41_0= ruleUnitEnum ) )
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:3147:1: (lv_marginBottomUnit_41_0= ruleUnitEnum )
+            	    {
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:3147:1: (lv_marginBottomUnit_41_0= ruleUnitEnum )
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:3148:3: lv_marginBottomUnit_41_0= ruleUnitEnum
+            	    {
+            	    if ( state.backtracking==0 ) {
+            	       
+            	      	        newCompositeNode(grammarAccess.getMediaStyleAccess().getMarginBottomUnitUnitEnumEnumRuleCall_3_14_2_0()); 
+            	      	    
+            	    }
+            	    pushFollow(FOLLOW_ruleUnitEnum_in_ruleMediaStyle6931);
+            	    lv_marginBottomUnit_41_0=ruleUnitEnum();
+
+            	    state._fsp--;
+            	    if (state.failed) return current;
+            	    if ( state.backtracking==0 ) {
+
+            	      	        if (current==null) {
+            	      	            current = createModelElementForParent(grammarAccess.getMediaStyleRule());
+            	      	        }
+            	             		set(
+            	             			current, 
+            	             			"marginBottomUnit",
+            	              		lv_marginBottomUnit_41_0, 
+            	              		"UnitEnum");
+            	      	        afterParserOrEnumRuleCall();
+            	      	    
+            	    }
+
+            	    }
+
+
+            	    }
+
+
+            	    }
+
+
+            	    }
+
+            	    getUnorderedGroupHelper().returnFromSelection(grammarAccess.getMediaStyleAccess().getUnorderedGroup_3());
+
+            	    }
+
+
+            	    }
+
+
+            	    }
+            	    break;
+            	case 16 :
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:3171:4: ({...}? => ( ({...}? => (otherlv_42= 'margin-left' ( (lv_marginLeftValue_43_0= ruleUnsignedNumber ) ) ( (lv_marginLeftUnit_44_0= ruleUnitEnum ) ) ) ) ) )
+            	    {
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:3171:4: ({...}? => ( ({...}? => (otherlv_42= 'margin-left' ( (lv_marginLeftValue_43_0= ruleUnsignedNumber ) ) ( (lv_marginLeftUnit_44_0= ruleUnitEnum ) ) ) ) ) )
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:3172:5: {...}? => ( ({...}? => (otherlv_42= 'margin-left' ( (lv_marginLeftValue_43_0= ruleUnsignedNumber ) ) ( (lv_marginLeftUnit_44_0= ruleUnitEnum ) ) ) ) )
+            	    {
+            	    if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getMediaStyleAccess().getUnorderedGroup_3(), 15) ) {
+            	        if (state.backtracking>0) {state.failed=true; return current;}
+            	        throw new FailedPredicateException(input, "ruleMediaStyle", "getUnorderedGroupHelper().canSelect(grammarAccess.getMediaStyleAccess().getUnorderedGroup_3(), 15)");
+            	    }
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:3172:108: ( ({...}? => (otherlv_42= 'margin-left' ( (lv_marginLeftValue_43_0= ruleUnsignedNumber ) ) ( (lv_marginLeftUnit_44_0= ruleUnitEnum ) ) ) ) )
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:3173:6: ({...}? => (otherlv_42= 'margin-left' ( (lv_marginLeftValue_43_0= ruleUnsignedNumber ) ) ( (lv_marginLeftUnit_44_0= ruleUnitEnum ) ) ) )
+            	    {
+            	    getUnorderedGroupHelper().select(grammarAccess.getMediaStyleAccess().getUnorderedGroup_3(), 15);
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:3176:6: ({...}? => (otherlv_42= 'margin-left' ( (lv_marginLeftValue_43_0= ruleUnsignedNumber ) ) ( (lv_marginLeftUnit_44_0= ruleUnitEnum ) ) ) )
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:3176:7: {...}? => (otherlv_42= 'margin-left' ( (lv_marginLeftValue_43_0= ruleUnsignedNumber ) ) ( (lv_marginLeftUnit_44_0= ruleUnitEnum ) ) )
+            	    {
+            	    if ( !((true)) ) {
+            	        if (state.backtracking>0) {state.failed=true; return current;}
+            	        throw new FailedPredicateException(input, "ruleMediaStyle", "true");
+            	    }
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:3176:16: (otherlv_42= 'margin-left' ( (lv_marginLeftValue_43_0= ruleUnsignedNumber ) ) ( (lv_marginLeftUnit_44_0= ruleUnitEnum ) ) )
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:3176:18: otherlv_42= 'margin-left' ( (lv_marginLeftValue_43_0= ruleUnsignedNumber ) ) ( (lv_marginLeftUnit_44_0= ruleUnitEnum ) )
+            	    {
+            	    otherlv_42=(Token)match(input,59,FOLLOW_59_in_ruleMediaStyle6999); if (state.failed) return current;
+            	    if ( state.backtracking==0 ) {
+
+            	          	newLeafNode(otherlv_42, grammarAccess.getMediaStyleAccess().getMarginLeftKeyword_3_15_0());
+            	          
+            	    }
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:3180:1: ( (lv_marginLeftValue_43_0= ruleUnsignedNumber ) )
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:3181:1: (lv_marginLeftValue_43_0= ruleUnsignedNumber )
+            	    {
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:3181:1: (lv_marginLeftValue_43_0= ruleUnsignedNumber )
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:3182:3: lv_marginLeftValue_43_0= ruleUnsignedNumber
+            	    {
+            	    if ( state.backtracking==0 ) {
+            	       
+            	      	        newCompositeNode(grammarAccess.getMediaStyleAccess().getMarginLeftValueUnsignedNumberParserRuleCall_3_15_1_0()); 
+            	      	    
+            	    }
+            	    pushFollow(FOLLOW_ruleUnsignedNumber_in_ruleMediaStyle7020);
+            	    lv_marginLeftValue_43_0=ruleUnsignedNumber();
+
+            	    state._fsp--;
+            	    if (state.failed) return current;
+            	    if ( state.backtracking==0 ) {
+
+            	      	        if (current==null) {
+            	      	            current = createModelElementForParent(grammarAccess.getMediaStyleRule());
+            	      	        }
+            	             		set(
+            	             			current, 
+            	             			"marginLeftValue",
+            	              		lv_marginLeftValue_43_0, 
+            	              		"UnsignedNumber");
+            	      	        afterParserOrEnumRuleCall();
+            	      	    
+            	    }
+
+            	    }
+
+
+            	    }
+
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:3198:2: ( (lv_marginLeftUnit_44_0= ruleUnitEnum ) )
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:3199:1: (lv_marginLeftUnit_44_0= ruleUnitEnum )
+            	    {
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:3199:1: (lv_marginLeftUnit_44_0= ruleUnitEnum )
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:3200:3: lv_marginLeftUnit_44_0= ruleUnitEnum
+            	    {
+            	    if ( state.backtracking==0 ) {
+            	       
+            	      	        newCompositeNode(grammarAccess.getMediaStyleAccess().getMarginLeftUnitUnitEnumEnumRuleCall_3_15_2_0()); 
+            	      	    
+            	    }
+            	    pushFollow(FOLLOW_ruleUnitEnum_in_ruleMediaStyle7041);
+            	    lv_marginLeftUnit_44_0=ruleUnitEnum();
+
+            	    state._fsp--;
+            	    if (state.failed) return current;
+            	    if ( state.backtracking==0 ) {
+
+            	      	        if (current==null) {
+            	      	            current = createModelElementForParent(grammarAccess.getMediaStyleRule());
+            	      	        }
+            	             		set(
+            	             			current, 
+            	             			"marginLeftUnit",
+            	              		lv_marginLeftUnit_44_0, 
+            	              		"UnitEnum");
+            	      	        afterParserOrEnumRuleCall();
+            	      	    
+            	    }
+
+            	    }
+
+
+            	    }
+
+
+            	    }
+
+
+            	    }
+
+            	    getUnorderedGroupHelper().returnFromSelection(grammarAccess.getMediaStyleAccess().getUnorderedGroup_3());
+
+            	    }
+
+
+            	    }
+
+
+            	    }
+            	    break;
+            	case 17 :
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:3223:4: ({...}? => ( ({...}? => (otherlv_45= 'margin-right' ( (lv_marginRightValue_46_0= ruleUnsignedNumber ) ) ( (lv_marginRightUnit_47_0= ruleUnitEnum ) ) ) ) ) )
+            	    {
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:3223:4: ({...}? => ( ({...}? => (otherlv_45= 'margin-right' ( (lv_marginRightValue_46_0= ruleUnsignedNumber ) ) ( (lv_marginRightUnit_47_0= ruleUnitEnum ) ) ) ) ) )
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:3224:5: {...}? => ( ({...}? => (otherlv_45= 'margin-right' ( (lv_marginRightValue_46_0= ruleUnsignedNumber ) ) ( (lv_marginRightUnit_47_0= ruleUnitEnum ) ) ) ) )
+            	    {
+            	    if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getMediaStyleAccess().getUnorderedGroup_3(), 16) ) {
+            	        if (state.backtracking>0) {state.failed=true; return current;}
+            	        throw new FailedPredicateException(input, "ruleMediaStyle", "getUnorderedGroupHelper().canSelect(grammarAccess.getMediaStyleAccess().getUnorderedGroup_3(), 16)");
+            	    }
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:3224:108: ( ({...}? => (otherlv_45= 'margin-right' ( (lv_marginRightValue_46_0= ruleUnsignedNumber ) ) ( (lv_marginRightUnit_47_0= ruleUnitEnum ) ) ) ) )
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:3225:6: ({...}? => (otherlv_45= 'margin-right' ( (lv_marginRightValue_46_0= ruleUnsignedNumber ) ) ( (lv_marginRightUnit_47_0= ruleUnitEnum ) ) ) )
+            	    {
+            	    getUnorderedGroupHelper().select(grammarAccess.getMediaStyleAccess().getUnorderedGroup_3(), 16);
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:3228:6: ({...}? => (otherlv_45= 'margin-right' ( (lv_marginRightValue_46_0= ruleUnsignedNumber ) ) ( (lv_marginRightUnit_47_0= ruleUnitEnum ) ) ) )
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:3228:7: {...}? => (otherlv_45= 'margin-right' ( (lv_marginRightValue_46_0= ruleUnsignedNumber ) ) ( (lv_marginRightUnit_47_0= ruleUnitEnum ) ) )
+            	    {
+            	    if ( !((true)) ) {
+            	        if (state.backtracking>0) {state.failed=true; return current;}
+            	        throw new FailedPredicateException(input, "ruleMediaStyle", "true");
+            	    }
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:3228:16: (otherlv_45= 'margin-right' ( (lv_marginRightValue_46_0= ruleUnsignedNumber ) ) ( (lv_marginRightUnit_47_0= ruleUnitEnum ) ) )
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:3228:18: otherlv_45= 'margin-right' ( (lv_marginRightValue_46_0= ruleUnsignedNumber ) ) ( (lv_marginRightUnit_47_0= ruleUnitEnum ) )
+            	    {
+            	    otherlv_45=(Token)match(input,60,FOLLOW_60_in_ruleMediaStyle7109); if (state.failed) return current;
+            	    if ( state.backtracking==0 ) {
+
+            	          	newLeafNode(otherlv_45, grammarAccess.getMediaStyleAccess().getMarginRightKeyword_3_16_0());
+            	          
+            	    }
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:3232:1: ( (lv_marginRightValue_46_0= ruleUnsignedNumber ) )
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:3233:1: (lv_marginRightValue_46_0= ruleUnsignedNumber )
+            	    {
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:3233:1: (lv_marginRightValue_46_0= ruleUnsignedNumber )
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:3234:3: lv_marginRightValue_46_0= ruleUnsignedNumber
+            	    {
+            	    if ( state.backtracking==0 ) {
+            	       
+            	      	        newCompositeNode(grammarAccess.getMediaStyleAccess().getMarginRightValueUnsignedNumberParserRuleCall_3_16_1_0()); 
+            	      	    
+            	    }
+            	    pushFollow(FOLLOW_ruleUnsignedNumber_in_ruleMediaStyle7130);
+            	    lv_marginRightValue_46_0=ruleUnsignedNumber();
+
+            	    state._fsp--;
+            	    if (state.failed) return current;
+            	    if ( state.backtracking==0 ) {
+
+            	      	        if (current==null) {
+            	      	            current = createModelElementForParent(grammarAccess.getMediaStyleRule());
+            	      	        }
+            	             		set(
+            	             			current, 
+            	             			"marginRightValue",
+            	              		lv_marginRightValue_46_0, 
+            	              		"UnsignedNumber");
+            	      	        afterParserOrEnumRuleCall();
+            	      	    
+            	    }
+
+            	    }
+
+
+            	    }
+
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:3250:2: ( (lv_marginRightUnit_47_0= ruleUnitEnum ) )
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:3251:1: (lv_marginRightUnit_47_0= ruleUnitEnum )
+            	    {
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:3251:1: (lv_marginRightUnit_47_0= ruleUnitEnum )
+            	    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:3252:3: lv_marginRightUnit_47_0= ruleUnitEnum
+            	    {
+            	    if ( state.backtracking==0 ) {
+            	       
+            	      	        newCompositeNode(grammarAccess.getMediaStyleAccess().getMarginRightUnitUnitEnumEnumRuleCall_3_16_2_0()); 
+            	      	    
+            	    }
+            	    pushFollow(FOLLOW_ruleUnitEnum_in_ruleMediaStyle7151);
+            	    lv_marginRightUnit_47_0=ruleUnitEnum();
+
+            	    state._fsp--;
+            	    if (state.failed) return current;
+            	    if ( state.backtracking==0 ) {
+
+            	      	        if (current==null) {
+            	      	            current = createModelElementForParent(grammarAccess.getMediaStyleRule());
+            	      	        }
+            	             		set(
+            	             			current, 
+            	             			"marginRightUnit",
+            	              		lv_marginRightUnit_47_0, 
+            	              		"UnitEnum");
+            	      	        afterParserOrEnumRuleCall();
+            	      	    
+            	    }
+
+            	    }
+
+
+            	    }
+
+
+            	    }
+
+
+            	    }
+
+            	    getUnorderedGroupHelper().returnFromSelection(grammarAccess.getMediaStyleAccess().getUnorderedGroup_3());
+
+            	    }
+
+
+            	    }
+
+
+            	    }
+            	    break;
+
+            	default :
+            	    break loop26;
+                }
+            } while (true);
+
+
+            }
+
+
+            }
+
+            getUnorderedGroupHelper().leave(grammarAccess.getMediaStyleAccess().getUnorderedGroup_3());
+
+            }
+
+            otherlv_48=(Token)match(input,18,FOLLOW_18_in_ruleMediaStyle7204); if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+                  	newLeafNode(otherlv_48, grammarAccess.getMediaStyleAccess().getRightCurlyBracketKeyword_4());
+                  
+            }
+
+            }
+
+
+            }
+
+            if ( state.backtracking==0 ) {
+               leaveRule(); 
+            }
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleMediaStyle"
+
+
+    // $ANTLR start "entryRuleSomeFormat"
+    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:3294:1: entryRuleSomeFormat returns [EObject current=null] : iv_ruleSomeFormat= ruleSomeFormat EOF ;
+    public final EObject entryRuleSomeFormat() throws RecognitionException {
+        EObject current = null;
+
+        EObject iv_ruleSomeFormat = null;
+
+
+        try {
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:3295:2: (iv_ruleSomeFormat= ruleSomeFormat EOF )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:3296:2: iv_ruleSomeFormat= ruleSomeFormat EOF
+            {
+            if ( state.backtracking==0 ) {
+               newCompositeNode(grammarAccess.getSomeFormatRule()); 
+            }
+            pushFollow(FOLLOW_ruleSomeFormat_in_entryRuleSomeFormat7240);
+            iv_ruleSomeFormat=ruleSomeFormat();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+               current =iv_ruleSomeFormat; 
+            }
+            match(input,EOF,FOLLOW_EOF_in_entryRuleSomeFormat7250); if (state.failed) return current;
+
+            }
+
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleSomeFormat"
+
+
+    // $ANTLR start "ruleSomeFormat"
+    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:3303:1: ruleSomeFormat returns [EObject current=null] : (this_UomoFormat_0= ruleUomoFormat | this_NumberFormat_1= ruleNumberFormat | this_CurrencyFormat_2= ruleCurrencyFormat | this_DateFormat_3= ruleDateFormat | this_DateTimeFormat_4= ruleDateTimeFormat | this_TimeFormat_5= ruleTimeFormat ) ;
+    public final EObject ruleSomeFormat() throws RecognitionException {
+        EObject current = null;
+
+        EObject this_UomoFormat_0 = null;
+
+        EObject this_NumberFormat_1 = null;
+
+        EObject this_CurrencyFormat_2 = null;
+
+        EObject this_DateFormat_3 = null;
+
+        EObject this_DateTimeFormat_4 = null;
+
+        EObject this_TimeFormat_5 = null;
+
+
+         enterRule(); 
+            
+        try {
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:3306:28: ( (this_UomoFormat_0= ruleUomoFormat | this_NumberFormat_1= ruleNumberFormat | this_CurrencyFormat_2= ruleCurrencyFormat | this_DateFormat_3= ruleDateFormat | this_DateTimeFormat_4= ruleDateTimeFormat | this_TimeFormat_5= ruleTimeFormat ) )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:3307:1: (this_UomoFormat_0= ruleUomoFormat | this_NumberFormat_1= ruleNumberFormat | this_CurrencyFormat_2= ruleCurrencyFormat | this_DateFormat_3= ruleDateFormat | this_DateTimeFormat_4= ruleDateTimeFormat | this_TimeFormat_5= ruleTimeFormat )
+            {
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:3307:1: (this_UomoFormat_0= ruleUomoFormat | this_NumberFormat_1= ruleNumberFormat | this_CurrencyFormat_2= ruleCurrencyFormat | this_DateFormat_3= ruleDateFormat | this_DateTimeFormat_4= ruleDateTimeFormat | this_TimeFormat_5= ruleTimeFormat )
+            int alt27=6;
+            switch ( input.LA(1) ) {
+            case 61:
+                {
+                alt27=1;
+                }
+                break;
+            case 64:
+                {
+                alt27=2;
+                }
+                break;
+            case 65:
+                {
+                alt27=3;
+                }
+                break;
+            case 66:
+                {
+                alt27=4;
+                }
+                break;
+            case 67:
+                {
+                alt27=5;
+                }
+                break;
+            case 68:
+                {
+                alt27=6;
+                }
+                break;
+            default:
+                if (state.backtracking>0) {state.failed=true; return current;}
+                NoViableAltException nvae =
+                    new NoViableAltException("", 27, 0, input);
+
+                throw nvae;
+            }
+
+            switch (alt27) {
+                case 1 :
+                    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:3308:5: this_UomoFormat_0= ruleUomoFormat
+                    {
+                    if ( state.backtracking==0 ) {
+                       
+                              newCompositeNode(grammarAccess.getSomeFormatAccess().getUomoFormatParserRuleCall_0()); 
+                          
+                    }
+                    pushFollow(FOLLOW_ruleUomoFormat_in_ruleSomeFormat7297);
+                    this_UomoFormat_0=ruleUomoFormat();
+
+                    state._fsp--;
+                    if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+                       
+                              current = this_UomoFormat_0; 
+                              afterParserOrEnumRuleCall();
+                          
+                    }
+
+                    }
+                    break;
+                case 2 :
+                    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:3318:5: this_NumberFormat_1= ruleNumberFormat
+                    {
+                    if ( state.backtracking==0 ) {
+                       
+                              newCompositeNode(grammarAccess.getSomeFormatAccess().getNumberFormatParserRuleCall_1()); 
+                          
+                    }
+                    pushFollow(FOLLOW_ruleNumberFormat_in_ruleSomeFormat7324);
+                    this_NumberFormat_1=ruleNumberFormat();
+
+                    state._fsp--;
+                    if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+                       
+                              current = this_NumberFormat_1; 
+                              afterParserOrEnumRuleCall();
+                          
+                    }
+
+                    }
+                    break;
+                case 3 :
+                    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:3328:5: this_CurrencyFormat_2= ruleCurrencyFormat
+                    {
+                    if ( state.backtracking==0 ) {
+                       
+                              newCompositeNode(grammarAccess.getSomeFormatAccess().getCurrencyFormatParserRuleCall_2()); 
+                          
+                    }
+                    pushFollow(FOLLOW_ruleCurrencyFormat_in_ruleSomeFormat7351);
+                    this_CurrencyFormat_2=ruleCurrencyFormat();
+
+                    state._fsp--;
+                    if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+                       
+                              current = this_CurrencyFormat_2; 
+                              afterParserOrEnumRuleCall();
+                          
+                    }
+
+                    }
+                    break;
+                case 4 :
+                    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:3338:5: this_DateFormat_3= ruleDateFormat
+                    {
+                    if ( state.backtracking==0 ) {
+                       
+                              newCompositeNode(grammarAccess.getSomeFormatAccess().getDateFormatParserRuleCall_3()); 
+                          
+                    }
+                    pushFollow(FOLLOW_ruleDateFormat_in_ruleSomeFormat7378);
+                    this_DateFormat_3=ruleDateFormat();
+
+                    state._fsp--;
+                    if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+                       
+                              current = this_DateFormat_3; 
+                              afterParserOrEnumRuleCall();
+                          
+                    }
+
+                    }
+                    break;
+                case 5 :
+                    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:3348:5: this_DateTimeFormat_4= ruleDateTimeFormat
+                    {
+                    if ( state.backtracking==0 ) {
+                       
+                              newCompositeNode(grammarAccess.getSomeFormatAccess().getDateTimeFormatParserRuleCall_4()); 
+                          
+                    }
+                    pushFollow(FOLLOW_ruleDateTimeFormat_in_ruleSomeFormat7405);
+                    this_DateTimeFormat_4=ruleDateTimeFormat();
+
+                    state._fsp--;
+                    if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+                       
+                              current = this_DateTimeFormat_4; 
+                              afterParserOrEnumRuleCall();
+                          
+                    }
+
+                    }
+                    break;
+                case 6 :
+                    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:3358:5: this_TimeFormat_5= ruleTimeFormat
+                    {
+                    if ( state.backtracking==0 ) {
+                       
+                              newCompositeNode(grammarAccess.getSomeFormatAccess().getTimeFormatParserRuleCall_5()); 
+                          
+                    }
+                    pushFollow(FOLLOW_ruleTimeFormat_in_ruleSomeFormat7432);
+                    this_TimeFormat_5=ruleTimeFormat();
+
+                    state._fsp--;
+                    if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+                       
+                              current = this_TimeFormat_5; 
+                              afterParserOrEnumRuleCall();
+                          
+                    }
+
+                    }
+                    break;
+
+            }
+
+
+            }
+
+            if ( state.backtracking==0 ) {
+               leaveRule(); 
+            }
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleSomeFormat"
+
+
+    // $ANTLR start "entryRuleUomoFormat"
+    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:3374:1: entryRuleUomoFormat returns [EObject current=null] : iv_ruleUomoFormat= ruleUomoFormat EOF ;
+    public final EObject entryRuleUomoFormat() throws RecognitionException {
+        EObject current = null;
+
+        EObject iv_ruleUomoFormat = null;
+
+
+        try {
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:3375:2: (iv_ruleUomoFormat= ruleUomoFormat EOF )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:3376:2: iv_ruleUomoFormat= ruleUomoFormat EOF
+            {
+            if ( state.backtracking==0 ) {
+               newCompositeNode(grammarAccess.getUomoFormatRule()); 
+            }
+            pushFollow(FOLLOW_ruleUomoFormat_in_entryRuleUomoFormat7467);
+            iv_ruleUomoFormat=ruleUomoFormat();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+               current =iv_ruleUomoFormat; 
+            }
+            match(input,EOF,FOLLOW_EOF_in_entryRuleUomoFormat7477); if (state.failed) return current;
+
+            }
+
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleUomoFormat"
+
+
+    // $ANTLR start "ruleUomoFormat"
+    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:3383:1: ruleUomoFormat returns [EObject current=null] : (otherlv_0= 'uomo' ( (lv_name_1_0= RULE_ID ) ) otherlv_2= '{' otherlv_3= 'ui' ( (lv_ui_pattern_4_0= RULE_STRING ) ) otherlv_5= 'report' ( (lv_report_pattern_6_0= RULE_STRING ) ) otherlv_7= 'textalign' ( (lv_textalign_8_0= ruleTextAlignEnum ) ) otherlv_9= '}' ) ;
+    public final EObject ruleUomoFormat() throws RecognitionException {
+        EObject current = null;
+
+        Token otherlv_0=null;
+        Token lv_name_1_0=null;
+        Token otherlv_2=null;
+        Token otherlv_3=null;
+        Token lv_ui_pattern_4_0=null;
+        Token otherlv_5=null;
+        Token lv_report_pattern_6_0=null;
+        Token otherlv_7=null;
+        Token otherlv_9=null;
+        Enumerator lv_textalign_8_0 = null;
+
+
+         enterRule(); 
+            
+        try {
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:3386:28: ( (otherlv_0= 'uomo' ( (lv_name_1_0= RULE_ID ) ) otherlv_2= '{' otherlv_3= 'ui' ( (lv_ui_pattern_4_0= RULE_STRING ) ) otherlv_5= 'report' ( (lv_report_pattern_6_0= RULE_STRING ) ) otherlv_7= 'textalign' ( (lv_textalign_8_0= ruleTextAlignEnum ) ) otherlv_9= '}' ) )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:3387:1: (otherlv_0= 'uomo' ( (lv_name_1_0= RULE_ID ) ) otherlv_2= '{' otherlv_3= 'ui' ( (lv_ui_pattern_4_0= RULE_STRING ) ) otherlv_5= 'report' ( (lv_report_pattern_6_0= RULE_STRING ) ) otherlv_7= 'textalign' ( (lv_textalign_8_0= ruleTextAlignEnum ) ) otherlv_9= '}' )
+            {
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:3387:1: (otherlv_0= 'uomo' ( (lv_name_1_0= RULE_ID ) ) otherlv_2= '{' otherlv_3= 'ui' ( (lv_ui_pattern_4_0= RULE_STRING ) ) otherlv_5= 'report' ( (lv_report_pattern_6_0= RULE_STRING ) ) otherlv_7= 'textalign' ( (lv_textalign_8_0= ruleTextAlignEnum ) ) otherlv_9= '}' )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:3387:3: otherlv_0= 'uomo' ( (lv_name_1_0= RULE_ID ) ) otherlv_2= '{' otherlv_3= 'ui' ( (lv_ui_pattern_4_0= RULE_STRING ) ) otherlv_5= 'report' ( (lv_report_pattern_6_0= RULE_STRING ) ) otherlv_7= 'textalign' ( (lv_textalign_8_0= ruleTextAlignEnum ) ) otherlv_9= '}'
+            {
+            otherlv_0=(Token)match(input,61,FOLLOW_61_in_ruleUomoFormat7514); if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+                  	newLeafNode(otherlv_0, grammarAccess.getUomoFormatAccess().getUomoKeyword_0());
+                  
+            }
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:3391:1: ( (lv_name_1_0= RULE_ID ) )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:3392:1: (lv_name_1_0= RULE_ID )
+            {
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:3392:1: (lv_name_1_0= RULE_ID )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:3393:3: lv_name_1_0= RULE_ID
+            {
+            lv_name_1_0=(Token)match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleUomoFormat7531); if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+              			newLeafNode(lv_name_1_0, grammarAccess.getUomoFormatAccess().getNameIDTerminalRuleCall_1_0()); 
+              		
+            }
+            if ( state.backtracking==0 ) {
+
+              	        if (current==null) {
+              	            current = createModelElement(grammarAccess.getUomoFormatRule());
+              	        }
+                     		setWithLastConsumed(
+                     			current, 
+                     			"name",
+                      		lv_name_1_0, 
+                      		"ID");
+              	    
+            }
+
+            }
+
+
+            }
+
+            otherlv_2=(Token)match(input,14,FOLLOW_14_in_ruleUomoFormat7548); if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+                  	newLeafNode(otherlv_2, grammarAccess.getUomoFormatAccess().getLeftCurlyBracketKeyword_2());
+                  
+            }
+            otherlv_3=(Token)match(input,62,FOLLOW_62_in_ruleUomoFormat7560); if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+                  	newLeafNode(otherlv_3, grammarAccess.getUomoFormatAccess().getUiKeyword_3());
+                  
+            }
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:3417:1: ( (lv_ui_pattern_4_0= RULE_STRING ) )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:3418:1: (lv_ui_pattern_4_0= RULE_STRING )
+            {
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:3418:1: (lv_ui_pattern_4_0= RULE_STRING )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:3419:3: lv_ui_pattern_4_0= RULE_STRING
+            {
+            lv_ui_pattern_4_0=(Token)match(input,RULE_STRING,FOLLOW_RULE_STRING_in_ruleUomoFormat7577); if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+              			newLeafNode(lv_ui_pattern_4_0, grammarAccess.getUomoFormatAccess().getUi_patternSTRINGTerminalRuleCall_4_0()); 
+              		
+            }
+            if ( state.backtracking==0 ) {
+
+              	        if (current==null) {
+              	            current = createModelElement(grammarAccess.getUomoFormatRule());
+              	        }
+                     		setWithLastConsumed(
+                     			current, 
+                     			"ui_pattern",
+                      		lv_ui_pattern_4_0, 
+                      		"STRING");
+              	    
+            }
+
+            }
+
+
+            }
+
+            otherlv_5=(Token)match(input,63,FOLLOW_63_in_ruleUomoFormat7594); if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+                  	newLeafNode(otherlv_5, grammarAccess.getUomoFormatAccess().getReportKeyword_5());
+                  
+            }
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:3439:1: ( (lv_report_pattern_6_0= RULE_STRING ) )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:3440:1: (lv_report_pattern_6_0= RULE_STRING )
+            {
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:3440:1: (lv_report_pattern_6_0= RULE_STRING )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:3441:3: lv_report_pattern_6_0= RULE_STRING
+            {
+            lv_report_pattern_6_0=(Token)match(input,RULE_STRING,FOLLOW_RULE_STRING_in_ruleUomoFormat7611); if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+              			newLeafNode(lv_report_pattern_6_0, grammarAccess.getUomoFormatAccess().getReport_patternSTRINGTerminalRuleCall_6_0()); 
+              		
+            }
+            if ( state.backtracking==0 ) {
+
+              	        if (current==null) {
+              	            current = createModelElement(grammarAccess.getUomoFormatRule());
+              	        }
+                     		setWithLastConsumed(
+                     			current, 
+                     			"report_pattern",
+                      		lv_report_pattern_6_0, 
+                      		"STRING");
+              	    
+            }
+
+            }
+
+
+            }
+
+            otherlv_7=(Token)match(input,48,FOLLOW_48_in_ruleUomoFormat7628); if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+                  	newLeafNode(otherlv_7, grammarAccess.getUomoFormatAccess().getTextalignKeyword_7());
+                  
+            }
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:3461:1: ( (lv_textalign_8_0= ruleTextAlignEnum ) )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:3462:1: (lv_textalign_8_0= ruleTextAlignEnum )
+            {
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:3462:1: (lv_textalign_8_0= ruleTextAlignEnum )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:3463:3: lv_textalign_8_0= ruleTextAlignEnum
+            {
+            if ( state.backtracking==0 ) {
+               
+              	        newCompositeNode(grammarAccess.getUomoFormatAccess().getTextalignTextAlignEnumEnumRuleCall_8_0()); 
+              	    
+            }
+            pushFollow(FOLLOW_ruleTextAlignEnum_in_ruleUomoFormat7649);
+            lv_textalign_8_0=ruleTextAlignEnum();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+              	        if (current==null) {
+              	            current = createModelElementForParent(grammarAccess.getUomoFormatRule());
+              	        }
+                     		set(
+                     			current, 
+                     			"textalign",
+                      		lv_textalign_8_0, 
+                      		"TextAlignEnum");
+              	        afterParserOrEnumRuleCall();
+              	    
+            }
+
+            }
+
+
+            }
+
+            otherlv_9=(Token)match(input,18,FOLLOW_18_in_ruleUomoFormat7661); if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+                  	newLeafNode(otherlv_9, grammarAccess.getUomoFormatAccess().getRightCurlyBracketKeyword_9());
+                  
+            }
+
+            }
+
+
+            }
+
+            if ( state.backtracking==0 ) {
+               leaveRule(); 
+            }
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleUomoFormat"
+
+
+    // $ANTLR start "entryRuleNumberFormat"
+    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:3491:1: entryRuleNumberFormat returns [EObject current=null] : iv_ruleNumberFormat= ruleNumberFormat EOF ;
+    public final EObject entryRuleNumberFormat() throws RecognitionException {
+        EObject current = null;
+
+        EObject iv_ruleNumberFormat = null;
+
+
+        try {
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:3492:2: (iv_ruleNumberFormat= ruleNumberFormat EOF )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:3493:2: iv_ruleNumberFormat= ruleNumberFormat EOF
+            {
+            if ( state.backtracking==0 ) {
+               newCompositeNode(grammarAccess.getNumberFormatRule()); 
+            }
+            pushFollow(FOLLOW_ruleNumberFormat_in_entryRuleNumberFormat7697);
+            iv_ruleNumberFormat=ruleNumberFormat();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+               current =iv_ruleNumberFormat; 
+            }
+            match(input,EOF,FOLLOW_EOF_in_entryRuleNumberFormat7707); if (state.failed) return current;
+
+            }
+
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleNumberFormat"
+
+
+    // $ANTLR start "ruleNumberFormat"
+    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:3500:1: ruleNumberFormat returns [EObject current=null] : (otherlv_0= 'number' ( (lv_name_1_0= RULE_ID ) ) otherlv_2= '{' otherlv_3= 'ui' ( (lv_ui_pattern_4_0= RULE_STRING ) ) otherlv_5= 'report' ( (lv_report_category_6_0= ruleNumberFormatCategoryEnum ) ) ( (lv_report_pattern_7_0= RULE_STRING ) ) otherlv_8= 'textalign' ( (lv_textalign_9_0= ruleTextAlignEnum ) ) otherlv_10= '}' ) ;
+    public final EObject ruleNumberFormat() throws RecognitionException {
+        EObject current = null;
+
+        Token otherlv_0=null;
+        Token lv_name_1_0=null;
+        Token otherlv_2=null;
+        Token otherlv_3=null;
+        Token lv_ui_pattern_4_0=null;
+        Token otherlv_5=null;
+        Token lv_report_pattern_7_0=null;
+        Token otherlv_8=null;
+        Token otherlv_10=null;
+        Enumerator lv_report_category_6_0 = null;
+
+        Enumerator lv_textalign_9_0 = null;
+
+
+         enterRule(); 
+            
+        try {
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:3503:28: ( (otherlv_0= 'number' ( (lv_name_1_0= RULE_ID ) ) otherlv_2= '{' otherlv_3= 'ui' ( (lv_ui_pattern_4_0= RULE_STRING ) ) otherlv_5= 'report' ( (lv_report_category_6_0= ruleNumberFormatCategoryEnum ) ) ( (lv_report_pattern_7_0= RULE_STRING ) ) otherlv_8= 'textalign' ( (lv_textalign_9_0= ruleTextAlignEnum ) ) otherlv_10= '}' ) )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:3504:1: (otherlv_0= 'number' ( (lv_name_1_0= RULE_ID ) ) otherlv_2= '{' otherlv_3= 'ui' ( (lv_ui_pattern_4_0= RULE_STRING ) ) otherlv_5= 'report' ( (lv_report_category_6_0= ruleNumberFormatCategoryEnum ) ) ( (lv_report_pattern_7_0= RULE_STRING ) ) otherlv_8= 'textalign' ( (lv_textalign_9_0= ruleTextAlignEnum ) ) otherlv_10= '}' )
+            {
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:3504:1: (otherlv_0= 'number' ( (lv_name_1_0= RULE_ID ) ) otherlv_2= '{' otherlv_3= 'ui' ( (lv_ui_pattern_4_0= RULE_STRING ) ) otherlv_5= 'report' ( (lv_report_category_6_0= ruleNumberFormatCategoryEnum ) ) ( (lv_report_pattern_7_0= RULE_STRING ) ) otherlv_8= 'textalign' ( (lv_textalign_9_0= ruleTextAlignEnum ) ) otherlv_10= '}' )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:3504:3: otherlv_0= 'number' ( (lv_name_1_0= RULE_ID ) ) otherlv_2= '{' otherlv_3= 'ui' ( (lv_ui_pattern_4_0= RULE_STRING ) ) otherlv_5= 'report' ( (lv_report_category_6_0= ruleNumberFormatCategoryEnum ) ) ( (lv_report_pattern_7_0= RULE_STRING ) ) otherlv_8= 'textalign' ( (lv_textalign_9_0= ruleTextAlignEnum ) ) otherlv_10= '}'
+            {
+            otherlv_0=(Token)match(input,64,FOLLOW_64_in_ruleNumberFormat7744); if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+                  	newLeafNode(otherlv_0, grammarAccess.getNumberFormatAccess().getNumberKeyword_0());
+                  
+            }
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:3508:1: ( (lv_name_1_0= RULE_ID ) )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:3509:1: (lv_name_1_0= RULE_ID )
+            {
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:3509:1: (lv_name_1_0= RULE_ID )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:3510:3: lv_name_1_0= RULE_ID
+            {
+            lv_name_1_0=(Token)match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleNumberFormat7761); if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+              			newLeafNode(lv_name_1_0, grammarAccess.getNumberFormatAccess().getNameIDTerminalRuleCall_1_0()); 
+              		
+            }
+            if ( state.backtracking==0 ) {
+
+              	        if (current==null) {
+              	            current = createModelElement(grammarAccess.getNumberFormatRule());
+              	        }
+                     		setWithLastConsumed(
+                     			current, 
+                     			"name",
+                      		lv_name_1_0, 
+                      		"ID");
+              	    
+            }
+
+            }
+
+
+            }
+
+            otherlv_2=(Token)match(input,14,FOLLOW_14_in_ruleNumberFormat7778); if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+                  	newLeafNode(otherlv_2, grammarAccess.getNumberFormatAccess().getLeftCurlyBracketKeyword_2());
+                  
+            }
+            otherlv_3=(Token)match(input,62,FOLLOW_62_in_ruleNumberFormat7790); if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+                  	newLeafNode(otherlv_3, grammarAccess.getNumberFormatAccess().getUiKeyword_3());
+                  
+            }
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:3534:1: ( (lv_ui_pattern_4_0= RULE_STRING ) )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:3535:1: (lv_ui_pattern_4_0= RULE_STRING )
+            {
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:3535:1: (lv_ui_pattern_4_0= RULE_STRING )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:3536:3: lv_ui_pattern_4_0= RULE_STRING
+            {
+            lv_ui_pattern_4_0=(Token)match(input,RULE_STRING,FOLLOW_RULE_STRING_in_ruleNumberFormat7807); if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+              			newLeafNode(lv_ui_pattern_4_0, grammarAccess.getNumberFormatAccess().getUi_patternSTRINGTerminalRuleCall_4_0()); 
+              		
+            }
+            if ( state.backtracking==0 ) {
+
+              	        if (current==null) {
+              	            current = createModelElement(grammarAccess.getNumberFormatRule());
+              	        }
+                     		setWithLastConsumed(
+                     			current, 
+                     			"ui_pattern",
+                      		lv_ui_pattern_4_0, 
+                      		"STRING");
+              	    
+            }
+
+            }
+
+
+            }
+
+            otherlv_5=(Token)match(input,63,FOLLOW_63_in_ruleNumberFormat7824); if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+                  	newLeafNode(otherlv_5, grammarAccess.getNumberFormatAccess().getReportKeyword_5());
+                  
+            }
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:3556:1: ( (lv_report_category_6_0= ruleNumberFormatCategoryEnum ) )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:3557:1: (lv_report_category_6_0= ruleNumberFormatCategoryEnum )
+            {
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:3557:1: (lv_report_category_6_0= ruleNumberFormatCategoryEnum )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:3558:3: lv_report_category_6_0= ruleNumberFormatCategoryEnum
+            {
+            if ( state.backtracking==0 ) {
+               
+              	        newCompositeNode(grammarAccess.getNumberFormatAccess().getReport_categoryNumberFormatCategoryEnumEnumRuleCall_6_0()); 
+              	    
+            }
+            pushFollow(FOLLOW_ruleNumberFormatCategoryEnum_in_ruleNumberFormat7845);
+            lv_report_category_6_0=ruleNumberFormatCategoryEnum();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+              	        if (current==null) {
+              	            current = createModelElementForParent(grammarAccess.getNumberFormatRule());
+              	        }
+                     		set(
+                     			current, 
+                     			"report_category",
+                      		lv_report_category_6_0, 
+                      		"NumberFormatCategoryEnum");
+              	        afterParserOrEnumRuleCall();
+              	    
+            }
+
+            }
+
+
+            }
+
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:3574:2: ( (lv_report_pattern_7_0= RULE_STRING ) )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:3575:1: (lv_report_pattern_7_0= RULE_STRING )
+            {
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:3575:1: (lv_report_pattern_7_0= RULE_STRING )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:3576:3: lv_report_pattern_7_0= RULE_STRING
+            {
+            lv_report_pattern_7_0=(Token)match(input,RULE_STRING,FOLLOW_RULE_STRING_in_ruleNumberFormat7862); if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+              			newLeafNode(lv_report_pattern_7_0, grammarAccess.getNumberFormatAccess().getReport_patternSTRINGTerminalRuleCall_7_0()); 
+              		
+            }
+            if ( state.backtracking==0 ) {
+
+              	        if (current==null) {
+              	            current = createModelElement(grammarAccess.getNumberFormatRule());
+              	        }
+                     		setWithLastConsumed(
+                     			current, 
+                     			"report_pattern",
+                      		lv_report_pattern_7_0, 
+                      		"STRING");
+              	    
+            }
+
+            }
+
+
+            }
+
+            otherlv_8=(Token)match(input,48,FOLLOW_48_in_ruleNumberFormat7879); if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+                  	newLeafNode(otherlv_8, grammarAccess.getNumberFormatAccess().getTextalignKeyword_8());
+                  
+            }
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:3596:1: ( (lv_textalign_9_0= ruleTextAlignEnum ) )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:3597:1: (lv_textalign_9_0= ruleTextAlignEnum )
+            {
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:3597:1: (lv_textalign_9_0= ruleTextAlignEnum )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:3598:3: lv_textalign_9_0= ruleTextAlignEnum
+            {
+            if ( state.backtracking==0 ) {
+               
+              	        newCompositeNode(grammarAccess.getNumberFormatAccess().getTextalignTextAlignEnumEnumRuleCall_9_0()); 
+              	    
+            }
+            pushFollow(FOLLOW_ruleTextAlignEnum_in_ruleNumberFormat7900);
+            lv_textalign_9_0=ruleTextAlignEnum();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+              	        if (current==null) {
+              	            current = createModelElementForParent(grammarAccess.getNumberFormatRule());
+              	        }
+                     		set(
+                     			current, 
+                     			"textalign",
+                      		lv_textalign_9_0, 
+                      		"TextAlignEnum");
+              	        afterParserOrEnumRuleCall();
+              	    
+            }
+
+            }
+
+
+            }
+
+            otherlv_10=(Token)match(input,18,FOLLOW_18_in_ruleNumberFormat7912); if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+                  	newLeafNode(otherlv_10, grammarAccess.getNumberFormatAccess().getRightCurlyBracketKeyword_10());
+                  
+            }
+
+            }
+
+
+            }
+
+            if ( state.backtracking==0 ) {
+               leaveRule(); 
+            }
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleNumberFormat"
+
+
+    // $ANTLR start "entryRuleCurrencyFormat"
+    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:3626:1: entryRuleCurrencyFormat returns [EObject current=null] : iv_ruleCurrencyFormat= ruleCurrencyFormat EOF ;
+    public final EObject entryRuleCurrencyFormat() throws RecognitionException {
+        EObject current = null;
+
+        EObject iv_ruleCurrencyFormat = null;
+
+
+        try {
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:3627:2: (iv_ruleCurrencyFormat= ruleCurrencyFormat EOF )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:3628:2: iv_ruleCurrencyFormat= ruleCurrencyFormat EOF
+            {
+            if ( state.backtracking==0 ) {
+               newCompositeNode(grammarAccess.getCurrencyFormatRule()); 
+            }
+            pushFollow(FOLLOW_ruleCurrencyFormat_in_entryRuleCurrencyFormat7948);
+            iv_ruleCurrencyFormat=ruleCurrencyFormat();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+               current =iv_ruleCurrencyFormat; 
+            }
+            match(input,EOF,FOLLOW_EOF_in_entryRuleCurrencyFormat7958); if (state.failed) return current;
+
+            }
+
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleCurrencyFormat"
+
+
+    // $ANTLR start "ruleCurrencyFormat"
+    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:3635:1: ruleCurrencyFormat returns [EObject current=null] : (otherlv_0= 'currency' ( (lv_name_1_0= RULE_ID ) ) otherlv_2= '{' otherlv_3= 'ui' ( (lv_ui_pattern_4_0= RULE_STRING ) ) otherlv_5= 'report' ( (lv_report_category_6_0= ruleCurrencyFormatCategoryEnum ) ) ( (lv_report_pattern_7_0= RULE_STRING ) ) otherlv_8= 'textalign' ( (lv_textalign_9_0= ruleTextAlignEnum ) ) otherlv_10= '}' ) ;
+    public final EObject ruleCurrencyFormat() throws RecognitionException {
+        EObject current = null;
+
+        Token otherlv_0=null;
+        Token lv_name_1_0=null;
+        Token otherlv_2=null;
+        Token otherlv_3=null;
+        Token lv_ui_pattern_4_0=null;
+        Token otherlv_5=null;
+        Token lv_report_pattern_7_0=null;
+        Token otherlv_8=null;
+        Token otherlv_10=null;
+        Enumerator lv_report_category_6_0 = null;
+
+        Enumerator lv_textalign_9_0 = null;
+
+
+         enterRule(); 
+            
+        try {
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:3638:28: ( (otherlv_0= 'currency' ( (lv_name_1_0= RULE_ID ) ) otherlv_2= '{' otherlv_3= 'ui' ( (lv_ui_pattern_4_0= RULE_STRING ) ) otherlv_5= 'report' ( (lv_report_category_6_0= ruleCurrencyFormatCategoryEnum ) ) ( (lv_report_pattern_7_0= RULE_STRING ) ) otherlv_8= 'textalign' ( (lv_textalign_9_0= ruleTextAlignEnum ) ) otherlv_10= '}' ) )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:3639:1: (otherlv_0= 'currency' ( (lv_name_1_0= RULE_ID ) ) otherlv_2= '{' otherlv_3= 'ui' ( (lv_ui_pattern_4_0= RULE_STRING ) ) otherlv_5= 'report' ( (lv_report_category_6_0= ruleCurrencyFormatCategoryEnum ) ) ( (lv_report_pattern_7_0= RULE_STRING ) ) otherlv_8= 'textalign' ( (lv_textalign_9_0= ruleTextAlignEnum ) ) otherlv_10= '}' )
+            {
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:3639:1: (otherlv_0= 'currency' ( (lv_name_1_0= RULE_ID ) ) otherlv_2= '{' otherlv_3= 'ui' ( (lv_ui_pattern_4_0= RULE_STRING ) ) otherlv_5= 'report' ( (lv_report_category_6_0= ruleCurrencyFormatCategoryEnum ) ) ( (lv_report_pattern_7_0= RULE_STRING ) ) otherlv_8= 'textalign' ( (lv_textalign_9_0= ruleTextAlignEnum ) ) otherlv_10= '}' )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:3639:3: otherlv_0= 'currency' ( (lv_name_1_0= RULE_ID ) ) otherlv_2= '{' otherlv_3= 'ui' ( (lv_ui_pattern_4_0= RULE_STRING ) ) otherlv_5= 'report' ( (lv_report_category_6_0= ruleCurrencyFormatCategoryEnum ) ) ( (lv_report_pattern_7_0= RULE_STRING ) ) otherlv_8= 'textalign' ( (lv_textalign_9_0= ruleTextAlignEnum ) ) otherlv_10= '}'
+            {
+            otherlv_0=(Token)match(input,65,FOLLOW_65_in_ruleCurrencyFormat7995); if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+                  	newLeafNode(otherlv_0, grammarAccess.getCurrencyFormatAccess().getCurrencyKeyword_0());
+                  
+            }
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:3643:1: ( (lv_name_1_0= RULE_ID ) )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:3644:1: (lv_name_1_0= RULE_ID )
+            {
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:3644:1: (lv_name_1_0= RULE_ID )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:3645:3: lv_name_1_0= RULE_ID
+            {
+            lv_name_1_0=(Token)match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleCurrencyFormat8012); if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+              			newLeafNode(lv_name_1_0, grammarAccess.getCurrencyFormatAccess().getNameIDTerminalRuleCall_1_0()); 
+              		
+            }
+            if ( state.backtracking==0 ) {
+
+              	        if (current==null) {
+              	            current = createModelElement(grammarAccess.getCurrencyFormatRule());
+              	        }
+                     		setWithLastConsumed(
+                     			current, 
+                     			"name",
+                      		lv_name_1_0, 
+                      		"ID");
+              	    
+            }
+
+            }
+
+
+            }
+
+            otherlv_2=(Token)match(input,14,FOLLOW_14_in_ruleCurrencyFormat8029); if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+                  	newLeafNode(otherlv_2, grammarAccess.getCurrencyFormatAccess().getLeftCurlyBracketKeyword_2());
+                  
+            }
+            otherlv_3=(Token)match(input,62,FOLLOW_62_in_ruleCurrencyFormat8041); if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+                  	newLeafNode(otherlv_3, grammarAccess.getCurrencyFormatAccess().getUiKeyword_3());
+                  
+            }
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:3669:1: ( (lv_ui_pattern_4_0= RULE_STRING ) )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:3670:1: (lv_ui_pattern_4_0= RULE_STRING )
+            {
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:3670:1: (lv_ui_pattern_4_0= RULE_STRING )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:3671:3: lv_ui_pattern_4_0= RULE_STRING
+            {
+            lv_ui_pattern_4_0=(Token)match(input,RULE_STRING,FOLLOW_RULE_STRING_in_ruleCurrencyFormat8058); if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+              			newLeafNode(lv_ui_pattern_4_0, grammarAccess.getCurrencyFormatAccess().getUi_patternSTRINGTerminalRuleCall_4_0()); 
+              		
+            }
+            if ( state.backtracking==0 ) {
+
+              	        if (current==null) {
+              	            current = createModelElement(grammarAccess.getCurrencyFormatRule());
+              	        }
+                     		setWithLastConsumed(
+                     			current, 
+                     			"ui_pattern",
+                      		lv_ui_pattern_4_0, 
+                      		"STRING");
+              	    
+            }
+
+            }
+
+
+            }
+
+            otherlv_5=(Token)match(input,63,FOLLOW_63_in_ruleCurrencyFormat8075); if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+                  	newLeafNode(otherlv_5, grammarAccess.getCurrencyFormatAccess().getReportKeyword_5());
+                  
+            }
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:3691:1: ( (lv_report_category_6_0= ruleCurrencyFormatCategoryEnum ) )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:3692:1: (lv_report_category_6_0= ruleCurrencyFormatCategoryEnum )
+            {
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:3692:1: (lv_report_category_6_0= ruleCurrencyFormatCategoryEnum )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:3693:3: lv_report_category_6_0= ruleCurrencyFormatCategoryEnum
+            {
+            if ( state.backtracking==0 ) {
+               
+              	        newCompositeNode(grammarAccess.getCurrencyFormatAccess().getReport_categoryCurrencyFormatCategoryEnumEnumRuleCall_6_0()); 
+              	    
+            }
+            pushFollow(FOLLOW_ruleCurrencyFormatCategoryEnum_in_ruleCurrencyFormat8096);
+            lv_report_category_6_0=ruleCurrencyFormatCategoryEnum();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+              	        if (current==null) {
+              	            current = createModelElementForParent(grammarAccess.getCurrencyFormatRule());
+              	        }
+                     		set(
+                     			current, 
+                     			"report_category",
+                      		lv_report_category_6_0, 
+                      		"CurrencyFormatCategoryEnum");
+              	        afterParserOrEnumRuleCall();
+              	    
+            }
+
+            }
+
+
+            }
+
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:3709:2: ( (lv_report_pattern_7_0= RULE_STRING ) )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:3710:1: (lv_report_pattern_7_0= RULE_STRING )
+            {
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:3710:1: (lv_report_pattern_7_0= RULE_STRING )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:3711:3: lv_report_pattern_7_0= RULE_STRING
+            {
+            lv_report_pattern_7_0=(Token)match(input,RULE_STRING,FOLLOW_RULE_STRING_in_ruleCurrencyFormat8113); if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+              			newLeafNode(lv_report_pattern_7_0, grammarAccess.getCurrencyFormatAccess().getReport_patternSTRINGTerminalRuleCall_7_0()); 
+              		
+            }
+            if ( state.backtracking==0 ) {
+
+              	        if (current==null) {
+              	            current = createModelElement(grammarAccess.getCurrencyFormatRule());
+              	        }
+                     		setWithLastConsumed(
+                     			current, 
+                     			"report_pattern",
+                      		lv_report_pattern_7_0, 
+                      		"STRING");
+              	    
+            }
+
+            }
+
+
+            }
+
+            otherlv_8=(Token)match(input,48,FOLLOW_48_in_ruleCurrencyFormat8130); if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+                  	newLeafNode(otherlv_8, grammarAccess.getCurrencyFormatAccess().getTextalignKeyword_8());
+                  
+            }
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:3731:1: ( (lv_textalign_9_0= ruleTextAlignEnum ) )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:3732:1: (lv_textalign_9_0= ruleTextAlignEnum )
+            {
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:3732:1: (lv_textalign_9_0= ruleTextAlignEnum )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:3733:3: lv_textalign_9_0= ruleTextAlignEnum
+            {
+            if ( state.backtracking==0 ) {
+               
+              	        newCompositeNode(grammarAccess.getCurrencyFormatAccess().getTextalignTextAlignEnumEnumRuleCall_9_0()); 
+              	    
+            }
+            pushFollow(FOLLOW_ruleTextAlignEnum_in_ruleCurrencyFormat8151);
+            lv_textalign_9_0=ruleTextAlignEnum();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+              	        if (current==null) {
+              	            current = createModelElementForParent(grammarAccess.getCurrencyFormatRule());
+              	        }
+                     		set(
+                     			current, 
+                     			"textalign",
+                      		lv_textalign_9_0, 
+                      		"TextAlignEnum");
+              	        afterParserOrEnumRuleCall();
+              	    
+            }
+
+            }
+
+
+            }
+
+            otherlv_10=(Token)match(input,18,FOLLOW_18_in_ruleCurrencyFormat8163); if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+                  	newLeafNode(otherlv_10, grammarAccess.getCurrencyFormatAccess().getRightCurlyBracketKeyword_10());
+                  
+            }
+
+            }
+
+
+            }
+
+            if ( state.backtracking==0 ) {
+               leaveRule(); 
+            }
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleCurrencyFormat"
+
+
+    // $ANTLR start "entryRuleDateFormat"
+    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:3761:1: entryRuleDateFormat returns [EObject current=null] : iv_ruleDateFormat= ruleDateFormat EOF ;
+    public final EObject entryRuleDateFormat() throws RecognitionException {
+        EObject current = null;
+
+        EObject iv_ruleDateFormat = null;
+
+
+        try {
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:3762:2: (iv_ruleDateFormat= ruleDateFormat EOF )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:3763:2: iv_ruleDateFormat= ruleDateFormat EOF
+            {
+            if ( state.backtracking==0 ) {
+               newCompositeNode(grammarAccess.getDateFormatRule()); 
+            }
+            pushFollow(FOLLOW_ruleDateFormat_in_entryRuleDateFormat8199);
+            iv_ruleDateFormat=ruleDateFormat();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+               current =iv_ruleDateFormat; 
+            }
+            match(input,EOF,FOLLOW_EOF_in_entryRuleDateFormat8209); if (state.failed) return current;
+
+            }
+
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleDateFormat"
+
+
+    // $ANTLR start "ruleDateFormat"
+    // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:3770:1: ruleDateFormat returns [EObject current=null] : (otherlv_0= 'date' ( (lv_name_1_0= RULE_ID ) ) otherlv_2= '{' otherlv_3= 'ui' ( (lv_ui_pattern_4_0= RULE_STRING ) ) otherlv_5= 'report' ( (lv_report_category_6_0= ruleDateFormatCategoryEnum ) ) ( (lv_report_pattern_7_0= RULE_STRING ) ) otherlv_8= 'textalign' ( (lv_textalign_9_0= ruleTextAlignEnum ) ) otherlv_10= '}' ) ;
+    public final EObject ruleDateFormat() throws RecognitionException {
+        EObject current = null;
+
+        Token otherlv_0=null;
+        Token lv_name_1_0=null;
+        Token otherlv_2=null;
+        Token otherlv_3=null;
+        Token lv_ui_pattern_4_0=null;
+        Token otherlv_5=null;
+        Token lv_report_pattern_7_0=null;
+        Token otherlv_8=null;
+        Token otherlv_10=null;
+        Enumerator lv_report_category_6_0 = null;
+
+        Enumerator lv_textalign_9_0 = null;
+
+
+         enterRule(); 
+            
+        try {
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:3773:28: ( (otherlv_0= 'date' ( (lv_name_1_0= RULE_ID ) ) otherlv_2= '{' otherlv_3= 'ui' ( (lv_ui_pattern_4_0= RULE_STRING ) ) otherlv_5= 'report' ( (lv_report_category_6_0= ruleDateFormatCategoryEnum ) ) ( (lv_report_pattern_7_0= RULE_STRING ) ) otherlv_8= 'textalign' ( (lv_textalign_9_0= ruleTextAlignEnum ) ) otherlv_10= '}' ) )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:3774:1: (otherlv_0= 'date' ( (lv_name_1_0= RULE_ID ) ) otherlv_2= '{' otherlv_3= 'ui' ( (lv_ui_pattern_4_0= RULE_STRING ) ) otherlv_5= 'report' ( (lv_report_category_6_0= ruleDateFormatCategoryEnum ) ) ( (lv_report_pattern_7_0= RULE_STRING ) ) otherlv_8= 'textalign' ( (lv_textalign_9_0= ruleTextAlignEnum ) ) otherlv_10= '}' )
+            {
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:3774:1: (otherlv_0= 'date' ( (lv_name_1_0= RULE_ID ) ) otherlv_2= '{' otherlv_3= 'ui' ( (lv_ui_pattern_4_0= RULE_STRING ) ) otherlv_5= 'report' ( (lv_report_category_6_0= ruleDateFormatCategoryEnum ) ) ( (lv_report_pattern_7_0= RULE_STRING ) ) otherlv_8= 'textalign' ( (lv_textalign_9_0= ruleTextAlignEnum ) ) otherlv_10= '}' )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:3774:3: otherlv_0= 'date' ( (lv_name_1_0= RULE_ID ) ) otherlv_2= '{' otherlv_3= 'ui' ( (lv_ui_pattern_4_0= RULE_STRING ) ) otherlv_5= 'report' ( (lv_report_category_6_0= ruleDateFormatCategoryEnum ) ) ( (lv_report_pattern_7_0= RULE_STRING ) ) otherlv_8= 'textalign' ( (lv_textalign_9_0= ruleTextAlignEnum ) ) otherlv_10= '}'
+            {
+            otherlv_0=(Token)match(input,66,FOLLOW_66_in_ruleDateFormat8246); if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+                  	newLeafNode(otherlv_0, grammarAccess.getDateFormatAccess().getDateKeyword_0());
+                  
+            }
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:3778:1: ( (lv_name_1_0= RULE_ID ) )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:3779:1: (lv_name_1_0= RULE_ID )
+            {
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:3779:1: (lv_name_1_0= RULE_ID )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:3780:3: lv_name_1_0= RULE_ID
+            {
+            lv_name_1_0=(Token)match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleDateFormat8263); if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+              			newLeafNode(lv_name_1_0, grammarAccess.getDateFormatAccess().getNameIDTerminalRuleCall_1_0()); 
+              		
+            }
+            if ( state.backtracking==0 ) {
+
+              	        if (current==null) {
+              	            current = createModelElement(grammarAccess.getDateFormatRule());
+              	        }
+                     		setWithLastConsumed(
+                     			current, 
+                     			"name",
+                      		lv_name_1_0, 
+                      		"ID");
+              	    
+            }
+
+            }
+
+
+            }
+
+            otherlv_2=(Token)match(input,14,FOLLOW_14_in_ruleDateFormat8280); if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+                  	newLeafNode(otherlv_2, grammarAccess.getDateFormatAccess().getLeftCurlyBracketKeyword_2());
+                  
+            }
+            otherlv_3=(Token)match(input,62,FOLLOW_62_in_ruleDateFormat8292); if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+                  	newLeafNode(otherlv_3, grammarAccess.getDateFormatAccess().getUiKeyword_3());
+                  
+            }
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:3804:1: ( (lv_ui_pattern_4_0= RULE_STRING ) )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:3805:1: (lv_ui_pattern_4_0= RULE_STRING )
+            {
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:3805:1: (lv_ui_pattern_4_0= RULE_STRING )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:3806:3: lv_ui_pattern_4_0= RULE_STRING
+            {
+            lv_ui_pattern_4_0=(Token)match(input,RULE_STRING,FOLLOW_RULE_STRING_in_ruleDateFormat8309); if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+              			newLeafNode(lv_ui_pattern_4_0, grammarAccess.getDateFormatAccess().getUi_patternSTRINGTerminalRuleCall_4_0()); 
+              		
+            }
+            if ( state.backtracking==0 ) {
+
+              	        if (current==null) {
+              	            current = createModelElement(grammarAccess.getDateFormatRule());
+              	        }
+                     		setWithLastConsumed(
+                     			current, 
+                     			"ui_pattern",
+                      		lv_ui_pattern_4_0, 
+                      		"STRING");
+              	    
+            }
+
+            }
+
+
+            }
+
+            otherlv_5=(Token)match(input,63,FOLLOW_63_in_ruleDateFormat8326); if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+                  	newLeafNode(otherlv_5, grammarAccess.getDateFormatAccess().getReportKeyword_5());
+                  
+            }
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:3826:1: ( (lv_report_category_6_0= ruleDateFormatCategoryEnum ) )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:3827:1: (lv_report_category_6_0= ruleDateFormatCategoryEnum )
+            {
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:3827:1: (lv_report_category_6_0= ruleDateFormatCategoryEnum )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:3828:3: lv_report_category_6_0= ruleDateFormatCategoryEnum
+            {
+            if ( state.backtracking==0 ) {
+               
+              	        newCompositeNode(grammarAccess.getDateFormatAccess().getReport_categoryDateFormatCategoryEnumEnumRuleCall_6_0()); 
+              	    
+            }
+            pushFollow(FOLLOW_ruleDateFormatCategoryEnum_in_ruleDateFormat8347);
+            lv_report_category_6_0=ruleDateFormatCategoryEnum();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+              	        if (current==null) {
+              	            current = createModelElementForParent(grammarAccess.getDateFormatRule());
+              	        }
+                     		set(
+                     			current, 
+                     			"report_category",
+                      		lv_report_category_6_0, 
+                      		"DateFormatCategoryEnum");
+              	        afterParserOrEnumRuleCall();
+              	    
+            }
+
+            }
+
+
+            }
+
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:3844:2: ( (lv_report_pattern_7_0= RULE_STRING ) )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:3845:1: (lv_report_pattern_7_0= RULE_STRING )
+            {
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:3845:1: (lv_report_pattern_7_0= RULE_STRING )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:3846:3: lv_report_pattern_7_0= RULE_STRING
+            {
+            lv_report_pattern_7_0=(Token)match(input,RULE_STRING,FOLLOW_RULE_STRING_in_ruleDateFormat8364); if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+              			newLeafNode(lv_report_pattern_7_0, grammarAccess.getDateFormatAccess().getReport_patternSTRINGTerminalRuleCall_7_0()); 
+              		
+            }
+            if ( state.backtracking==0 ) {
+
+              	        if (current==null) {
+              	            current = createModelElement(grammarAccess.getDateFormatRule());
+              	        }
+                     		setWithLastConsumed(
+                     			current, 
+                     			"report_pattern",
+                      		lv_report_pattern_7_0, 
+                      		"STRING");
+              	    
+            }
+
+            }
+
+
+            }
+
+            otherlv_8=(Token)match(input,48,FOLLOW_48_in_ruleDateFormat8381); if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+                  	newLeafNode(otherlv_8, grammarAccess.getDateFormatAccess().getTextalignKeyword_8());
+                  
+            }
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:3866:1: ( (lv_textalign_9_0= ruleTextAlignEnum ) )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:3867:1: (lv_textalign_9_0= ruleTextAlignEnum )
+            {
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:3867:1: (lv_textalign_9_0= ruleTextAlignEnum )
+            // ../org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/parser/antlr/internal/InternalReportDSL.g:3868:3: lv_textalign_9_0= ruleTextAlignEnum
+            {
+            if ( state.backtracking==0 ) {
+               
+              	        newCompositeNode(grammarAccess.getDateFormatAccess().getTextalignTextAlignEnumEnumRuleCall_9_0()); 
+              	    
+            }
+            pushFollow(FOLLOW_ruleTextAlignEnum_in_ruleDateFormat8402);
+            lv_textalign_9_0=ruleTextAlignEnum();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+              	        if (current==null) {
+              	            current = createModelElementForParent(grammarAccess.getDateFormatRule());
+              	        }
+                     		set(
+                     			current, 
+                     			"textalign",
+                      		lv_textalign_9_0, 
+                      		"TextAlignEnum");
+              	        afterParserOrEnumRuleCall();
+              	    
diff --git a/org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/serializer/ReportDSLSemanticSequencer.java b/org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/serializer/ReportDSLSemanticSequencer.java
new file mode 100644
index 0000000..65f65ef
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/serializer/ReportDSLSemanticSequencer.java
@@ -0,0 +1,2749 @@
+/**
+ *                                                                            
+ *  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.reportdsl.serializer;
+
+import com.google.inject.Inject;
+import com.google.inject.Provider;
+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.osbp.xtext.reportdsl.AutoText;
+import org.eclipse.osbp.xtext.reportdsl.BorderStyle;
+import org.eclipse.osbp.xtext.reportdsl.BuildInFontFamily;
+import org.eclipse.osbp.xtext.reportdsl.Color;
+import org.eclipse.osbp.xtext.reportdsl.Colors;
+import org.eclipse.osbp.xtext.reportdsl.CurrencyFormat;
+import org.eclipse.osbp.xtext.reportdsl.CustomFontFamily;
+import org.eclipse.osbp.xtext.reportdsl.DatamartTable;
+import org.eclipse.osbp.xtext.reportdsl.DatamartTableDetail;
+import org.eclipse.osbp.xtext.reportdsl.DatamartTableGroup;
+import org.eclipse.osbp.xtext.reportdsl.DatamartTableGroupFooter;
+import org.eclipse.osbp.xtext.reportdsl.DatamartTableGroupHeader;
+import org.eclipse.osbp.xtext.reportdsl.DatamartTableProperty;
+import org.eclipse.osbp.xtext.reportdsl.DateFormat;
+import org.eclipse.osbp.xtext.reportdsl.DateTimeFormat;
+import org.eclipse.osbp.xtext.reportdsl.Font;
+import org.eclipse.osbp.xtext.reportdsl.Fonts;
+import org.eclipse.osbp.xtext.reportdsl.Grid;
+import org.eclipse.osbp.xtext.reportdsl.GridCell;
+import org.eclipse.osbp.xtext.reportdsl.GridRow;
+import org.eclipse.osbp.xtext.reportdsl.Image;
+import org.eclipse.osbp.xtext.reportdsl.Label;
+import org.eclipse.osbp.xtext.reportdsl.Media;
+import org.eclipse.osbp.xtext.reportdsl.MediaStyle;
+import org.eclipse.osbp.xtext.reportdsl.Medias;
+import org.eclipse.osbp.xtext.reportdsl.NumberFormat;
+import org.eclipse.osbp.xtext.reportdsl.PageDetail;
+import org.eclipse.osbp.xtext.reportdsl.PageFooter;
+import org.eclipse.osbp.xtext.reportdsl.PageHeader;
+import org.eclipse.osbp.xtext.reportdsl.PageTemplate;
+import org.eclipse.osbp.xtext.reportdsl.PageTemplates;
+import org.eclipse.osbp.xtext.reportdsl.Report;
+import org.eclipse.osbp.xtext.reportdsl.ReportDSLPackage;
+import org.eclipse.osbp.xtext.reportdsl.ReportDesignFile;
+import org.eclipse.osbp.xtext.reportdsl.ReportDesignTemplate;
+import org.eclipse.osbp.xtext.reportdsl.ReportModel;
+import org.eclipse.osbp.xtext.reportdsl.ReportPackage;
+import org.eclipse.osbp.xtext.reportdsl.SomeFormats;
+import org.eclipse.osbp.xtext.reportdsl.Style;
+import org.eclipse.osbp.xtext.reportdsl.Styles;
+import org.eclipse.osbp.xtext.reportdsl.SubSubTitle;
+import org.eclipse.osbp.xtext.reportdsl.SubTitle;
+import org.eclipse.osbp.xtext.reportdsl.TableAggregation;
+import org.eclipse.osbp.xtext.reportdsl.TableBinaryAggregation;
+import org.eclipse.osbp.xtext.reportdsl.TableCellColor;
+import org.eclipse.osbp.xtext.reportdsl.TableDateDayInterval;
+import org.eclipse.osbp.xtext.reportdsl.TableDateDayLookup;
+import org.eclipse.osbp.xtext.reportdsl.TableFormatter;
+import org.eclipse.osbp.xtext.reportdsl.TableIcon;
+import org.eclipse.osbp.xtext.reportdsl.TableImage;
+import org.eclipse.osbp.xtext.reportdsl.TableMultipleAggregation;
+import org.eclipse.osbp.xtext.reportdsl.TableNumberInterval;
+import org.eclipse.osbp.xtext.reportdsl.TableNumberLookup;
+import org.eclipse.osbp.xtext.reportdsl.TableProperty;
+import org.eclipse.osbp.xtext.reportdsl.TablePureAggregation;
+import org.eclipse.osbp.xtext.reportdsl.TableStringLookup;
+import org.eclipse.osbp.xtext.reportdsl.TableTextColor;
+import org.eclipse.osbp.xtext.reportdsl.TableTrend;
+import org.eclipse.osbp.xtext.reportdsl.TableUnaryAggregation;
+import org.eclipse.osbp.xtext.reportdsl.Text;
+import org.eclipse.osbp.xtext.reportdsl.TimeFormat;
+import org.eclipse.osbp.xtext.reportdsl.Title;
+import org.eclipse.osbp.xtext.reportdsl.UomoFormat;
+import org.eclipse.osbp.xtext.reportdsl.services.ReportDSLGrammarAccess;
+import org.eclipse.xtext.common.types.JvmFormalParameter;
+import org.eclipse.xtext.common.types.JvmGenericArrayTypeReference;
+import org.eclipse.xtext.common.types.JvmInnerTypeReference;
+import org.eclipse.xtext.common.types.JvmLowerBound;
+import org.eclipse.xtext.common.types.JvmParameterizedTypeReference;
+import org.eclipse.xtext.common.types.JvmTypeParameter;
+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.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;
+import org.eclipse.xtext.xbase.XBinaryOperation;
+import org.eclipse.xtext.xbase.XBlockExpression;
+import org.eclipse.xtext.xbase.XBooleanLiteral;
+import org.eclipse.xtext.xbase.XCasePart;
+import org.eclipse.xtext.xbase.XCastedExpression;
+import org.eclipse.xtext.xbase.XCatchClause;
+import org.eclipse.xtext.xbase.XClosure;
+import org.eclipse.xtext.xbase.XConstructorCall;
+import org.eclipse.xtext.xbase.XDoWhileExpression;
+import org.eclipse.xtext.xbase.XFeatureCall;
+import org.eclipse.xtext.xbase.XForLoopExpression;
+import org.eclipse.xtext.xbase.XIfExpression;
+import org.eclipse.xtext.xbase.XInstanceOfExpression;
+import org.eclipse.xtext.xbase.XListLiteral;
+import org.eclipse.xtext.xbase.XMemberFeatureCall;
+import org.eclipse.xtext.xbase.XNullLiteral;
+import org.eclipse.xtext.xbase.XNumberLiteral;
+import org.eclipse.xtext.xbase.XPostfixOperation;
+import org.eclipse.xtext.xbase.XReturnExpression;
+import org.eclipse.xtext.xbase.XSetLiteral;
+import org.eclipse.xtext.xbase.XStringLiteral;
+import org.eclipse.xtext.xbase.XSwitchExpression;
+import org.eclipse.xtext.xbase.XSynchronizedExpression;
+import org.eclipse.xtext.xbase.XThrowExpression;
+import org.eclipse.xtext.xbase.XTryCatchFinallyExpression;
+import org.eclipse.xtext.xbase.XTypeLiteral;
+import org.eclipse.xtext.xbase.XUnaryOperation;
+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 ReportDSLSemanticSequencer extends XbaseWithAnnotationsSemanticSequencer {
+
+	@Inject
+	private ReportDSLGrammarAccess grammarAccess;
+	
+	public void createSequence(EObject context, EObject semanticObject) {
+		if(semanticObject.eClass().getEPackage() == ReportDSLPackage.eINSTANCE) switch(semanticObject.eClass().getClassifierID()) {
+			case ReportDSLPackage.AUTO_TEXT:
+				if(context == grammarAccess.getAutoTextRule() ||
+				   context == grammarAccess.getElementRule()) {
+					sequence_AutoText(context, (AutoText) semanticObject); 
+					return; 
+				}
+				else break;
+			case ReportDSLPackage.BORDER_STYLE:
+				if(context == grammarAccess.getBorderStyleRule()) {
+					sequence_BorderStyle(context, (BorderStyle) semanticObject); 
+					return; 
+				}
+				else break;
+			case ReportDSLPackage.BUILD_IN_FONT_FAMILY:
+				if(context == grammarAccess.getBuildInFontFamilyRule() ||
+				   context == grammarAccess.getFontFamilyRule()) {
+					sequence_BuildInFontFamily(context, (BuildInFontFamily) semanticObject); 
+					return; 
+				}
+				else break;
+			case ReportDSLPackage.COLOR:
+				if(context == grammarAccess.getColorRule()) {
+					sequence_Color(context, (Color) semanticObject); 
+					return; 
+				}
+				else break;
+			case ReportDSLPackage.COLORS:
+				if(context == grammarAccess.getColorsRule()) {
+					sequence_Colors(context, (Colors) semanticObject); 
+					return; 
+				}
+				else break;
+			case ReportDSLPackage.CURRENCY_FORMAT:
+				if(context == grammarAccess.getCurrencyFormatRule() ||
+				   context == grammarAccess.getSomeFormatRule()) {
+					sequence_CurrencyFormat(context, (CurrencyFormat) semanticObject); 
+					return; 
+				}
+				else break;
+			case ReportDSLPackage.CUSTOM_FONT_FAMILY:
+				if(context == grammarAccess.getCustomFontFamilyRule() ||
+				   context == grammarAccess.getFontFamilyRule()) {
+					sequence_CustomFontFamily(context, (CustomFontFamily) semanticObject); 
+					return; 
+				}
+				else break;
+			case ReportDSLPackage.DATAMART_TABLE:
+				if(context == grammarAccess.getDatamartTableRule() ||
+				   context == grammarAccess.getElementRule()) {
+					sequence_DatamartTable(context, (DatamartTable) semanticObject); 
+					return; 
+				}
+				else break;
+			case ReportDSLPackage.DATAMART_TABLE_DETAIL:
+				if(context == grammarAccess.getDatamartTableDetailRule()) {
+					sequence_DatamartTableDetail(context, (DatamartTableDetail) semanticObject); 
+					return; 
+				}
+				else break;
+			case ReportDSLPackage.DATAMART_TABLE_GROUP:
+				if(context == grammarAccess.getDatamartTableGroupRule()) {
+					sequence_DatamartTableGroup(context, (DatamartTableGroup) semanticObject); 
+					return; 
+				}
+				else break;
+			case ReportDSLPackage.DATAMART_TABLE_GROUP_FOOTER:
+				if(context == grammarAccess.getDatamartTableGroupFooterRule()) {
+					sequence_DatamartTableGroupFooter(context, (DatamartTableGroupFooter) semanticObject); 
+					return; 
+				}
+				else break;
+			case ReportDSLPackage.DATAMART_TABLE_GROUP_HEADER:
+				if(context == grammarAccess.getDatamartTableGroupHeaderRule()) {
+					sequence_DatamartTableGroupHeader(context, (DatamartTableGroupHeader) semanticObject); 
+					return; 
+				}
+				else break;
+			case ReportDSLPackage.DATAMART_TABLE_PROPERTY:
+				if(context == grammarAccess.getDatamartTablePropertyRule() ||
+				   context == grammarAccess.getElementRule()) {
+					sequence_DatamartTableProperty(context, (DatamartTableProperty) semanticObject); 
+					return; 
+				}
+				else break;
+			case ReportDSLPackage.DATE_FORMAT:
+				if(context == grammarAccess.getDateFormatRule() ||
+				   context == grammarAccess.getSomeFormatRule()) {
+					sequence_DateFormat(context, (DateFormat) semanticObject); 
+					return; 
+				}
+				else break;
+			case ReportDSLPackage.DATE_TIME_FORMAT:
+				if(context == grammarAccess.getDateTimeFormatRule() ||
+				   context == grammarAccess.getSomeFormatRule()) {
+					sequence_DateTimeFormat(context, (DateTimeFormat) semanticObject); 
+					return; 
+				}
+				else break;
+			case ReportDSLPackage.FONT:
+				if(context == grammarAccess.getFontRule()) {
+					sequence_Font(context, (Font) semanticObject); 
+					return; 
+				}
+				else break;
+			case ReportDSLPackage.FONTS:
+				if(context == grammarAccess.getFontsRule()) {
+					sequence_Fonts(context, (Fonts) semanticObject); 
+					return; 
+				}
+				else break;
+			case ReportDSLPackage.GRID:
+				if(context == grammarAccess.getElementRule() ||
+				   context == grammarAccess.getGridRule()) {
+					sequence_Grid(context, (Grid) semanticObject); 
+					return; 
+				}
+				else break;
+			case ReportDSLPackage.GRID_CELL:
+				if(context == grammarAccess.getContainerRule() ||
+				   context == grammarAccess.getGridCellRule()) {
+					sequence_GridCell(context, (GridCell) semanticObject); 
+					return; 
+				}
+				else break;
+			case ReportDSLPackage.GRID_ROW:
+				if(context == grammarAccess.getGridRowRule()) {
+					sequence_GridRow(context, (GridRow) semanticObject); 
+					return; 
+				}
+				else break;
+			case ReportDSLPackage.IMAGE:
+				if(context == grammarAccess.getElementRule() ||
+				   context == grammarAccess.getImageRule()) {
+					sequence_Image(context, (Image) semanticObject); 
+					return; 
+				}
+				else break;
+			case ReportDSLPackage.LABEL:
+				if(context == grammarAccess.getElementRule() ||
+				   context == grammarAccess.getLabelRule()) {
+					sequence_Label(context, (Label) semanticObject); 
+					return; 
+				}
+				else break;
+			case ReportDSLPackage.MEDIA:
+				if(context == grammarAccess.getMediaRule()) {
+					sequence_Media(context, (Media) semanticObject); 
+					return; 
+				}
+				else break;
+			case ReportDSLPackage.MEDIA_STYLE:
+				if(context == grammarAccess.getMediaStyleRule()) {
+					sequence_MediaStyle(context, (MediaStyle) semanticObject); 
+					return; 
+				}
+				else break;
+			case ReportDSLPackage.MEDIAS:
+				if(context == grammarAccess.getMediasRule()) {
+					sequence_Medias(context, (Medias) semanticObject); 
+					return; 
+				}
+				else break;
+			case ReportDSLPackage.NUMBER_FORMAT:
+				if(context == grammarAccess.getNumberFormatRule() ||
+				   context == grammarAccess.getSomeFormatRule()) {
+					sequence_NumberFormat(context, (NumberFormat) semanticObject); 
+					return; 
+				}
+				else break;
+			case ReportDSLPackage.PAGE_DETAIL:
+				if(context == grammarAccess.getContainerRule() ||
+				   context == grammarAccess.getPageDetailRule()) {
+					sequence_PageDetail(context, (PageDetail) semanticObject); 
+					return; 
+				}
+				else break;
+			case ReportDSLPackage.PAGE_FOOTER:
+				if(context == grammarAccess.getContainerRule() ||
+				   context == grammarAccess.getPageFooterRule()) {
+					sequence_PageFooter(context, (PageFooter) semanticObject); 
+					return; 
+				}
+				else break;
+			case ReportDSLPackage.PAGE_HEADER:
+				if(context == grammarAccess.getContainerRule() ||
+				   context == grammarAccess.getPageHeaderRule()) {
+					sequence_PageHeader(context, (PageHeader) semanticObject); 
+					return; 
+				}
+				else break;
+			case ReportDSLPackage.PAGE_TEMPLATE:
+				if(context == grammarAccess.getPageTemplateRule()) {
+					sequence_PageTemplate(context, (PageTemplate) semanticObject); 
+					return; 
+				}
+				else break;
+			case ReportDSLPackage.PAGE_TEMPLATES:
+				if(context == grammarAccess.getPageTemplatesRule()) {
+					sequence_PageTemplates(context, (PageTemplates) semanticObject); 
+					return; 
+				}
+				else break;
+			case ReportDSLPackage.REPORT:
+				if(context == grammarAccess.getReportRule()) {
+					sequence_Report(context, (Report) semanticObject); 
+					return; 
+				}
+				else break;
+			case ReportDSLPackage.REPORT_DESIGN_FILE:
+				if(context == grammarAccess.getReportDesignRule() ||
+				   context == grammarAccess.getReportDesignFileRule()) {
+					sequence_ReportDesignFile(context, (ReportDesignFile) semanticObject); 
+					return; 
+				}
+				else break;
+			case ReportDSLPackage.REPORT_DESIGN_TEMPLATE:
+				if(context == grammarAccess.getReportDesignRule() ||
+				   context == grammarAccess.getReportDesignTemplateRule()) {
+					sequence_ReportDesignTemplate(context, (ReportDesignTemplate) semanticObject); 
+					return; 
+				}
+				else break;
+			case ReportDSLPackage.REPORT_MODEL:
+				if(context == grammarAccess.getReportModelRule()) {
+					sequence_ReportModel(context, (ReportModel) semanticObject); 
+					return; 
+				}
+				else break;
+			case ReportDSLPackage.REPORT_PACKAGE:
+				if(context == grammarAccess.getReportPackageRule()) {
+					sequence_ReportPackage(context, (ReportPackage) semanticObject); 
+					return; 
+				}
+				else break;
+			case ReportDSLPackage.SOME_FORMATS:
+				if(context == grammarAccess.getSomeFormatsRule()) {
+					sequence_SomeFormats(context, (SomeFormats) semanticObject); 
+					return; 
+				}
+				else break;
+			case ReportDSLPackage.STYLE:
+				if(context == grammarAccess.getStyleRule()) {
+					sequence_Style(context, (Style) semanticObject); 
+					return; 
+				}
+				else break;
+			case ReportDSLPackage.STYLES:
+				if(context == grammarAccess.getStylesRule()) {
+					sequence_Styles(context, (Styles) semanticObject); 
+					return; 
+				}
+				else break;
+			case ReportDSLPackage.SUB_SUB_TITLE:
+				if(context == grammarAccess.getElementRule() ||
+				   context == grammarAccess.getSubSubTitleRule()) {
+					sequence_SubSubTitle(context, (SubSubTitle) semanticObject); 
+					return; 
+				}
+				else break;
+			case ReportDSLPackage.SUB_TITLE:
+				if(context == grammarAccess.getElementRule() ||
+				   context == grammarAccess.getSubTitleRule()) {
+					sequence_SubTitle(context, (SubTitle) semanticObject); 
+					return; 
+				}
+				else break;
+			case ReportDSLPackage.TABLE_AGGREGATION:
+				if(context == grammarAccess.getTableAggregationRule() ||
+				   context == grammarAccess.getTableValueElementRule()) {
+					sequence_TableAggregation(context, (TableAggregation) semanticObject); 
+					return; 
+				}
+				else break;
+			case ReportDSLPackage.TABLE_BINARY_AGGREGATION:
+				if(context == grammarAccess.getTableBaseAggregationRule() ||
+				   context == grammarAccess.getTableBinaryAggregationRule()) {
+					sequence_TableBinaryAggregation(context, (TableBinaryAggregation) semanticObject); 
+					return; 
+				}
+				else break;
+			case ReportDSLPackage.TABLE_CELL_COLOR:
+				if(context == grammarAccess.getTableCellColorRule() ||
+				   context == grammarAccess.getTableRangeElementRule()) {
+					sequence_TableCellColor(context, (TableCellColor) semanticObject); 
+					return; 
+				}
+				else break;
+			case ReportDSLPackage.TABLE_DATE_DAY_INTERVAL:
+				if(context == grammarAccess.getTableDateDayIntervalRule() ||
+				   context == grammarAccess.getTableIntervalRule()) {
+					sequence_TableDateDayInterval(context, (TableDateDayInterval) semanticObject); 
+					return; 
+				}
+				else break;
+			case ReportDSLPackage.TABLE_DATE_DAY_LOOKUP:
+				if(context == grammarAccess.getTableDateDayLookupRule() ||
+				   context == grammarAccess.getTableLookupRule()) {
+					sequence_TableDateDayLookup(context, (TableDateDayLookup) semanticObject); 
+					return; 
+				}
+				else break;
+			case ReportDSLPackage.TABLE_FORMATTER:
+				if(context == grammarAccess.getTableFormatterRule()) {
+					sequence_TableFormatter(context, (TableFormatter) semanticObject); 
+					return; 
+				}
+				else break;
+			case ReportDSLPackage.TABLE_ICON:
+				if(context == grammarAccess.getTableIconRule() ||
+				   context == grammarAccess.getTableRangeElementRule()) {
+					sequence_TableIcon(context, (TableIcon) semanticObject); 
+					return; 
+				}
+				else break;
+			case ReportDSLPackage.TABLE_IMAGE:
+				if(context == grammarAccess.getTableImageRule()) {
+					sequence_TableImage(context, (TableImage) semanticObject); 
+					return; 
+				}
+				else break;
+			case ReportDSLPackage.TABLE_MULTIPLE_AGGREGATION:
+				if(context == grammarAccess.getTableBaseAggregationRule() ||
+				   context == grammarAccess.getTableMultipleAggregationRule()) {
+					sequence_TableMultipleAggregation(context, (TableMultipleAggregation) semanticObject); 
+					return; 
+				}
+				else break;
+			case ReportDSLPackage.TABLE_NUMBER_INTERVAL:
+				if(context == grammarAccess.getTableIntervalRule() ||
+				   context == grammarAccess.getTableNumberIntervalRule()) {
+					sequence_TableNumberInterval(context, (TableNumberInterval) semanticObject); 
+					return; 
+				}
+				else break;
+			case ReportDSLPackage.TABLE_NUMBER_LOOKUP:
+				if(context == grammarAccess.getTableLookupRule() ||
+				   context == grammarAccess.getTableNumberLookupRule()) {
+					sequence_TableNumberLookup(context, (TableNumberLookup) semanticObject); 
+					return; 
+				}
+				else break;
+			case ReportDSLPackage.TABLE_PROPERTY:
+				if(context == grammarAccess.getTablePropertyRule() ||
+				   context == grammarAccess.getTableValueElementRule()) {
+					sequence_TableProperty(context, (TableProperty) semanticObject); 
+					return; 
+				}
+				else break;
+			case ReportDSLPackage.TABLE_PURE_AGGREGATION:
+				if(context == grammarAccess.getTableBaseAggregationRule() ||
+				   context == grammarAccess.getTablePureAggregationRule()) {
+					sequence_TablePureAggregation(context, (TablePureAggregation) semanticObject); 
+					return; 
+				}
+				else break;
+			case ReportDSLPackage.TABLE_STRING_LOOKUP:
+				if(context == grammarAccess.getTableLookupRule() ||
+				   context == grammarAccess.getTableStringLookupRule()) {
+					sequence_TableStringLookup(context, (TableStringLookup) semanticObject); 
+					return; 
+				}
+				else break;
+			case ReportDSLPackage.TABLE_TEXT_COLOR:
+				if(context == grammarAccess.getTableRangeElementRule() ||
+				   context == grammarAccess.getTableTextColorRule()) {
+					sequence_TableTextColor(context, (TableTextColor) semanticObject); 
+					return; 
+				}
+				else break;
+			case ReportDSLPackage.TABLE_TREND:
+				if(context == grammarAccess.getTableRangeElementRule() ||
+				   context == grammarAccess.getTableTrendRule()) {
+					sequence_TableTrend(context, (TableTrend) semanticObject); 
+					return; 
+				}
+				else break;
+			case ReportDSLPackage.TABLE_UNARY_AGGREGATION:
+				if(context == grammarAccess.getTableBaseAggregationRule() ||
+				   context == grammarAccess.getTableUnaryAggregationRule()) {
+					sequence_TableUnaryAggregation(context, (TableUnaryAggregation) semanticObject); 
+					return; 
+				}
+				else break;
+			case ReportDSLPackage.TEXT:
+				if(context == grammarAccess.getElementRule() ||
+				   context == grammarAccess.getTextRule()) {
+					sequence_Text(context, (Text) semanticObject); 
+					return; 
+				}
+				else break;
+			case ReportDSLPackage.TIME_FORMAT:
+				if(context == grammarAccess.getSomeFormatRule() ||
+				   context == grammarAccess.getTimeFormatRule()) {
+					sequence_TimeFormat(context, (TimeFormat) semanticObject); 
+					return; 
+				}
+				else break;
+			case ReportDSLPackage.TITLE:
+				if(context == grammarAccess.getElementRule() ||
+				   context == grammarAccess.getTitleRule()) {
+					sequence_Title(context, (Title) semanticObject); 
+					return; 
+				}
+				else break;
+			case ReportDSLPackage.UOMO_FORMAT:
+				if(context == grammarAccess.getSomeFormatRule() ||
+				   context == grammarAccess.getUomoFormatRule()) {
+					sequence_UomoFormat(context, (UomoFormat) semanticObject); 
+					return; 
+				}
+				else break;
+			}
+		else if(semanticObject.eClass().getEPackage() == OSBPTypesPackage.eINSTANCE) switch(semanticObject.eClass().getClassifierID()) {
+			case OSBPTypesPackage.LIMPORT:
+				if(context == grammarAccess.getReportImportRule()) {
+					sequence_ReportImport(context, (LImport) semanticObject); 
+					return; 
+				}
+				else break;
+			}
+		else if(semanticObject.eClass().getEPackage() == TypesPackage.eINSTANCE) switch(semanticObject.eClass().getClassifierID()) {
+			case TypesPackage.JVM_FORMAL_PARAMETER:
+				if(context == grammarAccess.getFullJvmFormalParameterRule()) {
+					sequence_FullJvmFormalParameter(context, (JvmFormalParameter) semanticObject); 
+					return; 
+				}
+				else if(context == 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;
+			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;
+			case TypesPackage.JVM_LOWER_BOUND:
+				if(context == grammarAccess.getJvmLowerBoundAndedRule()) {
+					sequence_JvmLowerBoundAnded(context, (JvmLowerBound) semanticObject); 
+					return; 
+				}
+				else if(context == 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()) {
+					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;
+			case TypesPackage.JVM_UPPER_BOUND:
+				if(context == grammarAccess.getJvmUpperBoundAndedRule()) {
+					sequence_JvmUpperBoundAnded(context, (JvmUpperBound) semanticObject); 
+					return; 
+				}
+				else if(context == 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;
+			}
+		else if(semanticObject.eClass().getEPackage() == 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;
+			case XAnnotationsPackage.XANNOTATION_ELEMENT_VALUE_PAIR:
+				if(context == grammarAccess.getXAnnotationElementValuePairRule()) {
+					sequence_XAnnotationElementValuePair(context, (XAnnotationElementValuePair) semanticObject); 
+					return; 
+				}
+				else break;
+			}
+		else if(semanticObject.eClass().getEPackage() == 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;
+			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;
+			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;
+			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()) {
+					sequence_XBlockExpression(context, (XBlockExpression) semanticObject); 
+					return; 
+				}
+				else if(context == 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;
+			case XbasePackage.XCASE_PART:
+				if(context == grammarAccess.getXCasePartRule()) {
+					sequence_XCasePart(context, (XCasePart) semanticObject); 
+					return; 
+				}
+				else break;
+			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;
+			case XbasePackage.XCATCH_CLAUSE:
+				if(context == grammarAccess.getXCatchClauseRule()) {
+					sequence_XCatchClause(context, (XCatchClause) semanticObject); 
+					return; 
+				}
+				else break;
+			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()) {
+					sequence_XClosure(context, (XClosure) semanticObject); 
+					return; 
+				}
+				else if(context == 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;
+			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;
+			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;
+			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;
+			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;
+			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;
+			case XbasePackage.XLIST_LITERAL:
+				if(context == grammarAccess.getXAnnotationElementValueOrCommaListRule()) {
+					sequence_XAnnotationElementValueOrCommaList_XListLiteral(context, (XListLiteral) semanticObject); 
+					return; 
+				}
+				else if(context == 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()) {
+					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;
+			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;
+			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;
+			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;
+			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;
+			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;
+			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;
+			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;
+			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;
+			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;
+			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;
+			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;
+			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;
+			case XbasePackage.XVARIABLE_DECLARATION:
+				if(context == grammarAccess.getXExpressionOrVarDeclarationRule() ||
+				   context == grammarAccess.getXVariableDeclarationRule()) {
+					sequence_XVariableDeclaration(context, (XVariableDeclaration) semanticObject); 
+					return; 
+				}
+				else break;
+			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;
+			}
+		else if(semanticObject.eClass().getEPackage() == 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;
+			case XtypePackage.XIMPORT_SECTION:
+				if(context == grammarAccess.getXImportSectionRule()) {
+					sequence_XImportSection(context, (XImportSection) semanticObject); 
+					return; 
+				}
+				else break;
+			}
+		if (errorAcceptor != null) errorAcceptor.accept(diagnosticProvider.createInvalidContextOrTypeDiagnostic(semanticObject, context));
+	}
+	
+	/**
+	 * Constraint:
+	 *     (type=AutoTextEnum style=[Style|ID]?)
+	 */
+	protected void sequence_AutoText(EObject context, AutoText semanticObject) {
+		genericSequencer.createSequence(context, semanticObject);
+	}
+	
+	
+	/**
+	 * Constraint:
+	 *     (type=BorderTypeEnum widthvalue=UnsignedNumber widthunit=UnitEnum color=[Color|ID])
+	 */
+	protected void sequence_BorderStyle(EObject context, BorderStyle semanticObject) {
+		if(errorAcceptor != null) {
+			if(transientValues.isValueTransient(semanticObject, ReportDSLPackage.Literals.BORDER_STYLE__TYPE) == ValueTransient.YES)
+				errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, ReportDSLPackage.Literals.BORDER_STYLE__TYPE));
+			if(transientValues.isValueTransient(semanticObject, ReportDSLPackage.Literals.BORDER_STYLE__WIDTHVALUE) == ValueTransient.YES)
+				errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, ReportDSLPackage.Literals.BORDER_STYLE__WIDTHVALUE));
+			if(transientValues.isValueTransient(semanticObject, ReportDSLPackage.Literals.BORDER_STYLE__WIDTHUNIT) == ValueTransient.YES)
+				errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, ReportDSLPackage.Literals.BORDER_STYLE__WIDTHUNIT));
+			if(transientValues.isValueTransient(semanticObject, ReportDSLPackage.Literals.BORDER_STYLE__COLOR) == ValueTransient.YES)
+				errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, ReportDSLPackage.Literals.BORDER_STYLE__COLOR));
+		}
+		INodesForEObjectProvider nodes = createNodeProvider(semanticObject);
+		SequenceFeeder feeder = createSequencerFeeder(semanticObject, nodes);
+		feeder.accept(grammarAccess.getBorderStyleAccess().getTypeBorderTypeEnumEnumRuleCall_0_0(), semanticObject.getType());
+		feeder.accept(grammarAccess.getBorderStyleAccess().getWidthvalueUnsignedNumberParserRuleCall_1_0(), semanticObject.getWidthvalue());
+		feeder.accept(grammarAccess.getBorderStyleAccess().getWidthunitUnitEnumEnumRuleCall_2_0(), semanticObject.getWidthunit());
+		feeder.accept(grammarAccess.getBorderStyleAccess().getColorColorIDTerminalRuleCall_3_0_1(), semanticObject.getColor());
+		feeder.finish();
+	}
+	
+	
+	/**
+	 * Constraint:
+	 *     custom=BuildInFontFamilyEnum
+	 */
+	protected void sequence_BuildInFontFamily(EObject context, BuildInFontFamily semanticObject) {
+		if(errorAcceptor != null) {
+			if(transientValues.isValueTransient(semanticObject, ReportDSLPackage.Literals.BUILD_IN_FONT_FAMILY__CUSTOM) == ValueTransient.YES)
+				errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, ReportDSLPackage.Literals.BUILD_IN_FONT_FAMILY__CUSTOM));
+		}
+		INodesForEObjectProvider nodes = createNodeProvider(semanticObject);
+		SequenceFeeder feeder = createSequencerFeeder(semanticObject, nodes);
+		feeder.accept(grammarAccess.getBuildInFontFamilyAccess().getCustomBuildInFontFamilyEnumEnumRuleCall_0(), semanticObject.getCustom());
+		feeder.finish();
+	}
+	
+	
+	/**
+	 * Constraint:
+	 *     (
+	 *         name=ID 
+	 *         (
+	 *             color=STRING | 
+	 *             (basecolor=[Color|ID] darkensby=INT) | 
+	 *             (basecolor=[Color|ID] lightensby=INT) | 
+	 *             (basecolor=[Color|ID] transformsby=INT targetcolor=[Color|ID])
+	 *         )
+	 *     )
+	 */
+	protected void sequence_Color(EObject context, Color semanticObject) {
+		genericSequencer.createSequence(context, semanticObject);
+	}
+	
+	
+	/**
+	 * Constraint:
+	 *     (colors+=Color*)
+	 */
+	protected void sequence_Colors(EObject context, Colors semanticObject) {
+		genericSequencer.createSequence(context, semanticObject);
+	}
+	
+	
+	/**
+	 * Constraint:
+	 *     (name=ID ui_pattern=STRING report_category=CurrencyFormatCategoryEnum report_pattern=STRING textalign=TextAlignEnum)
+	 */
+	protected void sequence_CurrencyFormat(EObject context, CurrencyFormat semanticObject) {
+		if(errorAcceptor != null) {
+			if(transientValues.isValueTransient(semanticObject, ReportDSLPackage.Literals.REPORT_BASE__NAME) == ValueTransient.YES)
+				errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, ReportDSLPackage.Literals.REPORT_BASE__NAME));
+			if(transientValues.isValueTransient(semanticObject, ReportDSLPackage.Literals.SOME_FORMAT__UI_PATTERN) == ValueTransient.YES)
+				errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, ReportDSLPackage.Literals.SOME_FORMAT__UI_PATTERN));
+			if(transientValues.isValueTransient(semanticObject, ReportDSLPackage.Literals.SOME_FORMAT__REPORT_PATTERN) == ValueTransient.YES)
+				errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, ReportDSLPackage.Literals.SOME_FORMAT__REPORT_PATTERN));
+			if(transientValues.isValueTransient(semanticObject, ReportDSLPackage.Literals.SOME_FORMAT__TEXTALIGN) == ValueTransient.YES)
+				errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, ReportDSLPackage.Literals.SOME_FORMAT__TEXTALIGN));
+			if(transientValues.isValueTransient(semanticObject, ReportDSLPackage.Literals.CURRENCY_FORMAT__REPORT_CATEGORY) == ValueTransient.YES)
+				errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, ReportDSLPackage.Literals.CURRENCY_FORMAT__REPORT_CATEGORY));
+		}
+		INodesForEObjectProvider nodes = createNodeProvider(semanticObject);
+		SequenceFeeder feeder = createSequencerFeeder(semanticObject, nodes);
+		feeder.accept(grammarAccess.getCurrencyFormatAccess().getNameIDTerminalRuleCall_1_0(), semanticObject.getName());
+		feeder.accept(grammarAccess.getCurrencyFormatAccess().getUi_patternSTRINGTerminalRuleCall_4_0(), semanticObject.getUi_pattern());
+		feeder.accept(grammarAccess.getCurrencyFormatAccess().getReport_categoryCurrencyFormatCategoryEnumEnumRuleCall_6_0(), semanticObject.getReport_category());
+		feeder.accept(grammarAccess.getCurrencyFormatAccess().getReport_patternSTRINGTerminalRuleCall_7_0(), semanticObject.getReport_pattern());
+		feeder.accept(grammarAccess.getCurrencyFormatAccess().getTextalignTextAlignEnumEnumRuleCall_9_0(), semanticObject.getTextalign());
+		feeder.finish();
+	}
+	
+	
+	/**
+	 * Constraint:
+	 *     custom=STRING
+	 */
+	protected void sequence_CustomFontFamily(EObject context, CustomFontFamily semanticObject) {
+		if(errorAcceptor != null) {
+			if(transientValues.isValueTransient(semanticObject, ReportDSLPackage.Literals.CUSTOM_FONT_FAMILY__CUSTOM) == ValueTransient.YES)
+				errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, ReportDSLPackage.Literals.CUSTOM_FONT_FAMILY__CUSTOM));
+		}
+		INodesForEObjectProvider nodes = createNodeProvider(semanticObject);
+		SequenceFeeder feeder = createSequencerFeeder(semanticObject, nodes);
+		feeder.accept(grammarAccess.getCustomFontFamilyAccess().getCustomSTRINGTerminalRuleCall_0(), semanticObject.getCustom());
+		feeder.finish();
+	}
+	
+	
+	/**
+	 * Constraint:
+	 *     (style=[Style|ID]? columnFormatters+=DatamartTableProperty*)
+	 */
+	protected void sequence_DatamartTableDetail(EObject context, DatamartTableDetail semanticObject) {
+		genericSequencer.createSequence(context, semanticObject);
+	}
+	
+	
+	/**
+	 * Constraint:
+	 *     (style=[Style|ID]? rows+=GridRow*)
+	 */
+	protected void sequence_DatamartTableGroupFooter(EObject context, DatamartTableGroupFooter semanticObject) {
+		genericSequencer.createSequence(context, semanticObject);
+	}
+	
+	
+	/**
+	 * Constraint:
+	 *     (style=[Style|ID]? rows+=GridRow*)
+	 */
+	protected void sequence_DatamartTableGroupHeader(EObject context, DatamartTableGroupHeader semanticObject) {
+		genericSequencer.createSequence(context, semanticObject);
+	}
+	
+	
+	/**
+	 * Constraint:
+	 *     (
+	 *         name=ID 
+	 *         groupingRef=[DatamartProperty|ID] 
+	 *         header=DatamartTableGroupHeader? 
+	 *         (detailheader?='detailheader' headerstyle=[Style|ID]?)? 
+	 *         (detailfooter?='detailfooter' footerstyle=[Style|ID]?)? 
+	 *         footer=DatamartTableGroupFooter?
+	 *     )
+	 */
+	protected void sequence_DatamartTableGroup(EObject context, DatamartTableGroup semanticObject) {
+		genericSequencer.createSequence(context, semanticObject);
+	}
+	
+	
+	/**
+	 * Constraint:
+	 *     (
+	 *         column=TableValueElement 
+	 *         style=[Style|ID]? 
+	 *         (hasImage?='image' image=TableImage)? 
+	 *         (hideLabelInterval?='hidelabel'? intervals+=TableInterval*)? 
+	 *         (hideLabelLookup?='hidelabel'? lookups+=TableLookup*)?
+	 *     )
+	 */
+	protected void sequence_DatamartTableProperty(EObject context, DatamartTableProperty semanticObject) {
+		genericSequencer.createSequence(context, semanticObject);
+	}
+	
+	
+	/**
+	 * Constraint:
+	 *     (
+	 *         style=[Style|ID]? 
+	 *         (detailheader?='detailheader' headerstyle=[Style|ID]?)? 
+	 *         (detailfooter?='detailfooter' footerstyle=[Style|ID]?)? 
+	 *         groups+=DatamartTableGroup* 
+	 *         detail=DatamartTableDetail
+	 *     )
+	 */
+	protected void sequence_DatamartTable(EObject context, DatamartTable semanticObject) {
+		genericSequencer.createSequence(context, semanticObject);
+	}
+	
+	
+	/**
+	 * Constraint:
+	 *     (name=ID ui_pattern=STRING report_category=DateFormatCategoryEnum report_pattern=STRING textalign=TextAlignEnum)
+	 */
+	protected void sequence_DateFormat(EObject context, DateFormat semanticObject) {
+		if(errorAcceptor != null) {
+			if(transientValues.isValueTransient(semanticObject, ReportDSLPackage.Literals.REPORT_BASE__NAME) == ValueTransient.YES)
+				errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, ReportDSLPackage.Literals.REPORT_BASE__NAME));
+			if(transientValues.isValueTransient(semanticObject, ReportDSLPackage.Literals.SOME_FORMAT__UI_PATTERN) == ValueTransient.YES)
+				errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, ReportDSLPackage.Literals.SOME_FORMAT__UI_PATTERN));
+			if(transientValues.isValueTransient(semanticObject, ReportDSLPackage.Literals.SOME_FORMAT__REPORT_PATTERN) == ValueTransient.YES)
+				errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, ReportDSLPackage.Literals.SOME_FORMAT__REPORT_PATTERN));
+			if(transientValues.isValueTransient(semanticObject, ReportDSLPackage.Literals.SOME_FORMAT__TEXTALIGN) == ValueTransient.YES)
+				errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, ReportDSLPackage.Literals.SOME_FORMAT__TEXTALIGN));
+			if(transientValues.isValueTransient(semanticObject, ReportDSLPackage.Literals.DATE_FORMAT__REPORT_CATEGORY) == ValueTransient.YES)
+				errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, ReportDSLPackage.Literals.DATE_FORMAT__REPORT_CATEGORY));
+		}
+		INodesForEObjectProvider nodes = createNodeProvider(semanticObject);
+		SequenceFeeder feeder = createSequencerFeeder(semanticObject, nodes);
+		feeder.accept(grammarAccess.getDateFormatAccess().getNameIDTerminalRuleCall_1_0(), semanticObject.getName());
+		feeder.accept(grammarAccess.getDateFormatAccess().getUi_patternSTRINGTerminalRuleCall_4_0(), semanticObject.getUi_pattern());
+		feeder.accept(grammarAccess.getDateFormatAccess().getReport_categoryDateFormatCategoryEnumEnumRuleCall_6_0(), semanticObject.getReport_category());
+		feeder.accept(grammarAccess.getDateFormatAccess().getReport_patternSTRINGTerminalRuleCall_7_0(), semanticObject.getReport_pattern());
+		feeder.accept(grammarAccess.getDateFormatAccess().getTextalignTextAlignEnumEnumRuleCall_9_0(), semanticObject.getTextalign());
+		feeder.finish();
+	}
+	
+	
+	/**
+	 * Constraint:
+	 *     (name=ID ui_pattern=STRING report_category=DateTimeFormatCategoryEnum report_pattern=STRING textalign=TextAlignEnum)
+	 */
+	protected void sequence_DateTimeFormat(EObject context, DateTimeFormat semanticObject) {
+		if(errorAcceptor != null) {
+			if(transientValues.isValueTransient(semanticObject, ReportDSLPackage.Literals.REPORT_BASE__NAME) == ValueTransient.YES)
+				errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, ReportDSLPackage.Literals.REPORT_BASE__NAME));
+			if(transientValues.isValueTransient(semanticObject, ReportDSLPackage.Literals.SOME_FORMAT__UI_PATTERN) == ValueTransient.YES)
+				errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, ReportDSLPackage.Literals.SOME_FORMAT__UI_PATTERN));
+			if(transientValues.isValueTransient(semanticObject, ReportDSLPackage.Literals.SOME_FORMAT__REPORT_PATTERN) == ValueTransient.YES)
+				errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, ReportDSLPackage.Literals.SOME_FORMAT__REPORT_PATTERN));
+			if(transientValues.isValueTransient(semanticObject, ReportDSLPackage.Literals.SOME_FORMAT__TEXTALIGN) == ValueTransient.YES)
+				errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, ReportDSLPackage.Literals.SOME_FORMAT__TEXTALIGN));
+			if(transientValues.isValueTransient(semanticObject, ReportDSLPackage.Literals.DATE_TIME_FORMAT__REPORT_CATEGORY) == ValueTransient.YES)
+				errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, ReportDSLPackage.Literals.DATE_TIME_FORMAT__REPORT_CATEGORY));
+		}
+		INodesForEObjectProvider nodes = createNodeProvider(semanticObject);
+		SequenceFeeder feeder = createSequencerFeeder(semanticObject, nodes);
+		feeder.accept(grammarAccess.getDateTimeFormatAccess().getNameIDTerminalRuleCall_1_0(), semanticObject.getName());
+		feeder.accept(grammarAccess.getDateTimeFormatAccess().getUi_patternSTRINGTerminalRuleCall_4_0(), semanticObject.getUi_pattern());
+		feeder.accept(grammarAccess.getDateTimeFormatAccess().getReport_categoryDateTimeFormatCategoryEnumEnumRuleCall_6_0(), semanticObject.getReport_category());
+		feeder.accept(grammarAccess.getDateTimeFormatAccess().getReport_patternSTRINGTerminalRuleCall_7_0(), semanticObject.getReport_pattern());
+		feeder.accept(grammarAccess.getDateTimeFormatAccess().getTextalignTextAlignEnumEnumRuleCall_9_0(), semanticObject.getTextalign());
+		feeder.finish();
+	}
+	
+	
+	/**
+	 * Constraint:
+	 *     (
+	 *         name=ID 
+	 *         extends=[Font|ID]? 
+	 *         family=FontFamily? 
+	 *         style=FontStyleEnum? 
+	 *         bold?='bold'? 
+	 *         (sizevalue=UnsignedNumber sizeunit=UnitEnum)?
+	 *     )
+	 */
+	protected void sequence_Font(EObject context, Font semanticObject) {
+		genericSequencer.createSequence(context, semanticObject);
+	}
+	
+	
+	/**
+	 * Constraint:
+	 *     (fonts+=Font*)
+	 */
+	protected void sequence_Fonts(EObject context, Fonts semanticObject) {
+		genericSequencer.createSequence(context, semanticObject);
+	}
+	
+	
+	/**
+	 * Constraint:
+	 *     (name=ID? columnspan=INT? elements+=Element*)
+	 */
+	protected void sequence_GridCell(EObject context, GridCell semanticObject) {
+		genericSequencer.createSequence(context, semanticObject);
+	}
+	
+	
+	/**
+	 * Constraint:
+	 *     (name=ID? style=[Style|ID]? cells+=GridCell*)
+	 */
+	protected void sequence_GridRow(EObject context, GridRow semanticObject) {
+		genericSequencer.createSequence(context, semanticObject);
+	}
+	
+	
+	/**
+	 * Constraint:
+	 *     (name=ID? rows+=GridRow*)
+	 */
+	protected void sequence_Grid(EObject context, Grid semanticObject) {
+		genericSequencer.createSequence(context, semanticObject);
+	}
+	
+	
+	/**
+	 * Constraint:
+	 *     (size=ImageSizeEnum scale=UnsignedNumber? sourceType=ImageSourceEnum filename=STRING)
+	 */
+	protected void sequence_Image(EObject context, Image semanticObject) {
+		genericSequencer.createSequence(context, semanticObject);
+	}
+	
+	
+	/**
+	 * Constraint:
+	 *     (text=TRANSLATABLESTRING style=[Style|ID]?)
+	 */
+	protected void sequence_Label(EObject context, Label semanticObject) {
+		genericSequencer.createSequence(context, semanticObject);
+	}
+	
+	
+	/**
+	 * Constraint:
+	 *     (
+	 *         media=[Media|ID] 
+	 *         format=[SomeFormat|ID]? 
+	 *         font=[Font|ID]? 
+	 *         (backgroundcolor=[Color|ID] backgroundcolor_alternate=[Color|ID]?)? 
+	 *         textcolor=[Color|ID]? 
+	 *         textalign=TextAlignEnum? 
+	 *         borderTop=BorderStyle? 
+	 *         borderBottom=BorderStyle? 
+	 *         borderLeft=BorderStyle? 
+	 *         borderRight=BorderStyle? 
+	 *         (paddingTopValue=UnsignedNumber paddingTopUnit=UnitEnum)? 
+	 *         (paddingBottomValue=UnsignedNumber paddingBottomUnit=UnitEnum)? 
+	 *         (paddingLeftValue=UnsignedNumber paddingLeftUnit=UnitEnum)? 
+	 *         (paddingRightValue=UnsignedNumber paddingRightUnit=UnitEnum)? 
+	 *         (marginTopValue=UnsignedNumber marginTopUnit=UnitEnum)? 
+	 *         (marginBottomValue=UnsignedNumber marginBottomUnit=UnitEnum)? 
+	 *         (marginLeftValue=UnsignedNumber marginLeftUnit=UnitEnum)? 
+	 *         (marginRightValue=UnsignedNumber marginRightUnit=UnitEnum)?
+	 *     )
+	 */
+	protected void sequence_MediaStyle(EObject context, MediaStyle semanticObject) {
+		genericSequencer.createSequence(context, semanticObject);
+	}
+	
+	
+	/**
+	 * Constraint:
+	 *     name=ID
+	 */
+	protected void sequence_Media(EObject context, Media semanticObject) {
+		if(errorAcceptor != null) {
+			if(transientValues.isValueTransient(semanticObject, ReportDSLPackage.Literals.REPORT_BASE__NAME) == ValueTransient.YES)
+				errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, ReportDSLPackage.Literals.REPORT_BASE__NAME));
+		}
+		INodesForEObjectProvider nodes = createNodeProvider(semanticObject);
+		SequenceFeeder feeder = createSequencerFeeder(semanticObject, nodes);
+		feeder.accept(grammarAccess.getMediaAccess().getNameIDTerminalRuleCall_1_0(), semanticObject.getName());
+		feeder.finish();
+	}
+	
+	
+	/**
+	 * Constraint:
+	 *     (medias+=Media*)
+	 */
+	protected void sequence_Medias(EObject context, Medias semanticObject) {
+		genericSequencer.createSequence(context, semanticObject);
+	}
+	
+	
+	/**
+	 * Constraint:
+	 *     (name=ID ui_pattern=STRING report_category=NumberFormatCategoryEnum report_pattern=STRING textalign=TextAlignEnum)
+	 */
+	protected void sequence_NumberFormat(EObject context, NumberFormat semanticObject) {
+		if(errorAcceptor != null) {
+			if(transientValues.isValueTransient(semanticObject, ReportDSLPackage.Literals.REPORT_BASE__NAME) == ValueTransient.YES)
+				errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, ReportDSLPackage.Literals.REPORT_BASE__NAME));
+			if(transientValues.isValueTransient(semanticObject, ReportDSLPackage.Literals.SOME_FORMAT__UI_PATTERN) == ValueTransient.YES)
+				errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, ReportDSLPackage.Literals.SOME_FORMAT__UI_PATTERN));
+			if(transientValues.isValueTransient(semanticObject, ReportDSLPackage.Literals.SOME_FORMAT__REPORT_PATTERN) == ValueTransient.YES)
+				errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, ReportDSLPackage.Literals.SOME_FORMAT__REPORT_PATTERN));
+			if(transientValues.isValueTransient(semanticObject, ReportDSLPackage.Literals.SOME_FORMAT__TEXTALIGN) == ValueTransient.YES)
+				errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, ReportDSLPackage.Literals.SOME_FORMAT__TEXTALIGN));
+			if(transientValues.isValueTransient(semanticObject, ReportDSLPackage.Literals.NUMBER_FORMAT__REPORT_CATEGORY) == ValueTransient.YES)
+				errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, ReportDSLPackage.Literals.NUMBER_FORMAT__REPORT_CATEGORY));
+		}
+		INodesForEObjectProvider nodes = createNodeProvider(semanticObject);
+		SequenceFeeder feeder = createSequencerFeeder(semanticObject, nodes);
+		feeder.accept(grammarAccess.getNumberFormatAccess().getNameIDTerminalRuleCall_1_0(), semanticObject.getName());
+		feeder.accept(grammarAccess.getNumberFormatAccess().getUi_patternSTRINGTerminalRuleCall_4_0(), semanticObject.getUi_pattern());
+		feeder.accept(grammarAccess.getNumberFormatAccess().getReport_categoryNumberFormatCategoryEnumEnumRuleCall_6_0(), semanticObject.getReport_category());
+		feeder.accept(grammarAccess.getNumberFormatAccess().getReport_patternSTRINGTerminalRuleCall_7_0(), semanticObject.getReport_pattern());
+		feeder.accept(grammarAccess.getNumberFormatAccess().getTextalignTextAlignEnumEnumRuleCall_9_0(), semanticObject.getTextalign());
+		feeder.finish();
+	}
+	
+	
+	/**
+	 * Constraint:
+	 *     (elements+=Element*)
+	 */
+	protected void sequence_PageDetail(EObject context, PageDetail semanticObject) {
+		genericSequencer.createSequence(context, semanticObject);
+	}
+	
+	
+	/**
+	 * Constraint:
+	 *     (showOnLast?='showOnLast'? heightValue=UnsignedNumber heightUnit=UnitEnum elements+=Element)
+	 */
+	protected void sequence_PageFooter(EObject context, PageFooter semanticObject) {
+		genericSequencer.createSequence(context, semanticObject);
+	}
+	
+	
+	/**
+	 * Constraint:
+	 *     (showOnFirst?='showOnFirst'? heightValue=UnsignedNumber heightUnit=UnitEnum elements+=Element)
+	 */
+	protected void sequence_PageHeader(EObject context, PageHeader semanticObject) {
+		genericSequencer.createSequence(context, semanticObject);
+	}
+	
+	
+	/**
+	 * Constraint:
+	 *     (
+	 *         name=ID 
+	 *         size=PageSizeEnum 
+	 *         orientation=OrientationEnum 
+	 *         topMarginValue=UnsignedNumber 
+	 *         topMarginUnit=UnitEnum 
+	 *         leftMarginValue=UnsignedNumber 
+	 *         leftMarginUnit=UnitEnum 
+	 *         bottomMarginValue=UnsignedNumber 
+	 *         bottomMarginUnit=UnitEnum 
+	 *         rightMarginValue=UnsignedNumber 
+	 *         rightMarginUnit=UnitEnum 
+	 *         header=PageHeader? 
+	 *         footer=PageFooter?
+	 *     )
+	 */
+	protected void sequence_PageTemplate(EObject context, PageTemplate semanticObject) {
+		genericSequencer.createSequence(context, semanticObject);
+	}
+	
+	
+	/**
+	 * Constraint:
+	 *     (pagetemplates+=PageTemplate*)
+	 */
+	protected void sequence_PageTemplates(EObject context, PageTemplates semanticObject) {
+		genericSequencer.createSequence(context, semanticObject);
+	}
+	
+	
+	/**
+	 * Constraint:
+	 *     name=STRING
+	 */
+	protected void sequence_ReportDesignFile(EObject context, ReportDesignFile semanticObject) {
+		if(errorAcceptor != null) {
+			if(transientValues.isValueTransient(semanticObject, ReportDSLPackage.Literals.REPORT_DESIGN_FILE__NAME) == ValueTransient.YES)
+				errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, ReportDSLPackage.Literals.REPORT_DESIGN_FILE__NAME));
+		}
+		INodesForEObjectProvider nodes = createNodeProvider(semanticObject);
+		SequenceFeeder feeder = createSequencerFeeder(semanticObject, nodes);
+		feeder.accept(grammarAccess.getReportDesignFileAccess().getNameSTRINGTerminalRuleCall_1_0(), semanticObject.getName());
+		feeder.finish();
+	}
+	
+	
+	/**
+	 * Constraint:
+	 *     (description=STRING? header=PageHeader? detail=PageDetail footer=PageFooter?)
+	 */
+	protected void sequence_ReportDesignTemplate(EObject context, ReportDesignTemplate semanticObject) {
+		genericSequencer.createSequence(context, semanticObject);
+	}
+	
+	
+	/**
+	 * Constraint:
+	 *     importedNamespace=ReportQualifiedNameWithWildCard
+	 */
+	protected void sequence_ReportImport(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));
+		}
+		INodesForEObjectProvider nodes = createNodeProvider(semanticObject);
+		SequenceFeeder feeder = createSequencerFeeder(semanticObject, nodes);
+		feeder.accept(grammarAccess.getReportImportAccess().getImportedNamespaceReportQualifiedNameWithWildCardParserRuleCall_1_0(), semanticObject.getImportedNamespace());
+		feeder.finish();
+	}
+	
+	
+	/**
+	 * Constraint:
+	 *     pckg+=ReportPackage*
+	 */
+	protected void sequence_ReportModel(EObject context, ReportModel semanticObject) {
+		genericSequencer.createSequence(context, semanticObject);
+	}
+	
+	
+	/**
+	 * Constraint:
+	 *     (
+	 *         name=QualifiedName 
+	 *         imports+=ReportImport* 
+	 *         (
+	 *             (externalCssURI=STRING externalCssURIBundle=STRING?)? 
+	 *             pagetemplates=PageTemplates 
+	 *             formatters=SomeFormats 
+	 *             colors=Colors 
+	 *             fonts=Fonts 
+	 *             medias=Medias 
+	 *             styles=Styles
+	 *         )? 
+	 *         reports+=Report*
+	 *     )
+	 */
+	protected void sequence_ReportPackage(EObject context, ReportPackage semanticObject) {
+		genericSequencer.createSequence(context, semanticObject);
+	}
+	
+	
+	/**
+	 * Constraint:
+	 *     (
+	 *         name=ID 
+	 *         (description?='described by' descriptionValue=TRANSLATABLESTRING)? 
+	 *         toolbar=[ActionToolbar|ID]? 
+	 *         datamartRef=[DatamartDefinition|ID] 
+	 *         rendering=RenderingEnum 
+	 *         (externalCssURI=STRING externalCssURIBundle=STRING?)? 
+	 *         pageTemplate=[PageTemplate|ID] 
+	 *         media=[Media|ID] 
+	 *         design=ReportDesign
+	 *     )
+	 */
+	protected void sequence_Report(EObject context, Report semanticObject) {
+		genericSequencer.createSequence(context, semanticObject);
+	}
+	
+	
+	/**
+	 * Constraint:
+	 *     (formatters+=SomeFormat*)
+	 */
+	protected void sequence_SomeFormats(EObject context, SomeFormats semanticObject) {
+		genericSequencer.createSequence(context, semanticObject);
+	}
+	
+	
+	/**
+	 * Constraint:
+	 *     (
+	 *         name=ID 
+	 *         extends=[Style|ID]? 
+	 *         format=[SomeFormat|ID]? 
+	 *         font=[Font|ID]? 
+	 *         (backgroundcolor=[Color|ID] backgroundcolor_alternate=[Color|ID]?)? 
+	 *         textcolor=[Color|ID]? 
+	 *         textalign=TextAlignEnum? 
+	 *         borderTop=BorderStyle? 
+	 *         borderBottom=BorderStyle? 
+	 *         borderLeft=BorderStyle? 
+	 *         borderRight=BorderStyle? 
+	 *         (paddingTopValue=UnsignedNumber paddingTopUnit=UnitEnum)? 
+	 *         (paddingBottomValue=UnsignedNumber paddingBottomUnit=UnitEnum)? 
+	 *         (paddingLeftValue=UnsignedNumber paddingLeftUnit=UnitEnum)? 
+	 *         (paddingRightValue=UnsignedNumber paddingRightUnit=UnitEnum)? 
+	 *         (marginTopValue=UnsignedNumber marginTopUnit=UnitEnum)? 
+	 *         (marginBottomValue=UnsignedNumber marginBottomUnit=UnitEnum)? 
+	 *         (marginLeftValue=UnsignedNumber marginLeftUnit=UnitEnum)? 
+	 *         (marginRightValue=UnsignedNumber marginRightUnit=UnitEnum)? 
+	 *         mediastyles+=MediaStyle*
+	 *     )
+	 */
+	protected void sequence_Style(EObject context, Style semanticObject) {
+		genericSequencer.createSequence(context, semanticObject);
+	}
+	
+	
+	/**
+	 * Constraint:
+	 *     (styles+=Style*)
+	 */
+	protected void sequence_Styles(EObject context, Styles semanticObject) {
+		genericSequencer.createSequence(context, semanticObject);
+	}
+	
+	
+	/**
+	 * Constraint:
+	 *     (text=TRANSLATABLESTRING style=[Style|ID]?)
+	 */
+	protected void sequence_SubSubTitle(EObject context, SubSubTitle semanticObject) {
+		genericSequencer.createSequence(context, semanticObject);
+	}
+	
+	
+	/**
+	 * Constraint:
+	 *     (text=TRANSLATABLESTRING style=[Style|ID]?)
+	 */
+	protected void sequence_SubTitle(EObject context, SubTitle semanticObject) {
+		genericSequencer.createSequence(context, semanticObject);
+	}
+	
+	
+	/**
+	 * Constraint:
+	 *     (aggregation=TableBaseAggregation onGroup=[DatamartTableGroup|ID]? text=TRANSLATABLESTRING?)
+	 */
+	protected void sequence_TableAggregation(EObject context, TableAggregation semanticObject) {
+		genericSequencer.createSequence(context, semanticObject);
+	}
+	
+	
+	/**
+	 * Constraint:
+	 *     (aggregation=BinaryAggregationTypeEnum valueRefs+=[DatamartProperty|ID] valueRefs+=[DatamartProperty|ID])
+	 */
+	protected void sequence_TableBinaryAggregation(EObject context, TableBinaryAggregation semanticObject) {
+		genericSequencer.createSequence(context, semanticObject);
+	}
+	
+	
+	/**
+	 * Constraint:
+	 *     color=[Color|ID]
+	 */
+	protected void sequence_TableCellColor(EObject context, TableCellColor semanticObject) {
+		if(errorAcceptor != null) {
+			if(transientValues.isValueTransient(semanticObject, ReportDSLPackage.Literals.TABLE_CELL_COLOR__COLOR) == ValueTransient.YES)
+				errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, ReportDSLPackage.Literals.TABLE_CELL_COLOR__COLOR));
+		}
+		INodesForEObjectProvider nodes = createNodeProvider(semanticObject);
+		SequenceFeeder feeder = createSequencerFeeder(semanticObject, nodes);
+		feeder.accept(grammarAccess.getTableCellColorAccess().getColorColorIDTerminalRuleCall_1_0_1(), semanticObject.getColor());
+		feeder.finish();
+	}
+	
+	
+	/**
+	 * Constraint:
+	 *     (dateIntervalValue=SignedNumber dateRange=TableRangeElement)
+	 */
+	protected void sequence_TableDateDayInterval(EObject context, TableDateDayInterval semanticObject) {
+		if(errorAcceptor != null) {
+			if(transientValues.isValueTransient(semanticObject, ReportDSLPackage.Literals.TABLE_DATE_DAY_INTERVAL__DATE_INTERVAL_VALUE) == ValueTransient.YES)
+				errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, ReportDSLPackage.Literals.TABLE_DATE_DAY_INTERVAL__DATE_INTERVAL_VALUE));
+			if(transientValues.isValueTransient(semanticObject, ReportDSLPackage.Literals.TABLE_DATE_DAY_INTERVAL__DATE_RANGE) == ValueTransient.YES)
+				errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, ReportDSLPackage.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());
+		feeder.accept(grammarAccess.getTableDateDayIntervalAccess().getDateRangeTableRangeElementParserRuleCall_3_0(), semanticObject.getDateRange());
+		feeder.finish();
+	}
+	
+	
+	/**
+	 * Constraint:
+	 *     (lookupValue=SignedNumber discrete=TableRangeElement)
+	 */
+	protected void sequence_TableDateDayLookup(EObject context, TableDateDayLookup semanticObject) {
+		if(errorAcceptor != null) {
+			if(transientValues.isValueTransient(semanticObject, ReportDSLPackage.Literals.TABLE_DATE_DAY_LOOKUP__LOOKUP_VALUE) == ValueTransient.YES)
+				errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, ReportDSLPackage.Literals.TABLE_DATE_DAY_LOOKUP__LOOKUP_VALUE));
+			if(transientValues.isValueTransient(semanticObject, ReportDSLPackage.Literals.TABLE_DATE_DAY_LOOKUP__DISCRETE) == ValueTransient.YES)
+				errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, ReportDSLPackage.Literals.TABLE_DATE_DAY_LOOKUP__DISCRETE));
+		}
+		INodesForEObjectProvider nodes = createNodeProvider(semanticObject);
+		SequenceFeeder feeder = createSequencerFeeder(semanticObject, nodes);
+		feeder.accept(grammarAccess.getTableDateDayLookupAccess().getLookupValueSignedNumberParserRuleCall_2_0(), semanticObject.getLookupValue());
+		feeder.accept(grammarAccess.getTableDateDayLookupAccess().getDiscreteTableRangeElementParserRuleCall_3_0(), semanticObject.getDiscrete());
+		feeder.finish();
+	}
+	
+	
+	/**
+	 * Constraint:
+	 *     format=STRING
+	 */
+	protected void sequence_TableFormatter(EObject context, TableFormatter semanticObject) {
+		if(errorAcceptor != null) {
+			if(transientValues.isValueTransient(semanticObject, ReportDSLPackage.Literals.TABLE_FORMATTER__FORMAT) == ValueTransient.YES)
+				errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, ReportDSLPackage.Literals.TABLE_FORMATTER__FORMAT));
+		}
+		INodesForEObjectProvider nodes = createNodeProvider(semanticObject);
+		SequenceFeeder feeder = createSequencerFeeder(semanticObject, nodes);
+		feeder.accept(grammarAccess.getTableFormatterAccess().getFormatSTRINGTerminalRuleCall_2_0(), semanticObject.getFormat());
+		feeder.finish();
+	}
+	
+	
+	/**
+	 * Constraint:
+	 *     icon=STRING
+	 */
+	protected void sequence_TableIcon(EObject context, TableIcon semanticObject) {
+		if(errorAcceptor != null) {
+			if(transientValues.isValueTransient(semanticObject, ReportDSLPackage.Literals.TABLE_ICON__ICON) == ValueTransient.YES)
+				errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, ReportDSLPackage.Literals.TABLE_ICON__ICON));
+		}
+		INodesForEObjectProvider nodes = createNodeProvider(semanticObject);
+		SequenceFeeder feeder = createSequencerFeeder(semanticObject, nodes);
+		feeder.accept(grammarAccess.getTableIconAccess().getIconSTRINGTerminalRuleCall_1_0(), semanticObject.getIcon());
+		feeder.finish();
+	}
+	
+	
+	/**
+	 * Constraint:
+	 *     (imagePathPattern=STRING hasParameter?='dynamic'? hideImageLabel?='hidelabel'? (resize?='resize' resizeString=STRING)?)
+	 */
+	protected void sequence_TableImage(EObject context, TableImage semanticObject) {
+		genericSequencer.createSequence(context, semanticObject);
+	}
+	
+	
+	/**
+	 * Constraint:
+	 *     (aggregation=MultipleAggregationTypeEnum valueRefs+=[DatamartProperty|ID]*)
+	 */
+	protected void sequence_TableMultipleAggregation(EObject context, TableMultipleAggregation semanticObject) {
+		genericSequencer.createSequence(context, semanticObject);
+	}
+	
+	
+	/**
+	 * Constraint:
+	 *     (numberIntervalValue=SignedNumber numberRange=TableRangeElement)
+	 */
+	protected void sequence_TableNumberInterval(EObject context, TableNumberInterval semanticObject) {
+		if(errorAcceptor != null) {
+			if(transientValues.isValueTransient(semanticObject, ReportDSLPackage.Literals.TABLE_NUMBER_INTERVAL__NUMBER_INTERVAL_VALUE) == ValueTransient.YES)
+				errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, ReportDSLPackage.Literals.TABLE_NUMBER_INTERVAL__NUMBER_INTERVAL_VALUE));
+			if(transientValues.isValueTransient(semanticObject, ReportDSLPackage.Literals.TABLE_NUMBER_INTERVAL__NUMBER_RANGE) == ValueTransient.YES)
+				errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, ReportDSLPackage.Literals.TABLE_NUMBER_INTERVAL__NUMBER_RANGE));
+		}
+		INodesForEObjectProvider nodes = createNodeProvider(semanticObject);
+		SequenceFeeder feeder = createSequencerFeeder(semanticObject, nodes);
+		feeder.accept(grammarAccess.getTableNumberIntervalAccess().getNumberIntervalValueSignedNumberParserRuleCall_2_0(), semanticObject.getNumberIntervalValue());
+		feeder.accept(grammarAccess.getTableNumberIntervalAccess().getNumberRangeTableRangeElementParserRuleCall_3_0(), semanticObject.getNumberRange());
+		feeder.finish();
+	}
+	
+	
+	/**
+	 * Constraint:
+	 *     (lookupValue=SignedNumber discrete=TableRangeElement)
+	 */
+	protected void sequence_TableNumberLookup(EObject context, TableNumberLookup semanticObject) {
+		if(errorAcceptor != null) {
+			if(transientValues.isValueTransient(semanticObject, ReportDSLPackage.Literals.TABLE_NUMBER_LOOKUP__LOOKUP_VALUE) == ValueTransient.YES)
+				errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, ReportDSLPackage.Literals.TABLE_NUMBER_LOOKUP__LOOKUP_VALUE));
+			if(transientValues.isValueTransient(semanticObject, ReportDSLPackage.Literals.TABLE_NUMBER_LOOKUP__DISCRETE) == ValueTransient.YES)
+				errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, ReportDSLPackage.Literals.TABLE_NUMBER_LOOKUP__DISCRETE));
+		}
+		INodesForEObjectProvider nodes = createNodeProvider(semanticObject);
+		SequenceFeeder feeder = createSequencerFeeder(semanticObject, nodes);
+		feeder.accept(grammarAccess.getTableNumberLookupAccess().getLookupValueSignedNumberParserRuleCall_2_0(), semanticObject.getLookupValue());
+		feeder.accept(grammarAccess.getTableNumberLookupAccess().getDiscreteTableRangeElementParserRuleCall_3_0(), semanticObject.getDiscrete());
+		feeder.finish();
+	}
+	
+	
+	/**
+	 * Constraint:
+	 *     valueRef=[DatamartProperty|ID]
+	 */
+	protected void sequence_TableProperty(EObject context, TableProperty semanticObject) {
+		if(errorAcceptor != null) {
+			if(transientValues.isValueTransient(semanticObject, ReportDSLPackage.Literals.TABLE_PROPERTY__VALUE_REF) == ValueTransient.YES)
+				errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, ReportDSLPackage.Literals.TABLE_PROPERTY__VALUE_REF));
+		}
+		INodesForEObjectProvider nodes = createNodeProvider(semanticObject);
+		SequenceFeeder feeder = createSequencerFeeder(semanticObject, nodes);
+		feeder.accept(grammarAccess.getTablePropertyAccess().getValueRefDatamartPropertyIDTerminalRuleCall_1_0_1(), semanticObject.getValueRef());
+		feeder.finish();
+	}
+	
+	
+	/**
+	 * Constraint:
+	 *     aggregation=PureAggregationTypeEnum
+	 */
+	protected void sequence_TablePureAggregation(EObject context, TablePureAggregation semanticObject) {
+		genericSequencer.createSequence(context, semanticObject);
+	}
+	
+	
+	/**
+	 * Constraint:
+	 *     (lookupValue=STRING discrete=TableRangeElement)
+	 */
+	protected void sequence_TableStringLookup(EObject context, TableStringLookup semanticObject) {
+		if(errorAcceptor != null) {
+			if(transientValues.isValueTransient(semanticObject, ReportDSLPackage.Literals.TABLE_STRING_LOOKUP__LOOKUP_VALUE) == ValueTransient.YES)
+				errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, ReportDSLPackage.Literals.TABLE_STRING_LOOKUP__LOOKUP_VALUE));
+			if(transientValues.isValueTransient(semanticObject, ReportDSLPackage.Literals.TABLE_STRING_LOOKUP__DISCRETE) == ValueTransient.YES)
+				errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, ReportDSLPackage.Literals.TABLE_STRING_LOOKUP__DISCRETE));
+		}
+		INodesForEObjectProvider nodes = createNodeProvider(semanticObject);
+		SequenceFeeder feeder = createSequencerFeeder(semanticObject, nodes);
+		feeder.accept(grammarAccess.getTableStringLookupAccess().getLookupValueSTRINGTerminalRuleCall_2_0(), semanticObject.getLookupValue());
+		feeder.accept(grammarAccess.getTableStringLookupAccess().getDiscreteTableRangeElementParserRuleCall_3_0(), semanticObject.getDiscrete());
+		feeder.finish();
+	}
+	
+	
+	/**
+	 * Constraint:
+	 *     color=[Color|ID]
+	 */
+	protected void sequence_TableTextColor(EObject context, TableTextColor semanticObject) {
+		if(errorAcceptor != null) {
+			if(transientValues.isValueTransient(semanticObject, ReportDSLPackage.Literals.TABLE_TEXT_COLOR__COLOR) == ValueTransient.YES)
+				errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, ReportDSLPackage.Literals.TABLE_TEXT_COLOR__COLOR));
+		}
+		INodesForEObjectProvider nodes = createNodeProvider(semanticObject);
+		SequenceFeeder feeder = createSequencerFeeder(semanticObject, nodes);
+		feeder.accept(grammarAccess.getTableTextColorAccess().getColorColorIDTerminalRuleCall_1_0_1(), semanticObject.getColor());
+		feeder.finish();
+	}
+	
+	
+	/**
+	 * Constraint:
+	 *     icon=TrendIconEnum
+	 */
+	protected void sequence_TableTrend(EObject context, TableTrend semanticObject) {
+		if(errorAcceptor != null) {
+			if(transientValues.isValueTransient(semanticObject, ReportDSLPackage.Literals.TABLE_TREND__ICON) == ValueTransient.YES)
+				errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, ReportDSLPackage.Literals.TABLE_TREND__ICON));
+		}
+		INodesForEObjectProvider nodes = createNodeProvider(semanticObject);
+		SequenceFeeder feeder = createSequencerFeeder(semanticObject, nodes);
+		feeder.accept(grammarAccess.getTableTrendAccess().getIconTrendIconEnumEnumRuleCall_1_0(), semanticObject.getIcon());
+		feeder.finish();
+	}
+	
+	
+	/**
+	 * Constraint:
+	 *     (aggregation=UnaryAggregationTypeEnum valueRefs+=[DatamartProperty|ID])
+	 */
+	protected void sequence_TableUnaryAggregation(EObject context, TableUnaryAggregation semanticObject) {
+		genericSequencer.createSequence(context, semanticObject);
+	}
+	
+	
+	/**
+	 * Constraint:
+	 *     (text=TRANSLATABLESTRING style=[Style|ID]?)
+	 */
+	protected void sequence_Text(EObject context, Text semanticObject) {
+		genericSequencer.createSequence(context, semanticObject);
+	}
+	
+	
+	/**
+	 * Constraint:
+	 *     (name=ID ui_pattern=STRING report_category=TimeFormatCategoryEnum report_pattern=STRING textalign=TextAlignEnum)
+	 */
+	protected void sequence_TimeFormat(EObject context, TimeFormat semanticObject) {
+		if(errorAcceptor != null) {
+			if(transientValues.isValueTransient(semanticObject, ReportDSLPackage.Literals.REPORT_BASE__NAME) == ValueTransient.YES)
+				errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, ReportDSLPackage.Literals.REPORT_BASE__NAME));
+			if(transientValues.isValueTransient(semanticObject, ReportDSLPackage.Literals.SOME_FORMAT__UI_PATTERN) == ValueTransient.YES)
+				errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, ReportDSLPackage.Literals.SOME_FORMAT__UI_PATTERN));
+			if(transientValues.isValueTransient(semanticObject, ReportDSLPackage.Literals.SOME_FORMAT__REPORT_PATTERN) == ValueTransient.YES)
+				errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, ReportDSLPackage.Literals.SOME_FORMAT__REPORT_PATTERN));
+			if(transientValues.isValueTransient(semanticObject, ReportDSLPackage.Literals.SOME_FORMAT__TEXTALIGN) == ValueTransient.YES)
+				errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, ReportDSLPackage.Literals.SOME_FORMAT__TEXTALIGN));
+			if(transientValues.isValueTransient(semanticObject, ReportDSLPackage.Literals.TIME_FORMAT__REPORT_CATEGORY) == ValueTransient.YES)
+				errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, ReportDSLPackage.Literals.TIME_FORMAT__REPORT_CATEGORY));
+		}
+		INodesForEObjectProvider nodes = createNodeProvider(semanticObject);
+		SequenceFeeder feeder = createSequencerFeeder(semanticObject, nodes);
+		feeder.accept(grammarAccess.getTimeFormatAccess().getNameIDTerminalRuleCall_1_0(), semanticObject.getName());
+		feeder.accept(grammarAccess.getTimeFormatAccess().getUi_patternSTRINGTerminalRuleCall_4_0(), semanticObject.getUi_pattern());
+		feeder.accept(grammarAccess.getTimeFormatAccess().getReport_categoryTimeFormatCategoryEnumEnumRuleCall_6_0(), semanticObject.getReport_category());
+		feeder.accept(grammarAccess.getTimeFormatAccess().getReport_patternSTRINGTerminalRuleCall_7_0(), semanticObject.getReport_pattern());
+		feeder.accept(grammarAccess.getTimeFormatAccess().getTextalignTextAlignEnumEnumRuleCall_9_0(), semanticObject.getTextalign());
+		feeder.finish();
+	}
+	
+	
+	/**
+	 * Constraint:
+	 *     (text=TRANSLATABLESTRING style=[Style|ID]?)
+	 */
+	protected void sequence_Title(EObject context, Title semanticObject) {
+		genericSequencer.createSequence(context, semanticObject);
+	}
+	
+	
+	/**
+	 * Constraint:
+	 *     (name=ID ui_pattern=STRING report_pattern=STRING textalign=TextAlignEnum)
+	 */
+	protected void sequence_UomoFormat(EObject context, UomoFormat semanticObject) {
+		if(errorAcceptor != null) {
+			if(transientValues.isValueTransient(semanticObject, ReportDSLPackage.Literals.REPORT_BASE__NAME) == ValueTransient.YES)
+				errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, ReportDSLPackage.Literals.REPORT_BASE__NAME));
+			if(transientValues.isValueTransient(semanticObject, ReportDSLPackage.Literals.SOME_FORMAT__UI_PATTERN) == ValueTransient.YES)
+				errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, ReportDSLPackage.Literals.SOME_FORMAT__UI_PATTERN));
+			if(transientValues.isValueTransient(semanticObject, ReportDSLPackage.Literals.SOME_FORMAT__REPORT_PATTERN) == ValueTransient.YES)
+				errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, ReportDSLPackage.Literals.SOME_FORMAT__REPORT_PATTERN));
+			if(transientValues.isValueTransient(semanticObject, ReportDSLPackage.Literals.SOME_FORMAT__TEXTALIGN) == ValueTransient.YES)
+				errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, ReportDSLPackage.Literals.SOME_FORMAT__TEXTALIGN));
+		}
+		INodesForEObjectProvider nodes = createNodeProvider(semanticObject);
+		SequenceFeeder feeder = createSequencerFeeder(semanticObject, nodes);
+		feeder.accept(grammarAccess.getUomoFormatAccess().getNameIDTerminalRuleCall_1_0(), semanticObject.getName());
+		feeder.accept(grammarAccess.getUomoFormatAccess().getUi_patternSTRINGTerminalRuleCall_4_0(), semanticObject.getUi_pattern());
+		feeder.accept(grammarAccess.getUomoFormatAccess().getReport_patternSTRINGTerminalRuleCall_6_0(), semanticObject.getReport_pattern());
+		feeder.accept(grammarAccess.getUomoFormatAccess().getTextalignTextAlignEnumEnumRuleCall_8_0(), semanticObject.getTextalign());
+		feeder.finish();
+	}
+}
diff --git a/org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/serializer/ReportDSLSyntacticSequencer.java b/org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/serializer/ReportDSLSyntacticSequencer.java
new file mode 100644
index 0000000..7c0a390
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/serializer/ReportDSLSyntacticSequencer.java
@@ -0,0 +1,623 @@
+/**
+ *                                                                            
+ *  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.reportdsl.serializer;
+
+import com.google.inject.Inject;
+import java.util.List;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.osbp.xtext.reportdsl.services.ReportDSLGrammarAccess;
+import org.eclipse.xtext.IGrammarAccess;
+import org.eclipse.xtext.RuleCall;
+import org.eclipse.xtext.nodemodel.INode;
+import org.eclipse.xtext.serializer.analysis.GrammarAlias.AbstractElementAlias;
+import org.eclipse.xtext.serializer.analysis.GrammarAlias.AlternativeAlias;
+import org.eclipse.xtext.serializer.analysis.GrammarAlias.GroupAlias;
+import org.eclipse.xtext.serializer.analysis.GrammarAlias.TokenAlias;
+import org.eclipse.xtext.serializer.analysis.ISyntacticSequencerPDAProvider.ISynNavigable;
+import org.eclipse.xtext.serializer.analysis.ISyntacticSequencerPDAProvider.ISynTransition;
+import org.eclipse.xtext.serializer.sequencer.AbstractSyntacticSequencer;
+
+@SuppressWarnings("all")
+public class ReportDSLSyntacticSequencer extends AbstractSyntacticSequencer {
+
+	protected ReportDSLGrammarAccess grammarAccess;
+	protected AbstractElementAlias match_DatamartTableDetail_AllKeyword_3_0_or___LeftCurlyBracketKeyword_3_1_0_RightCurlyBracketKeyword_3_1_2__;
+	protected AbstractElementAlias match_DatamartTableProperty___IntervalsKeyword_1_2_0_LeftCurlyBracketKeyword_1_2_2_RightCurlyBracketKeyword_1_2_4___LookupsKeyword_1_3_0_LeftCurlyBracketKeyword_1_3_2_RightCurlyBracketKeyword_1_3_4__a__a;
+	protected AbstractElementAlias match_DatamartTableProperty___IntervalsKeyword_1_2_0_LeftCurlyBracketKeyword_1_2_2_RightCurlyBracketKeyword_1_2_4__a;
+	protected AbstractElementAlias match_DatamartTableProperty___IntervalsKeyword_1_2_0_LeftCurlyBracketKeyword_1_2_2___RightCurlyBracketKeyword_1_2_4_IntervalsKeyword_1_2_0_LeftCurlyBracketKeyword_1_2_2__a___or_____IntervalsKeyword_1_2_0_LeftCurlyBracketKeyword_1_2_2___RightCurlyBracketKeyword_1_2_4_IntervalsKeyword_1_2_0_LeftCurlyBracketKeyword_1_2_2__a_RightCurlyBracketKeyword_1_2_4__q___LookupsKeyword_1_3_0_LeftCurlyBracketKeyword_1_3_2_RightCurlyBracketKeyword_1_3_4__p_IntervalsKeyword_1_2_0_LeftCurlyBracketKeyword_1_2_2___RightCurlyBracketKeyword_1_2_4_IntervalsKeyword_1_2_0_LeftCurlyBracketKeyword_1_2_2__a___RightCurlyBracketKeyword_1_2_4___LookupsKeyword_1_3_0_LeftCurlyBracketKeyword_1_3_2_RightCurlyBracketKeyword_1_3_4__p_IntervalsKeyword_1_2_0_LeftCurlyBracketKeyword_1_2_2___RightCurlyBracketKeyword_1_2_4_IntervalsKeyword_1_2_0_LeftCurlyBracketKeyword_1_2_2__a__a__;
+	protected AbstractElementAlias match_DatamartTableProperty___IntervalsKeyword_1_2_0___LeftCurlyBracketKeyword_1_2_2_RightCurlyBracketKeyword_1_2_4_IntervalsKeyword_1_2_0__a_LeftCurlyBracketKeyword_1_2_2_RightCurlyBracketKeyword_1_2_4_LookupsKeyword_1_3_0_LeftCurlyBracketKeyword_1_3_2_RightCurlyBracketKeyword_1_3_4___LookupsKeyword_1_3_0_LeftCurlyBracketKeyword_1_3_2_RightCurlyBracketKeyword_1_3_4__a___IntervalsKeyword_1_2_0___LeftCurlyBracketKeyword_1_2_2_RightCurlyBracketKeyword_1_2_4_IntervalsKeyword_1_2_0__a_LeftCurlyBracketKeyword_1_2_2_RightCurlyBracketKeyword_1_2_4_LookupsKeyword_1_3_0_LeftCurlyBracketKeyword_1_3_2_RightCurlyBracketKeyword_1_3_4___LookupsKeyword_1_3_0_LeftCurlyBracketKeyword_1_3_2_RightCurlyBracketKeyword_1_3_4__a__a___IntervalsKeyword_1_2_0_or___IntervalsKeyword_1_2_0___LeftCurlyBracketKeyword_1_2_2_RightCurlyBracketKeyword_1_2_4_IntervalsKeyword_1_2_0__a_LeftCurlyBracketKeyword_1_2_2_RightCurlyBracketKeyword_1_2_4_IntervalsKeyword_1_2_0_______or___IntervalsKeyword_1_2_0_or___IntervalsKeyword_1_2_0___LeftCurlyBracketKeyword_1_2_2_RightCurlyBracketKeyword_1_2_4_IntervalsKeyword_1_2_0__a_LeftCurlyBracketKeyword_1_2_2_RightCurlyBracketKeyword_1_2_4_IntervalsKeyword_1_2_0____;
+	protected AbstractElementAlias match_DatamartTableProperty___LeftCurlyBracketKeyword_1_2_2_RightCurlyBracketKeyword_1_2_4___LookupsKeyword_1_3_0_LeftCurlyBracketKeyword_1_3_2_RightCurlyBracketKeyword_1_3_4__a_IntervalsKeyword_1_2_0__a;
+	protected AbstractElementAlias match_DatamartTableProperty___LeftCurlyBracketKeyword_1_2_2_RightCurlyBracketKeyword_1_2_4___LookupsKeyword_1_3_0_LeftCurlyBracketKeyword_1_3_2_RightCurlyBracketKeyword_1_3_4__a_IntervalsKeyword_1_2_0__p;
+	protected AbstractElementAlias match_DatamartTableProperty___LeftCurlyBracketKeyword_1_3_2_RightCurlyBracketKeyword_1_3_4___IntervalsKeyword_1_2_0_LeftCurlyBracketKeyword_1_2_2_RightCurlyBracketKeyword_1_2_4__a_LookupsKeyword_1_3_0__a;
+	protected AbstractElementAlias match_DatamartTableProperty___LeftCurlyBracketKeyword_1_3_2_RightCurlyBracketKeyword_1_3_4___IntervalsKeyword_1_2_0_LeftCurlyBracketKeyword_1_2_2_RightCurlyBracketKeyword_1_2_4__a_LookupsKeyword_1_3_0__p;
+	protected AbstractElementAlias match_DatamartTableProperty___LookupsKeyword_1_3_0_LeftCurlyBracketKeyword_1_3_2_RightCurlyBracketKeyword_1_3_4___IntervalsKeyword_1_2_0_LeftCurlyBracketKeyword_1_2_2_RightCurlyBracketKeyword_1_2_4__a__a;
+	protected AbstractElementAlias match_DatamartTableProperty___LookupsKeyword_1_3_0_LeftCurlyBracketKeyword_1_3_2_RightCurlyBracketKeyword_1_3_4__a;
+	protected AbstractElementAlias match_DatamartTableProperty___LookupsKeyword_1_3_0_LeftCurlyBracketKeyword_1_3_2___RightCurlyBracketKeyword_1_3_4_LookupsKeyword_1_3_0_LeftCurlyBracketKeyword_1_3_2__a___or_____LookupsKeyword_1_3_0_LeftCurlyBracketKeyword_1_3_2___RightCurlyBracketKeyword_1_3_4_LookupsKeyword_1_3_0_LeftCurlyBracketKeyword_1_3_2__a_RightCurlyBracketKeyword_1_3_4__q___IntervalsKeyword_1_2_0_LeftCurlyBracketKeyword_1_2_2_RightCurlyBracketKeyword_1_2_4__p_LookupsKeyword_1_3_0_LeftCurlyBracketKeyword_1_3_2___RightCurlyBracketKeyword_1_3_4_LookupsKeyword_1_3_0_LeftCurlyBracketKeyword_1_3_2__a___RightCurlyBracketKeyword_1_3_4___IntervalsKeyword_1_2_0_LeftCurlyBracketKeyword_1_2_2_RightCurlyBracketKeyword_1_2_4__p_LookupsKeyword_1_3_0_LeftCurlyBracketKeyword_1_3_2___RightCurlyBracketKeyword_1_3_4_LookupsKeyword_1_3_0_LeftCurlyBracketKeyword_1_3_2__a__a__;
+	protected AbstractElementAlias match_DatamartTableProperty___LookupsKeyword_1_3_0___LeftCurlyBracketKeyword_1_3_2_RightCurlyBracketKeyword_1_3_4_LookupsKeyword_1_3_0__a_LeftCurlyBracketKeyword_1_3_2_RightCurlyBracketKeyword_1_3_4_IntervalsKeyword_1_2_0_LeftCurlyBracketKeyword_1_2_2_RightCurlyBracketKeyword_1_2_4___IntervalsKeyword_1_2_0_LeftCurlyBracketKeyword_1_2_2_RightCurlyBracketKeyword_1_2_4__a___LookupsKeyword_1_3_0___LeftCurlyBracketKeyword_1_3_2_RightCurlyBracketKeyword_1_3_4_LookupsKeyword_1_3_0__a_LeftCurlyBracketKeyword_1_3_2_RightCurlyBracketKeyword_1_3_4_IntervalsKeyword_1_2_0_LeftCurlyBracketKeyword_1_2_2_RightCurlyBracketKeyword_1_2_4___IntervalsKeyword_1_2_0_LeftCurlyBracketKeyword_1_2_2_RightCurlyBracketKeyword_1_2_4__a__a___LookupsKeyword_1_3_0_or___LookupsKeyword_1_3_0___LeftCurlyBracketKeyword_1_3_2_RightCurlyBracketKeyword_1_3_4_LookupsKeyword_1_3_0__a_LeftCurlyBracketKeyword_1_3_2_RightCurlyBracketKeyword_1_3_4_LookupsKeyword_1_3_0_______or___LookupsKeyword_1_3_0_or___LookupsKeyword_1_3_0___LeftCurlyBracketKeyword_1_3_2_RightCurlyBracketKeyword_1_3_4_LookupsKeyword_1_3_0__a_LeftCurlyBracketKeyword_1_3_2_RightCurlyBracketKeyword_1_3_4_LookupsKeyword_1_3_0____;
+	protected AbstractElementAlias match_DatamartTableProperty___RightCurlyBracketKeyword_1_2_4___LookupsKeyword_1_3_0_LeftCurlyBracketKeyword_1_3_2_RightCurlyBracketKeyword_1_3_4__a_IntervalsKeyword_1_2_0_LeftCurlyBracketKeyword_1_2_2__a;
+	protected AbstractElementAlias match_DatamartTableProperty___RightCurlyBracketKeyword_1_3_4___IntervalsKeyword_1_2_0_LeftCurlyBracketKeyword_1_2_2_RightCurlyBracketKeyword_1_2_4__a_LookupsKeyword_1_3_0_LeftCurlyBracketKeyword_1_3_2__a;
+	protected AbstractElementAlias match_DatamartTableProperty_____IntervalsKeyword_1_2_0_LeftCurlyBracketKeyword_1_2_2_RightCurlyBracketKeyword_1_2_4___or___LookupsKeyword_1_3_0_LeftCurlyBracketKeyword_1_3_2_RightCurlyBracketKeyword_1_3_4____a;
+	protected AbstractElementAlias match_DatamartTableProperty_____IntervalsKeyword_1_2_0_LeftCurlyBracketKeyword_1_2_2_RightCurlyBracketKeyword_1_2_4__q___IntervalsKeyword_1_2_0_LeftCurlyBracketKeyword_1_2_2_RightCurlyBracketKeyword_1_2_4_LookupsKeyword_1_3_0_LeftCurlyBracketKeyword_1_3_2_RightCurlyBracketKeyword_1_3_4__q__p;
+	protected AbstractElementAlias match_DatamartTableProperty_____LookupsKeyword_1_3_0_LeftCurlyBracketKeyword_1_3_2_RightCurlyBracketKeyword_1_3_4__q___LookupsKeyword_1_3_0_LeftCurlyBracketKeyword_1_3_2_RightCurlyBracketKeyword_1_3_4_IntervalsKeyword_1_2_0_LeftCurlyBracketKeyword_1_2_2_RightCurlyBracketKeyword_1_2_4__q__p;
+	protected AbstractElementAlias match_DatamartTableProperty_____RightCurlyBracketKeyword_1_2_4_LookupsKeyword_1_3_0_LeftCurlyBracketKeyword_1_3_2_RightCurlyBracketKeyword_1_3_4___LookupsKeyword_1_3_0_LeftCurlyBracketKeyword_1_3_2_RightCurlyBracketKeyword_1_3_4__a___LookupsKeyword_1_3_0_or___IntervalsKeyword_1_2_0_LeftCurlyBracketKeyword_1_2_2___RightCurlyBracketKeyword_1_2_4_IntervalsKeyword_1_2_0_LeftCurlyBracketKeyword_1_2_2__a_RightCurlyBracketKeyword_1_2_4_LookupsKeyword_1_3_0_______or_____RightCurlyBracketKeyword_1_2_4_IntervalsKeyword_1_2_0_LeftCurlyBracketKeyword_1_2_2___RightCurlyBracketKeyword_1_2_4_IntervalsKeyword_1_2_0_LeftCurlyBracketKeyword_1_2_2__a_RightCurlyBracketKeyword_1_2_4_LookupsKeyword_1_3_0___or___RightCurlyBracketKeyword_1_2_4_LookupsKeyword_1_3_0_______or_______RightCurlyBracketKeyword_1_2_4_IntervalsKeyword_1_2_0_LeftCurlyBracketKeyword_1_2_2___RightCurlyBracketKeyword_1_2_4_IntervalsKeyword_1_2_0_LeftCurlyBracketKeyword_1_2_2__a___or___RightCurlyBracketKeyword_1_2_4_LookupsKeyword_1_3_0_LeftCurlyBracketKeyword_1_3_2_RightCurlyBracketKeyword_1_3_4___LookupsKeyword_1_3_0_LeftCurlyBracketKeyword_1_3_2_RightCurlyBracketKeyword_1_3_4__a_IntervalsKeyword_1_2_0_LeftCurlyBracketKeyword_1_2_2___RightCurlyBracketKeyword_1_2_4_IntervalsKeyword_1_2_0_LeftCurlyBracketKeyword_1_2_2__a_____RightCurlyBracketKeyword_1_2_4_LookupsKeyword_1_3_0_LeftCurlyBracketKeyword_1_3_2_RightCurlyBracketKeyword_1_3_4___LookupsKeyword_1_3_0_LeftCurlyBracketKeyword_1_3_2_RightCurlyBracketKeyword_1_3_4__a___IntervalsKeyword_1_2_0_LeftCurlyBracketKeyword_1_2_2___RightCurlyBracketKeyword_1_2_4_IntervalsKeyword_1_2_0_LeftCurlyBracketKeyword_1_2_2__a_RightCurlyBracketKeyword_1_2_4_LookupsKeyword_1_3_0_LeftCurlyBracketKeyword_1_3_2_RightCurlyBracketKeyword_1_3_4___LookupsKeyword_1_3_0_LeftCurlyBracketKeyword_1_3_2_RightCurlyBracketKeyword_1_3_4__a__a___LookupsKeyword_1_3_0_or___IntervalsKeyword_1_2_0_LeftCurlyBracketKeyword_1_2_2___RightCurlyBracketKeyword_1_2_4_IntervalsKeyword_1_2_0_LeftCurlyBracketKeyword_1_2_2__a_RightCurlyBracketKeyword_1_2_4_LookupsKeyword_1_3_0______;
+	protected AbstractElementAlias match_DatamartTableProperty_____RightCurlyBracketKeyword_1_3_4_IntervalsKeyword_1_2_0_LeftCurlyBracketKeyword_1_2_2_RightCurlyBracketKeyword_1_2_4___IntervalsKeyword_1_2_0_LeftCurlyBracketKeyword_1_2_2_RightCurlyBracketKeyword_1_2_4__a___IntervalsKeyword_1_2_0_or___LookupsKeyword_1_3_0_LeftCurlyBracketKeyword_1_3_2___RightCurlyBracketKeyword_1_3_4_LookupsKeyword_1_3_0_LeftCurlyBracketKeyword_1_3_2__a_RightCurlyBracketKeyword_1_3_4_IntervalsKeyword_1_2_0_______or_____RightCurlyBracketKeyword_1_3_4_IntervalsKeyword_1_2_0___or___RightCurlyBracketKeyword_1_3_4_LookupsKeyword_1_3_0_LeftCurlyBracketKeyword_1_3_2___RightCurlyBracketKeyword_1_3_4_LookupsKeyword_1_3_0_LeftCurlyBracketKeyword_1_3_2__a_RightCurlyBracketKeyword_1_3_4_IntervalsKeyword_1_2_0_______or_______RightCurlyBracketKeyword_1_3_4_IntervalsKeyword_1_2_0_LeftCurlyBracketKeyword_1_2_2_RightCurlyBracketKeyword_1_2_4___IntervalsKeyword_1_2_0_LeftCurlyBracketKeyword_1_2_2_RightCurlyBracketKeyword_1_2_4__a_LookupsKeyword_1_3_0_LeftCurlyBracketKeyword_1_3_2___RightCurlyBracketKeyword_1_3_4_LookupsKeyword_1_3_0_LeftCurlyBracketKeyword_1_3_2__a___or___RightCurlyBracketKeyword_1_3_4_LookupsKeyword_1_3_0_LeftCurlyBracketKeyword_1_3_2___RightCurlyBracketKeyword_1_3_4_LookupsKeyword_1_3_0_LeftCurlyBracketKeyword_1_3_2__a_____RightCurlyBracketKeyword_1_3_4_IntervalsKeyword_1_2_0_LeftCurlyBracketKeyword_1_2_2_RightCurlyBracketKeyword_1_2_4___IntervalsKeyword_1_2_0_LeftCurlyBracketKeyword_1_2_2_RightCurlyBracketKeyword_1_2_4__a___LookupsKeyword_1_3_0_LeftCurlyBracketKeyword_1_3_2___RightCurlyBracketKeyword_1_3_4_LookupsKeyword_1_3_0_LeftCurlyBracketKeyword_1_3_2__a_RightCurlyBracketKeyword_1_3_4_IntervalsKeyword_1_2_0_LeftCurlyBracketKeyword_1_2_2_RightCurlyBracketKeyword_1_2_4___IntervalsKeyword_1_2_0_LeftCurlyBracketKeyword_1_2_2_RightCurlyBracketKeyword_1_2_4__a__a___IntervalsKeyword_1_2_0_or___LookupsKeyword_1_3_0_LeftCurlyBracketKeyword_1_3_2___RightCurlyBracketKeyword_1_3_4_LookupsKeyword_1_3_0_LeftCurlyBracketKeyword_1_3_2__a_RightCurlyBracketKeyword_1_3_4_IntervalsKeyword_1_2_0______;
+	protected AbstractElementAlias match_Font_RightCurlyBracketKeyword_3_1_a;
+	protected AbstractElementAlias match_Font_RightCurlyBracketKeyword_3_1_p;
+	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_XParenthesizedExpression_LeftParenthesisKeyword_0_a;
+	protected AbstractElementAlias match_XParenthesizedExpression_LeftParenthesisKeyword_0_p;
+	
+	@Inject
+	protected void init(IGrammarAccess access) {
+		grammarAccess = (ReportDSLGrammarAccess) access;
+		match_DatamartTableDetail_AllKeyword_3_0_or___LeftCurlyBracketKeyword_3_1_0_RightCurlyBracketKeyword_3_1_2__ = new AlternativeAlias(false, false, new GroupAlias(false, false, new TokenAlias(false, false, grammarAccess.getDatamartTableDetailAccess().getLeftCurlyBracketKeyword_3_1_0()), new TokenAlias(false, false, grammarAccess.getDatamartTableDetailAccess().getRightCurlyBracketKeyword_3_1_2())), new TokenAlias(false, false, grammarAccess.getDatamartTableDetailAccess().getAllKeyword_3_0()));
+		match_DatamartTableProperty___IntervalsKeyword_1_2_0_LeftCurlyBracketKeyword_1_2_2_RightCurlyBracketKeyword_1_2_4___LookupsKeyword_1_3_0_LeftCurlyBracketKeyword_1_3_2_RightCurlyBracketKeyword_1_3_4__a__a = new GroupAlias(true, true, new TokenAlias(false, false, grammarAccess.getDatamartTablePropertyAccess().getIntervalsKeyword_1_2_0()), new TokenAlias(false, false, grammarAccess.getDatamartTablePropertyAccess().getLeftCurlyBracketKeyword_1_2_2()), new TokenAlias(false, false, grammarAccess.getDatamartTablePropertyAccess().getRightCurlyBracketKeyword_1_2_4()), new GroupAlias(true, true, new TokenAlias(false, false, grammarAccess.getDatamartTablePropertyAccess().getLookupsKeyword_1_3_0()), new TokenAlias(false, false, grammarAccess.getDatamartTablePropertyAccess().getLeftCurlyBracketKeyword_1_3_2()), new TokenAlias(false, false, grammarAccess.getDatamartTablePropertyAccess().getRightCurlyBracketKeyword_1_3_4())));
+		match_DatamartTableProperty___IntervalsKeyword_1_2_0_LeftCurlyBracketKeyword_1_2_2_RightCurlyBracketKeyword_1_2_4__a = new GroupAlias(true, true, new TokenAlias(false, false, grammarAccess.getDatamartTablePropertyAccess().getIntervalsKeyword_1_2_0()), new TokenAlias(false, false, grammarAccess.getDatamartTablePropertyAccess().getLeftCurlyBracketKeyword_1_2_2()), new TokenAlias(false, false, grammarAccess.getDatamartTablePropertyAccess().getRightCurlyBracketKeyword_1_2_4()));
+		match_DatamartTableProperty___IntervalsKeyword_1_2_0_LeftCurlyBracketKeyword_1_2_2___RightCurlyBracketKeyword_1_2_4_IntervalsKeyword_1_2_0_LeftCurlyBracketKeyword_1_2_2__a___or_____IntervalsKeyword_1_2_0_LeftCurlyBracketKeyword_1_2_2___RightCurlyBracketKeyword_1_2_4_IntervalsKeyword_1_2_0_LeftCurlyBracketKeyword_1_2_2__a_RightCurlyBracketKeyword_1_2_4__q___LookupsKeyword_1_3_0_LeftCurlyBracketKeyword_1_3_2_RightCurlyBracketKeyword_1_3_4__p_IntervalsKeyword_1_2_0_LeftCurlyBracketKeyword_1_2_2___RightCurlyBracketKeyword_1_2_4_IntervalsKeyword_1_2_0_LeftCurlyBracketKeyword_1_2_2__a___RightCurlyBracketKeyword_1_2_4___LookupsKeyword_1_3_0_LeftCurlyBracketKeyword_1_3_2_RightCurlyBracketKeyword_1_3_4__p_IntervalsKeyword_1_2_0_LeftCurlyBracketKeyword_1_2_2___RightCurlyBracketKeyword_1_2_4_IntervalsKeyword_1_2_0_LeftCurlyBracketKeyword_1_2_2__a__a__ = new AlternativeAlias(false, false, new GroupAlias(false, false, new GroupAlias(false, true, new TokenAlias(false, false, grammarAccess.getDatamartTablePropertyAccess().getIntervalsKeyword_1_2_0()), new TokenAlias(false, false, grammarAccess.getDatamartTablePropertyAccess().getLeftCurlyBracketKeyword_1_2_2()), new GroupAlias(true, true, new TokenAlias(false, false, grammarAccess.getDatamartTablePropertyAccess().getRightCurlyBracketKeyword_1_2_4()), new TokenAlias(false, false, grammarAccess.getDatamartTablePropertyAccess().getIntervalsKeyword_1_2_0()), new TokenAlias(false, false, grammarAccess.getDatamartTablePropertyAccess().getLeftCurlyBracketKeyword_1_2_2())), new TokenAlias(false, false, grammarAccess.getDatamartTablePropertyAccess().getRightCurlyBracketKeyword_1_2_4())), new GroupAlias(true, false, new TokenAlias(false, false, grammarAccess.getDatamartTablePropertyAccess().getLookupsKeyword_1_3_0()), new TokenAlias(false, false, grammarAccess.getDatamartTablePropertyAccess().getLeftCurlyBracketKeyword_1_3_2()), new TokenAlias(false, false, grammarAccess.getDatamartTablePropertyAccess().getRightCurlyBracketKeyword_1_3_4())), new TokenAlias(false, false, grammarAccess.getDatamartTablePropertyAccess().getIntervalsKeyword_1_2_0()), new TokenAlias(false, false, grammarAccess.getDatamartTablePropertyAccess().getLeftCurlyBracketKeyword_1_2_2()), new GroupAlias(true, true, new TokenAlias(false, false, grammarAccess.getDatamartTablePropertyAccess().getRightCurlyBracketKeyword_1_2_4()), new TokenAlias(false, false, grammarAccess.getDatamartTablePropertyAccess().getIntervalsKeyword_1_2_0()), new TokenAlias(false, false, grammarAccess.getDatamartTablePropertyAccess().getLeftCurlyBracketKeyword_1_2_2())), new GroupAlias(true, true, new TokenAlias(false, false, grammarAccess.getDatamartTablePropertyAccess().getRightCurlyBracketKeyword_1_2_4()), new GroupAlias(true, false, new TokenAlias(false, false, grammarAccess.getDatamartTablePropertyAccess().getLookupsKeyword_1_3_0()), new TokenAlias(false, false, grammarAccess.getDatamartTablePropertyAccess().getLeftCurlyBracketKeyword_1_3_2()), new TokenAlias(false, false, grammarAccess.getDatamartTablePropertyAccess().getRightCurlyBracketKeyword_1_3_4())), new TokenAlias(false, false, grammarAccess.getDatamartTablePropertyAccess().getIntervalsKeyword_1_2_0()), new TokenAlias(false, false, grammarAccess.getDatamartTablePropertyAccess().getLeftCurlyBracketKeyword_1_2_2()), new GroupAlias(true, true, new TokenAlias(false, false, grammarAccess.getDatamartTablePropertyAccess().getRightCurlyBracketKeyword_1_2_4()), new TokenAlias(false, false, grammarAccess.getDatamartTablePropertyAccess().getIntervalsKeyword_1_2_0()), new TokenAlias(false, false, grammarAccess.getDatamartTablePropertyAccess().getLeftCurlyBracketKeyword_1_2_2())))), new GroupAlias(false, false, new TokenAlias(false, false, grammarAccess.getDatamartTablePropertyAccess().getIntervalsKeyword_1_2_0()), new TokenAlias(false, false, grammarAccess.getDatamartTablePropertyAccess().getLeftCurlyBracketKeyword_1_2_2()), new GroupAlias(true, true, new TokenAlias(false, false, grammarAccess.getDatamartTablePropertyAccess().getRightCurlyBracketKeyword_1_2_4()), new TokenAlias(false, false, grammarAccess.getDatamartTablePropertyAccess().getIntervalsKeyword_1_2_0()), new TokenAlias(false, false, grammarAccess.getDatamartTablePropertyAccess().getLeftCurlyBracketKeyword_1_2_2()))));
+		match_DatamartTableProperty___IntervalsKeyword_1_2_0___LeftCurlyBracketKeyword_1_2_2_RightCurlyBracketKeyword_1_2_4_IntervalsKeyword_1_2_0__a_LeftCurlyBracketKeyword_1_2_2_RightCurlyBracketKeyword_1_2_4_LookupsKeyword_1_3_0_LeftCurlyBracketKeyword_1_3_2_RightCurlyBracketKeyword_1_3_4___LookupsKeyword_1_3_0_LeftCurlyBracketKeyword_1_3_2_RightCurlyBracketKeyword_1_3_4__a___IntervalsKeyword_1_2_0___LeftCurlyBracketKeyword_1_2_2_RightCurlyBracketKeyword_1_2_4_IntervalsKeyword_1_2_0__a_LeftCurlyBracketKeyword_1_2_2_RightCurlyBracketKeyword_1_2_4_LookupsKeyword_1_3_0_LeftCurlyBracketKeyword_1_3_2_RightCurlyBracketKeyword_1_3_4___LookupsKeyword_1_3_0_LeftCurlyBracketKeyword_1_3_2_RightCurlyBracketKeyword_1_3_4__a__a___IntervalsKeyword_1_2_0_or___IntervalsKeyword_1_2_0___LeftCurlyBracketKeyword_1_2_2_RightCurlyBracketKeyword_1_2_4_IntervalsKeyword_1_2_0__a_LeftCurlyBracketKeyword_1_2_2_RightCurlyBracketKeyword_1_2_4_IntervalsKeyword_1_2_0_______or___IntervalsKeyword_1_2_0_or___IntervalsKeyword_1_2_0___LeftCurlyBracketKeyword_1_2_2_RightCurlyBracketKeyword_1_2_4_IntervalsKeyword_1_2_0__a_LeftCurlyBracketKeyword_1_2_2_RightCurlyBracketKeyword_1_2_4_IntervalsKeyword_1_2_0____ = new AlternativeAlias(false, false, new AlternativeAlias(false, false, new GroupAlias(false, false, new TokenAlias(false, false, grammarAccess.getDatamartTablePropertyAccess().getIntervalsKeyword_1_2_0()), new GroupAlias(true, true, new TokenAlias(false, false, grammarAccess.getDatamartTablePropertyAccess().getLeftCurlyBracketKeyword_1_2_2()), new TokenAlias(false, false, grammarAccess.getDatamartTablePropertyAccess().getRightCurlyBracketKeyword_1_2_4()), new TokenAlias(false, false, grammarAccess.getDatamartTablePropertyAccess().getIntervalsKeyword_1_2_0())), new TokenAlias(false, false, grammarAccess.getDatamartTablePropertyAccess().getLeftCurlyBracketKeyword_1_2_2()), new TokenAlias(false, false, grammarAccess.getDatamartTablePropertyAccess().getRightCurlyBracketKeyword_1_2_4()), new TokenAlias(false, false, grammarAccess.getDatamartTablePropertyAccess().getIntervalsKeyword_1_2_0())), new TokenAlias(false, false, grammarAccess.getDatamartTablePropertyAccess().getIntervalsKeyword_1_2_0())), new GroupAlias(false, false, new TokenAlias(false, false, grammarAccess.getDatamartTablePropertyAccess().getIntervalsKeyword_1_2_0()), new GroupAlias(true, true, new TokenAlias(false, false, grammarAccess.getDatamartTablePropertyAccess().getLeftCurlyBracketKeyword_1_2_2()), new TokenAlias(false, false, grammarAccess.getDatamartTablePropertyAccess().getRightCurlyBracketKeyword_1_2_4()), new TokenAlias(false, false, grammarAccess.getDatamartTablePropertyAccess().getIntervalsKeyword_1_2_0())), new TokenAlias(false, false, grammarAccess.getDatamartTablePropertyAccess().getLeftCurlyBracketKeyword_1_2_2()), new TokenAlias(false, false, grammarAccess.getDatamartTablePropertyAccess().getRightCurlyBracketKeyword_1_2_4()), new TokenAlias(false, false, grammarAccess.getDatamartTablePropertyAccess().getLookupsKeyword_1_3_0()), new TokenAlias(false, false, grammarAccess.getDatamartTablePropertyAccess().getLeftCurlyBracketKeyword_1_3_2()), new TokenAlias(false, false, grammarAccess.getDatamartTablePropertyAccess().getRightCurlyBracketKeyword_1_3_4()), new GroupAlias(true, true, new TokenAlias(false, false, grammarAccess.getDatamartTablePropertyAccess().getLookupsKeyword_1_3_0()), new TokenAlias(false, false, grammarAccess.getDatamartTablePropertyAccess().getLeftCurlyBracketKeyword_1_3_2()), new TokenAlias(false, false, grammarAccess.getDatamartTablePropertyAccess().getRightCurlyBracketKeyword_1_3_4())), new GroupAlias(true, true, new TokenAlias(false, false, grammarAccess.getDatamartTablePropertyAccess().getIntervalsKeyword_1_2_0()), new GroupAlias(true, true, new TokenAlias(false, false, grammarAccess.getDatamartTablePropertyAccess().getLeftCurlyBracketKeyword_1_2_2()), new TokenAlias(false, false, grammarAccess.getDatamartTablePropertyAccess().getRightCurlyBracketKeyword_1_2_4()), new TokenAlias(false, false, grammarAccess.getDatamartTablePropertyAccess().getIntervalsKeyword_1_2_0())), new TokenAlias(false, false, grammarAccess.getDatamartTablePropertyAccess().getLeftCurlyBracketKeyword_1_2_2()), new TokenAlias(false, false, grammarAccess.getDatamartTablePropertyAccess().getRightCurlyBracketKeyword_1_2_4()), new TokenAlias(false, false, grammarAccess.getDatamartTablePropertyAccess().getLookupsKeyword_1_3_0()), new TokenAlias(false, false, grammarAccess.getDatamartTablePropertyAccess().getLeftCurlyBracketKeyword_1_3_2()), new TokenAlias(false, false, grammarAccess.getDatamartTablePropertyAccess().getRightCurlyBracketKeyword_1_3_4()), new GroupAlias(true, true, new TokenAlias(false, false, grammarAccess.getDatamartTablePropertyAccess().getLookupsKeyword_1_3_0()), new TokenAlias(false, false, grammarAccess.getDatamartTablePropertyAccess().getLeftCurlyBracketKeyword_1_3_2()), new TokenAlias(false, false, grammarAccess.getDatamartTablePropertyAccess().getRightCurlyBracketKeyword_1_3_4()))), new AlternativeAlias(false, false, new GroupAlias(false, false, new TokenAlias(false, false, grammarAccess.getDatamartTablePropertyAccess().getIntervalsKeyword_1_2_0()), new GroupAlias(true, true, new TokenAlias(false, false, grammarAccess.getDatamartTablePropertyAccess().getLeftCurlyBracketKeyword_1_2_2()), new TokenAlias(false, false, grammarAccess.getDatamartTablePropertyAccess().getRightCurlyBracketKeyword_1_2_4()), new TokenAlias(false, false, grammarAccess.getDatamartTablePropertyAccess().getIntervalsKeyword_1_2_0())), new TokenAlias(false, false, grammarAccess.getDatamartTablePropertyAccess().getLeftCurlyBracketKeyword_1_2_2()), new TokenAlias(false, false, grammarAccess.getDatamartTablePropertyAccess().getRightCurlyBracketKeyword_1_2_4()), new TokenAlias(false, false, grammarAccess.getDatamartTablePropertyAccess().getIntervalsKeyword_1_2_0())), new TokenAlias(false, false, grammarAccess.getDatamartTablePropertyAccess().getIntervalsKeyword_1_2_0()))));
+		match_DatamartTableProperty___LeftCurlyBracketKeyword_1_2_2_RightCurlyBracketKeyword_1_2_4___LookupsKeyword_1_3_0_LeftCurlyBracketKeyword_1_3_2_RightCurlyBracketKeyword_1_3_4__a_IntervalsKeyword_1_2_0__a = new GroupAlias(true, true, new TokenAlias(false, false, grammarAccess.getDatamartTablePropertyAccess().getLeftCurlyBracketKeyword_1_2_2()), new TokenAlias(false, false, grammarAccess.getDatamartTablePropertyAccess().getRightCurlyBracketKeyword_1_2_4()), new GroupAlias(true, true, new TokenAlias(false, false, grammarAccess.getDatamartTablePropertyAccess().getLookupsKeyword_1_3_0()), new TokenAlias(false, false, grammarAccess.getDatamartTablePropertyAccess().getLeftCurlyBracketKeyword_1_3_2()), new TokenAlias(false, false, grammarAccess.getDatamartTablePropertyAccess().getRightCurlyBracketKeyword_1_3_4())), new TokenAlias(false, false, grammarAccess.getDatamartTablePropertyAccess().getIntervalsKeyword_1_2_0()));
+		match_DatamartTableProperty___LeftCurlyBracketKeyword_1_2_2_RightCurlyBracketKeyword_1_2_4___LookupsKeyword_1_3_0_LeftCurlyBracketKeyword_1_3_2_RightCurlyBracketKeyword_1_3_4__a_IntervalsKeyword_1_2_0__p = new GroupAlias(true, false, new TokenAlias(false, false, grammarAccess.getDatamartTablePropertyAccess().getLeftCurlyBracketKeyword_1_2_2()), new TokenAlias(false, false, grammarAccess.getDatamartTablePropertyAccess().getRightCurlyBracketKeyword_1_2_4()), new GroupAlias(true, true, new TokenAlias(false, false, grammarAccess.getDatamartTablePropertyAccess().getLookupsKeyword_1_3_0()), new TokenAlias(false, false, grammarAccess.getDatamartTablePropertyAccess().getLeftCurlyBracketKeyword_1_3_2()), new TokenAlias(false, false, grammarAccess.getDatamartTablePropertyAccess().getRightCurlyBracketKeyword_1_3_4())), new TokenAlias(false, false, grammarAccess.getDatamartTablePropertyAccess().getIntervalsKeyword_1_2_0()));
+		match_DatamartTableProperty___LeftCurlyBracketKeyword_1_3_2_RightCurlyBracketKeyword_1_3_4___IntervalsKeyword_1_2_0_LeftCurlyBracketKeyword_1_2_2_RightCurlyBracketKeyword_1_2_4__a_LookupsKeyword_1_3_0__a = new GroupAlias(true, true, new TokenAlias(false, false, grammarAccess.getDatamartTablePropertyAccess().getLeftCurlyBracketKeyword_1_3_2()), new TokenAlias(false, false, grammarAccess.getDatamartTablePropertyAccess().getRightCurlyBracketKeyword_1_3_4()), new GroupAlias(true, true, new TokenAlias(false, false, grammarAccess.getDatamartTablePropertyAccess().getIntervalsKeyword_1_2_0()), new TokenAlias(false, false, grammarAccess.getDatamartTablePropertyAccess().getLeftCurlyBracketKeyword_1_2_2()), new TokenAlias(false, false, grammarAccess.getDatamartTablePropertyAccess().getRightCurlyBracketKeyword_1_2_4())), new TokenAlias(false, false, grammarAccess.getDatamartTablePropertyAccess().getLookupsKeyword_1_3_0()));
+		match_DatamartTableProperty___LeftCurlyBracketKeyword_1_3_2_RightCurlyBracketKeyword_1_3_4___IntervalsKeyword_1_2_0_LeftCurlyBracketKeyword_1_2_2_RightCurlyBracketKeyword_1_2_4__a_LookupsKeyword_1_3_0__p = new GroupAlias(true, false, new TokenAlias(false, false, grammarAccess.getDatamartTablePropertyAccess().getLeftCurlyBracketKeyword_1_3_2()), new TokenAlias(false, false, grammarAccess.getDatamartTablePropertyAccess().getRightCurlyBracketKeyword_1_3_4()), new GroupAlias(true, true, new TokenAlias(false, false, grammarAccess.getDatamartTablePropertyAccess().getIntervalsKeyword_1_2_0()), new TokenAlias(false, false, grammarAccess.getDatamartTablePropertyAccess().getLeftCurlyBracketKeyword_1_2_2()), new TokenAlias(false, false, grammarAccess.getDatamartTablePropertyAccess().getRightCurlyBracketKeyword_1_2_4())), new TokenAlias(false, false, grammarAccess.getDatamartTablePropertyAccess().getLookupsKeyword_1_3_0()));
+		match_DatamartTableProperty___LookupsKeyword_1_3_0_LeftCurlyBracketKeyword_1_3_2_RightCurlyBracketKeyword_1_3_4___IntervalsKeyword_1_2_0_LeftCurlyBracketKeyword_1_2_2_RightCurlyBracketKeyword_1_2_4__a__a = new GroupAlias(true, true, new TokenAlias(false, false, grammarAccess.getDatamartTablePropertyAccess().getLookupsKeyword_1_3_0()), new TokenAlias(false, false, grammarAccess.getDatamartTablePropertyAccess().getLeftCurlyBracketKeyword_1_3_2()), new TokenAlias(false, false, grammarAccess.getDatamartTablePropertyAccess().getRightCurlyBracketKeyword_1_3_4()), new GroupAlias(true, true, new TokenAlias(false, false, grammarAccess.getDatamartTablePropertyAccess().getIntervalsKeyword_1_2_0()), new TokenAlias(false, false, grammarAccess.getDatamartTablePropertyAccess().getLeftCurlyBracketKeyword_1_2_2()), new TokenAlias(false, false, grammarAccess.getDatamartTablePropertyAccess().getRightCurlyBracketKeyword_1_2_4())));
+		match_DatamartTableProperty___LookupsKeyword_1_3_0_LeftCurlyBracketKeyword_1_3_2_RightCurlyBracketKeyword_1_3_4__a = new GroupAlias(true, true, new TokenAlias(false, false, grammarAccess.getDatamartTablePropertyAccess().getLookupsKeyword_1_3_0()), new TokenAlias(false, false, grammarAccess.getDatamartTablePropertyAccess().getLeftCurlyBracketKeyword_1_3_2()), new TokenAlias(false, false, grammarAccess.getDatamartTablePropertyAccess().getRightCurlyBracketKeyword_1_3_4()));
+		match_DatamartTableProperty___LookupsKeyword_1_3_0_LeftCurlyBracketKeyword_1_3_2___RightCurlyBracketKeyword_1_3_4_LookupsKeyword_1_3_0_LeftCurlyBracketKeyword_1_3_2__a___or_____LookupsKeyword_1_3_0_LeftCurlyBracketKeyword_1_3_2___RightCurlyBracketKeyword_1_3_4_LookupsKeyword_1_3_0_LeftCurlyBracketKeyword_1_3_2__a_RightCurlyBracketKeyword_1_3_4__q___IntervalsKeyword_1_2_0_LeftCurlyBracketKeyword_1_2_2_RightCurlyBracketKeyword_1_2_4__p_LookupsKeyword_1_3_0_LeftCurlyBracketKeyword_1_3_2___RightCurlyBracketKeyword_1_3_4_LookupsKeyword_1_3_0_LeftCurlyBracketKeyword_1_3_2__a___RightCurlyBracketKeyword_1_3_4___IntervalsKeyword_1_2_0_LeftCurlyBracketKeyword_1_2_2_RightCurlyBracketKeyword_1_2_4__p_LookupsKeyword_1_3_0_LeftCurlyBracketKeyword_1_3_2___RightCurlyBracketKeyword_1_3_4_LookupsKeyword_1_3_0_LeftCurlyBracketKeyword_1_3_2__a__a__ = new AlternativeAlias(false, false, new GroupAlias(false, false, new GroupAlias(false, true, new TokenAlias(false, false, grammarAccess.getDatamartTablePropertyAccess().getLookupsKeyword_1_3_0()), new TokenAlias(false, false, grammarAccess.getDatamartTablePropertyAccess().getLeftCurlyBracketKeyword_1_3_2()), new GroupAlias(true, true, new TokenAlias(false, false, grammarAccess.getDatamartTablePropertyAccess().getRightCurlyBracketKeyword_1_3_4()), new TokenAlias(false, false, grammarAccess.getDatamartTablePropertyAccess().getLookupsKeyword_1_3_0()), new TokenAlias(false, false, grammarAccess.getDatamartTablePropertyAccess().getLeftCurlyBracketKeyword_1_3_2())), new TokenAlias(false, false, grammarAccess.getDatamartTablePropertyAccess().getRightCurlyBracketKeyword_1_3_4())), new GroupAlias(true, false, new TokenAlias(false, false, grammarAccess.getDatamartTablePropertyAccess().getIntervalsKeyword_1_2_0()), new TokenAlias(false, false, grammarAccess.getDatamartTablePropertyAccess().getLeftCurlyBracketKeyword_1_2_2()), new TokenAlias(false, false, grammarAccess.getDatamartTablePropertyAccess().getRightCurlyBracketKeyword_1_2_4())), new TokenAlias(false, false, grammarAccess.getDatamartTablePropertyAccess().getLookupsKeyword_1_3_0()), new TokenAlias(false, false, grammarAccess.getDatamartTablePropertyAccess().getLeftCurlyBracketKeyword_1_3_2()), new GroupAlias(true, true, new TokenAlias(false, false, grammarAccess.getDatamartTablePropertyAccess().getRightCurlyBracketKeyword_1_3_4()), new TokenAlias(false, false, grammarAccess.getDatamartTablePropertyAccess().getLookupsKeyword_1_3_0()), new TokenAlias(false, false, grammarAccess.getDatamartTablePropertyAccess().getLeftCurlyBracketKeyword_1_3_2())), new GroupAlias(true, true, new TokenAlias(false, false, grammarAccess.getDatamartTablePropertyAccess().getRightCurlyBracketKeyword_1_3_4()), new GroupAlias(true, false, new TokenAlias(false, false, grammarAccess.getDatamartTablePropertyAccess().getIntervalsKeyword_1_2_0()), new TokenAlias(false, false, grammarAccess.getDatamartTablePropertyAccess().getLeftCurlyBracketKeyword_1_2_2()), new TokenAlias(false, false, grammarAccess.getDatamartTablePropertyAccess().getRightCurlyBracketKeyword_1_2_4())), new TokenAlias(false, false, grammarAccess.getDatamartTablePropertyAccess().getLookupsKeyword_1_3_0()), new TokenAlias(false, false, grammarAccess.getDatamartTablePropertyAccess().getLeftCurlyBracketKeyword_1_3_2()), new GroupAlias(true, true, new TokenAlias(false, false, grammarAccess.getDatamartTablePropertyAccess().getRightCurlyBracketKeyword_1_3_4()), new TokenAlias(false, false, grammarAccess.getDatamartTablePropertyAccess().getLookupsKeyword_1_3_0()), new TokenAlias(false, false, grammarAccess.getDatamartTablePropertyAccess().getLeftCurlyBracketKeyword_1_3_2())))), new GroupAlias(false, false, new TokenAlias(false, false, grammarAccess.getDatamartTablePropertyAccess().getLookupsKeyword_1_3_0()), new TokenAlias(false, false, grammarAccess.getDatamartTablePropertyAccess().getLeftCurlyBracketKeyword_1_3_2()), new GroupAlias(true, true, new TokenAlias(false, false, grammarAccess.getDatamartTablePropertyAccess().getRightCurlyBracketKeyword_1_3_4()), new TokenAlias(false, false, grammarAccess.getDatamartTablePropertyAccess().getLookupsKeyword_1_3_0()), new TokenAlias(false, false, grammarAccess.getDatamartTablePropertyAccess().getLeftCurlyBracketKeyword_1_3_2()))));
+		match_DatamartTableProperty___LookupsKeyword_1_3_0___LeftCurlyBracketKeyword_1_3_2_RightCurlyBracketKeyword_1_3_4_LookupsKeyword_1_3_0__a_LeftCurlyBracketKeyword_1_3_2_RightCurlyBracketKeyword_1_3_4_IntervalsKeyword_1_2_0_LeftCurlyBracketKeyword_1_2_2_RightCurlyBracketKeyword_1_2_4___IntervalsKeyword_1_2_0_LeftCurlyBracketKeyword_1_2_2_RightCurlyBracketKeyword_1_2_4__a___LookupsKeyword_1_3_0___LeftCurlyBracketKeyword_1_3_2_RightCurlyBracketKeyword_1_3_4_LookupsKeyword_1_3_0__a_LeftCurlyBracketKeyword_1_3_2_RightCurlyBracketKeyword_1_3_4_IntervalsKeyword_1_2_0_LeftCurlyBracketKeyword_1_2_2_RightCurlyBracketKeyword_1_2_4___IntervalsKeyword_1_2_0_LeftCurlyBracketKeyword_1_2_2_RightCurlyBracketKeyword_1_2_4__a__a___LookupsKeyword_1_3_0_or___LookupsKeyword_1_3_0___LeftCurlyBracketKeyword_1_3_2_RightCurlyBracketKeyword_1_3_4_LookupsKeyword_1_3_0__a_LeftCurlyBracketKeyword_1_3_2_RightCurlyBracketKeyword_1_3_4_LookupsKeyword_1_3_0_______or___LookupsKeyword_1_3_0_or___LookupsKeyword_1_3_0___LeftCurlyBracketKeyword_1_3_2_RightCurlyBracketKeyword_1_3_4_LookupsKeyword_1_3_0__a_LeftCurlyBracketKeyword_1_3_2_RightCurlyBracketKeyword_1_3_4_LookupsKeyword_1_3_0____ = new AlternativeAlias(false, false, new AlternativeAlias(false, false, new GroupAlias(false, false, new TokenAlias(false, false, grammarAccess.getDatamartTablePropertyAccess().getLookupsKeyword_1_3_0()), new GroupAlias(true, true, new TokenAlias(false, false, grammarAccess.getDatamartTablePropertyAccess().getLeftCurlyBracketKeyword_1_3_2()), new TokenAlias(false, false, grammarAccess.getDatamartTablePropertyAccess().getRightCurlyBracketKeyword_1_3_4()), new TokenAlias(false, false, grammarAccess.getDatamartTablePropertyAccess().getLookupsKeyword_1_3_0())), new TokenAlias(false, false, grammarAccess.getDatamartTablePropertyAccess().getLeftCurlyBracketKeyword_1_3_2()), new TokenAlias(false, false, grammarAccess.getDatamartTablePropertyAccess().getRightCurlyBracketKeyword_1_3_4()), new TokenAlias(false, false, grammarAccess.getDatamartTablePropertyAccess().getLookupsKeyword_1_3_0())), new TokenAlias(false, false, grammarAccess.getDatamartTablePropertyAccess().getLookupsKeyword_1_3_0())), new GroupAlias(false, false, new TokenAlias(false, false, grammarAccess.getDatamartTablePropertyAccess().getLookupsKeyword_1_3_0()), new GroupAlias(true, true, new TokenAlias(false, false, grammarAccess.getDatamartTablePropertyAccess().getLeftCurlyBracketKeyword_1_3_2()), new TokenAlias(false, false, grammarAccess.getDatamartTablePropertyAccess().getRightCurlyBracketKeyword_1_3_4()), new TokenAlias(false, false, grammarAccess.getDatamartTablePropertyAccess().getLookupsKeyword_1_3_0())), new TokenAlias(false, false, grammarAccess.getDatamartTablePropertyAccess().getLeftCurlyBracketKeyword_1_3_2()), new TokenAlias(false, false, grammarAccess.getDatamartTablePropertyAccess().getRightCurlyBracketKeyword_1_3_4()), new TokenAlias(false, false, grammarAccess.getDatamartTablePropertyAccess().getIntervalsKeyword_1_2_0()), new TokenAlias(false, false, grammarAccess.getDatamartTablePropertyAccess().getLeftCurlyBracketKeyword_1_2_2()), new TokenAlias(false, false, grammarAccess.getDatamartTablePropertyAccess().getRightCurlyBracketKeyword_1_2_4()), new GroupAlias(true, true, new TokenAlias(false, false, grammarAccess.getDatamartTablePropertyAccess().getIntervalsKeyword_1_2_0()), new TokenAlias(false, false, grammarAccess.getDatamartTablePropertyAccess().getLeftCurlyBracketKeyword_1_2_2()), new TokenAlias(false, false, grammarAccess.getDatamartTablePropertyAccess().getRightCurlyBracketKeyword_1_2_4())), new GroupAlias(true, true, new TokenAlias(false, false, grammarAccess.getDatamartTablePropertyAccess().getLookupsKeyword_1_3_0()), new GroupAlias(true, true, new TokenAlias(false, false, grammarAccess.getDatamartTablePropertyAccess().getLeftCurlyBracketKeyword_1_3_2()), new TokenAlias(false, false, grammarAccess.getDatamartTablePropertyAccess().getRightCurlyBracketKeyword_1_3_4()), new TokenAlias(false, false, grammarAccess.getDatamartTablePropertyAccess().getLookupsKeyword_1_3_0())), new TokenAlias(false, false, grammarAccess.getDatamartTablePropertyAccess().getLeftCurlyBracketKeyword_1_3_2()), new TokenAlias(false, false, grammarAccess.getDatamartTablePropertyAccess().getRightCurlyBracketKeyword_1_3_4()), new TokenAlias(false, false, grammarAccess.getDatamartTablePropertyAccess().getIntervalsKeyword_1_2_0()), new TokenAlias(false, false, grammarAccess.getDatamartTablePropertyAccess().getLeftCurlyBracketKeyword_1_2_2()), new TokenAlias(false, false, grammarAccess.getDatamartTablePropertyAccess().getRightCurlyBracketKeyword_1_2_4()), new GroupAlias(true, true, new TokenAlias(false, false, grammarAccess.getDatamartTablePropertyAccess().getIntervalsKeyword_1_2_0()), new TokenAlias(false, false, grammarAccess.getDatamartTablePropertyAccess().getLeftCurlyBracketKeyword_1_2_2()), new TokenAlias(false, false, grammarAccess.getDatamartTablePropertyAccess().getRightCurlyBracketKeyword_1_2_4()))), new AlternativeAlias(false, false, new GroupAlias(false, false, new TokenAlias(false, false, grammarAccess.getDatamartTablePropertyAccess().getLookupsKeyword_1_3_0()), new GroupAlias(true, true, new TokenAlias(false, false, grammarAccess.getDatamartTablePropertyAccess().getLeftCurlyBracketKeyword_1_3_2()), new TokenAlias(false, false, grammarAccess.getDatamartTablePropertyAccess().getRightCurlyBracketKeyword_1_3_4()), new TokenAlias(false, false, grammarAccess.getDatamartTablePropertyAccess().getLookupsKeyword_1_3_0())), new TokenAlias(false, false, grammarAccess.getDatamartTablePropertyAccess().getLeftCurlyBracketKeyword_1_3_2()), new TokenAlias(false, false, grammarAccess.getDatamartTablePropertyAccess().getRightCurlyBracketKeyword_1_3_4()), new TokenAlias(false, false, grammarAccess.getDatamartTablePropertyAccess().getLookupsKeyword_1_3_0())), new TokenAlias(false, false, grammarAccess.getDatamartTablePropertyAccess().getLookupsKeyword_1_3_0()))));
+		match_DatamartTableProperty___RightCurlyBracketKeyword_1_2_4___LookupsKeyword_1_3_0_LeftCurlyBracketKeyword_1_3_2_RightCurlyBracketKeyword_1_3_4__a_IntervalsKeyword_1_2_0_LeftCurlyBracketKeyword_1_2_2__a = new GroupAlias(true, true, new TokenAlias(false, false, grammarAccess.getDatamartTablePropertyAccess().getRightCurlyBracketKeyword_1_2_4()), new GroupAlias(true, true, new TokenAlias(false, false, grammarAccess.getDatamartTablePropertyAccess().getLookupsKeyword_1_3_0()), new TokenAlias(false, false, grammarAccess.getDatamartTablePropertyAccess().getLeftCurlyBracketKeyword_1_3_2()), new TokenAlias(false, false, grammarAccess.getDatamartTablePropertyAccess().getRightCurlyBracketKeyword_1_3_4())), new TokenAlias(false, false, grammarAccess.getDatamartTablePropertyAccess().getIntervalsKeyword_1_2_0()), new TokenAlias(false, false, grammarAccess.getDatamartTablePropertyAccess().getLeftCurlyBracketKeyword_1_2_2()));
+		match_DatamartTableProperty___RightCurlyBracketKeyword_1_3_4___IntervalsKeyword_1_2_0_LeftCurlyBracketKeyword_1_2_2_RightCurlyBracketKeyword_1_2_4__a_LookupsKeyword_1_3_0_LeftCurlyBracketKeyword_1_3_2__a = new GroupAlias(true, true, new TokenAlias(false, false, grammarAccess.getDatamartTablePropertyAccess().getRightCurlyBracketKeyword_1_3_4()), new GroupAlias(true, true, new TokenAlias(false, false, grammarAccess.getDatamartTablePropertyAccess().getIntervalsKeyword_1_2_0()), new TokenAlias(false, false, grammarAccess.getDatamartTablePropertyAccess().getLeftCurlyBracketKeyword_1_2_2()), new TokenAlias(false, false, grammarAccess.getDatamartTablePropertyAccess().getRightCurlyBracketKeyword_1_2_4())), new TokenAlias(false, false, grammarAccess.getDatamartTablePropertyAccess().getLookupsKeyword_1_3_0()), new TokenAlias(false, false, grammarAccess.getDatamartTablePropertyAccess().getLeftCurlyBracketKeyword_1_3_2()));
+		match_DatamartTableProperty_____IntervalsKeyword_1_2_0_LeftCurlyBracketKeyword_1_2_2_RightCurlyBracketKeyword_1_2_4___or___LookupsKeyword_1_3_0_LeftCurlyBracketKeyword_1_3_2_RightCurlyBracketKeyword_1_3_4____a = new AlternativeAlias(true, true, new GroupAlias(false, false, new TokenAlias(false, false, grammarAccess.getDatamartTablePropertyAccess().getIntervalsKeyword_1_2_0()), new TokenAlias(false, false, grammarAccess.getDatamartTablePropertyAccess().getLeftCurlyBracketKeyword_1_2_2()), new TokenAlias(false, false, grammarAccess.getDatamartTablePropertyAccess().getRightCurlyBracketKeyword_1_2_4())), new GroupAlias(false, false, new TokenAlias(false, false, grammarAccess.getDatamartTablePropertyAccess().getLookupsKeyword_1_3_0()), new TokenAlias(false, false, grammarAccess.getDatamartTablePropertyAccess().getLeftCurlyBracketKeyword_1_3_2()), new TokenAlias(false, false, grammarAccess.getDatamartTablePropertyAccess().getRightCurlyBracketKeyword_1_3_4())));
+		match_DatamartTableProperty_____IntervalsKeyword_1_2_0_LeftCurlyBracketKeyword_1_2_2_RightCurlyBracketKeyword_1_2_4__q___IntervalsKeyword_1_2_0_LeftCurlyBracketKeyword_1_2_2_RightCurlyBracketKeyword_1_2_4_LookupsKeyword_1_3_0_LeftCurlyBracketKeyword_1_3_2_RightCurlyBracketKeyword_1_3_4__q__p = new GroupAlias(true, false, new GroupAlias(false, true, new TokenAlias(false, false, grammarAccess.getDatamartTablePropertyAccess().getIntervalsKeyword_1_2_0()), new TokenAlias(false, false, grammarAccess.getDatamartTablePropertyAccess().getLeftCurlyBracketKeyword_1_2_2()), new TokenAlias(false, false, grammarAccess.getDatamartTablePropertyAccess().getRightCurlyBracketKeyword_1_2_4())), new GroupAlias(false, true, new TokenAlias(false, false, grammarAccess.getDatamartTablePropertyAccess().getIntervalsKeyword_1_2_0()), new TokenAlias(false, false, grammarAccess.getDatamartTablePropertyAccess().getLeftCurlyBracketKeyword_1_2_2()), new TokenAlias(false, false, grammarAccess.getDatamartTablePropertyAccess().getRightCurlyBracketKeyword_1_2_4()), new TokenAlias(false, false, grammarAccess.getDatamartTablePropertyAccess().getLookupsKeyword_1_3_0()), new TokenAlias(false, false, grammarAccess.getDatamartTablePropertyAccess().getLeftCurlyBracketKeyword_1_3_2()), new TokenAlias(false, false, grammarAccess.getDatamartTablePropertyAccess().getRightCurlyBracketKeyword_1_3_4())));
+		match_DatamartTableProperty_____LookupsKeyword_1_3_0_LeftCurlyBracketKeyword_1_3_2_RightCurlyBracketKeyword_1_3_4__q___LookupsKeyword_1_3_0_LeftCurlyBracketKeyword_1_3_2_RightCurlyBracketKeyword_1_3_4_IntervalsKeyword_1_2_0_LeftCurlyBracketKeyword_1_2_2_RightCurlyBracketKeyword_1_2_4__q__p = new GroupAlias(true, false, new GroupAlias(false, true, new TokenAlias(false, false, grammarAccess.getDatamartTablePropertyAccess().getLookupsKeyword_1_3_0()), new TokenAlias(false, false, grammarAccess.getDatamartTablePropertyAccess().getLeftCurlyBracketKeyword_1_3_2()), new TokenAlias(false, false, grammarAccess.getDatamartTablePropertyAccess().getRightCurlyBracketKeyword_1_3_4())), new GroupAlias(false, true, new TokenAlias(false, false, grammarAccess.getDatamartTablePropertyAccess().getLookupsKeyword_1_3_0()), new TokenAlias(false, false, grammarAccess.getDatamartTablePropertyAccess().getLeftCurlyBracketKeyword_1_3_2()), new TokenAlias(false, false, grammarAccess.getDatamartTablePropertyAccess().getRightCurlyBracketKeyword_1_3_4()), new TokenAlias(false, false, grammarAccess.getDatamartTablePropertyAccess().getIntervalsKeyword_1_2_0()), new TokenAlias(false, false, grammarAccess.getDatamartTablePropertyAccess().getLeftCurlyBracketKeyword_1_2_2()), new TokenAlias(false, false, grammarAccess.getDatamartTablePropertyAccess().getRightCurlyBracketKeyword_1_2_4())));
+		match_DatamartTableProperty_____RightCurlyBracketKeyword_1_2_4_LookupsKeyword_1_3_0_LeftCurlyBracketKeyword_1_3_2_RightCurlyBracketKeyword_1_3_4___LookupsKeyword_1_3_0_LeftCurlyBracketKeyword_1_3_2_RightCurlyBracketKeyword_1_3_4__a___LookupsKeyword_1_3_0_or___IntervalsKeyword_1_2_0_LeftCurlyBracketKeyword_1_2_2___RightCurlyBracketKeyword_1_2_4_IntervalsKeyword_1_2_0_LeftCurlyBracketKeyword_1_2_2__a_RightCurlyBracketKeyword_1_2_4_LookupsKeyword_1_3_0_______or_____RightCurlyBracketKeyword_1_2_4_IntervalsKeyword_1_2_0_LeftCurlyBracketKeyword_1_2_2___RightCurlyBracketKeyword_1_2_4_IntervalsKeyword_1_2_0_LeftCurlyBracketKeyword_1_2_2__a_RightCurlyBracketKeyword_1_2_4_LookupsKeyword_1_3_0___or___RightCurlyBracketKeyword_1_2_4_LookupsKeyword_1_3_0_______or_______RightCurlyBracketKeyword_1_2_4_IntervalsKeyword_1_2_0_LeftCurlyBracketKeyword_1_2_2___RightCurlyBracketKeyword_1_2_4_IntervalsKeyword_1_2_0_LeftCurlyBracketKeyword_1_2_2__a___or___RightCurlyBracketKeyword_1_2_4_LookupsKeyword_1_3_0_LeftCurlyBracketKeyword_1_3_2_RightCurlyBracketKeyword_1_3_4___LookupsKeyword_1_3_0_LeftCurlyBracketKeyword_1_3_2_RightCurlyBracketKeyword_1_3_4__a_IntervalsKeyword_1_2_0_LeftCurlyBracketKeyword_1_2_2___RightCurlyBracketKeyword_1_2_4_IntervalsKeyword_1_2_0_LeftCurlyBracketKeyword_1_2_2__a_____RightCurlyBracketKeyword_1_2_4_LookupsKeyword_1_3_0_LeftCurlyBracketKeyword_1_3_2_RightCurlyBracketKeyword_1_3_4___LookupsKeyword_1_3_0_LeftCurlyBracketKeyword_1_3_2_RightCurlyBracketKeyword_1_3_4__a___IntervalsKeyword_1_2_0_LeftCurlyBracketKeyword_1_2_2___RightCurlyBracketKeyword_1_2_4_IntervalsKeyword_1_2_0_LeftCurlyBracketKeyword_1_2_2__a_RightCurlyBracketKeyword_1_2_4_LookupsKeyword_1_3_0_LeftCurlyBracketKeyword_1_3_2_RightCurlyBracketKeyword_1_3_4___LookupsKeyword_1_3_0_LeftCurlyBracketKeyword_1_3_2_RightCurlyBracketKeyword_1_3_4__a__a___LookupsKeyword_1_3_0_or___IntervalsKeyword_1_2_0_LeftCurlyBracketKeyword_1_2_2___RightCurlyBracketKeyword_1_2_4_IntervalsKeyword_1_2_0_LeftCurlyBracketKeyword_1_2_2__a_RightCurlyBracketKeyword_1_2_4_LookupsKeyword_1_3_0______ = new AlternativeAlias(false, false, new AlternativeAlias(false, false, new AlternativeAlias(false, false, new GroupAlias(false, false, new TokenAlias(false, false, grammarAccess.getDatamartTablePropertyAccess().getRightCurlyBracketKeyword_1_2_4()), new TokenAlias(false, false, grammarAccess.getDatamartTablePropertyAccess().getIntervalsKeyword_1_2_0()), new TokenAlias(false, false, grammarAccess.getDatamartTablePropertyAccess().getLeftCurlyBracketKeyword_1_2_2()), new GroupAlias(true, true, new TokenAlias(false, false, grammarAccess.getDatamartTablePropertyAccess().getRightCurlyBracketKeyword_1_2_4()), new TokenAlias(false, false, grammarAccess.getDatamartTablePropertyAccess().getIntervalsKeyword_1_2_0()), new TokenAlias(false, false, grammarAccess.getDatamartTablePropertyAccess().getLeftCurlyBracketKeyword_1_2_2())), new TokenAlias(false, false, grammarAccess.getDatamartTablePropertyAccess().getRightCurlyBracketKeyword_1_2_4()), new TokenAlias(false, false, grammarAccess.getDatamartTablePropertyAccess().getLookupsKeyword_1_3_0())), new GroupAlias(false, false, new TokenAlias(false, false, grammarAccess.getDatamartTablePropertyAccess().getRightCurlyBracketKeyword_1_2_4()), new TokenAlias(false, false, grammarAccess.getDatamartTablePropertyAccess().getLookupsKeyword_1_3_0()))), new GroupAlias(false, false, new TokenAlias(false, false, grammarAccess.getDatamartTablePropertyAccess().getRightCurlyBracketKeyword_1_2_4()), new TokenAlias(false, false, grammarAccess.getDatamartTablePropertyAccess().getLookupsKeyword_1_3_0()), new TokenAlias(false, false, grammarAccess.getDatamartTablePropertyAccess().getLeftCurlyBracketKeyword_1_3_2()), new TokenAlias(false, false, grammarAccess.getDatamartTablePropertyAccess().getRightCurlyBracketKeyword_1_3_4()), new GroupAlias(true, true, new TokenAlias(false, false, grammarAccess.getDatamartTablePropertyAccess().getLookupsKeyword_1_3_0()), new TokenAlias(false, false, grammarAccess.getDatamartTablePropertyAccess().getLeftCurlyBracketKeyword_1_3_2()), new TokenAlias(false, false, grammarAccess.getDatamartTablePropertyAccess().getRightCurlyBracketKeyword_1_3_4())), new AlternativeAlias(false, false, new GroupAlias(false, false, new TokenAlias(false, false, grammarAccess.getDatamartTablePropertyAccess().getIntervalsKeyword_1_2_0()), new TokenAlias(false, false, grammarAccess.getDatamartTablePropertyAccess().getLeftCurlyBracketKeyword_1_2_2()), new GroupAlias(true, true, new TokenAlias(false, false, grammarAccess.getDatamartTablePropertyAccess().getRightCurlyBracketKeyword_1_2_4()), new TokenAlias(false, false, grammarAccess.getDatamartTablePropertyAccess().getIntervalsKeyword_1_2_0()), new TokenAlias(false, false, grammarAccess.getDatamartTablePropertyAccess().getLeftCurlyBracketKeyword_1_2_2())), new TokenAlias(false, false, grammarAccess.getDatamartTablePropertyAccess().getRightCurlyBracketKeyword_1_2_4()), new TokenAlias(false, false, grammarAccess.getDatamartTablePropertyAccess().getLookupsKeyword_1_3_0())), new TokenAlias(false, false, grammarAccess.getDatamartTablePropertyAccess().getLookupsKeyword_1_3_0())))), new GroupAlias(false, false, new AlternativeAlias(false, false, new GroupAlias(false, false, new TokenAlias(false, false, grammarAccess.getDatamartTablePropertyAccess().getRightCurlyBracketKeyword_1_2_4()), new TokenAlias(false, false, grammarAccess.getDatamartTablePropertyAccess().getIntervalsKeyword_1_2_0()), new TokenAlias(false, false, grammarAccess.getDatamartTablePropertyAccess().getLeftCurlyBracketKeyword_1_2_2()), new GroupAlias(true, true, new TokenAlias(false, false, grammarAccess.getDatamartTablePropertyAccess().getRightCurlyBracketKeyword_1_2_4()), new TokenAlias(false, false, grammarAccess.getDatamartTablePropertyAccess().getIntervalsKeyword_1_2_0()), new TokenAlias(false, false, grammarAccess.getDatamartTablePropertyAccess().getLeftCurlyBracketKeyword_1_2_2()))), new GroupAlias(false, false, new TokenAlias(false, false, grammarAccess.getDatamartTablePropertyAccess().getRightCurlyBracketKeyword_1_2_4()), new TokenAlias(false, false, grammarAccess.getDatamartTablePropertyAccess().getLookupsKeyword_1_3_0()), new TokenAlias(false, false, grammarAccess.getDatamartTablePropertyAccess().getLeftCurlyBracketKeyword_1_3_2()), new TokenAlias(false, false, grammarAccess.getDatamartTablePropertyAccess().getRightCurlyBracketKeyword_1_3_4()), new GroupAlias(true, true, new TokenAlias(false, false, grammarAccess.getDatamartTablePropertyAccess().getLookupsKeyword_1_3_0()), new TokenAlias(false, false, grammarAccess.getDatamartTablePropertyAccess().getLeftCurlyBracketKeyword_1_3_2()), new TokenAlias(false, false, grammarAccess.getDatamartTablePropertyAccess().getRightCurlyBracketKeyword_1_3_4())), new TokenAlias(false, false, grammarAccess.getDatamartTablePropertyAccess().getIntervalsKeyword_1_2_0()), new TokenAlias(false, false, grammarAccess.getDatamartTablePropertyAccess().getLeftCurlyBracketKeyword_1_2_2()), new GroupAlias(true, true, new TokenAlias(false, false, grammarAccess.getDatamartTablePropertyAccess().getRightCurlyBracketKeyword_1_2_4()), new TokenAlias(false, false, grammarAccess.getDatamartTablePropertyAccess().getIntervalsKeyword_1_2_0()), new TokenAlias(false, false, grammarAccess.getDatamartTablePropertyAccess().getLeftCurlyBracketKeyword_1_2_2())))), new TokenAlias(false, false, grammarAccess.getDatamartTablePropertyAccess().getRightCurlyBracketKeyword_1_2_4()), new TokenAlias(false, false, grammarAccess.getDatamartTablePropertyAccess().getLookupsKeyword_1_3_0()), new TokenAlias(false, false, grammarAccess.getDatamartTablePropertyAccess().getLeftCurlyBracketKeyword_1_3_2()), new TokenAlias(false, false, grammarAccess.getDatamartTablePropertyAccess().getRightCurlyBracketKeyword_1_3_4()), new GroupAlias(true, true, new TokenAlias(false, false, grammarAccess.getDatamartTablePropertyAccess().getLookupsKeyword_1_3_0()), new TokenAlias(false, false, grammarAccess.getDatamartTablePropertyAccess().getLeftCurlyBracketKeyword_1_3_2()), new TokenAlias(false, false, grammarAccess.getDatamartTablePropertyAccess().getRightCurlyBracketKeyword_1_3_4())), new GroupAlias(true, true, new TokenAlias(false, false, grammarAccess.getDatamartTablePropertyAccess().getIntervalsKeyword_1_2_0()), new TokenAlias(false, false, grammarAccess.getDatamartTablePropertyAccess().getLeftCurlyBracketKeyword_1_2_2()), new GroupAlias(true, true, new TokenAlias(false, false, grammarAccess.getDatamartTablePropertyAccess().getRightCurlyBracketKeyword_1_2_4()), new TokenAlias(false, false, grammarAccess.getDatamartTablePropertyAccess().getIntervalsKeyword_1_2_0()), new TokenAlias(false, false, grammarAccess.getDatamartTablePropertyAccess().getLeftCurlyBracketKeyword_1_2_2())), new TokenAlias(false, false, grammarAccess.getDatamartTablePropertyAccess().getRightCurlyBracketKeyword_1_2_4()), new TokenAlias(false, false, grammarAccess.getDatamartTablePropertyAccess().getLookupsKeyword_1_3_0()), new TokenAlias(false, false, grammarAccess.getDatamartTablePropertyAccess().getLeftCurlyBracketKeyword_1_3_2()), new TokenAlias(false, false, grammarAccess.getDatamartTablePropertyAccess().getRightCurlyBracketKeyword_1_3_4()), new GroupAlias(true, true, new TokenAlias(false, false, grammarAccess.getDatamartTablePropertyAccess().getLookupsKeyword_1_3_0()), new TokenAlias(false, false, grammarAccess.getDatamartTablePropertyAccess().getLeftCurlyBracketKeyword_1_3_2()), new TokenAlias(false, false, grammarAccess.getDatamartTablePropertyAccess().getRightCurlyBracketKeyword_1_3_4()))), new AlternativeAlias(false, false, new GroupAlias(false, false, new TokenAlias(false, false, grammarAccess.getDatamartTablePropertyAccess().getIntervalsKeyword_1_2_0()), new TokenAlias(false, false, grammarAccess.getDatamartTablePropertyAccess().getLeftCurlyBracketKeyword_1_2_2()), new GroupAlias(true, true, new TokenAlias(false, false, grammarAccess.getDatamartTablePropertyAccess().getRightCurlyBracketKeyword_1_2_4()), new TokenAlias(false, false, grammarAccess.getDatamartTablePropertyAccess().getIntervalsKeyword_1_2_0()), new TokenAlias(false, false, grammarAccess.getDatamartTablePropertyAccess().getLeftCurlyBracketKeyword_1_2_2())), new TokenAlias(false, false, grammarAccess.getDatamartTablePropertyAccess().getRightCurlyBracketKeyword_1_2_4()), new TokenAlias(false, false, grammarAccess.getDatamartTablePropertyAccess().getLookupsKeyword_1_3_0())), new TokenAlias(false, false, grammarAccess.getDatamartTablePropertyAccess().getLookupsKeyword_1_3_0()))));
+		match_DatamartTableProperty_____RightCurlyBracketKeyword_1_3_4_IntervalsKeyword_1_2_0_LeftCurlyBracketKeyword_1_2_2_RightCurlyBracketKeyword_1_2_4___IntervalsKeyword_1_2_0_LeftCurlyBracketKeyword_1_2_2_RightCurlyBracketKeyword_1_2_4__a___IntervalsKeyword_1_2_0_or___LookupsKeyword_1_3_0_LeftCurlyBracketKeyword_1_3_2___RightCurlyBracketKeyword_1_3_4_LookupsKeyword_1_3_0_LeftCurlyBracketKeyword_1_3_2__a_RightCurlyBracketKeyword_1_3_4_IntervalsKeyword_1_2_0_______or_____RightCurlyBracketKeyword_1_3_4_IntervalsKeyword_1_2_0___or___RightCurlyBracketKeyword_1_3_4_LookupsKeyword_1_3_0_LeftCurlyBracketKeyword_1_3_2___RightCurlyBracketKeyword_1_3_4_LookupsKeyword_1_3_0_LeftCurlyBracketKeyword_1_3_2__a_RightCurlyBracketKeyword_1_3_4_IntervalsKeyword_1_2_0_______or_______RightCurlyBracketKeyword_1_3_4_IntervalsKeyword_1_2_0_LeftCurlyBracketKeyword_1_2_2_RightCurlyBracketKeyword_1_2_4___IntervalsKeyword_1_2_0_LeftCurlyBracketKeyword_1_2_2_RightCurlyBracketKeyword_1_2_4__a_LookupsKeyword_1_3_0_LeftCurlyBracketKeyword_1_3_2___RightCurlyBracketKeyword_1_3_4_LookupsKeyword_1_3_0_LeftCurlyBracketKeyword_1_3_2__a___or___RightCurlyBracketKeyword_1_3_4_LookupsKeyword_1_3_0_LeftCurlyBracketKeyword_1_3_2___RightCurlyBracketKeyword_1_3_4_LookupsKeyword_1_3_0_LeftCurlyBracketKeyword_1_3_2__a_____RightCurlyBracketKeyword_1_3_4_IntervalsKeyword_1_2_0_LeftCurlyBracketKeyword_1_2_2_RightCurlyBracketKeyword_1_2_4___IntervalsKeyword_1_2_0_LeftCurlyBracketKeyword_1_2_2_RightCurlyBracketKeyword_1_2_4__a___LookupsKeyword_1_3_0_LeftCurlyBracketKeyword_1_3_2___RightCurlyBracketKeyword_1_3_4_LookupsKeyword_1_3_0_LeftCurlyBracketKeyword_1_3_2__a_RightCurlyBracketKeyword_1_3_4_IntervalsKeyword_1_2_0_LeftCurlyBracketKeyword_1_2_2_RightCurlyBracketKeyword_1_2_4___IntervalsKeyword_1_2_0_LeftCurlyBracketKeyword_1_2_2_RightCurlyBracketKeyword_1_2_4__a__a___IntervalsKeyword_1_2_0_or___LookupsKeyword_1_3_0_LeftCurlyBracketKeyword_1_3_2___RightCurlyBracketKeyword_1_3_4_LookupsKeyword_1_3_0_LeftCurlyBracketKeyword_1_3_2__a_RightCurlyBracketKeyword_1_3_4_IntervalsKeyword_1_2_0______ = new AlternativeAlias(false, false, new AlternativeAlias(false, false, new AlternativeAlias(false, false, new GroupAlias(false, false, new TokenAlias(false, false, grammarAccess.getDatamartTablePropertyAccess().getRightCurlyBracketKeyword_1_3_4()), new TokenAlias(false, false, grammarAccess.getDatamartTablePropertyAccess().getIntervalsKeyword_1_2_0())), new GroupAlias(false, false, new TokenAlias(false, false, grammarAccess.getDatamartTablePropertyAccess().getRightCurlyBracketKeyword_1_3_4()), new TokenAlias(false, false, grammarAccess.getDatamartTablePropertyAccess().getLookupsKeyword_1_3_0()), new TokenAlias(false, false, grammarAccess.getDatamartTablePropertyAccess().getLeftCurlyBracketKeyword_1_3_2()), new GroupAlias(true, true, new TokenAlias(false, false, grammarAccess.getDatamartTablePropertyAccess().getRightCurlyBracketKeyword_1_3_4()), new TokenAlias(false, false, grammarAccess.getDatamartTablePropertyAccess().getLookupsKeyword_1_3_0()), new TokenAlias(false, false, grammarAccess.getDatamartTablePropertyAccess().getLeftCurlyBracketKeyword_1_3_2())), new TokenAlias(false, false, grammarAccess.getDatamartTablePropertyAccess().getRightCurlyBracketKeyword_1_3_4()), new TokenAlias(false, false, grammarAccess.getDatamartTablePropertyAccess().getIntervalsKeyword_1_2_0()))), new GroupAlias(false, false, new TokenAlias(false, false, grammarAccess.getDatamartTablePropertyAccess().getRightCurlyBracketKeyword_1_3_4()), new TokenAlias(false, false, grammarAccess.getDatamartTablePropertyAccess().getIntervalsKeyword_1_2_0()), new TokenAlias(false, false, grammarAccess.getDatamartTablePropertyAccess().getLeftCurlyBracketKeyword_1_2_2()), new TokenAlias(false, false, grammarAccess.getDatamartTablePropertyAccess().getRightCurlyBracketKeyword_1_2_4()), new GroupAlias(true, true, new TokenAlias(false, false, grammarAccess.getDatamartTablePropertyAccess().getIntervalsKeyword_1_2_0()), new TokenAlias(false, false, grammarAccess.getDatamartTablePropertyAccess().getLeftCurlyBracketKeyword_1_2_2()), new TokenAlias(false, false, grammarAccess.getDatamartTablePropertyAccess().getRightCurlyBracketKeyword_1_2_4())), new AlternativeAlias(false, false, new GroupAlias(false, false, new TokenAlias(false, false, grammarAccess.getDatamartTablePropertyAccess().getLookupsKeyword_1_3_0()), new TokenAlias(false, false, grammarAccess.getDatamartTablePropertyAccess().getLeftCurlyBracketKeyword_1_3_2()), new GroupAlias(true, true, new TokenAlias(false, false, grammarAccess.getDatamartTablePropertyAccess().getRightCurlyBracketKeyword_1_3_4()), new TokenAlias(false, false, grammarAccess.getDatamartTablePropertyAccess().getLookupsKeyword_1_3_0()), new TokenAlias(false, false, grammarAccess.getDatamartTablePropertyAccess().getLeftCurlyBracketKeyword_1_3_2())), new TokenAlias(false, false, grammarAccess.getDatamartTablePropertyAccess().getRightCurlyBracketKeyword_1_3_4()), new TokenAlias(false, false, grammarAccess.getDatamartTablePropertyAccess().getIntervalsKeyword_1_2_0())), new TokenAlias(false, false, grammarAccess.getDatamartTablePropertyAccess().getIntervalsKeyword_1_2_0())))), new GroupAlias(false, false, new AlternativeAlias(false, false, new GroupAlias(false, false, new TokenAlias(false, false, grammarAccess.getDatamartTablePropertyAccess().getRightCurlyBracketKeyword_1_3_4()), new TokenAlias(false, false, grammarAccess.getDatamartTablePropertyAccess().getIntervalsKeyword_1_2_0()), new TokenAlias(false, false, grammarAccess.getDatamartTablePropertyAccess().getLeftCurlyBracketKeyword_1_2_2()), new TokenAlias(false, false, grammarAccess.getDatamartTablePropertyAccess().getRightCurlyBracketKeyword_1_2_4()), new GroupAlias(true, true, new TokenAlias(false, false, grammarAccess.getDatamartTablePropertyAccess().getIntervalsKeyword_1_2_0()), new TokenAlias(false, false, grammarAccess.getDatamartTablePropertyAccess().getLeftCurlyBracketKeyword_1_2_2()), new TokenAlias(false, false, grammarAccess.getDatamartTablePropertyAccess().getRightCurlyBracketKeyword_1_2_4())), new TokenAlias(false, false, grammarAccess.getDatamartTablePropertyAccess().getLookupsKeyword_1_3_0()), new TokenAlias(false, false, grammarAccess.getDatamartTablePropertyAccess().getLeftCurlyBracketKeyword_1_3_2()), new GroupAlias(true, true, new TokenAlias(false, false, grammarAccess.getDatamartTablePropertyAccess().getRightCurlyBracketKeyword_1_3_4()), new TokenAlias(false, false, grammarAccess.getDatamartTablePropertyAccess().getLookupsKeyword_1_3_0()), new TokenAlias(false, false, grammarAccess.getDatamartTablePropertyAccess().getLeftCurlyBracketKeyword_1_3_2()))), new GroupAlias(false, false, new TokenAlias(false, false, grammarAccess.getDatamartTablePropertyAccess().getRightCurlyBracketKeyword_1_3_4()), new TokenAlias(false, false, grammarAccess.getDatamartTablePropertyAccess().getLookupsKeyword_1_3_0()), new TokenAlias(false, false, grammarAccess.getDatamartTablePropertyAccess().getLeftCurlyBracketKeyword_1_3_2()), new GroupAlias(true, true, new TokenAlias(false, false, grammarAccess.getDatamartTablePropertyAccess().getRightCurlyBracketKeyword_1_3_4()), new TokenAlias(false, false, grammarAccess.getDatamartTablePropertyAccess().getLookupsKeyword_1_3_0()), new TokenAlias(false, false, grammarAccess.getDatamartTablePropertyAccess().getLeftCurlyBracketKeyword_1_3_2())))), new TokenAlias(false, false, grammarAccess.getDatamartTablePropertyAccess().getRightCurlyBracketKeyword_1_3_4()), new TokenAlias(false, false, grammarAccess.getDatamartTablePropertyAccess().getIntervalsKeyword_1_2_0()), new TokenAlias(false, false, grammarAccess.getDatamartTablePropertyAccess().getLeftCurlyBracketKeyword_1_2_2()), new TokenAlias(false, false, grammarAccess.getDatamartTablePropertyAccess().getRightCurlyBracketKeyword_1_2_4()), new GroupAlias(true, true, new TokenAlias(false, false, grammarAccess.getDatamartTablePropertyAccess().getIntervalsKeyword_1_2_0()), new TokenAlias(false, false, grammarAccess.getDatamartTablePropertyAccess().getLeftCurlyBracketKeyword_1_2_2()), new TokenAlias(false, false, grammarAccess.getDatamartTablePropertyAccess().getRightCurlyBracketKeyword_1_2_4())), new GroupAlias(true, true, new TokenAlias(false, false, grammarAccess.getDatamartTablePropertyAccess().getLookupsKeyword_1_3_0()), new TokenAlias(false, false, grammarAccess.getDatamartTablePropertyAccess().getLeftCurlyBracketKeyword_1_3_2()), new GroupAlias(true, true, new TokenAlias(false, false, grammarAccess.getDatamartTablePropertyAccess().getRightCurlyBracketKeyword_1_3_4()), new TokenAlias(false, false, grammarAccess.getDatamartTablePropertyAccess().getLookupsKeyword_1_3_0()), new TokenAlias(false, false, grammarAccess.getDatamartTablePropertyAccess().getLeftCurlyBracketKeyword_1_3_2())), new TokenAlias(false, false, grammarAccess.getDatamartTablePropertyAccess().getRightCurlyBracketKeyword_1_3_4()), new TokenAlias(false, false, grammarAccess.getDatamartTablePropertyAccess().getIntervalsKeyword_1_2_0()), new TokenAlias(false, false, grammarAccess.getDatamartTablePropertyAccess().getLeftCurlyBracketKeyword_1_2_2()), new TokenAlias(false, false, grammarAccess.getDatamartTablePropertyAccess().getRightCurlyBracketKeyword_1_2_4()), new GroupAlias(true, true, new TokenAlias(false, false, grammarAccess.getDatamartTablePropertyAccess().getIntervalsKeyword_1_2_0()), new TokenAlias(false, false, grammarAccess.getDatamartTablePropertyAccess().getLeftCurlyBracketKeyword_1_2_2()), new TokenAlias(false, false, grammarAccess.getDatamartTablePropertyAccess().getRightCurlyBracketKeyword_1_2_4()))), new AlternativeAlias(false, false, new GroupAlias(false, false, new TokenAlias(false, false, grammarAccess.getDatamartTablePropertyAccess().getLookupsKeyword_1_3_0()), new TokenAlias(false, false, grammarAccess.getDatamartTablePropertyAccess().getLeftCurlyBracketKeyword_1_3_2()), new GroupAlias(true, true, new TokenAlias(false, false, grammarAccess.getDatamartTablePropertyAccess().getRightCurlyBracketKeyword_1_3_4()), new TokenAlias(false, false, grammarAccess.getDatamartTablePropertyAccess().getLookupsKeyword_1_3_0()), new TokenAlias(false, false, grammarAccess.getDatamartTablePropertyAccess().getLeftCurlyBracketKeyword_1_3_2())), new TokenAlias(false, false, grammarAccess.getDatamartTablePropertyAccess().getRightCurlyBracketKeyword_1_3_4()), new TokenAlias(false, false, grammarAccess.getDatamartTablePropertyAccess().getIntervalsKeyword_1_2_0())), new TokenAlias(false, false, grammarAccess.getDatamartTablePropertyAccess().getIntervalsKeyword_1_2_0()))));
+		match_Font_RightCurlyBracketKeyword_3_1_a = new TokenAlias(true, true, grammarAccess.getFontAccess().getRightCurlyBracketKeyword_3_1());
+		match_Font_RightCurlyBracketKeyword_3_1_p = new TokenAlias(true, false, grammarAccess.getFontAccess().getRightCurlyBracketKeyword_3_1());
+		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_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())
+			return getArrayBracketsToken(semanticObject, ruleCall, node);
+		else if(ruleCall.getRule() == grammarAccess.getOpSingleAssignRule())
+			return getOpSingleAssignToken(semanticObject, ruleCall, node);
+		return "";
+	}
+	
+	/**
+	 * ArrayBrackets :
+	 * 	'[' ']'
+	 * ;
+	 */
+	protected String getArrayBracketsToken(EObject semanticObject, RuleCall ruleCall, INode node) {
+		if (node != null)
+			return getTokenText(node);
+		return "[]";
+	}
+	
+	/**
+	 * OpSingleAssign:
+	 * 	'='
+	 * ;
+	 */
+	protected String getOpSingleAssignToken(EObject semanticObject, RuleCall ruleCall, INode node) {
+		if (node != null)
+			return getTokenText(node);
+		return "=";
+	}
+	
+	@Override
+	protected void emitUnassignedTokens(EObject semanticObject, ISynTransition transition, INode fromNode, INode toNode) {
+		if (transition.getAmbiguousSyntaxes().isEmpty()) return;
+		List<INode> transitionNodes = collectNodes(fromNode, toNode);
+		for (AbstractElementAlias syntax : transition.getAmbiguousSyntaxes()) {
+			List<INode> syntaxNodes = getNodesFor(transitionNodes, syntax);
+			if(match_DatamartTableDetail_AllKeyword_3_0_or___LeftCurlyBracketKeyword_3_1_0_RightCurlyBracketKeyword_3_1_2__.equals(syntax))
+				emit_DatamartTableDetail_AllKeyword_3_0_or___LeftCurlyBracketKeyword_3_1_0_RightCurlyBracketKeyword_3_1_2__(semanticObject, getLastNavigableState(), syntaxNodes);
+			else if(match_DatamartTableProperty___IntervalsKeyword_1_2_0_LeftCurlyBracketKeyword_1_2_2_RightCurlyBracketKeyword_1_2_4___LookupsKeyword_1_3_0_LeftCurlyBracketKeyword_1_3_2_RightCurlyBracketKeyword_1_3_4__a__a.equals(syntax))
+				emit_DatamartTableProperty___IntervalsKeyword_1_2_0_LeftCurlyBracketKeyword_1_2_2_RightCurlyBracketKeyword_1_2_4___LookupsKeyword_1_3_0_LeftCurlyBracketKeyword_1_3_2_RightCurlyBracketKeyword_1_3_4__a__a(semanticObject, getLastNavigableState(), syntaxNodes);
+			else if(match_DatamartTableProperty___IntervalsKeyword_1_2_0_LeftCurlyBracketKeyword_1_2_2_RightCurlyBracketKeyword_1_2_4__a.equals(syntax))
+				emit_DatamartTableProperty___IntervalsKeyword_1_2_0_LeftCurlyBracketKeyword_1_2_2_RightCurlyBracketKeyword_1_2_4__a(semanticObject, getLastNavigableState(), syntaxNodes);
+			else if(match_DatamartTableProperty___IntervalsKeyword_1_2_0_LeftCurlyBracketKeyword_1_2_2___RightCurlyBracketKeyword_1_2_4_IntervalsKeyword_1_2_0_LeftCurlyBracketKeyword_1_2_2__a___or_____IntervalsKeyword_1_2_0_LeftCurlyBracketKeyword_1_2_2___RightCurlyBracketKeyword_1_2_4_IntervalsKeyword_1_2_0_LeftCurlyBracketKeyword_1_2_2__a_RightCurlyBracketKeyword_1_2_4__q___LookupsKeyword_1_3_0_LeftCurlyBracketKeyword_1_3_2_RightCurlyBracketKeyword_1_3_4__p_IntervalsKeyword_1_2_0_LeftCurlyBracketKeyword_1_2_2___RightCurlyBracketKeyword_1_2_4_IntervalsKeyword_1_2_0_LeftCurlyBracketKeyword_1_2_2__a___RightCurlyBracketKeyword_1_2_4___LookupsKeyword_1_3_0_LeftCurlyBracketKeyword_1_3_2_RightCurlyBracketKeyword_1_3_4__p_IntervalsKeyword_1_2_0_LeftCurlyBracketKeyword_1_2_2___RightCurlyBracketKeyword_1_2_4_IntervalsKeyword_1_2_0_LeftCurlyBracketKeyword_1_2_2__a__a__.equals(syntax))
+				emit_DatamartTableProperty___IntervalsKeyword_1_2_0_LeftCurlyBracketKeyword_1_2_2___RightCurlyBracketKeyword_1_2_4_IntervalsKeyword_1_2_0_LeftCurlyBracketKeyword_1_2_2__a___or_____IntervalsKeyword_1_2_0_LeftCurlyBracketKeyword_1_2_2___RightCurlyBracketKeyword_1_2_4_IntervalsKeyword_1_2_0_LeftCurlyBracketKeyword_1_2_2__a_RightCurlyBracketKeyword_1_2_4__q___LookupsKeyword_1_3_0_LeftCurlyBracketKeyword_1_3_2_RightCurlyBracketKeyword_1_3_4__p_IntervalsKeyword_1_2_0_LeftCurlyBracketKeyword_1_2_2___RightCurlyBracketKeyword_1_2_4_IntervalsKeyword_1_2_0_LeftCurlyBracketKeyword_1_2_2__a___RightCurlyBracketKeyword_1_2_4___LookupsKeyword_1_3_0_LeftCurlyBracketKeyword_1_3_2_RightCurlyBracketKeyword_1_3_4__p_IntervalsKeyword_1_2_0_LeftCurlyBracketKeyword_1_2_2___RightCurlyBracketKeyword_1_2_4_IntervalsKeyword_1_2_0_LeftCurlyBracketKeyword_1_2_2__a__a__(semanticObject, getLastNavigableState(), syntaxNodes);
+			else if(match_DatamartTableProperty___IntervalsKeyword_1_2_0___LeftCurlyBracketKeyword_1_2_2_RightCurlyBracketKeyword_1_2_4_IntervalsKeyword_1_2_0__a_LeftCurlyBracketKeyword_1_2_2_RightCurlyBracketKeyword_1_2_4_LookupsKeyword_1_3_0_LeftCurlyBracketKeyword_1_3_2_RightCurlyBracketKeyword_1_3_4___LookupsKeyword_1_3_0_LeftCurlyBracketKeyword_1_3_2_RightCurlyBracketKeyword_1_3_4__a___IntervalsKeyword_1_2_0___LeftCurlyBracketKeyword_1_2_2_RightCurlyBracketKeyword_1_2_4_IntervalsKeyword_1_2_0__a_LeftCurlyBracketKeyword_1_2_2_RightCurlyBracketKeyword_1_2_4_LookupsKeyword_1_3_0_LeftCurlyBracketKeyword_1_3_2_RightCurlyBracketKeyword_1_3_4___LookupsKeyword_1_3_0_LeftCurlyBracketKeyword_1_3_2_RightCurlyBracketKeyword_1_3_4__a__a___IntervalsKeyword_1_2_0_or___IntervalsKeyword_1_2_0___LeftCurlyBracketKeyword_1_2_2_RightCurlyBracketKeyword_1_2_4_IntervalsKeyword_1_2_0__a_LeftCurlyBracketKeyword_1_2_2_RightCurlyBracketKeyword_1_2_4_IntervalsKeyword_1_2_0_______or___IntervalsKeyword_1_2_0_or___IntervalsKeyword_1_2_0___LeftCurlyBracketKeyword_1_2_2_RightCurlyBracketKeyword_1_2_4_IntervalsKeyword_1_2_0__a_LeftCurlyBracketKeyword_1_2_2_RightCurlyBracketKeyword_1_2_4_IntervalsKeyword_1_2_0____.equals(syntax))
+				emit_DatamartTableProperty___IntervalsKeyword_1_2_0___LeftCurlyBracketKeyword_1_2_2_RightCurlyBracketKeyword_1_2_4_IntervalsKeyword_1_2_0__a_LeftCurlyBracketKeyword_1_2_2_RightCurlyBracketKeyword_1_2_4_LookupsKeyword_1_3_0_LeftCurlyBracketKeyword_1_3_2_RightCurlyBracketKeyword_1_3_4___LookupsKeyword_1_3_0_LeftCurlyBracketKeyword_1_3_2_RightCurlyBracketKeyword_1_3_4__a___IntervalsKeyword_1_2_0___LeftCurlyBracketKeyword_1_2_2_RightCurlyBracketKeyword_1_2_4_IntervalsKeyword_1_2_0__a_LeftCurlyBracketKeyword_1_2_2_RightCurlyBracketKeyword_1_2_4_LookupsKeyword_1_3_0_LeftCurlyBracketKeyword_1_3_2_RightCurlyBracketKeyword_1_3_4___LookupsKeyword_1_3_0_LeftCurlyBracketKeyword_1_3_2_RightCurlyBracketKeyword_1_3_4__a__a___IntervalsKeyword_1_2_0_or___IntervalsKeyword_1_2_0___LeftCurlyBracketKeyword_1_2_2_RightCurlyBracketKeyword_1_2_4_IntervalsKeyword_1_2_0__a_LeftCurlyBracketKeyword_1_2_2_RightCurlyBracketKeyword_1_2_4_IntervalsKeyword_1_2_0_______or___IntervalsKeyword_1_2_0_or___IntervalsKeyword_1_2_0___LeftCurlyBracketKeyword_1_2_2_RightCurlyBracketKeyword_1_2_4_IntervalsKeyword_1_2_0__a_LeftCurlyBracketKeyword_1_2_2_RightCurlyBracketKeyword_1_2_4_IntervalsKeyword_1_2_0____(semanticObject, getLastNavigableState(), syntaxNodes);
+			else if(match_DatamartTableProperty___LeftCurlyBracketKeyword_1_2_2_RightCurlyBracketKeyword_1_2_4___LookupsKeyword_1_3_0_LeftCurlyBracketKeyword_1_3_2_RightCurlyBracketKeyword_1_3_4__a_IntervalsKeyword_1_2_0__a.equals(syntax))
+				emit_DatamartTableProperty___LeftCurlyBracketKeyword_1_2_2_RightCurlyBracketKeyword_1_2_4___LookupsKeyword_1_3_0_LeftCurlyBracketKeyword_1_3_2_RightCurlyBracketKeyword_1_3_4__a_IntervalsKeyword_1_2_0__a(semanticObject, getLastNavigableState(), syntaxNodes);
+			else if(match_DatamartTableProperty___LeftCurlyBracketKeyword_1_2_2_RightCurlyBracketKeyword_1_2_4___LookupsKeyword_1_3_0_LeftCurlyBracketKeyword_1_3_2_RightCurlyBracketKeyword_1_3_4__a_IntervalsKeyword_1_2_0__p.equals(syntax))
+				emit_DatamartTableProperty___LeftCurlyBracketKeyword_1_2_2_RightCurlyBracketKeyword_1_2_4___LookupsKeyword_1_3_0_LeftCurlyBracketKeyword_1_3_2_RightCurlyBracketKeyword_1_3_4__a_IntervalsKeyword_1_2_0__p(semanticObject, getLastNavigableState(), syntaxNodes);
+			else if(match_DatamartTableProperty___LeftCurlyBracketKeyword_1_3_2_RightCurlyBracketKeyword_1_3_4___IntervalsKeyword_1_2_0_LeftCurlyBracketKeyword_1_2_2_RightCurlyBracketKeyword_1_2_4__a_LookupsKeyword_1_3_0__a.equals(syntax))
+				emit_DatamartTableProperty___LeftCurlyBracketKeyword_1_3_2_RightCurlyBracketKeyword_1_3_4___IntervalsKeyword_1_2_0_LeftCurlyBracketKeyword_1_2_2_RightCurlyBracketKeyword_1_2_4__a_LookupsKeyword_1_3_0__a(semanticObject, getLastNavigableState(), syntaxNodes);
+			else if(match_DatamartTableProperty___LeftCurlyBracketKeyword_1_3_2_RightCurlyBracketKeyword_1_3_4___IntervalsKeyword_1_2_0_LeftCurlyBracketKeyword_1_2_2_RightCurlyBracketKeyword_1_2_4__a_LookupsKeyword_1_3_0__p.equals(syntax))
+				emit_DatamartTableProperty___LeftCurlyBracketKeyword_1_3_2_RightCurlyBracketKeyword_1_3_4___IntervalsKeyword_1_2_0_LeftCurlyBracketKeyword_1_2_2_RightCurlyBracketKeyword_1_2_4__a_LookupsKeyword_1_3_0__p(semanticObject, getLastNavigableState(), syntaxNodes);
+			else if(match_DatamartTableProperty___LookupsKeyword_1_3_0_LeftCurlyBracketKeyword_1_3_2_RightCurlyBracketKeyword_1_3_4___IntervalsKeyword_1_2_0_LeftCurlyBracketKeyword_1_2_2_RightCurlyBracketKeyword_1_2_4__a__a.equals(syntax))
+				emit_DatamartTableProperty___LookupsKeyword_1_3_0_LeftCurlyBracketKeyword_1_3_2_RightCurlyBracketKeyword_1_3_4___IntervalsKeyword_1_2_0_LeftCurlyBracketKeyword_1_2_2_RightCurlyBracketKeyword_1_2_4__a__a(semanticObject, getLastNavigableState(), syntaxNodes);
+			else if(match_DatamartTableProperty___LookupsKeyword_1_3_0_LeftCurlyBracketKeyword_1_3_2_RightCurlyBracketKeyword_1_3_4__a.equals(syntax))
+				emit_DatamartTableProperty___LookupsKeyword_1_3_0_LeftCurlyBracketKeyword_1_3_2_RightCurlyBracketKeyword_1_3_4__a(semanticObject, getLastNavigableState(), syntaxNodes);
+			else if(match_DatamartTableProperty___LookupsKeyword_1_3_0_LeftCurlyBracketKeyword_1_3_2___RightCurlyBracketKeyword_1_3_4_LookupsKeyword_1_3_0_LeftCurlyBracketKeyword_1_3_2__a___or_____LookupsKeyword_1_3_0_LeftCurlyBracketKeyword_1_3_2___RightCurlyBracketKeyword_1_3_4_LookupsKeyword_1_3_0_LeftCurlyBracketKeyword_1_3_2__a_RightCurlyBracketKeyword_1_3_4__q___IntervalsKeyword_1_2_0_LeftCurlyBracketKeyword_1_2_2_RightCurlyBracketKeyword_1_2_4__p_LookupsKeyword_1_3_0_LeftCurlyBracketKeyword_1_3_2___RightCurlyBracketKeyword_1_3_4_LookupsKeyword_1_3_0_LeftCurlyBracketKeyword_1_3_2__a___RightCurlyBracketKeyword_1_3_4___IntervalsKeyword_1_2_0_LeftCurlyBracketKeyword_1_2_2_RightCurlyBracketKeyword_1_2_4__p_LookupsKeyword_1_3_0_LeftCurlyBracketKeyword_1_3_2___RightCurlyBracketKeyword_1_3_4_LookupsKeyword_1_3_0_LeftCurlyBracketKeyword_1_3_2__a__a__.equals(syntax))
+				emit_DatamartTableProperty___LookupsKeyword_1_3_0_LeftCurlyBracketKeyword_1_3_2___RightCurlyBracketKeyword_1_3_4_LookupsKeyword_1_3_0_LeftCurlyBracketKeyword_1_3_2__a___or_____LookupsKeyword_1_3_0_LeftCurlyBracketKeyword_1_3_2___RightCurlyBracketKeyword_1_3_4_LookupsKeyword_1_3_0_LeftCurlyBracketKeyword_1_3_2__a_RightCurlyBracketKeyword_1_3_4__q___IntervalsKeyword_1_2_0_LeftCurlyBracketKeyword_1_2_2_RightCurlyBracketKeyword_1_2_4__p_LookupsKeyword_1_3_0_LeftCurlyBracketKeyword_1_3_2___RightCurlyBracketKeyword_1_3_4_LookupsKeyword_1_3_0_LeftCurlyBracketKeyword_1_3_2__a___RightCurlyBracketKeyword_1_3_4___IntervalsKeyword_1_2_0_LeftCurlyBracketKeyword_1_2_2_RightCurlyBracketKeyword_1_2_4__p_LookupsKeyword_1_3_0_LeftCurlyBracketKeyword_1_3_2___RightCurlyBracketKeyword_1_3_4_LookupsKeyword_1_3_0_LeftCurlyBracketKeyword_1_3_2__a__a__(semanticObject, getLastNavigableState(), syntaxNodes);
+			else if(match_DatamartTableProperty___LookupsKeyword_1_3_0___LeftCurlyBracketKeyword_1_3_2_RightCurlyBracketKeyword_1_3_4_LookupsKeyword_1_3_0__a_LeftCurlyBracketKeyword_1_3_2_RightCurlyBracketKeyword_1_3_4_IntervalsKeyword_1_2_0_LeftCurlyBracketKeyword_1_2_2_RightCurlyBracketKeyword_1_2_4___IntervalsKeyword_1_2_0_LeftCurlyBracketKeyword_1_2_2_RightCurlyBracketKeyword_1_2_4__a___LookupsKeyword_1_3_0___LeftCurlyBracketKeyword_1_3_2_RightCurlyBracketKeyword_1_3_4_LookupsKeyword_1_3_0__a_LeftCurlyBracketKeyword_1_3_2_RightCurlyBracketKeyword_1_3_4_IntervalsKeyword_1_2_0_LeftCurlyBracketKeyword_1_2_2_RightCurlyBracketKeyword_1_2_4___IntervalsKeyword_1_2_0_LeftCurlyBracketKeyword_1_2_2_RightCurlyBracketKeyword_1_2_4__a__a___LookupsKeyword_1_3_0_or___LookupsKeyword_1_3_0___LeftCurlyBracketKeyword_1_3_2_RightCurlyBracketKeyword_1_3_4_LookupsKeyword_1_3_0__a_LeftCurlyBracketKeyword_1_3_2_RightCurlyBracketKeyword_1_3_4_LookupsKeyword_1_3_0_______or___LookupsKeyword_1_3_0_or___LookupsKeyword_1_3_0___LeftCurlyBracketKeyword_1_3_2_RightCurlyBracketKeyword_1_3_4_LookupsKeyword_1_3_0__a_LeftCurlyBracketKeyword_1_3_2_RightCurlyBracketKeyword_1_3_4_LookupsKeyword_1_3_0____.equals(syntax))
+				emit_DatamartTableProperty___LookupsKeyword_1_3_0___LeftCurlyBracketKeyword_1_3_2_RightCurlyBracketKeyword_1_3_4_LookupsKeyword_1_3_0__a_LeftCurlyBracketKeyword_1_3_2_RightCurlyBracketKeyword_1_3_4_IntervalsKeyword_1_2_0_LeftCurlyBracketKeyword_1_2_2_RightCurlyBracketKeyword_1_2_4___IntervalsKeyword_1_2_0_LeftCurlyBracketKeyword_1_2_2_RightCurlyBracketKeyword_1_2_4__a___LookupsKeyword_1_3_0___LeftCurlyBracketKeyword_1_3_2_RightCurlyBracketKeyword_1_3_4_LookupsKeyword_1_3_0__a_LeftCurlyBracketKeyword_1_3_2_RightCurlyBracketKeyword_1_3_4_IntervalsKeyword_1_2_0_LeftCurlyBracketKeyword_1_2_2_RightCurlyBracketKeyword_1_2_4___IntervalsKeyword_1_2_0_LeftCurlyBracketKeyword_1_2_2_RightCurlyBracketKeyword_1_2_4__a__a___LookupsKeyword_1_3_0_or___LookupsKeyword_1_3_0___LeftCurlyBracketKeyword_1_3_2_RightCurlyBracketKeyword_1_3_4_LookupsKeyword_1_3_0__a_LeftCurlyBracketKeyword_1_3_2_RightCurlyBracketKeyword_1_3_4_LookupsKeyword_1_3_0_______or___LookupsKeyword_1_3_0_or___LookupsKeyword_1_3_0___LeftCurlyBracketKeyword_1_3_2_RightCurlyBracketKeyword_1_3_4_LookupsKeyword_1_3_0__a_LeftCurlyBracketKeyword_1_3_2_RightCurlyBracketKeyword_1_3_4_LookupsKeyword_1_3_0____(semanticObject, getLastNavigableState(), syntaxNodes);
+			else if(match_DatamartTableProperty___RightCurlyBracketKeyword_1_2_4___LookupsKeyword_1_3_0_LeftCurlyBracketKeyword_1_3_2_RightCurlyBracketKeyword_1_3_4__a_IntervalsKeyword_1_2_0_LeftCurlyBracketKeyword_1_2_2__a.equals(syntax))
+				emit_DatamartTableProperty___RightCurlyBracketKeyword_1_2_4___LookupsKeyword_1_3_0_LeftCurlyBracketKeyword_1_3_2_RightCurlyBracketKeyword_1_3_4__a_IntervalsKeyword_1_2_0_LeftCurlyBracketKeyword_1_2_2__a(semanticObject, getLastNavigableState(), syntaxNodes);
+			else if(match_DatamartTableProperty___RightCurlyBracketKeyword_1_3_4___IntervalsKeyword_1_2_0_LeftCurlyBracketKeyword_1_2_2_RightCurlyBracketKeyword_1_2_4__a_LookupsKeyword_1_3_0_LeftCurlyBracketKeyword_1_3_2__a.equals(syntax))
+				emit_DatamartTableProperty___RightCurlyBracketKeyword_1_3_4___IntervalsKeyword_1_2_0_LeftCurlyBracketKeyword_1_2_2_RightCurlyBracketKeyword_1_2_4__a_LookupsKeyword_1_3_0_LeftCurlyBracketKeyword_1_3_2__a(semanticObject, getLastNavigableState(), syntaxNodes);
+			else if(match_DatamartTableProperty_____IntervalsKeyword_1_2_0_LeftCurlyBracketKeyword_1_2_2_RightCurlyBracketKeyword_1_2_4___or___LookupsKeyword_1_3_0_LeftCurlyBracketKeyword_1_3_2_RightCurlyBracketKeyword_1_3_4____a.equals(syntax))
+				emit_DatamartTableProperty_____IntervalsKeyword_1_2_0_LeftCurlyBracketKeyword_1_2_2_RightCurlyBracketKeyword_1_2_4___or___LookupsKeyword_1_3_0_LeftCurlyBracketKeyword_1_3_2_RightCurlyBracketKeyword_1_3_4____a(semanticObject, getLastNavigableState(), syntaxNodes);
+			else if(match_DatamartTableProperty_____IntervalsKeyword_1_2_0_LeftCurlyBracketKeyword_1_2_2_RightCurlyBracketKeyword_1_2_4__q___IntervalsKeyword_1_2_0_LeftCurlyBracketKeyword_1_2_2_RightCurlyBracketKeyword_1_2_4_LookupsKeyword_1_3_0_LeftCurlyBracketKeyword_1_3_2_RightCurlyBracketKeyword_1_3_4__q__p.equals(syntax))
+				emit_DatamartTableProperty_____IntervalsKeyword_1_2_0_LeftCurlyBracketKeyword_1_2_2_RightCurlyBracketKeyword_1_2_4__q___IntervalsKeyword_1_2_0_LeftCurlyBracketKeyword_1_2_2_RightCurlyBracketKeyword_1_2_4_LookupsKeyword_1_3_0_LeftCurlyBracketKeyword_1_3_2_RightCurlyBracketKeyword_1_3_4__q__p(semanticObject, getLastNavigableState(), syntaxNodes);
+			else if(match_DatamartTableProperty_____LookupsKeyword_1_3_0_LeftCurlyBracketKeyword_1_3_2_RightCurlyBracketKeyword_1_3_4__q___LookupsKeyword_1_3_0_LeftCurlyBracketKeyword_1_3_2_RightCurlyBracketKeyword_1_3_4_IntervalsKeyword_1_2_0_LeftCurlyBracketKeyword_1_2_2_RightCurlyBracketKeyword_1_2_4__q__p.equals(syntax))
+				emit_DatamartTableProperty_____LookupsKeyword_1_3_0_LeftCurlyBracketKeyword_1_3_2_RightCurlyBracketKeyword_1_3_4__q___LookupsKeyword_1_3_0_LeftCurlyBracketKeyword_1_3_2_RightCurlyBracketKeyword_1_3_4_IntervalsKeyword_1_2_0_LeftCurlyBracketKeyword_1_2_2_RightCurlyBracketKeyword_1_2_4__q__p(semanticObject, getLastNavigableState(), syntaxNodes);
+			else if(match_DatamartTableProperty_____RightCurlyBracketKeyword_1_2_4_LookupsKeyword_1_3_0_LeftCurlyBracketKeyword_1_3_2_RightCurlyBracketKeyword_1_3_4___LookupsKeyword_1_3_0_LeftCurlyBracketKeyword_1_3_2_RightCurlyBracketKeyword_1_3_4__a___LookupsKeyword_1_3_0_or___IntervalsKeyword_1_2_0_LeftCurlyBracketKeyword_1_2_2___RightCurlyBracketKeyword_1_2_4_IntervalsKeyword_1_2_0_LeftCurlyBracketKeyword_1_2_2__a_RightCurlyBracketKeyword_1_2_4_LookupsKeyword_1_3_0_______or_____RightCurlyBracketKeyword_1_2_4_IntervalsKeyword_1_2_0_LeftCurlyBracketKeyword_1_2_2___RightCurlyBracketKeyword_1_2_4_IntervalsKeyword_1_2_0_LeftCurlyBracketKeyword_1_2_2__a_RightCurlyBracketKeyword_1_2_4_LookupsKeyword_1_3_0___or___RightCurlyBracketKeyword_1_2_4_LookupsKeyword_1_3_0_______or_______RightCurlyBracketKeyword_1_2_4_IntervalsKeyword_1_2_0_LeftCurlyBracketKeyword_1_2_2___RightCurlyBracketKeyword_1_2_4_IntervalsKeyword_1_2_0_LeftCurlyBracketKeyword_1_2_2__a___or___RightCurlyBracketKeyword_1_2_4_LookupsKeyword_1_3_0_LeftCurlyBracketKeyword_1_3_2_RightCurlyBracketKeyword_1_3_4___LookupsKeyword_1_3_0_LeftCurlyBracketKeyword_1_3_2_RightCurlyBracketKeyword_1_3_4__a_IntervalsKeyword_1_2_0_LeftCurlyBracketKeyword_1_2_2___RightCurlyBracketKeyword_1_2_4_IntervalsKeyword_1_2_0_LeftCurlyBracketKeyword_1_2_2__a_____RightCurlyBracketKeyword_1_2_4_LookupsKeyword_1_3_0_LeftCurlyBracketKeyword_1_3_2_RightCurlyBracketKeyword_1_3_4___LookupsKeyword_1_3_0_LeftCurlyBracketKeyword_1_3_2_RightCurlyBracketKeyword_1_3_4__a___IntervalsKeyword_1_2_0_LeftCurlyBracketKeyword_1_2_2___RightCurlyBracketKeyword_1_2_4_IntervalsKeyword_1_2_0_LeftCurlyBracketKeyword_1_2_2__a_RightCurlyBracketKeyword_1_2_4_LookupsKeyword_1_3_0_LeftCurlyBracketKeyword_1_3_2_RightCurlyBracketKeyword_1_3_4___LookupsKeyword_1_3_0_LeftCurlyBracketKeyword_1_3_2_RightCurlyBracketKeyword_1_3_4__a__a___LookupsKeyword_1_3_0_or___IntervalsKeyword_1_2_0_LeftCurlyBracketKeyword_1_2_2___RightCurlyBracketKeyword_1_2_4_IntervalsKeyword_1_2_0_LeftCurlyBracketKeyword_1_2_2__a_RightCurlyBracketKeyword_1_2_4_LookupsKeyword_1_3_0______.equals(syntax))
+				emit_DatamartTableProperty_____RightCurlyBracketKeyword_1_2_4_LookupsKeyword_1_3_0_LeftCurlyBracketKeyword_1_3_2_RightCurlyBracketKeyword_1_3_4___LookupsKeyword_1_3_0_LeftCurlyBracketKeyword_1_3_2_RightCurlyBracketKeyword_1_3_4__a___LookupsKeyword_1_3_0_or___IntervalsKeyword_1_2_0_LeftCurlyBracketKeyword_1_2_2___RightCurlyBracketKeyword_1_2_4_IntervalsKeyword_1_2_0_LeftCurlyBracketKeyword_1_2_2__a_RightCurlyBracketKeyword_1_2_4_LookupsKeyword_1_3_0_______or_____RightCurlyBracketKeyword_1_2_4_IntervalsKeyword_1_2_0_LeftCurlyBracketKeyword_1_2_2___RightCurlyBracketKeyword_1_2_4_IntervalsKeyword_1_2_0_LeftCurlyBracketKeyword_1_2_2__a_RightCurlyBracketKeyword_1_2_4_LookupsKeyword_1_3_0___or___RightCurlyBracketKeyword_1_2_4_LookupsKeyword_1_3_0_______or_______RightCurlyBracketKeyword_1_2_4_IntervalsKeyword_1_2_0_LeftCurlyBracketKeyword_1_2_2___RightCurlyBracketKeyword_1_2_4_IntervalsKeyword_1_2_0_LeftCurlyBracketKeyword_1_2_2__a___or___RightCurlyBracketKeyword_1_2_4_LookupsKeyword_1_3_0_LeftCurlyBracketKeyword_1_3_2_RightCurlyBracketKeyword_1_3_4___LookupsKeyword_1_3_0_LeftCurlyBracketKeyword_1_3_2_RightCurlyBracketKeyword_1_3_4__a_IntervalsKeyword_1_2_0_LeftCurlyBracketKeyword_1_2_2___RightCurlyBracketKeyword_1_2_4_IntervalsKeyword_1_2_0_LeftCurlyBracketKeyword_1_2_2__a_____RightCurlyBracketKeyword_1_2_4_LookupsKeyword_1_3_0_LeftCurlyBracketKeyword_1_3_2_RightCurlyBracketKeyword_1_3_4___LookupsKeyword_1_3_0_LeftCurlyBracketKeyword_1_3_2_RightCurlyBracketKeyword_1_3_4__a___IntervalsKeyword_1_2_0_LeftCurlyBracketKeyword_1_2_2___RightCurlyBracketKeyword_1_2_4_IntervalsKeyword_1_2_0_LeftCurlyBracketKeyword_1_2_2__a_RightCurlyBracketKeyword_1_2_4_LookupsKeyword_1_3_0_LeftCurlyBracketKeyword_1_3_2_RightCurlyBracketKeyword_1_3_4___LookupsKeyword_1_3_0_LeftCurlyBracketKeyword_1_3_2_RightCurlyBracketKeyword_1_3_4__a__a___LookupsKeyword_1_3_0_or___IntervalsKeyword_1_2_0_LeftCurlyBracketKeyword_1_2_2___RightCurlyBracketKeyword_1_2_4_IntervalsKeyword_1_2_0_LeftCurlyBracketKeyword_1_2_2__a_RightCurlyBracketKeyword_1_2_4_LookupsKeyword_1_3_0______(semanticObject, getLastNavigableState(), syntaxNodes);
+			else if(match_DatamartTableProperty_____RightCurlyBracketKeyword_1_3_4_IntervalsKeyword_1_2_0_LeftCurlyBracketKeyword_1_2_2_RightCurlyBracketKeyword_1_2_4___IntervalsKeyword_1_2_0_LeftCurlyBracketKeyword_1_2_2_RightCurlyBracketKeyword_1_2_4__a___IntervalsKeyword_1_2_0_or___LookupsKeyword_1_3_0_LeftCurlyBracketKeyword_1_3_2___RightCurlyBracketKeyword_1_3_4_LookupsKeyword_1_3_0_LeftCurlyBracketKeyword_1_3_2__a_RightCurlyBracketKeyword_1_3_4_IntervalsKeyword_1_2_0_______or_____RightCurlyBracketKeyword_1_3_4_IntervalsKeyword_1_2_0___or___RightCurlyBracketKeyword_1_3_4_LookupsKeyword_1_3_0_LeftCurlyBracketKeyword_1_3_2___RightCurlyBracketKeyword_1_3_4_LookupsKeyword_1_3_0_LeftCurlyBracketKeyword_1_3_2__a_RightCurlyBracketKeyword_1_3_4_IntervalsKeyword_1_2_0_______or_______RightCurlyBracketKeyword_1_3_4_IntervalsKeyword_1_2_0_LeftCurlyBracketKeyword_1_2_2_RightCurlyBracketKeyword_1_2_4___IntervalsKeyword_1_2_0_LeftCurlyBracketKeyword_1_2_2_RightCurlyBracketKeyword_1_2_4__a_LookupsKeyword_1_3_0_LeftCurlyBracketKeyword_1_3_2___RightCurlyBracketKeyword_1_3_4_LookupsKeyword_1_3_0_LeftCurlyBracketKeyword_1_3_2__a___or___RightCurlyBracketKeyword_1_3_4_LookupsKeyword_1_3_0_LeftCurlyBracketKeyword_1_3_2___RightCurlyBracketKeyword_1_3_4_LookupsKeyword_1_3_0_LeftCurlyBracketKeyword_1_3_2__a_____RightCurlyBracketKeyword_1_3_4_IntervalsKeyword_1_2_0_LeftCurlyBracketKeyword_1_2_2_RightCurlyBracketKeyword_1_2_4___IntervalsKeyword_1_2_0_LeftCurlyBracketKeyword_1_2_2_RightCurlyBracketKeyword_1_2_4__a___LookupsKeyword_1_3_0_LeftCurlyBracketKeyword_1_3_2___RightCurlyBracketKeyword_1_3_4_LookupsKeyword_1_3_0_LeftCurlyBracketKeyword_1_3_2__a_RightCurlyBracketKeyword_1_3_4_IntervalsKeyword_1_2_0_LeftCurlyBracketKeyword_1_2_2_RightCurlyBracketKeyword_1_2_4___IntervalsKeyword_1_2_0_LeftCurlyBracketKeyword_1_2_2_RightCurlyBracketKeyword_1_2_4__a__a___IntervalsKeyword_1_2_0_or___LookupsKeyword_1_3_0_LeftCurlyBracketKeyword_1_3_2___RightCurlyBracketKeyword_1_3_4_LookupsKeyword_1_3_0_LeftCurlyBracketKeyword_1_3_2__a_RightCurlyBracketKeyword_1_3_4_IntervalsKeyword_1_2_0______.equals(syntax))
+				emit_DatamartTableProperty_____RightCurlyBracketKeyword_1_3_4_IntervalsKeyword_1_2_0_LeftCurlyBracketKeyword_1_2_2_RightCurlyBracketKeyword_1_2_4___IntervalsKeyword_1_2_0_LeftCurlyBracketKeyword_1_2_2_RightCurlyBracketKeyword_1_2_4__a___IntervalsKeyword_1_2_0_or___LookupsKeyword_1_3_0_LeftCurlyBracketKeyword_1_3_2___RightCurlyBracketKeyword_1_3_4_LookupsKeyword_1_3_0_LeftCurlyBracketKeyword_1_3_2__a_RightCurlyBracketKeyword_1_3_4_IntervalsKeyword_1_2_0_______or_____RightCurlyBracketKeyword_1_3_4_IntervalsKeyword_1_2_0___or___RightCurlyBracketKeyword_1_3_4_LookupsKeyword_1_3_0_LeftCurlyBracketKeyword_1_3_2___RightCurlyBracketKeyword_1_3_4_LookupsKeyword_1_3_0_LeftCurlyBracketKeyword_1_3_2__a_RightCurlyBracketKeyword_1_3_4_IntervalsKeyword_1_2_0_______or_______RightCurlyBracketKeyword_1_3_4_IntervalsKeyword_1_2_0_LeftCurlyBracketKeyword_1_2_2_RightCurlyBracketKeyword_1_2_4___IntervalsKeyword_1_2_0_LeftCurlyBracketKeyword_1_2_2_RightCurlyBracketKeyword_1_2_4__a_LookupsKeyword_1_3_0_LeftCurlyBracketKeyword_1_3_2___RightCurlyBracketKeyword_1_3_4_LookupsKeyword_1_3_0_LeftCurlyBracketKeyword_1_3_2__a___or___RightCurlyBracketKeyword_1_3_4_LookupsKeyword_1_3_0_LeftCurlyBracketKeyword_1_3_2___RightCurlyBracketKeyword_1_3_4_LookupsKeyword_1_3_0_LeftCurlyBracketKeyword_1_3_2__a_____RightCurlyBracketKeyword_1_3_4_IntervalsKeyword_1_2_0_LeftCurlyBracketKeyword_1_2_2_RightCurlyBracketKeyword_1_2_4___IntervalsKeyword_1_2_0_LeftCurlyBracketKeyword_1_2_2_RightCurlyBracketKeyword_1_2_4__a___LookupsKeyword_1_3_0_LeftCurlyBracketKeyword_1_3_2___RightCurlyBracketKeyword_1_3_4_LookupsKeyword_1_3_0_LeftCurlyBracketKeyword_1_3_2__a_RightCurlyBracketKeyword_1_3_4_IntervalsKeyword_1_2_0_LeftCurlyBracketKeyword_1_2_2_RightCurlyBracketKeyword_1_2_4___IntervalsKeyword_1_2_0_LeftCurlyBracketKeyword_1_2_2_RightCurlyBracketKeyword_1_2_4__a__a___IntervalsKeyword_1_2_0_or___LookupsKeyword_1_3_0_LeftCurlyBracketKeyword_1_3_2___RightCurlyBracketKeyword_1_3_4_LookupsKeyword_1_3_0_LeftCurlyBracketKeyword_1_3_2__a_RightCurlyBracketKeyword_1_3_4_IntervalsKeyword_1_2_0______(semanticObject, getLastNavigableState(), syntaxNodes);
+			else if(match_Font_RightCurlyBracketKeyword_3_1_a.equals(syntax))
+				emit_Font_RightCurlyBracketKeyword_3_1_a(semanticObject, getLastNavigableState(), syntaxNodes);
+			else if(match_Font_RightCurlyBracketKeyword_3_1_p.equals(syntax))
+				emit_Font_RightCurlyBracketKeyword_3_1_p(semanticObject, getLastNavigableState(), syntaxNodes);
+			else if(match_XAnnotation___LeftParenthesisKeyword_3_0_RightParenthesisKeyword_3_2__q.equals(syntax))
+				emit_XAnnotation___LeftParenthesisKeyword_3_0_RightParenthesisKeyword_3_2__q(semanticObject, getLastNavigableState(), syntaxNodes);
+			else if(match_XBlockExpression_SemicolonKeyword_2_1_q.equals(syntax))
+				emit_XBlockExpression_SemicolonKeyword_2_1_q(semanticObject, getLastNavigableState(), syntaxNodes);
+			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))
+				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))
+				emit_XParenthesizedExpression_LeftParenthesisKeyword_0_a(semanticObject, getLastNavigableState(), syntaxNodes);
+			else if(match_XParenthesizedExpression_LeftParenthesisKeyword_0_p.equals(syntax))
+				emit_XParenthesizedExpression_LeftParenthesisKeyword_0_p(semanticObject, getLastNavigableState(), syntaxNodes);
+			else acceptNodes(getLastNavigableState(), syntaxNodes);
+		}
+	}
+
+	/**
+	 * Syntax:
+	 *     'all' | ('{' '}')
+	 */
+	protected void emit_DatamartTableDetail_AllKeyword_3_0_or___LeftCurlyBracketKeyword_3_1_0_RightCurlyBracketKeyword_3_1_2__(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
+		acceptNodes(transition, nodes);
+	}
+	
+	/**
+	 * Syntax:
+	 *     ('intervals' '{' '}' ('lookups' '{' '}')*)*
+	 */
+	protected void emit_DatamartTableProperty___IntervalsKeyword_1_2_0_LeftCurlyBracketKeyword_1_2_2_RightCurlyBracketKeyword_1_2_4___LookupsKeyword_1_3_0_LeftCurlyBracketKeyword_1_3_2_RightCurlyBracketKeyword_1_3_4__a__a(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
+		acceptNodes(transition, nodes);
+	}
+	
+	/**
+	 * Syntax:
+	 *     ('intervals' '{' '}')*
+	 */
+	protected void emit_DatamartTableProperty___IntervalsKeyword_1_2_0_LeftCurlyBracketKeyword_1_2_2_RightCurlyBracketKeyword_1_2_4__a(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
+		acceptNodes(transition, nodes);
+	}
+	
+	/**
+	 * Syntax:
+	 *     (
+	     ('intervals' '{' ('}' 'intervals' '{')*) | 
+	     (
+	         ('intervals' '{' ('}' 'intervals' '{')* '}')? 
+	         ('lookups' '{' '}')+ 
+	         'intervals' 
+	         '{' 
+	         ('}' 'intervals' '{')* 
+	         ('}' ('lookups' '{' '}')+ 'intervals' '{' ('}' 'intervals' '{')*)*
+	     )
+	 )
+	 */
+	protected void emit_DatamartTableProperty___IntervalsKeyword_1_2_0_LeftCurlyBracketKeyword_1_2_2___RightCurlyBracketKeyword_1_2_4_IntervalsKeyword_1_2_0_LeftCurlyBracketKeyword_1_2_2__a___or_____IntervalsKeyword_1_2_0_LeftCurlyBracketKeyword_1_2_2___RightCurlyBracketKeyword_1_2_4_IntervalsKeyword_1_2_0_LeftCurlyBracketKeyword_1_2_2__a_RightCurlyBracketKeyword_1_2_4__q___LookupsKeyword_1_3_0_LeftCurlyBracketKeyword_1_3_2_RightCurlyBracketKeyword_1_3_4__p_IntervalsKeyword_1_2_0_LeftCurlyBracketKeyword_1_2_2___RightCurlyBracketKeyword_1_2_4_IntervalsKeyword_1_2_0_LeftCurlyBracketKeyword_1_2_2__a___RightCurlyBracketKeyword_1_2_4___LookupsKeyword_1_3_0_LeftCurlyBracketKeyword_1_3_2_RightCurlyBracketKeyword_1_3_4__p_IntervalsKeyword_1_2_0_LeftCurlyBracketKeyword_1_2_2___RightCurlyBracketKeyword_1_2_4_IntervalsKeyword_1_2_0_LeftCurlyBracketKeyword_1_2_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_DatamartTableProperty___IntervalsKeyword_1_2_0___LeftCurlyBracketKeyword_1_2_2_RightCurlyBracketKeyword_1_2_4_IntervalsKeyword_1_2_0__a_LeftCurlyBracketKeyword_1_2_2_RightCurlyBracketKeyword_1_2_4_LookupsKeyword_1_3_0_LeftCurlyBracketKeyword_1_3_2_RightCurlyBracketKeyword_1_3_4___LookupsKeyword_1_3_0_LeftCurlyBracketKeyword_1_3_2_RightCurlyBracketKeyword_1_3_4__a___IntervalsKeyword_1_2_0___LeftCurlyBracketKeyword_1_2_2_RightCurlyBracketKeyword_1_2_4_IntervalsKeyword_1_2_0__a_LeftCurlyBracketKeyword_1_2_2_RightCurlyBracketKeyword_1_2_4_LookupsKeyword_1_3_0_LeftCurlyBracketKeyword_1_3_2_RightCurlyBracketKeyword_1_3_4___LookupsKeyword_1_3_0_LeftCurlyBracketKeyword_1_3_2_RightCurlyBracketKeyword_1_3_4__a__a___IntervalsKeyword_1_2_0_or___IntervalsKeyword_1_2_0___LeftCurlyBracketKeyword_1_2_2_RightCurlyBracketKeyword_1_2_4_IntervalsKeyword_1_2_0__a_LeftCurlyBracketKeyword_1_2_2_RightCurlyBracketKeyword_1_2_4_IntervalsKeyword_1_2_0_______or___IntervalsKeyword_1_2_0_or___IntervalsKeyword_1_2_0___LeftCurlyBracketKeyword_1_2_2_RightCurlyBracketKeyword_1_2_4_IntervalsKeyword_1_2_0__a_LeftCurlyBracketKeyword_1_2_2_RightCurlyBracketKeyword_1_2_4_IntervalsKeyword_1_2_0____(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
+		acceptNodes(transition, nodes);
+	}
+	
+	/**
+	 * Syntax:
+	 *     ('{' '}' ('lookups' '{' '}')* 'intervals')*
+	 */
+	protected void emit_DatamartTableProperty___LeftCurlyBracketKeyword_1_2_2_RightCurlyBracketKeyword_1_2_4___LookupsKeyword_1_3_0_LeftCurlyBracketKeyword_1_3_2_RightCurlyBracketKeyword_1_3_4__a_IntervalsKeyword_1_2_0__a(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
+		acceptNodes(transition, nodes);
+	}
+	
+	/**
+	 * Syntax:
+	 *     ('{' '}' ('lookups' '{' '}')* 'intervals')+
+	 */
+	protected void emit_DatamartTableProperty___LeftCurlyBracketKeyword_1_2_2_RightCurlyBracketKeyword_1_2_4___LookupsKeyword_1_3_0_LeftCurlyBracketKeyword_1_3_2_RightCurlyBracketKeyword_1_3_4__a_IntervalsKeyword_1_2_0__p(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
+		acceptNodes(transition, nodes);
+	}
+	
+	/**
+	 * Syntax:
+	 *     ('{' '}' ('intervals' '{' '}')* 'lookups')*
+	 */
+	protected void emit_DatamartTableProperty___LeftCurlyBracketKeyword_1_3_2_RightCurlyBracketKeyword_1_3_4___IntervalsKeyword_1_2_0_LeftCurlyBracketKeyword_1_2_2_RightCurlyBracketKeyword_1_2_4__a_LookupsKeyword_1_3_0__a(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
+		acceptNodes(transition, nodes);
+	}
+	
+	/**
+	 * Syntax:
+	 *     ('{' '}' ('intervals' '{' '}')* 'lookups')+
+	 */
+	protected void emit_DatamartTableProperty___LeftCurlyBracketKeyword_1_3_2_RightCurlyBracketKeyword_1_3_4___IntervalsKeyword_1_2_0_LeftCurlyBracketKeyword_1_2_2_RightCurlyBracketKeyword_1_2_4__a_LookupsKeyword_1_3_0__p(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
+		acceptNodes(transition, nodes);
+	}
+	
+	/**
+	 * Syntax:
+	 *     ('lookups' '{' '}' ('intervals' '{' '}')*)*
+	 */
+	protected void emit_DatamartTableProperty___LookupsKeyword_1_3_0_LeftCurlyBracketKeyword_1_3_2_RightCurlyBracketKeyword_1_3_4___IntervalsKeyword_1_2_0_LeftCurlyBracketKeyword_1_2_2_RightCurlyBracketKeyword_1_2_4__a__a(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
+		acceptNodes(transition, nodes);
+	}
+	
+	/**
+	 * Syntax:
+	 *     ('lookups' '{' '}')*
+	 */
+	protected void emit_DatamartTableProperty___LookupsKeyword_1_3_0_LeftCurlyBracketKeyword_1_3_2_RightCurlyBracketKeyword_1_3_4__a(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
+		acceptNodes(transition, nodes);
+	}
+	
+	/**
+	 * Syntax:
+	 *     (
+	     ('lookups' '{' ('}' 'lookups' '{')*) | 
+	     (
+	         ('lookups' '{' ('}' 'lookups' '{')* '}')? 
+	         ('intervals' '{' '}')+ 
+	         'lookups' 
+	         '{' 
+	         ('}' 'lookups' '{')* 
+	         ('}' ('intervals' '{' '}')+ 'lookups' '{' ('}' 'lookups' '{')*)*
+	     )
+	 )
+	 */
+	protected void emit_DatamartTableProperty___LookupsKeyword_1_3_0_LeftCurlyBracketKeyword_1_3_2___RightCurlyBracketKeyword_1_3_4_LookupsKeyword_1_3_0_LeftCurlyBracketKeyword_1_3_2__a___or_____LookupsKeyword_1_3_0_LeftCurlyBracketKeyword_1_3_2___RightCurlyBracketKeyword_1_3_4_LookupsKeyword_1_3_0_LeftCurlyBracketKeyword_1_3_2__a_RightCurlyBracketKeyword_1_3_4__q___IntervalsKeyword_1_2_0_LeftCurlyBracketKeyword_1_2_2_RightCurlyBracketKeyword_1_2_4__p_LookupsKeyword_1_3_0_LeftCurlyBracketKeyword_1_3_2___RightCurlyBracketKeyword_1_3_4_LookupsKeyword_1_3_0_LeftCurlyBracketKeyword_1_3_2__a___RightCurlyBracketKeyword_1_3_4___IntervalsKeyword_1_2_0_LeftCurlyBracketKeyword_1_2_2_RightCurlyBracketKeyword_1_2_4__p_LookupsKeyword_1_3_0_LeftCurlyBracketKeyword_1_3_2___RightCurlyBracketKeyword_1_3_4_LookupsKeyword_1_3_0_LeftCurlyBracketKeyword_1_3_2__a__a__(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
+		acceptNodes(transition, nodes);
+	}
+	
+	/**
+	 * Syntax:
+	 *     (
+	     (
+	         'lookups' 
+	         ('{' '}' 'lookups')* 
+	         '{' 
+	         '}' 
+	         'intervals' 
+	         '{' 
+	         '}' 
+	         ('intervals' '{' '}')* 
+	         (
+	             'lookups' 
+	             ('{' '}' 'lookups')* 
+	             '{' 
+	             '}' 
+	             'intervals' 
+	             '{' 
+	             '}' 
+	             ('intervals' '{' '}')*
+	         )* 
+	         ('lookups' | ('lookups' ('{' '}' 'lookups')* '{' '}' 'lookups'))
+	     ) | 
+	     ('lookups' | ('lookups' ('{' '}' 'lookups')* '{' '}' 'lookups'))
+	 )
+	 */
+	protected void emit_DatamartTableProperty___LookupsKeyword_1_3_0___LeftCurlyBracketKeyword_1_3_2_RightCurlyBracketKeyword_1_3_4_LookupsKeyword_1_3_0__a_LeftCurlyBracketKeyword_1_3_2_RightCurlyBracketKeyword_1_3_4_IntervalsKeyword_1_2_0_LeftCurlyBracketKeyword_1_2_2_RightCurlyBracketKeyword_1_2_4___IntervalsKeyword_1_2_0_LeftCurlyBracketKeyword_1_2_2_RightCurlyBracketKeyword_1_2_4__a___LookupsKeyword_1_3_0___LeftCurlyBracketKeyword_1_3_2_RightCurlyBracketKeyword_1_3_4_LookupsKeyword_1_3_0__a_LeftCurlyBracketKeyword_1_3_2_RightCurlyBracketKeyword_1_3_4_IntervalsKeyword_1_2_0_LeftCurlyBracketKeyword_1_2_2_RightCurlyBracketKeyword_1_2_4___IntervalsKeyword_1_2_0_LeftCurlyBracketKeyword_1_2_2_RightCurlyBracketKeyword_1_2_4__a__a___LookupsKeyword_1_3_0_or___LookupsKeyword_1_3_0___LeftCurlyBracketKeyword_1_3_2_RightCurlyBracketKeyword_1_3_4_LookupsKeyword_1_3_0__a_LeftCurlyBracketKeyword_1_3_2_RightCurlyBracketKeyword_1_3_4_LookupsKeyword_1_3_0_______or___LookupsKeyword_1_3_0_or___LookupsKeyword_1_3_0___LeftCurlyBracketKeyword_1_3_2_RightCurlyBracketKeyword_1_3_4_LookupsKeyword_1_3_0__a_LeftCurlyBracketKeyword_1_3_2_RightCurlyBracketKeyword_1_3_4_LookupsKeyword_1_3_0____(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
+		acceptNodes(transition, nodes);
+	}
+	
+	/**
+	 * Syntax:
+	 *     ('}' ('lookups' '{' '}')* 'intervals' '{')*
+	 */
+	protected void emit_DatamartTableProperty___RightCurlyBracketKeyword_1_2_4___LookupsKeyword_1_3_0_LeftCurlyBracketKeyword_1_3_2_RightCurlyBracketKeyword_1_3_4__a_IntervalsKeyword_1_2_0_LeftCurlyBracketKeyword_1_2_2__a(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
+		acceptNodes(transition, nodes);
+	}
+	
+	/**
+	 * Syntax:
+	 *     ('}' ('intervals' '{' '}')* 'lookups' '{')*
+	 */
+	protected void emit_DatamartTableProperty___RightCurlyBracketKeyword_1_3_4___IntervalsKeyword_1_2_0_LeftCurlyBracketKeyword_1_2_2_RightCurlyBracketKeyword_1_2_4__a_LookupsKeyword_1_3_0_LeftCurlyBracketKeyword_1_3_2__a(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
+		acceptNodes(transition, nodes);
+	}
+	
+	/**
+	 * Syntax:
+	 *     (('intervals' '{' '}') | ('lookups' '{' '}'))*
+	 */
+	protected void emit_DatamartTableProperty_____IntervalsKeyword_1_2_0_LeftCurlyBracketKeyword_1_2_2_RightCurlyBracketKeyword_1_2_4___or___LookupsKeyword_1_3_0_LeftCurlyBracketKeyword_1_3_2_RightCurlyBracketKeyword_1_3_4____a(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
+		acceptNodes(transition, nodes);
+	}
+	
+	/**
+	 * Syntax:
+	 *     (
+	     ('intervals' '{' '}')? 
+	     (
+	         'intervals' 
+	         '{' 
+	         '}' 
+	         'lookups' 
+	         '{' 
+	         '}'
+	     )?
+	 )+
+	 */
+	protected void emit_DatamartTableProperty_____IntervalsKeyword_1_2_0_LeftCurlyBracketKeyword_1_2_2_RightCurlyBracketKeyword_1_2_4__q___IntervalsKeyword_1_2_0_LeftCurlyBracketKeyword_1_2_2_RightCurlyBracketKeyword_1_2_4_LookupsKeyword_1_3_0_LeftCurlyBracketKeyword_1_3_2_RightCurlyBracketKeyword_1_3_4__q__p(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
+		acceptNodes(transition, nodes);
+	}
+	
+	/**
+	 * Syntax:
+	 *     (
+	     ('lookups' '{' '}')? 
+	     (
+	         'lookups' 
+	         '{' 
+	         '}' 
+	         'intervals' 
+	         '{' 
+	         '}'
+	     )?
+	 )+
+	 */
+	protected void emit_DatamartTableProperty_____LookupsKeyword_1_3_0_LeftCurlyBracketKeyword_1_3_2_RightCurlyBracketKeyword_1_3_4__q___LookupsKeyword_1_3_0_LeftCurlyBracketKeyword_1_3_2_RightCurlyBracketKeyword_1_3_4_IntervalsKeyword_1_2_0_LeftCurlyBracketKeyword_1_2_2_RightCurlyBracketKeyword_1_2_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_DatamartTableProperty_____RightCurlyBracketKeyword_1_2_4_LookupsKeyword_1_3_0_LeftCurlyBracketKeyword_1_3_2_RightCurlyBracketKeyword_1_3_4___LookupsKeyword_1_3_0_LeftCurlyBracketKeyword_1_3_2_RightCurlyBracketKeyword_1_3_4__a___LookupsKeyword_1_3_0_or___IntervalsKeyword_1_2_0_LeftCurlyBracketKeyword_1_2_2___RightCurlyBracketKeyword_1_2_4_IntervalsKeyword_1_2_0_LeftCurlyBracketKeyword_1_2_2__a_RightCurlyBracketKeyword_1_2_4_LookupsKeyword_1_3_0_______or_____RightCurlyBracketKeyword_1_2_4_IntervalsKeyword_1_2_0_LeftCurlyBracketKeyword_1_2_2___RightCurlyBracketKeyword_1_2_4_IntervalsKeyword_1_2_0_LeftCurlyBracketKeyword_1_2_2__a_RightCurlyBracketKeyword_1_2_4_LookupsKeyword_1_3_0___or___RightCurlyBracketKeyword_1_2_4_LookupsKeyword_1_3_0_______or_______RightCurlyBracketKeyword_1_2_4_IntervalsKeyword_1_2_0_LeftCurlyBracketKeyword_1_2_2___RightCurlyBracketKeyword_1_2_4_IntervalsKeyword_1_2_0_LeftCurlyBracketKeyword_1_2_2__a___or___RightCurlyBracketKeyword_1_2_4_LookupsKeyword_1_3_0_LeftCurlyBracketKeyword_1_3_2_RightCurlyBracketKeyword_1_3_4___LookupsKeyword_1_3_0_LeftCurlyBracketKeyword_1_3_2_RightCurlyBracketKeyword_1_3_4__a_IntervalsKeyword_1_2_0_LeftCurlyBracketKeyword_1_2_2___RightCurlyBracketKeyword_1_2_4_IntervalsKeyword_1_2_0_LeftCurlyBracketKeyword_1_2_2__a_____RightCurlyBracketKeyword_1_2_4_LookupsKeyword_1_3_0_LeftCurlyBracketKeyword_1_3_2_RightCurlyBracketKeyword_1_3_4___LookupsKeyword_1_3_0_LeftCurlyBracketKeyword_1_3_2_RightCurlyBracketKeyword_1_3_4__a___IntervalsKeyword_1_2_0_LeftCurlyBracketKeyword_1_2_2___RightCurlyBracketKeyword_1_2_4_IntervalsKeyword_1_2_0_LeftCurlyBracketKeyword_1_2_2__a_RightCurlyBracketKeyword_1_2_4_LookupsKeyword_1_3_0_LeftCurlyBracketKeyword_1_3_2_RightCurlyBracketKeyword_1_3_4___LookupsKeyword_1_3_0_LeftCurlyBracketKeyword_1_3_2_RightCurlyBracketKeyword_1_3_4__a__a___LookupsKeyword_1_3_0_or___IntervalsKeyword_1_2_0_LeftCurlyBracketKeyword_1_2_2___RightCurlyBracketKeyword_1_2_4_IntervalsKeyword_1_2_0_LeftCurlyBracketKeyword_1_2_2__a_RightCurlyBracketKeyword_1_2_4_LookupsKeyword_1_3_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_DatamartTableProperty_____RightCurlyBracketKeyword_1_3_4_IntervalsKeyword_1_2_0_LeftCurlyBracketKeyword_1_2_2_RightCurlyBracketKeyword_1_2_4___IntervalsKeyword_1_2_0_LeftCurlyBracketKeyword_1_2_2_RightCurlyBracketKeyword_1_2_4__a___IntervalsKeyword_1_2_0_or___LookupsKeyword_1_3_0_LeftCurlyBracketKeyword_1_3_2___RightCurlyBracketKeyword_1_3_4_LookupsKeyword_1_3_0_LeftCurlyBracketKeyword_1_3_2__a_RightCurlyBracketKeyword_1_3_4_IntervalsKeyword_1_2_0_______or_____RightCurlyBracketKeyword_1_3_4_IntervalsKeyword_1_2_0___or___RightCurlyBracketKeyword_1_3_4_LookupsKeyword_1_3_0_LeftCurlyBracketKeyword_1_3_2___RightCurlyBracketKeyword_1_3_4_LookupsKeyword_1_3_0_LeftCurlyBracketKeyword_1_3_2__a_RightCurlyBracketKeyword_1_3_4_IntervalsKeyword_1_2_0_______or_______RightCurlyBracketKeyword_1_3_4_IntervalsKeyword_1_2_0_LeftCurlyBracketKeyword_1_2_2_RightCurlyBracketKeyword_1_2_4___IntervalsKeyword_1_2_0_LeftCurlyBracketKeyword_1_2_2_RightCurlyBracketKeyword_1_2_4__a_LookupsKeyword_1_3_0_LeftCurlyBracketKeyword_1_3_2___RightCurlyBracketKeyword_1_3_4_LookupsKeyword_1_3_0_LeftCurlyBracketKeyword_1_3_2__a___or___RightCurlyBracketKeyword_1_3_4_LookupsKeyword_1_3_0_LeftCurlyBracketKeyword_1_3_2___RightCurlyBracketKeyword_1_3_4_LookupsKeyword_1_3_0_LeftCurlyBracketKeyword_1_3_2__a_____RightCurlyBracketKeyword_1_3_4_IntervalsKeyword_1_2_0_LeftCurlyBracketKeyword_1_2_2_RightCurlyBracketKeyword_1_2_4___IntervalsKeyword_1_2_0_LeftCurlyBracketKeyword_1_2_2_RightCurlyBracketKeyword_1_2_4__a___LookupsKeyword_1_3_0_LeftCurlyBracketKeyword_1_3_2___RightCurlyBracketKeyword_1_3_4_LookupsKeyword_1_3_0_LeftCurlyBracketKeyword_1_3_2__a_RightCurlyBracketKeyword_1_3_4_IntervalsKeyword_1_2_0_LeftCurlyBracketKeyword_1_2_2_RightCurlyBracketKeyword_1_2_4___IntervalsKeyword_1_2_0_LeftCurlyBracketKeyword_1_2_2_RightCurlyBracketKeyword_1_2_4__a__a___IntervalsKeyword_1_2_0_or___LookupsKeyword_1_3_0_LeftCurlyBracketKeyword_1_3_2___RightCurlyBracketKeyword_1_3_4_LookupsKeyword_1_3_0_LeftCurlyBracketKeyword_1_3_2__a_RightCurlyBracketKeyword_1_3_4_IntervalsKeyword_1_2_0______(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
+		acceptNodes(transition, nodes);
+	}
+	
+	/**
+	 * Syntax:
+	 *     '}'*
+	 */
+	protected void emit_Font_RightCurlyBracketKeyword_3_1_a(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
+		acceptNodes(transition, nodes);
+	}
+	
+	/**
+	 * Syntax:
+	 *     '}'+
+	 */
+	protected void emit_Font_RightCurlyBracketKeyword_3_1_p(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
+		acceptNodes(transition, nodes);
+	}
+	
+	/**
+	 * Syntax:
+	 *     ('(' ')')?
+	 */
+	protected void emit_XAnnotation___LeftParenthesisKeyword_3_0_RightParenthesisKeyword_3_2__q(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
+		acceptNodes(transition, nodes);
+	}
+	
+	/**
+	 * Syntax:
+	 *     ';'?
+	 */
+	protected void emit_XBlockExpression_SemicolonKeyword_2_1_q(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
+		acceptNodes(transition, nodes);
+	}
+	
+	/**
+	 * Syntax:
+	 *     ';'?
+	 */
+	protected void emit_XExpressionInClosure_SemicolonKeyword_1_1_q(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
+		acceptNodes(transition, nodes);
+	}
+	
+	/**
+	 * Syntax:
+	 *     ('(' ')')?
+	 */
+	protected void emit_XFunctionTypeRef___LeftParenthesisKeyword_0_0_RightParenthesisKeyword_0_2__q(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
+		acceptNodes(transition, nodes);
+	}
+	
+	/**
+	 * Syntax:
+	 *     ';'?
+	 */
+	protected void emit_XImportDeclaration_SemicolonKeyword_2_q(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
+		acceptNodes(transition, nodes);
+	}
+	
+	/**
+	 * Syntax:
+	 *     '('*
+	 */
+	protected void emit_XParenthesizedExpression_LeftParenthesisKeyword_0_a(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
+		acceptNodes(transition, nodes);
+	}
+	
+	/**
+	 * Syntax:
+	 *     '('+
+	 */
+	protected void emit_XParenthesizedExpression_LeftParenthesisKeyword_0_p(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
+		acceptNodes(transition, nodes);
+	}
+	
+}
diff --git a/org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/services/ReportDSLGrammarAccess.java b/org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/services/ReportDSLGrammarAccess.java
new file mode 100644
index 0000000..5a9f78d
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/services/ReportDSLGrammarAccess.java
@@ -0,0 +1,7886 @@
+/**
+ *                                                                            
+ *  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.reportdsl.services;
+
+import com.google.inject.Singleton;
+import com.google.inject.Inject;
+
+import java.util.List;
+
+import org.eclipse.xtext.*;
+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;
+
+@Singleton
+public class ReportDSLGrammarAccess extends AbstractGrammarElementFinder {
+	
+	
+	public class ReportModelElements extends AbstractParserRuleElementFinder {
+		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "ReportModel");
+		private final Assignment cPckgAssignment = (Assignment)rule.eContents().get(1);
+		private final RuleCall cPckgReportPackageParserRuleCall_0 = (RuleCall)cPckgAssignment.eContents().get(0);
+		
+		//ReportModel:
+		//	pckg+=ReportPackage*;
+		public ParserRule getRule() { return rule; }
+
+		//pckg+=ReportPackage*
+		public Assignment getPckgAssignment() { return cPckgAssignment; }
+
+		//ReportPackage
+		public RuleCall getPckgReportPackageParserRuleCall_0() { return cPckgReportPackageParserRuleCall_0; }
+	}
+
+	public class ReportPackageElements extends AbstractParserRuleElementFinder {
+		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "ReportPackage");
+		private final Group cGroup = (Group)rule.eContents().get(1);
+		private final Action cReportPackageAction_0 = (Action)cGroup.eContents().get(0);
+		private final Keyword cPackageKeyword_1 = (Keyword)cGroup.eContents().get(1);
+		private final Assignment cNameAssignment_2 = (Assignment)cGroup.eContents().get(2);
+		private final RuleCall cNameQualifiedNameParserRuleCall_2_0 = (RuleCall)cNameAssignment_2.eContents().get(0);
+		private final Keyword cLeftCurlyBracketKeyword_3 = (Keyword)cGroup.eContents().get(3);
+		private final Assignment cImportsAssignment_4 = (Assignment)cGroup.eContents().get(4);
+		private final RuleCall cImportsReportImportParserRuleCall_4_0 = (RuleCall)cImportsAssignment_4.eContents().get(0);
+		private final Group cGroup_5 = (Group)cGroup.eContents().get(5);
+		private final Keyword cLayoutDataKeyword_5_0 = (Keyword)cGroup_5.eContents().get(0);
+		private final Keyword cLeftCurlyBracketKeyword_5_1 = (Keyword)cGroup_5.eContents().get(1);
+		private final Group cGroup_5_2 = (Group)cGroup_5.eContents().get(2);
+		private final Keyword cExternalCssURIKeyword_5_2_0 = (Keyword)cGroup_5_2.eContents().get(0);
+		private final Assignment cExternalCssURIAssignment_5_2_1 = (Assignment)cGroup_5_2.eContents().get(1);
+		private final RuleCall cExternalCssURISTRINGTerminalRuleCall_5_2_1_0 = (RuleCall)cExternalCssURIAssignment_5_2_1.eContents().get(0);
+		private final Group cGroup_5_2_2 = (Group)cGroup_5_2.eContents().get(2);
+		private final Keyword cFromBundleKeyword_5_2_2_0 = (Keyword)cGroup_5_2_2.eContents().get(0);
+		private final Assignment cExternalCssURIBundleAssignment_5_2_2_1 = (Assignment)cGroup_5_2_2.eContents().get(1);
+		private final RuleCall cExternalCssURIBundleSTRINGTerminalRuleCall_5_2_2_1_0 = (RuleCall)cExternalCssURIBundleAssignment_5_2_2_1.eContents().get(0);
+		private final Assignment cPagetemplatesAssignment_5_3 = (Assignment)cGroup_5.eContents().get(3);
+		private final RuleCall cPagetemplatesPageTemplatesParserRuleCall_5_3_0 = (RuleCall)cPagetemplatesAssignment_5_3.eContents().get(0);
+		private final Assignment cFormattersAssignment_5_4 = (Assignment)cGroup_5.eContents().get(4);
+		private final RuleCall cFormattersSomeFormatsParserRuleCall_5_4_0 = (RuleCall)cFormattersAssignment_5_4.eContents().get(0);
+		private final Assignment cColorsAssignment_5_5 = (Assignment)cGroup_5.eContents().get(5);
+		private final RuleCall cColorsColorsParserRuleCall_5_5_0 = (RuleCall)cColorsAssignment_5_5.eContents().get(0);
+		private final Assignment cFontsAssignment_5_6 = (Assignment)cGroup_5.eContents().get(6);
+		private final RuleCall cFontsFontsParserRuleCall_5_6_0 = (RuleCall)cFontsAssignment_5_6.eContents().get(0);
+		private final Assignment cMediasAssignment_5_7 = (Assignment)cGroup_5.eContents().get(7);
+		private final RuleCall cMediasMediasParserRuleCall_5_7_0 = (RuleCall)cMediasAssignment_5_7.eContents().get(0);
+		private final Assignment cStylesAssignment_5_8 = (Assignment)cGroup_5.eContents().get(8);
+		private final RuleCall cStylesStylesParserRuleCall_5_8_0 = (RuleCall)cStylesAssignment_5_8.eContents().get(0);
+		private final Keyword cRightCurlyBracketKeyword_5_9 = (Keyword)cGroup_5.eContents().get(9);
+		private final Assignment cReportsAssignment_6 = (Assignment)cGroup.eContents().get(6);
+		private final RuleCall cReportsReportParserRuleCall_6_0 = (RuleCall)cReportsAssignment_6.eContents().get(0);
+		private final Keyword cRightCurlyBracketKeyword_7 = (Keyword)cGroup.eContents().get(7);
+		
+		//ReportPackage:
+		//	{ReportPackage} "package" name=QualifiedName "{" imports+=ReportImport* ("layout-data" "{" ("externalCssURI"
+		//	externalCssURI=STRING ("from bundle" externalCssURIBundle=STRING)?)? pagetemplates=PageTemplates
+		//	formatters=SomeFormats colors=Colors fonts=Fonts medias=Medias styles=Styles "}")? reports+=Report* "}";
+		public ParserRule getRule() { return rule; }
+
+		//{ReportPackage} "package" name=QualifiedName "{" imports+=ReportImport* ("layout-data" "{" ("externalCssURI"
+		//externalCssURI=STRING ("from bundle" externalCssURIBundle=STRING)?)? pagetemplates=PageTemplates
+		//formatters=SomeFormats colors=Colors fonts=Fonts medias=Medias styles=Styles "}")? reports+=Report* "}"
+		public Group getGroup() { return cGroup; }
+
+		//{ReportPackage}
+		public Action getReportPackageAction_0() { return cReportPackageAction_0; }
+
+		//"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; }
+
+		//"{"
+		public Keyword getLeftCurlyBracketKeyword_3() { return cLeftCurlyBracketKeyword_3; }
+
+		//imports+=ReportImport*
+		public Assignment getImportsAssignment_4() { return cImportsAssignment_4; }
+
+		//ReportImport
+		public RuleCall getImportsReportImportParserRuleCall_4_0() { return cImportsReportImportParserRuleCall_4_0; }
+
+		//("layout-data" "{" ("externalCssURI" externalCssURI=STRING ("from bundle" externalCssURIBundle=STRING)?)?
+		//pagetemplates=PageTemplates formatters=SomeFormats colors=Colors fonts=Fonts medias=Medias styles=Styles "}")?
+		public Group getGroup_5() { return cGroup_5; }
+
+		//"layout-data"
+		public Keyword getLayoutDataKeyword_5_0() { return cLayoutDataKeyword_5_0; }
+
+		//"{"
+		public Keyword getLeftCurlyBracketKeyword_5_1() { return cLeftCurlyBracketKeyword_5_1; }
+
+		//("externalCssURI" externalCssURI=STRING ("from bundle" externalCssURIBundle=STRING)?)?
+		public Group getGroup_5_2() { return cGroup_5_2; }
+
+		//"externalCssURI"
+		public Keyword getExternalCssURIKeyword_5_2_0() { return cExternalCssURIKeyword_5_2_0; }
+
+		//externalCssURI=STRING
+		public Assignment getExternalCssURIAssignment_5_2_1() { return cExternalCssURIAssignment_5_2_1; }
+
+		//STRING
+		public RuleCall getExternalCssURISTRINGTerminalRuleCall_5_2_1_0() { return cExternalCssURISTRINGTerminalRuleCall_5_2_1_0; }
+
+		//("from bundle" externalCssURIBundle=STRING)?
+		public Group getGroup_5_2_2() { return cGroup_5_2_2; }
+
+		//"from bundle"
+		public Keyword getFromBundleKeyword_5_2_2_0() { return cFromBundleKeyword_5_2_2_0; }
+
+		//externalCssURIBundle=STRING
+		public Assignment getExternalCssURIBundleAssignment_5_2_2_1() { return cExternalCssURIBundleAssignment_5_2_2_1; }
+
+		//STRING
+		public RuleCall getExternalCssURIBundleSTRINGTerminalRuleCall_5_2_2_1_0() { return cExternalCssURIBundleSTRINGTerminalRuleCall_5_2_2_1_0; }
+
+		//pagetemplates=PageTemplates
+		public Assignment getPagetemplatesAssignment_5_3() { return cPagetemplatesAssignment_5_3; }
+
+		//PageTemplates
+		public RuleCall getPagetemplatesPageTemplatesParserRuleCall_5_3_0() { return cPagetemplatesPageTemplatesParserRuleCall_5_3_0; }
+
+		//formatters=SomeFormats
+		public Assignment getFormattersAssignment_5_4() { return cFormattersAssignment_5_4; }
+
+		//SomeFormats
+		public RuleCall getFormattersSomeFormatsParserRuleCall_5_4_0() { return cFormattersSomeFormatsParserRuleCall_5_4_0; }
+
+		//colors=Colors
+		public Assignment getColorsAssignment_5_5() { return cColorsAssignment_5_5; }
+
+		//Colors
+		public RuleCall getColorsColorsParserRuleCall_5_5_0() { return cColorsColorsParserRuleCall_5_5_0; }
+
+		//fonts=Fonts
+		public Assignment getFontsAssignment_5_6() { return cFontsAssignment_5_6; }
+
+		//Fonts
+		public RuleCall getFontsFontsParserRuleCall_5_6_0() { return cFontsFontsParserRuleCall_5_6_0; }
+
+		//medias=Medias
+		public Assignment getMediasAssignment_5_7() { return cMediasAssignment_5_7; }
+
+		//Medias
+		public RuleCall getMediasMediasParserRuleCall_5_7_0() { return cMediasMediasParserRuleCall_5_7_0; }
+
+		//styles=Styles
+		public Assignment getStylesAssignment_5_8() { return cStylesAssignment_5_8; }
+
+		//Styles
+		public RuleCall getStylesStylesParserRuleCall_5_8_0() { return cStylesStylesParserRuleCall_5_8_0; }
+
+		//"}"
+		public Keyword getRightCurlyBracketKeyword_5_9() { return cRightCurlyBracketKeyword_5_9; }
+
+		//reports+=Report*
+		public Assignment getReportsAssignment_6() { return cReportsAssignment_6; }
+
+		//Report
+		public RuleCall getReportsReportParserRuleCall_6_0() { return cReportsReportParserRuleCall_6_0; }
+
+		//"}"
+		public Keyword getRightCurlyBracketKeyword_7() { return cRightCurlyBracketKeyword_7; }
+	}
+
+	public class PageTemplatesElements extends AbstractParserRuleElementFinder {
+		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "PageTemplates");
+		private final Group cGroup = (Group)rule.eContents().get(1);
+		private final Action cPageTemplatesAction_0 = (Action)cGroup.eContents().get(0);
+		private final Assignment cPagetemplatesAssignment_1 = (Assignment)cGroup.eContents().get(1);
+		private final RuleCall cPagetemplatesPageTemplateParserRuleCall_1_0 = (RuleCall)cPagetemplatesAssignment_1.eContents().get(0);
+		
+		//PageTemplates:
+		//	{PageTemplates} pagetemplates+=PageTemplate*;
+		public ParserRule getRule() { return rule; }
+
+		//{PageTemplates} pagetemplates+=PageTemplate*
+		public Group getGroup() { return cGroup; }
+
+		//{PageTemplates}
+		public Action getPageTemplatesAction_0() { return cPageTemplatesAction_0; }
+
+		//pagetemplates+=PageTemplate*
+		public Assignment getPagetemplatesAssignment_1() { return cPagetemplatesAssignment_1; }
+
+		//PageTemplate
+		public RuleCall getPagetemplatesPageTemplateParserRuleCall_1_0() { return cPagetemplatesPageTemplateParserRuleCall_1_0; }
+	}
+
+	public class SomeFormatsElements extends AbstractParserRuleElementFinder {
+		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "SomeFormats");
+		private final Group cGroup = (Group)rule.eContents().get(1);
+		private final Action cSomeFormatsAction_0 = (Action)cGroup.eContents().get(0);
+		private final Keyword cFormattersKeyword_1 = (Keyword)cGroup.eContents().get(1);
+		private final Keyword cLeftCurlyBracketKeyword_2 = (Keyword)cGroup.eContents().get(2);
+		private final Assignment cFormattersAssignment_3 = (Assignment)cGroup.eContents().get(3);
+		private final RuleCall cFormattersSomeFormatParserRuleCall_3_0 = (RuleCall)cFormattersAssignment_3.eContents().get(0);
+		private final Keyword cRightCurlyBracketKeyword_4 = (Keyword)cGroup.eContents().get(4);
+		
+		//SomeFormats:
+		//	{SomeFormats} "formatters" "{" formatters+=SomeFormat* "}";
+		public ParserRule getRule() { return rule; }
+
+		//{SomeFormats} "formatters" "{" formatters+=SomeFormat* "}"
+		public Group getGroup() { return cGroup; }
+
+		//{SomeFormats}
+		public Action getSomeFormatsAction_0() { return cSomeFormatsAction_0; }
+
+		//"formatters"
+		public Keyword getFormattersKeyword_1() { return cFormattersKeyword_1; }
+
+		//"{"
+		public Keyword getLeftCurlyBracketKeyword_2() { return cLeftCurlyBracketKeyword_2; }
+
+		//formatters+=SomeFormat*
+		public Assignment getFormattersAssignment_3() { return cFormattersAssignment_3; }
+
+		//SomeFormat
+		public RuleCall getFormattersSomeFormatParserRuleCall_3_0() { return cFormattersSomeFormatParserRuleCall_3_0; }
+
+		//"}"
+		public Keyword getRightCurlyBracketKeyword_4() { return cRightCurlyBracketKeyword_4; }
+	}
+
+	public class ColorsElements extends AbstractParserRuleElementFinder {
+		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "Colors");
+		private final Group cGroup = (Group)rule.eContents().get(1);
+		private final Action cColorsAction_0 = (Action)cGroup.eContents().get(0);
+		private final Keyword cColorsKeyword_1 = (Keyword)cGroup.eContents().get(1);
+		private final Keyword cLeftCurlyBracketKeyword_2 = (Keyword)cGroup.eContents().get(2);
+		private final Assignment cColorsAssignment_3 = (Assignment)cGroup.eContents().get(3);
+		private final RuleCall cColorsColorParserRuleCall_3_0 = (RuleCall)cColorsAssignment_3.eContents().get(0);
+		private final Keyword cRightCurlyBracketKeyword_4 = (Keyword)cGroup.eContents().get(4);
+		
+		//Colors:
+		//	{Colors} "colors" "{" colors+=Color* "}";
+		public ParserRule getRule() { return rule; }
+
+		//{Colors} "colors" "{" colors+=Color* "}"
+		public Group getGroup() { return cGroup; }
+
+		//{Colors}
+		public Action getColorsAction_0() { return cColorsAction_0; }
+
+		//"colors"
+		public Keyword getColorsKeyword_1() { return cColorsKeyword_1; }
+
+		//"{"
+		public Keyword getLeftCurlyBracketKeyword_2() { return cLeftCurlyBracketKeyword_2; }
+
+		//colors+=Color*
+		public Assignment getColorsAssignment_3() { return cColorsAssignment_3; }
+
+		//Color
+		public RuleCall getColorsColorParserRuleCall_3_0() { return cColorsColorParserRuleCall_3_0; }
+
+		//"}"
+		public Keyword getRightCurlyBracketKeyword_4() { return cRightCurlyBracketKeyword_4; }
+	}
+
+	public class FontsElements extends AbstractParserRuleElementFinder {
+		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "Fonts");
+		private final Group cGroup = (Group)rule.eContents().get(1);
+		private final Action cFontsAction_0 = (Action)cGroup.eContents().get(0);
+		private final Keyword cFontsKeyword_1 = (Keyword)cGroup.eContents().get(1);
+		private final Keyword cLeftCurlyBracketKeyword_2 = (Keyword)cGroup.eContents().get(2);
+		private final Assignment cFontsAssignment_3 = (Assignment)cGroup.eContents().get(3);
+		private final RuleCall cFontsFontParserRuleCall_3_0 = (RuleCall)cFontsAssignment_3.eContents().get(0);
+		private final Keyword cRightCurlyBracketKeyword_4 = (Keyword)cGroup.eContents().get(4);
+		
+		//Fonts:
+		//	{Fonts} "fonts" "{" fonts+=Font* "}";
+		public ParserRule getRule() { return rule; }
+
+		//{Fonts} "fonts" "{" fonts+=Font* "}"
+		public Group getGroup() { return cGroup; }
+
+		//{Fonts}
+		public Action getFontsAction_0() { return cFontsAction_0; }
+
+		//"fonts"
+		public Keyword getFontsKeyword_1() { return cFontsKeyword_1; }
+
+		//"{"
+		public Keyword getLeftCurlyBracketKeyword_2() { return cLeftCurlyBracketKeyword_2; }
+
+		//fonts+=Font*
+		public Assignment getFontsAssignment_3() { return cFontsAssignment_3; }
+
+		//Font
+		public RuleCall getFontsFontParserRuleCall_3_0() { return cFontsFontParserRuleCall_3_0; }
+
+		//"}"
+		public Keyword getRightCurlyBracketKeyword_4() { return cRightCurlyBracketKeyword_4; }
+	}
+
+	public class MediasElements extends AbstractParserRuleElementFinder {
+		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "Medias");
+		private final Group cGroup = (Group)rule.eContents().get(1);
+		private final Action cMediasAction_0 = (Action)cGroup.eContents().get(0);
+		private final Keyword cMediasKeyword_1 = (Keyword)cGroup.eContents().get(1);
+		private final Keyword cLeftCurlyBracketKeyword_2 = (Keyword)cGroup.eContents().get(2);
+		private final Assignment cMediasAssignment_3 = (Assignment)cGroup.eContents().get(3);
+		private final RuleCall cMediasMediaParserRuleCall_3_0 = (RuleCall)cMediasAssignment_3.eContents().get(0);
+		private final Keyword cRightCurlyBracketKeyword_4 = (Keyword)cGroup.eContents().get(4);
+		
+		//Medias:
+		//	{Medias} "medias" "{" medias+=Media* "}";
+		public ParserRule getRule() { return rule; }
+
+		//{Medias} "medias" "{" medias+=Media* "}"
+		public Group getGroup() { return cGroup; }
+
+		//{Medias}
+		public Action getMediasAction_0() { return cMediasAction_0; }
+
+		//"medias"
+		public Keyword getMediasKeyword_1() { return cMediasKeyword_1; }
+
+		//"{"
+		public Keyword getLeftCurlyBracketKeyword_2() { return cLeftCurlyBracketKeyword_2; }
+
+		//medias+=Media*
+		public Assignment getMediasAssignment_3() { return cMediasAssignment_3; }
+
+		//Media
+		public RuleCall getMediasMediaParserRuleCall_3_0() { return cMediasMediaParserRuleCall_3_0; }
+
+		//"}"
+		public Keyword getRightCurlyBracketKeyword_4() { return cRightCurlyBracketKeyword_4; }
+	}
+
+	public class MediaElements extends AbstractParserRuleElementFinder {
+		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "Media");
+		private final Group cGroup = (Group)rule.eContents().get(1);
+		private final Keyword cMediaKeyword_0 = (Keyword)cGroup.eContents().get(0);
+		private final Assignment cNameAssignment_1 = (Assignment)cGroup.eContents().get(1);
+		private final RuleCall cNameIDTerminalRuleCall_1_0 = (RuleCall)cNameAssignment_1.eContents().get(0);
+		
+		//Media:
+		//	"media" name=ID;
+		public ParserRule getRule() { return rule; }
+
+		//"media" name=ID
+		public Group getGroup() { return cGroup; }
+
+		//"media"
+		public Keyword getMediaKeyword_0() { return cMediaKeyword_0; }
+
+		//name=ID
+		public Assignment getNameAssignment_1() { return cNameAssignment_1; }
+
+		//ID
+		public RuleCall getNameIDTerminalRuleCall_1_0() { return cNameIDTerminalRuleCall_1_0; }
+	}
+
+	public class StylesElements extends AbstractParserRuleElementFinder {
+		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "Styles");
+		private final Group cGroup = (Group)rule.eContents().get(1);
+		private final Action cStylesAction_0 = (Action)cGroup.eContents().get(0);
+		private final Keyword cStylesKeyword_1 = (Keyword)cGroup.eContents().get(1);
+		private final Keyword cLeftCurlyBracketKeyword_2 = (Keyword)cGroup.eContents().get(2);
+		private final Assignment cStylesAssignment_3 = (Assignment)cGroup.eContents().get(3);
+		private final RuleCall cStylesStyleParserRuleCall_3_0 = (RuleCall)cStylesAssignment_3.eContents().get(0);
+		private final Keyword cRightCurlyBracketKeyword_4 = (Keyword)cGroup.eContents().get(4);
+		
+		//Styles:
+		//	{Styles} "styles" "{" styles+=Style* "}";
+		public ParserRule getRule() { return rule; }
+
+		//{Styles} "styles" "{" styles+=Style* "}"
+		public Group getGroup() { return cGroup; }
+
+		//{Styles}
+		public Action getStylesAction_0() { return cStylesAction_0; }
+
+		//"styles"
+		public Keyword getStylesKeyword_1() { return cStylesKeyword_1; }
+
+		//"{"
+		public Keyword getLeftCurlyBracketKeyword_2() { return cLeftCurlyBracketKeyword_2; }
+
+		//styles+=Style*
+		public Assignment getStylesAssignment_3() { return cStylesAssignment_3; }
+
+		//Style
+		public RuleCall getStylesStyleParserRuleCall_3_0() { return cStylesStyleParserRuleCall_3_0; }
+
+		//"}"
+		public Keyword getRightCurlyBracketKeyword_4() { return cRightCurlyBracketKeyword_4; }
+	}
+
+	public class PageTemplateElements extends AbstractParserRuleElementFinder {
+		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "PageTemplate");
+		private final Group cGroup = (Group)rule.eContents().get(1);
+		private final Keyword cPagetemplateKeyword_0 = (Keyword)cGroup.eContents().get(0);
+		private final Assignment cNameAssignment_1 = (Assignment)cGroup.eContents().get(1);
+		private final RuleCall cNameIDTerminalRuleCall_1_0 = (RuleCall)cNameAssignment_1.eContents().get(0);
+		private final Keyword cLeftCurlyBracketKeyword_2 = (Keyword)cGroup.eContents().get(2);
+		private final Keyword cTypeKeyword_3 = (Keyword)cGroup.eContents().get(3);
+		private final Assignment cSizeAssignment_4 = (Assignment)cGroup.eContents().get(4);
+		private final RuleCall cSizePageSizeEnumEnumRuleCall_4_0 = (RuleCall)cSizeAssignment_4.eContents().get(0);
+		private final Keyword cOrientationKeyword_5 = (Keyword)cGroup.eContents().get(5);
+		private final Assignment cOrientationAssignment_6 = (Assignment)cGroup.eContents().get(6);
+		private final RuleCall cOrientationOrientationEnumEnumRuleCall_6_0 = (RuleCall)cOrientationAssignment_6.eContents().get(0);
+		private final Keyword cTopmarginKeyword_7 = (Keyword)cGroup.eContents().get(7);
+		private final Assignment cTopMarginValueAssignment_8 = (Assignment)cGroup.eContents().get(8);
+		private final RuleCall cTopMarginValueUnsignedNumberParserRuleCall_8_0 = (RuleCall)cTopMarginValueAssignment_8.eContents().get(0);
+		private final Assignment cTopMarginUnitAssignment_9 = (Assignment)cGroup.eContents().get(9);
+		private final RuleCall cTopMarginUnitUnitEnumEnumRuleCall_9_0 = (RuleCall)cTopMarginUnitAssignment_9.eContents().get(0);
+		private final Keyword cLeftmarginKeyword_10 = (Keyword)cGroup.eContents().get(10);
+		private final Assignment cLeftMarginValueAssignment_11 = (Assignment)cGroup.eContents().get(11);
+		private final RuleCall cLeftMarginValueUnsignedNumberParserRuleCall_11_0 = (RuleCall)cLeftMarginValueAssignment_11.eContents().get(0);
+		private final Assignment cLeftMarginUnitAssignment_12 = (Assignment)cGroup.eContents().get(12);
+		private final RuleCall cLeftMarginUnitUnitEnumEnumRuleCall_12_0 = (RuleCall)cLeftMarginUnitAssignment_12.eContents().get(0);
+		private final Keyword cBottommarginKeyword_13 = (Keyword)cGroup.eContents().get(13);
+		private final Assignment cBottomMarginValueAssignment_14 = (Assignment)cGroup.eContents().get(14);
+		private final RuleCall cBottomMarginValueUnsignedNumberParserRuleCall_14_0 = (RuleCall)cBottomMarginValueAssignment_14.eContents().get(0);
+		private final Assignment cBottomMarginUnitAssignment_15 = (Assignment)cGroup.eContents().get(15);
+		private final RuleCall cBottomMarginUnitUnitEnumEnumRuleCall_15_0 = (RuleCall)cBottomMarginUnitAssignment_15.eContents().get(0);
+		private final Keyword cRightmarginKeyword_16 = (Keyword)cGroup.eContents().get(16);
+		private final Assignment cRightMarginValueAssignment_17 = (Assignment)cGroup.eContents().get(17);
+		private final RuleCall cRightMarginValueUnsignedNumberParserRuleCall_17_0 = (RuleCall)cRightMarginValueAssignment_17.eContents().get(0);
+		private final Assignment cRightMarginUnitAssignment_18 = (Assignment)cGroup.eContents().get(18);
+		private final RuleCall cRightMarginUnitUnitEnumEnumRuleCall_18_0 = (RuleCall)cRightMarginUnitAssignment_18.eContents().get(0);
+		private final Assignment cHeaderAssignment_19 = (Assignment)cGroup.eContents().get(19);
+		private final RuleCall cHeaderPageHeaderParserRuleCall_19_0 = (RuleCall)cHeaderAssignment_19.eContents().get(0);
+		private final Assignment cFooterAssignment_20 = (Assignment)cGroup.eContents().get(20);
+		private final RuleCall cFooterPageFooterParserRuleCall_20_0 = (RuleCall)cFooterAssignment_20.eContents().get(0);
+		private final Keyword cRightCurlyBracketKeyword_21 = (Keyword)cGroup.eContents().get(21);
+		
+		//PageTemplate:
+		//	"pagetemplate" name=ID "{" "type" size=PageSizeEnum "orientation" orientation=OrientationEnum "topmargin"
+		//	topMarginValue=UnsignedNumber topMarginUnit=UnitEnum "leftmargin" leftMarginValue=UnsignedNumber
+		//	leftMarginUnit=UnitEnum "bottommargin" bottomMarginValue=UnsignedNumber bottomMarginUnit=UnitEnum "rightmargin"
+		//	rightMarginValue=UnsignedNumber rightMarginUnit=UnitEnum header=PageHeader? footer=PageFooter? "}";
+		public ParserRule getRule() { return rule; }
+
+		//"pagetemplate" name=ID "{" "type" size=PageSizeEnum "orientation" orientation=OrientationEnum "topmargin"
+		//topMarginValue=UnsignedNumber topMarginUnit=UnitEnum "leftmargin" leftMarginValue=UnsignedNumber
+		//leftMarginUnit=UnitEnum "bottommargin" bottomMarginValue=UnsignedNumber bottomMarginUnit=UnitEnum "rightmargin"
+		//rightMarginValue=UnsignedNumber rightMarginUnit=UnitEnum header=PageHeader? footer=PageFooter? "}"
+		public Group getGroup() { return cGroup; }
+
+		//"pagetemplate"
+		public Keyword getPagetemplateKeyword_0() { return cPagetemplateKeyword_0; }
+
+		//name=ID
+		public Assignment getNameAssignment_1() { return cNameAssignment_1; }
+
+		//ID
+		public RuleCall getNameIDTerminalRuleCall_1_0() { return cNameIDTerminalRuleCall_1_0; }
+
+		//"{"
+		public Keyword getLeftCurlyBracketKeyword_2() { return cLeftCurlyBracketKeyword_2; }
+
+		//"type"
+		public Keyword getTypeKeyword_3() { return cTypeKeyword_3; }
+
+		//size=PageSizeEnum
+		public Assignment getSizeAssignment_4() { return cSizeAssignment_4; }
+
+		//PageSizeEnum
+		public RuleCall getSizePageSizeEnumEnumRuleCall_4_0() { return cSizePageSizeEnumEnumRuleCall_4_0; }
+
+		//"orientation"
+		public Keyword getOrientationKeyword_5() { return cOrientationKeyword_5; }
+
+		//orientation=OrientationEnum
+		public Assignment getOrientationAssignment_6() { return cOrientationAssignment_6; }
+
+		//OrientationEnum
+		public RuleCall getOrientationOrientationEnumEnumRuleCall_6_0() { return cOrientationOrientationEnumEnumRuleCall_6_0; }
+
+		//"topmargin"
+		public Keyword getTopmarginKeyword_7() { return cTopmarginKeyword_7; }
+
+		//topMarginValue=UnsignedNumber
+		public Assignment getTopMarginValueAssignment_8() { return cTopMarginValueAssignment_8; }
+
+		//UnsignedNumber
+		public RuleCall getTopMarginValueUnsignedNumberParserRuleCall_8_0() { return cTopMarginValueUnsignedNumberParserRuleCall_8_0; }
+
+		//topMarginUnit=UnitEnum
+		public Assignment getTopMarginUnitAssignment_9() { return cTopMarginUnitAssignment_9; }
+
+		//UnitEnum
+		public RuleCall getTopMarginUnitUnitEnumEnumRuleCall_9_0() { return cTopMarginUnitUnitEnumEnumRuleCall_9_0; }
+
+		//"leftmargin"
+		public Keyword getLeftmarginKeyword_10() { return cLeftmarginKeyword_10; }
+
+		//leftMarginValue=UnsignedNumber
+		public Assignment getLeftMarginValueAssignment_11() { return cLeftMarginValueAssignment_11; }
+
+		//UnsignedNumber
+		public RuleCall getLeftMarginValueUnsignedNumberParserRuleCall_11_0() { return cLeftMarginValueUnsignedNumberParserRuleCall_11_0; }
+
+		//leftMarginUnit=UnitEnum
+		public Assignment getLeftMarginUnitAssignment_12() { return cLeftMarginUnitAssignment_12; }
+
+		//UnitEnum
+		public RuleCall getLeftMarginUnitUnitEnumEnumRuleCall_12_0() { return cLeftMarginUnitUnitEnumEnumRuleCall_12_0; }
+
+		//"bottommargin"
+		public Keyword getBottommarginKeyword_13() { return cBottommarginKeyword_13; }
+
+		//bottomMarginValue=UnsignedNumber
+		public Assignment getBottomMarginValueAssignment_14() { return cBottomMarginValueAssignment_14; }
+
+		//UnsignedNumber
+		public RuleCall getBottomMarginValueUnsignedNumberParserRuleCall_14_0() { return cBottomMarginValueUnsignedNumberParserRuleCall_14_0; }
+
+		//bottomMarginUnit=UnitEnum
+		public Assignment getBottomMarginUnitAssignment_15() { return cBottomMarginUnitAssignment_15; }
+
+		//UnitEnum
+		public RuleCall getBottomMarginUnitUnitEnumEnumRuleCall_15_0() { return cBottomMarginUnitUnitEnumEnumRuleCall_15_0; }
+
+		//"rightmargin"
+		public Keyword getRightmarginKeyword_16() { return cRightmarginKeyword_16; }
+
+		//rightMarginValue=UnsignedNumber
+		public Assignment getRightMarginValueAssignment_17() { return cRightMarginValueAssignment_17; }
+
+		//UnsignedNumber
+		public RuleCall getRightMarginValueUnsignedNumberParserRuleCall_17_0() { return cRightMarginValueUnsignedNumberParserRuleCall_17_0; }
+
+		//rightMarginUnit=UnitEnum
+		public Assignment getRightMarginUnitAssignment_18() { return cRightMarginUnitAssignment_18; }
+
+		//UnitEnum
+		public RuleCall getRightMarginUnitUnitEnumEnumRuleCall_18_0() { return cRightMarginUnitUnitEnumEnumRuleCall_18_0; }
+
+		//header=PageHeader?
+		public Assignment getHeaderAssignment_19() { return cHeaderAssignment_19; }
+
+		//PageHeader
+		public RuleCall getHeaderPageHeaderParserRuleCall_19_0() { return cHeaderPageHeaderParserRuleCall_19_0; }
+
+		//footer=PageFooter?
+		public Assignment getFooterAssignment_20() { return cFooterAssignment_20; }
+
+		//PageFooter
+		public RuleCall getFooterPageFooterParserRuleCall_20_0() { return cFooterPageFooterParserRuleCall_20_0; }
+
+		//"}"
+		public Keyword getRightCurlyBracketKeyword_21() { return cRightCurlyBracketKeyword_21; }
+	}
+
+	public class UnsignedNumberElements extends AbstractParserRuleElementFinder {
+		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "UnsignedNumber");
+		private final RuleCall cNumberParserRuleCall = (RuleCall)rule.eContents().get(1);
+		
+		//UnsignedNumber returns ecore::EDouble:
+		//	Number;
+		public ParserRule getRule() { return rule; }
+
+		//Number
+		public RuleCall getNumberParserRuleCall() { return cNumberParserRuleCall; }
+	}
+
+	public class ColorElements extends AbstractParserRuleElementFinder {
+		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "Color");
+		private final Group cGroup = (Group)rule.eContents().get(1);
+		private final Keyword cColorKeyword_0 = (Keyword)cGroup.eContents().get(0);
+		private final Assignment cNameAssignment_1 = (Assignment)cGroup.eContents().get(1);
+		private final RuleCall cNameIDTerminalRuleCall_1_0 = (RuleCall)cNameAssignment_1.eContents().get(0);
+		private final Alternatives cAlternatives_2 = (Alternatives)cGroup.eContents().get(2);
+		private final Assignment cColorAssignment_2_0 = (Assignment)cAlternatives_2.eContents().get(0);
+		private final RuleCall cColorSTRINGTerminalRuleCall_2_0_0 = (RuleCall)cColorAssignment_2_0.eContents().get(0);
+		private final Group cGroup_2_1 = (Group)cAlternatives_2.eContents().get(1);
+		private final Keyword cDarkensKeyword_2_1_0 = (Keyword)cGroup_2_1.eContents().get(0);
+		private final Assignment cBasecolorAssignment_2_1_1 = (Assignment)cGroup_2_1.eContents().get(1);
+		private final CrossReference cBasecolorColorCrossReference_2_1_1_0 = (CrossReference)cBasecolorAssignment_2_1_1.eContents().get(0);
+		private final RuleCall cBasecolorColorIDTerminalRuleCall_2_1_1_0_1 = (RuleCall)cBasecolorColorCrossReference_2_1_1_0.eContents().get(1);
+		private final Keyword cByPercentKeyword_2_1_2 = (Keyword)cGroup_2_1.eContents().get(2);
+		private final Assignment cDarkensbyAssignment_2_1_3 = (Assignment)cGroup_2_1.eContents().get(3);
+		private final RuleCall cDarkensbyINTTerminalRuleCall_2_1_3_0 = (RuleCall)cDarkensbyAssignment_2_1_3.eContents().get(0);
+		private final Group cGroup_2_2 = (Group)cAlternatives_2.eContents().get(2);
+		private final Keyword cLightensKeyword_2_2_0 = (Keyword)cGroup_2_2.eContents().get(0);
+		private final Assignment cBasecolorAssignment_2_2_1 = (Assignment)cGroup_2_2.eContents().get(1);
+		private final CrossReference cBasecolorColorCrossReference_2_2_1_0 = (CrossReference)cBasecolorAssignment_2_2_1.eContents().get(0);
+		private final RuleCall cBasecolorColorIDTerminalRuleCall_2_2_1_0_1 = (RuleCall)cBasecolorColorCrossReference_2_2_1_0.eContents().get(1);
+		private final Keyword cByPercentKeyword_2_2_2 = (Keyword)cGroup_2_2.eContents().get(2);
+		private final Assignment cLightensbyAssignment_2_2_3 = (Assignment)cGroup_2_2.eContents().get(3);
+		private final RuleCall cLightensbyINTTerminalRuleCall_2_2_3_0 = (RuleCall)cLightensbyAssignment_2_2_3.eContents().get(0);
+		private final Group cGroup_2_3 = (Group)cAlternatives_2.eContents().get(3);
+		private final Keyword cTransformsKeyword_2_3_0 = (Keyword)cGroup_2_3.eContents().get(0);
+		private final Assignment cBasecolorAssignment_2_3_1 = (Assignment)cGroup_2_3.eContents().get(1);
+		private final CrossReference cBasecolorColorCrossReference_2_3_1_0 = (CrossReference)cBasecolorAssignment_2_3_1.eContents().get(0);
+		private final RuleCall cBasecolorColorIDTerminalRuleCall_2_3_1_0_1 = (RuleCall)cBasecolorColorCrossReference_2_3_1_0.eContents().get(1);
+		private final Keyword cByPercentKeyword_2_3_2 = (Keyword)cGroup_2_3.eContents().get(2);
+		private final Assignment cTransformsbyAssignment_2_3_3 = (Assignment)cGroup_2_3.eContents().get(3);
+		private final RuleCall cTransformsbyINTTerminalRuleCall_2_3_3_0 = (RuleCall)cTransformsbyAssignment_2_3_3.eContents().get(0);
+		private final Keyword cTowardsKeyword_2_3_4 = (Keyword)cGroup_2_3.eContents().get(4);
+		private final Assignment cTargetcolorAssignment_2_3_5 = (Assignment)cGroup_2_3.eContents().get(5);
+		private final CrossReference cTargetcolorColorCrossReference_2_3_5_0 = (CrossReference)cTargetcolorAssignment_2_3_5.eContents().get(0);
+		private final RuleCall cTargetcolorColorIDTerminalRuleCall_2_3_5_0_1 = (RuleCall)cTargetcolorColorCrossReference_2_3_5_0.eContents().get(1);
+		
+		//Color:
+		//	"color" name=ID (color=STRING | "darkens" basecolor=[Color] "by-percent" darkensby=INT | "lightens" basecolor=[Color]
+		//	"by-percent" lightensby=INT | "transforms" basecolor=[Color] "by-percent" transformsby=INT "towards"
+		//	targetcolor=[Color]);
+		public ParserRule getRule() { return rule; }
+
+		//"color" name=ID (color=STRING | "darkens" basecolor=[Color] "by-percent" darkensby=INT | "lightens" basecolor=[Color]
+		//"by-percent" lightensby=INT | "transforms" basecolor=[Color] "by-percent" transformsby=INT "towards"
+		//targetcolor=[Color])
+		public Group getGroup() { return cGroup; }
+
+		//"color"
+		public Keyword getColorKeyword_0() { return cColorKeyword_0; }
+
+		//name=ID
+		public Assignment getNameAssignment_1() { return cNameAssignment_1; }
+
+		//ID
+		public RuleCall getNameIDTerminalRuleCall_1_0() { return cNameIDTerminalRuleCall_1_0; }
+
+		//color=STRING | "darkens" basecolor=[Color] "by-percent" darkensby=INT | "lightens" basecolor=[Color] "by-percent"
+		//lightensby=INT | "transforms" basecolor=[Color] "by-percent" transformsby=INT "towards" targetcolor=[Color]
+		public Alternatives getAlternatives_2() { return cAlternatives_2; }
+
+		//color=STRING
+		public Assignment getColorAssignment_2_0() { return cColorAssignment_2_0; }
+
+		//STRING
+		public RuleCall getColorSTRINGTerminalRuleCall_2_0_0() { return cColorSTRINGTerminalRuleCall_2_0_0; }
+
+		//"darkens" basecolor=[Color] "by-percent" darkensby=INT
+		public Group getGroup_2_1() { return cGroup_2_1; }
+
+		//"darkens"
+		public Keyword getDarkensKeyword_2_1_0() { return cDarkensKeyword_2_1_0; }
+
+		//basecolor=[Color]
+		public Assignment getBasecolorAssignment_2_1_1() { return cBasecolorAssignment_2_1_1; }
+
+		//[Color]
+		public CrossReference getBasecolorColorCrossReference_2_1_1_0() { return cBasecolorColorCrossReference_2_1_1_0; }
+
+		//ID
+		public RuleCall getBasecolorColorIDTerminalRuleCall_2_1_1_0_1() { return cBasecolorColorIDTerminalRuleCall_2_1_1_0_1; }
+
+		//"by-percent"
+		public Keyword getByPercentKeyword_2_1_2() { return cByPercentKeyword_2_1_2; }
+
+		//darkensby=INT
+		public Assignment getDarkensbyAssignment_2_1_3() { return cDarkensbyAssignment_2_1_3; }
+
+		//INT
+		public RuleCall getDarkensbyINTTerminalRuleCall_2_1_3_0() { return cDarkensbyINTTerminalRuleCall_2_1_3_0; }
+
+		//"lightens" basecolor=[Color] "by-percent" lightensby=INT
+		public Group getGroup_2_2() { return cGroup_2_2; }
+
+		//"lightens"
+		public Keyword getLightensKeyword_2_2_0() { return cLightensKeyword_2_2_0; }
+
+		//basecolor=[Color]
+		public Assignment getBasecolorAssignment_2_2_1() { return cBasecolorAssignment_2_2_1; }
+
+		//[Color]
+		public CrossReference getBasecolorColorCrossReference_2_2_1_0() { return cBasecolorColorCrossReference_2_2_1_0; }
+
+		//ID
+		public RuleCall getBasecolorColorIDTerminalRuleCall_2_2_1_0_1() { return cBasecolorColorIDTerminalRuleCall_2_2_1_0_1; }
+
+		//"by-percent"
+		public Keyword getByPercentKeyword_2_2_2() { return cByPercentKeyword_2_2_2; }
+
+		//lightensby=INT
+		public Assignment getLightensbyAssignment_2_2_3() { return cLightensbyAssignment_2_2_3; }
+
+		//INT
+		public RuleCall getLightensbyINTTerminalRuleCall_2_2_3_0() { return cLightensbyINTTerminalRuleCall_2_2_3_0; }
+
+		//"transforms" basecolor=[Color] "by-percent" transformsby=INT "towards" targetcolor=[Color]
+		public Group getGroup_2_3() { return cGroup_2_3; }
+
+		//"transforms"
+		public Keyword getTransformsKeyword_2_3_0() { return cTransformsKeyword_2_3_0; }
+
+		//basecolor=[Color]
+		public Assignment getBasecolorAssignment_2_3_1() { return cBasecolorAssignment_2_3_1; }
+
+		//[Color]
+		public CrossReference getBasecolorColorCrossReference_2_3_1_0() { return cBasecolorColorCrossReference_2_3_1_0; }
+
+		//ID
+		public RuleCall getBasecolorColorIDTerminalRuleCall_2_3_1_0_1() { return cBasecolorColorIDTerminalRuleCall_2_3_1_0_1; }
+
+		//"by-percent"
+		public Keyword getByPercentKeyword_2_3_2() { return cByPercentKeyword_2_3_2; }
+
+		//transformsby=INT
+		public Assignment getTransformsbyAssignment_2_3_3() { return cTransformsbyAssignment_2_3_3; }
+
+		//INT
+		public RuleCall getTransformsbyINTTerminalRuleCall_2_3_3_0() { return cTransformsbyINTTerminalRuleCall_2_3_3_0; }
+
+		//"towards"
+		public Keyword getTowardsKeyword_2_3_4() { return cTowardsKeyword_2_3_4; }
+
+		//targetcolor=[Color]
+		public Assignment getTargetcolorAssignment_2_3_5() { return cTargetcolorAssignment_2_3_5; }
+
+		//[Color]
+		public CrossReference getTargetcolorColorCrossReference_2_3_5_0() { return cTargetcolorColorCrossReference_2_3_5_0; }
+
+		//ID
+		public RuleCall getTargetcolorColorIDTerminalRuleCall_2_3_5_0_1() { return cTargetcolorColorIDTerminalRuleCall_2_3_5_0_1; }
+	}
+
+	public class FontElements extends AbstractParserRuleElementFinder {
+		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "Font");
+		private final UnorderedGroup cUnorderedGroup = (UnorderedGroup)rule.eContents().get(1);
+		private final Group cGroup_0 = (Group)cUnorderedGroup.eContents().get(0);
+		private final Keyword cFontKeyword_0_0 = (Keyword)cGroup_0.eContents().get(0);
+		private final Assignment cNameAssignment_0_1 = (Assignment)cGroup_0.eContents().get(1);
+		private final RuleCall cNameIDTerminalRuleCall_0_1_0 = (RuleCall)cNameAssignment_0_1.eContents().get(0);
+		private final Keyword cLeftCurlyBracketKeyword_0_2 = (Keyword)cGroup_0.eContents().get(2);
+		private final Group cGroup_0_3 = (Group)cGroup_0.eContents().get(3);
+		private final Keyword cExtendsKeyword_0_3_0 = (Keyword)cGroup_0_3.eContents().get(0);
+		private final Assignment cExtendsAssignment_0_3_1 = (Assignment)cGroup_0_3.eContents().get(1);
+		private final CrossReference cExtendsFontCrossReference_0_3_1_0 = (CrossReference)cExtendsAssignment_0_3_1.eContents().get(0);
+		private final RuleCall cExtendsFontIDTerminalRuleCall_0_3_1_0_1 = (RuleCall)cExtendsFontCrossReference_0_3_1_0.eContents().get(1);
+		private final Group cGroup_0_4 = (Group)cGroup_0.eContents().get(4);
+		private final Keyword cFamilyKeyword_0_4_0 = (Keyword)cGroup_0_4.eContents().get(0);
+		private final Assignment cFamilyAssignment_0_4_1 = (Assignment)cGroup_0_4.eContents().get(1);
+		private final RuleCall cFamilyFontFamilyParserRuleCall_0_4_1_0 = (RuleCall)cFamilyAssignment_0_4_1.eContents().get(0);
+		private final Assignment cStyleAssignment_1 = (Assignment)cUnorderedGroup.eContents().get(1);
+		private final RuleCall cStyleFontStyleEnumEnumRuleCall_1_0 = (RuleCall)cStyleAssignment_1.eContents().get(0);
+		private final Assignment cBoldAssignment_2 = (Assignment)cUnorderedGroup.eContents().get(2);
+		private final Keyword cBoldBoldKeyword_2_0 = (Keyword)cBoldAssignment_2.eContents().get(0);
+		private final Group cGroup_3 = (Group)cUnorderedGroup.eContents().get(3);
+		private final Group cGroup_3_0 = (Group)cGroup_3.eContents().get(0);
+		private final Keyword cSizeKeyword_3_0_0 = (Keyword)cGroup_3_0.eContents().get(0);
+		private final Assignment cSizevalueAssignment_3_0_1 = (Assignment)cGroup_3_0.eContents().get(1);
+		private final RuleCall cSizevalueUnsignedNumberParserRuleCall_3_0_1_0 = (RuleCall)cSizevalueAssignment_3_0_1.eContents().get(0);
+		private final Assignment cSizeunitAssignment_3_0_2 = (Assignment)cGroup_3_0.eContents().get(2);
+		private final RuleCall cSizeunitUnitEnumEnumRuleCall_3_0_2_0 = (RuleCall)cSizeunitAssignment_3_0_2.eContents().get(0);
+		private final Keyword cRightCurlyBracketKeyword_3_1 = (Keyword)cGroup_3.eContents().get(1);
+		
+		//Font:
+		//	"font" name=ID "{" ("extends" extends=[Font])? ("family" family=FontFamily)? & style=FontStyleEnum? & bold?="bold"? &
+		//	("size" sizevalue=UnsignedNumber sizeunit=UnitEnum)? "}";
+		public ParserRule getRule() { return rule; }
+
+		//"font" name=ID "{" ("extends" extends=[Font])? ("family" family=FontFamily)? & style=FontStyleEnum? & bold?="bold"? &
+		//("size" sizevalue=UnsignedNumber sizeunit=UnitEnum)? "}"
+		public UnorderedGroup getUnorderedGroup() { return cUnorderedGroup; }
+
+		//"font" name=ID "{" ("extends" extends=[Font])? ("family" family=FontFamily)?
+		public Group getGroup_0() { return cGroup_0; }
+
+		//"font"
+		public Keyword getFontKeyword_0_0() { return cFontKeyword_0_0; }
+
+		//name=ID
+		public Assignment getNameAssignment_0_1() { return cNameAssignment_0_1; }
+
+		//ID
+		public RuleCall getNameIDTerminalRuleCall_0_1_0() { return cNameIDTerminalRuleCall_0_1_0; }
+
+		//"{"
+		public Keyword getLeftCurlyBracketKeyword_0_2() { return cLeftCurlyBracketKeyword_0_2; }
+
+		//("extends" extends=[Font])?
+		public Group getGroup_0_3() { return cGroup_0_3; }
+
+		//"extends"
+		public Keyword getExtendsKeyword_0_3_0() { return cExtendsKeyword_0_3_0; }
+
+		//extends=[Font]
+		public Assignment getExtendsAssignment_0_3_1() { return cExtendsAssignment_0_3_1; }
+
+		//[Font]
+		public CrossReference getExtendsFontCrossReference_0_3_1_0() { return cExtendsFontCrossReference_0_3_1_0; }
+
+		//ID
+		public RuleCall getExtendsFontIDTerminalRuleCall_0_3_1_0_1() { return cExtendsFontIDTerminalRuleCall_0_3_1_0_1; }
+
+		//("family" family=FontFamily)?
+		public Group getGroup_0_4() { return cGroup_0_4; }
+
+		//"family"
+		public Keyword getFamilyKeyword_0_4_0() { return cFamilyKeyword_0_4_0; }
+
+		//family=FontFamily
+		public Assignment getFamilyAssignment_0_4_1() { return cFamilyAssignment_0_4_1; }
+
+		//FontFamily
+		public RuleCall getFamilyFontFamilyParserRuleCall_0_4_1_0() { return cFamilyFontFamilyParserRuleCall_0_4_1_0; }
+
+		//style=FontStyleEnum?
+		public Assignment getStyleAssignment_1() { return cStyleAssignment_1; }
+
+		//FontStyleEnum
+		public RuleCall getStyleFontStyleEnumEnumRuleCall_1_0() { return cStyleFontStyleEnumEnumRuleCall_1_0; }
+
+		//bold?="bold"?
+		public Assignment getBoldAssignment_2() { return cBoldAssignment_2; }
+
+		//"bold"
+		public Keyword getBoldBoldKeyword_2_0() { return cBoldBoldKeyword_2_0; }
+
+		//("size" sizevalue=UnsignedNumber sizeunit=UnitEnum)? "}"
+		public Group getGroup_3() { return cGroup_3; }
+
+		//("size" sizevalue=UnsignedNumber sizeunit=UnitEnum)?
+		public Group getGroup_3_0() { return cGroup_3_0; }
+
+		//"size"
+		public Keyword getSizeKeyword_3_0_0() { return cSizeKeyword_3_0_0; }
+
+		//sizevalue=UnsignedNumber
+		public Assignment getSizevalueAssignment_3_0_1() { return cSizevalueAssignment_3_0_1; }
+
+		//UnsignedNumber
+		public RuleCall getSizevalueUnsignedNumberParserRuleCall_3_0_1_0() { return cSizevalueUnsignedNumberParserRuleCall_3_0_1_0; }
+
+		//sizeunit=UnitEnum
+		public Assignment getSizeunitAssignment_3_0_2() { return cSizeunitAssignment_3_0_2; }
+
+		//UnitEnum
+		public RuleCall getSizeunitUnitEnumEnumRuleCall_3_0_2_0() { return cSizeunitUnitEnumEnumRuleCall_3_0_2_0; }
+
+		//"}"
+		public Keyword getRightCurlyBracketKeyword_3_1() { return cRightCurlyBracketKeyword_3_1; }
+	}
+
+	public class FontFamilyElements extends AbstractParserRuleElementFinder {
+		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "FontFamily");
+		private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1);
+		private final RuleCall cBuildInFontFamilyParserRuleCall_0 = (RuleCall)cAlternatives.eContents().get(0);
+		private final RuleCall cCustomFontFamilyParserRuleCall_1 = (RuleCall)cAlternatives.eContents().get(1);
+		
+		//FontFamily:
+		//	BuildInFontFamily | CustomFontFamily;
+		public ParserRule getRule() { return rule; }
+
+		//BuildInFontFamily | CustomFontFamily
+		public Alternatives getAlternatives() { return cAlternatives; }
+
+		//BuildInFontFamily
+		public RuleCall getBuildInFontFamilyParserRuleCall_0() { return cBuildInFontFamilyParserRuleCall_0; }
+
+		//CustomFontFamily
+		public RuleCall getCustomFontFamilyParserRuleCall_1() { return cCustomFontFamilyParserRuleCall_1; }
+	}
+
+	public class BuildInFontFamilyElements extends AbstractParserRuleElementFinder {
+		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "BuildInFontFamily");
+		private final Assignment cCustomAssignment = (Assignment)rule.eContents().get(1);
+		private final RuleCall cCustomBuildInFontFamilyEnumEnumRuleCall_0 = (RuleCall)cCustomAssignment.eContents().get(0);
+		
+		//BuildInFontFamily:
+		//	custom=BuildInFontFamilyEnum;
+		public ParserRule getRule() { return rule; }
+
+		//custom=BuildInFontFamilyEnum
+		public Assignment getCustomAssignment() { return cCustomAssignment; }
+
+		//BuildInFontFamilyEnum
+		public RuleCall getCustomBuildInFontFamilyEnumEnumRuleCall_0() { return cCustomBuildInFontFamilyEnumEnumRuleCall_0; }
+	}
+
+	public class CustomFontFamilyElements extends AbstractParserRuleElementFinder {
+		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "CustomFontFamily");
+		private final Assignment cCustomAssignment = (Assignment)rule.eContents().get(1);
+		private final RuleCall cCustomSTRINGTerminalRuleCall_0 = (RuleCall)cCustomAssignment.eContents().get(0);
+		
+		//CustomFontFamily:
+		//	custom=STRING;
+		public ParserRule getRule() { return rule; }
+
+		//custom=STRING
+		public Assignment getCustomAssignment() { return cCustomAssignment; }
+
+		//STRING
+		public RuleCall getCustomSTRINGTerminalRuleCall_0() { return cCustomSTRINGTerminalRuleCall_0; }
+	}
+
+	public class BorderStyleElements extends AbstractParserRuleElementFinder {
+		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "BorderStyle");
+		private final Group cGroup = (Group)rule.eContents().get(1);
+		private final Assignment cTypeAssignment_0 = (Assignment)cGroup.eContents().get(0);
+		private final RuleCall cTypeBorderTypeEnumEnumRuleCall_0_0 = (RuleCall)cTypeAssignment_0.eContents().get(0);
+		private final Assignment cWidthvalueAssignment_1 = (Assignment)cGroup.eContents().get(1);
+		private final RuleCall cWidthvalueUnsignedNumberParserRuleCall_1_0 = (RuleCall)cWidthvalueAssignment_1.eContents().get(0);
+		private final Assignment cWidthunitAssignment_2 = (Assignment)cGroup.eContents().get(2);
+		private final RuleCall cWidthunitUnitEnumEnumRuleCall_2_0 = (RuleCall)cWidthunitAssignment_2.eContents().get(0);
+		private final Assignment cColorAssignment_3 = (Assignment)cGroup.eContents().get(3);
+		private final CrossReference cColorColorCrossReference_3_0 = (CrossReference)cColorAssignment_3.eContents().get(0);
+		private final RuleCall cColorColorIDTerminalRuleCall_3_0_1 = (RuleCall)cColorColorCrossReference_3_0.eContents().get(1);
+		
+		//BorderStyle:
+		//	type=BorderTypeEnum widthvalue=UnsignedNumber widthunit=UnitEnum color=[Color];
+		public ParserRule getRule() { return rule; }
+
+		//type=BorderTypeEnum widthvalue=UnsignedNumber widthunit=UnitEnum color=[Color]
+		public Group getGroup() { return cGroup; }
+
+		//type=BorderTypeEnum
+		public Assignment getTypeAssignment_0() { return cTypeAssignment_0; }
+
+		//BorderTypeEnum
+		public RuleCall getTypeBorderTypeEnumEnumRuleCall_0_0() { return cTypeBorderTypeEnumEnumRuleCall_0_0; }
+
+		//widthvalue=UnsignedNumber
+		public Assignment getWidthvalueAssignment_1() { return cWidthvalueAssignment_1; }
+
+		//UnsignedNumber
+		public RuleCall getWidthvalueUnsignedNumberParserRuleCall_1_0() { return cWidthvalueUnsignedNumberParserRuleCall_1_0; }
+
+		//widthunit=UnitEnum
+		public Assignment getWidthunitAssignment_2() { return cWidthunitAssignment_2; }
+
+		//UnitEnum
+		public RuleCall getWidthunitUnitEnumEnumRuleCall_2_0() { return cWidthunitUnitEnumEnumRuleCall_2_0; }
+
+		//color=[Color]
+		public Assignment getColorAssignment_3() { return cColorAssignment_3; }
+
+		//[Color]
+		public CrossReference getColorColorCrossReference_3_0() { return cColorColorCrossReference_3_0; }
+
+		//ID
+		public RuleCall getColorColorIDTerminalRuleCall_3_0_1() { return cColorColorIDTerminalRuleCall_3_0_1; }
+	}
+
+	public class StyleElements extends AbstractParserRuleElementFinder {
+		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "Style");
+		private final Group cGroup = (Group)rule.eContents().get(1);
+		private final Keyword cStyleKeyword_0 = (Keyword)cGroup.eContents().get(0);
+		private final Assignment cNameAssignment_1 = (Assignment)cGroup.eContents().get(1);
+		private final RuleCall cNameIDTerminalRuleCall_1_0 = (RuleCall)cNameAssignment_1.eContents().get(0);
+		private final Keyword cLeftCurlyBracketKeyword_2 = (Keyword)cGroup.eContents().get(2);
+		private final Group cGroup_3 = (Group)cGroup.eContents().get(3);
+		private final Keyword cExtendsKeyword_3_0 = (Keyword)cGroup_3.eContents().get(0);
+		private final Assignment cExtendsAssignment_3_1 = (Assignment)cGroup_3.eContents().get(1);
+		private final CrossReference cExtendsStyleCrossReference_3_1_0 = (CrossReference)cExtendsAssignment_3_1.eContents().get(0);
+		private final RuleCall cExtendsStyleIDTerminalRuleCall_3_1_0_1 = (RuleCall)cExtendsStyleCrossReference_3_1_0.eContents().get(1);
+		private final UnorderedGroup cUnorderedGroup_4 = (UnorderedGroup)cGroup.eContents().get(4);
+		private final Group cGroup_4_0 = (Group)cUnorderedGroup_4.eContents().get(0);
+		private final Keyword cFormatterKeyword_4_0_0 = (Keyword)cGroup_4_0.eContents().get(0);
+		private final Assignment cFormatAssignment_4_0_1 = (Assignment)cGroup_4_0.eContents().get(1);
+		private final CrossReference cFormatSomeFormatCrossReference_4_0_1_0 = (CrossReference)cFormatAssignment_4_0_1.eContents().get(0);
+		private final RuleCall cFormatSomeFormatIDTerminalRuleCall_4_0_1_0_1 = (RuleCall)cFormatSomeFormatCrossReference_4_0_1_0.eContents().get(1);
+		private final Group cGroup_4_1 = (Group)cUnorderedGroup_4.eContents().get(1);
+		private final Keyword cFontKeyword_4_1_0 = (Keyword)cGroup_4_1.eContents().get(0);
+		private final Assignment cFontAssignment_4_1_1 = (Assignment)cGroup_4_1.eContents().get(1);
+		private final CrossReference cFontFontCrossReference_4_1_1_0 = (CrossReference)cFontAssignment_4_1_1.eContents().get(0);
+		private final RuleCall cFontFontIDTerminalRuleCall_4_1_1_0_1 = (RuleCall)cFontFontCrossReference_4_1_1_0.eContents().get(1);
+		private final Group cGroup_4_2 = (Group)cUnorderedGroup_4.eContents().get(2);
+		private final Keyword cBackgroundcolorKeyword_4_2_0 = (Keyword)cGroup_4_2.eContents().get(0);
+		private final Assignment cBackgroundcolorAssignment_4_2_1 = (Assignment)cGroup_4_2.eContents().get(1);
+		private final CrossReference cBackgroundcolorColorCrossReference_4_2_1_0 = (CrossReference)cBackgroundcolorAssignment_4_2_1.eContents().get(0);
+		private final RuleCall cBackgroundcolorColorIDTerminalRuleCall_4_2_1_0_1 = (RuleCall)cBackgroundcolorColorCrossReference_4_2_1_0.eContents().get(1);
+		private final Group cGroup_4_2_2 = (Group)cGroup_4_2.eContents().get(2);
+		private final Keyword cAlternateKeyword_4_2_2_0 = (Keyword)cGroup_4_2_2.eContents().get(0);
+		private final Assignment cBackgroundcolor_alternateAssignment_4_2_2_1 = (Assignment)cGroup_4_2_2.eContents().get(1);
+		private final CrossReference cBackgroundcolor_alternateColorCrossReference_4_2_2_1_0 = (CrossReference)cBackgroundcolor_alternateAssignment_4_2_2_1.eContents().get(0);
+		private final RuleCall cBackgroundcolor_alternateColorIDTerminalRuleCall_4_2_2_1_0_1 = (RuleCall)cBackgroundcolor_alternateColorCrossReference_4_2_2_1_0.eContents().get(1);
+		private final Group cGroup_4_3 = (Group)cUnorderedGroup_4.eContents().get(3);
+		private final Keyword cTextcolorKeyword_4_3_0 = (Keyword)cGroup_4_3.eContents().get(0);
+		private final Assignment cTextcolorAssignment_4_3_1 = (Assignment)cGroup_4_3.eContents().get(1);
+		private final CrossReference cTextcolorColorCrossReference_4_3_1_0 = (CrossReference)cTextcolorAssignment_4_3_1.eContents().get(0);
+		private final RuleCall cTextcolorColorIDTerminalRuleCall_4_3_1_0_1 = (RuleCall)cTextcolorColorCrossReference_4_3_1_0.eContents().get(1);
+		private final Group cGroup_4_4 = (Group)cUnorderedGroup_4.eContents().get(4);
+		private final Keyword cTextalignKeyword_4_4_0 = (Keyword)cGroup_4_4.eContents().get(0);
+		private final Assignment cTextalignAssignment_4_4_1 = (Assignment)cGroup_4_4.eContents().get(1);
+		private final RuleCall cTextalignTextAlignEnumEnumRuleCall_4_4_1_0 = (RuleCall)cTextalignAssignment_4_4_1.eContents().get(0);
+		private final Group cGroup_4_5 = (Group)cUnorderedGroup_4.eContents().get(5);
+		private final Keyword cBorderTopKeyword_4_5_0 = (Keyword)cGroup_4_5.eContents().get(0);
+		private final Assignment cBorderTopAssignment_4_5_1 = (Assignment)cGroup_4_5.eContents().get(1);
+		private final RuleCall cBorderTopBorderStyleParserRuleCall_4_5_1_0 = (RuleCall)cBorderTopAssignment_4_5_1.eContents().get(0);
+		private final Group cGroup_4_6 = (Group)cUnorderedGroup_4.eContents().get(6);
+		private final Keyword cBorderBottomKeyword_4_6_0 = (Keyword)cGroup_4_6.eContents().get(0);
+		private final Assignment cBorderBottomAssignment_4_6_1 = (Assignment)cGroup_4_6.eContents().get(1);
+		private final RuleCall cBorderBottomBorderStyleParserRuleCall_4_6_1_0 = (RuleCall)cBorderBottomAssignment_4_6_1.eContents().get(0);
+		private final Group cGroup_4_7 = (Group)cUnorderedGroup_4.eContents().get(7);
+		private final Keyword cBorderLeftKeyword_4_7_0 = (Keyword)cGroup_4_7.eContents().get(0);
+		private final Assignment cBorderLeftAssignment_4_7_1 = (Assignment)cGroup_4_7.eContents().get(1);
+		private final RuleCall cBorderLeftBorderStyleParserRuleCall_4_7_1_0 = (RuleCall)cBorderLeftAssignment_4_7_1.eContents().get(0);
+		private final Group cGroup_4_8 = (Group)cUnorderedGroup_4.eContents().get(8);
+		private final Keyword cBorderRightKeyword_4_8_0 = (Keyword)cGroup_4_8.eContents().get(0);
+		private final Assignment cBorderRightAssignment_4_8_1 = (Assignment)cGroup_4_8.eContents().get(1);
+		private final RuleCall cBorderRightBorderStyleParserRuleCall_4_8_1_0 = (RuleCall)cBorderRightAssignment_4_8_1.eContents().get(0);
+		private final Group cGroup_4_9 = (Group)cUnorderedGroup_4.eContents().get(9);
+		private final Keyword cPaddingTopKeyword_4_9_0 = (Keyword)cGroup_4_9.eContents().get(0);
+		private final Assignment cPaddingTopValueAssignment_4_9_1 = (Assignment)cGroup_4_9.eContents().get(1);
+		private final RuleCall cPaddingTopValueUnsignedNumberParserRuleCall_4_9_1_0 = (RuleCall)cPaddingTopValueAssignment_4_9_1.eContents().get(0);
+		private final Assignment cPaddingTopUnitAssignment_4_9_2 = (Assignment)cGroup_4_9.eContents().get(2);
+		private final RuleCall cPaddingTopUnitUnitEnumEnumRuleCall_4_9_2_0 = (RuleCall)cPaddingTopUnitAssignment_4_9_2.eContents().get(0);
+		private final Group cGroup_4_10 = (Group)cUnorderedGroup_4.eContents().get(10);
+		private final Keyword cPaddingBottomKeyword_4_10_0 = (Keyword)cGroup_4_10.eContents().get(0);
+		private final Assignment cPaddingBottomValueAssignment_4_10_1 = (Assignment)cGroup_4_10.eContents().get(1);
+		private final RuleCall cPaddingBottomValueUnsignedNumberParserRuleCall_4_10_1_0 = (RuleCall)cPaddingBottomValueAssignment_4_10_1.eContents().get(0);
+		private final Assignment cPaddingBottomUnitAssignment_4_10_2 = (Assignment)cGroup_4_10.eContents().get(2);
+		private final RuleCall cPaddingBottomUnitUnitEnumEnumRuleCall_4_10_2_0 = (RuleCall)cPaddingBottomUnitAssignment_4_10_2.eContents().get(0);
+		private final Group cGroup_4_11 = (Group)cUnorderedGroup_4.eContents().get(11);
+		private final Keyword cPaddingLeftKeyword_4_11_0 = (Keyword)cGroup_4_11.eContents().get(0);
+		private final Assignment cPaddingLeftValueAssignment_4_11_1 = (Assignment)cGroup_4_11.eContents().get(1);
+		private final RuleCall cPaddingLeftValueUnsignedNumberParserRuleCall_4_11_1_0 = (RuleCall)cPaddingLeftValueAssignment_4_11_1.eContents().get(0);
+		private final Assignment cPaddingLeftUnitAssignment_4_11_2 = (Assignment)cGroup_4_11.eContents().get(2);
+		private final RuleCall cPaddingLeftUnitUnitEnumEnumRuleCall_4_11_2_0 = (RuleCall)cPaddingLeftUnitAssignment_4_11_2.eContents().get(0);
+		private final Group cGroup_4_12 = (Group)cUnorderedGroup_4.eContents().get(12);
+		private final Keyword cPaddingRightKeyword_4_12_0 = (Keyword)cGroup_4_12.eContents().get(0);
+		private final Assignment cPaddingRightValueAssignment_4_12_1 = (Assignment)cGroup_4_12.eContents().get(1);
+		private final RuleCall cPaddingRightValueUnsignedNumberParserRuleCall_4_12_1_0 = (RuleCall)cPaddingRightValueAssignment_4_12_1.eContents().get(0);
+		private final Assignment cPaddingRightUnitAssignment_4_12_2 = (Assignment)cGroup_4_12.eContents().get(2);
+		private final RuleCall cPaddingRightUnitUnitEnumEnumRuleCall_4_12_2_0 = (RuleCall)cPaddingRightUnitAssignment_4_12_2.eContents().get(0);
+		private final Group cGroup_4_13 = (Group)cUnorderedGroup_4.eContents().get(13);
+		private final Keyword cMarginTopKeyword_4_13_0 = (Keyword)cGroup_4_13.eContents().get(0);
+		private final Assignment cMarginTopValueAssignment_4_13_1 = (Assignment)cGroup_4_13.eContents().get(1);
+		private final RuleCall cMarginTopValueUnsignedNumberParserRuleCall_4_13_1_0 = (RuleCall)cMarginTopValueAssignment_4_13_1.eContents().get(0);
+		private final Assignment cMarginTopUnitAssignment_4_13_2 = (Assignment)cGroup_4_13.eContents().get(2);
+		private final RuleCall cMarginTopUnitUnitEnumEnumRuleCall_4_13_2_0 = (RuleCall)cMarginTopUnitAssignment_4_13_2.eContents().get(0);
+		private final Group cGroup_4_14 = (Group)cUnorderedGroup_4.eContents().get(14);
+		private final Keyword cMarginBottomKeyword_4_14_0 = (Keyword)cGroup_4_14.eContents().get(0);
+		private final Assignment cMarginBottomValueAssignment_4_14_1 = (Assignment)cGroup_4_14.eContents().get(1);
+		private final RuleCall cMarginBottomValueUnsignedNumberParserRuleCall_4_14_1_0 = (RuleCall)cMarginBottomValueAssignment_4_14_1.eContents().get(0);
+		private final Assignment cMarginBottomUnitAssignment_4_14_2 = (Assignment)cGroup_4_14.eContents().get(2);
+		private final RuleCall cMarginBottomUnitUnitEnumEnumRuleCall_4_14_2_0 = (RuleCall)cMarginBottomUnitAssignment_4_14_2.eContents().get(0);
+		private final Group cGroup_4_15 = (Group)cUnorderedGroup_4.eContents().get(15);
+		private final Keyword cMarginLeftKeyword_4_15_0 = (Keyword)cGroup_4_15.eContents().get(0);
+		private final Assignment cMarginLeftValueAssignment_4_15_1 = (Assignment)cGroup_4_15.eContents().get(1);
+		private final RuleCall cMarginLeftValueUnsignedNumberParserRuleCall_4_15_1_0 = (RuleCall)cMarginLeftValueAssignment_4_15_1.eContents().get(0);
+		private final Assignment cMarginLeftUnitAssignment_4_15_2 = (Assignment)cGroup_4_15.eContents().get(2);
+		private final RuleCall cMarginLeftUnitUnitEnumEnumRuleCall_4_15_2_0 = (RuleCall)cMarginLeftUnitAssignment_4_15_2.eContents().get(0);
+		private final Group cGroup_4_16 = (Group)cUnorderedGroup_4.eContents().get(16);
+		private final Keyword cMarginRightKeyword_4_16_0 = (Keyword)cGroup_4_16.eContents().get(0);
+		private final Assignment cMarginRightValueAssignment_4_16_1 = (Assignment)cGroup_4_16.eContents().get(1);
+		private final RuleCall cMarginRightValueUnsignedNumberParserRuleCall_4_16_1_0 = (RuleCall)cMarginRightValueAssignment_4_16_1.eContents().get(0);
+		private final Assignment cMarginRightUnitAssignment_4_16_2 = (Assignment)cGroup_4_16.eContents().get(2);
+		private final RuleCall cMarginRightUnitUnitEnumEnumRuleCall_4_16_2_0 = (RuleCall)cMarginRightUnitAssignment_4_16_2.eContents().get(0);
+		private final Assignment cMediastylesAssignment_5 = (Assignment)cGroup.eContents().get(5);
+		private final RuleCall cMediastylesMediaStyleParserRuleCall_5_0 = (RuleCall)cMediastylesAssignment_5.eContents().get(0);
+		private final Keyword cRightCurlyBracketKeyword_6 = (Keyword)cGroup.eContents().get(6);
+		
+		//Style:
+		//	"style" name=ID "{" ("extends" extends=[Style])? (("formatter" format=[SomeFormat])? & ("font" font=[Font])? &
+		//	("backgroundcolor" backgroundcolor=[Color] ("alternate" backgroundcolor_alternate=[Color])?)? & ("textcolor"
+		//	textcolor=[Color])? & ("textalign" textalign=TextAlignEnum)? & ("border-top" borderTop=BorderStyle)? &
+		//	("border-bottom" borderBottom=BorderStyle)? & ("border-left" borderLeft=BorderStyle)? & ("border-right"
+		//	borderRight=BorderStyle)? & ("padding-top" paddingTopValue=UnsignedNumber paddingTopUnit=UnitEnum)? &
+		//	("padding-bottom" paddingBottomValue=UnsignedNumber paddingBottomUnit=UnitEnum)? & ("padding-left"
+		//	paddingLeftValue=UnsignedNumber paddingLeftUnit=UnitEnum)? & ("padding-right" paddingRightValue=UnsignedNumber
+		//	paddingRightUnit=UnitEnum)? & ("margin-top" marginTopValue=UnsignedNumber marginTopUnit=UnitEnum)? & ("margin-bottom"
+		//	marginBottomValue=UnsignedNumber marginBottomUnit=UnitEnum)? & ("margin-left" marginLeftValue=UnsignedNumber
+		//	marginLeftUnit=UnitEnum)? & ("margin-right" marginRightValue=UnsignedNumber marginRightUnit=UnitEnum)?)
+		//	mediastyles+=MediaStyle* "}";
+		public ParserRule getRule() { return rule; }
+
+		//"style" name=ID "{" ("extends" extends=[Style])? (("formatter" format=[SomeFormat])? & ("font" font=[Font])? &
+		//("backgroundcolor" backgroundcolor=[Color] ("alternate" backgroundcolor_alternate=[Color])?)? & ("textcolor"
+		//textcolor=[Color])? & ("textalign" textalign=TextAlignEnum)? & ("border-top" borderTop=BorderStyle)? &
+		//("border-bottom" borderBottom=BorderStyle)? & ("border-left" borderLeft=BorderStyle)? & ("border-right"
+		//borderRight=BorderStyle)? & ("padding-top" paddingTopValue=UnsignedNumber paddingTopUnit=UnitEnum)? &
+		//("padding-bottom" paddingBottomValue=UnsignedNumber paddingBottomUnit=UnitEnum)? & ("padding-left"
+		//paddingLeftValue=UnsignedNumber paddingLeftUnit=UnitEnum)? & ("padding-right" paddingRightValue=UnsignedNumber
+		//paddingRightUnit=UnitEnum)? & ("margin-top" marginTopValue=UnsignedNumber marginTopUnit=UnitEnum)? & ("margin-bottom"
+		//marginBottomValue=UnsignedNumber marginBottomUnit=UnitEnum)? & ("margin-left" marginLeftValue=UnsignedNumber
+		//marginLeftUnit=UnitEnum)? & ("margin-right" marginRightValue=UnsignedNumber marginRightUnit=UnitEnum)?)
+		//mediastyles+=MediaStyle* "}"
+		public Group getGroup() { return cGroup; }
+
+		//"style"
+		public Keyword getStyleKeyword_0() { return cStyleKeyword_0; }
+
+		//name=ID
+		public Assignment getNameAssignment_1() { return cNameAssignment_1; }
+
+		//ID
+		public RuleCall getNameIDTerminalRuleCall_1_0() { return cNameIDTerminalRuleCall_1_0; }
+
+		//"{"
+		public Keyword getLeftCurlyBracketKeyword_2() { return cLeftCurlyBracketKeyword_2; }
+
+		//("extends" extends=[Style])?
+		public Group getGroup_3() { return cGroup_3; }
+
+		//"extends"
+		public Keyword getExtendsKeyword_3_0() { return cExtendsKeyword_3_0; }
+
+		//extends=[Style]
+		public Assignment getExtendsAssignment_3_1() { return cExtendsAssignment_3_1; }
+
+		//[Style]
+		public CrossReference getExtendsStyleCrossReference_3_1_0() { return cExtendsStyleCrossReference_3_1_0; }
+
+		//ID
+		public RuleCall getExtendsStyleIDTerminalRuleCall_3_1_0_1() { return cExtendsStyleIDTerminalRuleCall_3_1_0_1; }
+
+		//("formatter" format=[SomeFormat])? & ("font" font=[Font])? & ("backgroundcolor" backgroundcolor=[Color] ("alternate"
+		//backgroundcolor_alternate=[Color])?)? & ("textcolor" textcolor=[Color])? & ("textalign" textalign=TextAlignEnum)? &
+		//("border-top" borderTop=BorderStyle)? & ("border-bottom" borderBottom=BorderStyle)? & ("border-left"
+		//borderLeft=BorderStyle)? & ("border-right" borderRight=BorderStyle)? & ("padding-top" paddingTopValue=UnsignedNumber
+		//paddingTopUnit=UnitEnum)? & ("padding-bottom" paddingBottomValue=UnsignedNumber paddingBottomUnit=UnitEnum)? &
+		//("padding-left" paddingLeftValue=UnsignedNumber paddingLeftUnit=UnitEnum)? & ("padding-right"
+		//paddingRightValue=UnsignedNumber paddingRightUnit=UnitEnum)? & ("margin-top" marginTopValue=UnsignedNumber
+		//marginTopUnit=UnitEnum)? & ("margin-bottom" marginBottomValue=UnsignedNumber marginBottomUnit=UnitEnum)? &
+		//("margin-left" marginLeftValue=UnsignedNumber marginLeftUnit=UnitEnum)? & ("margin-right"
+		//marginRightValue=UnsignedNumber marginRightUnit=UnitEnum)?
+		public UnorderedGroup getUnorderedGroup_4() { return cUnorderedGroup_4; }
+
+		//("formatter" format=[SomeFormat])?
+		public Group getGroup_4_0() { return cGroup_4_0; }
+
+		//"formatter"
+		public Keyword getFormatterKeyword_4_0_0() { return cFormatterKeyword_4_0_0; }
+
+		//format=[SomeFormat]
+		public Assignment getFormatAssignment_4_0_1() { return cFormatAssignment_4_0_1; }
+
+		//[SomeFormat]
+		public CrossReference getFormatSomeFormatCrossReference_4_0_1_0() { return cFormatSomeFormatCrossReference_4_0_1_0; }
+
+		//ID
+		public RuleCall getFormatSomeFormatIDTerminalRuleCall_4_0_1_0_1() { return cFormatSomeFormatIDTerminalRuleCall_4_0_1_0_1; }
+
+		//("font" font=[Font])?
+		public Group getGroup_4_1() { return cGroup_4_1; }
+
+		//"font"
+		public Keyword getFontKeyword_4_1_0() { return cFontKeyword_4_1_0; }
+
+		//font=[Font]
+		public Assignment getFontAssignment_4_1_1() { return cFontAssignment_4_1_1; }
+
+		//[Font]
+		public CrossReference getFontFontCrossReference_4_1_1_0() { return cFontFontCrossReference_4_1_1_0; }
+
+		//ID
+		public RuleCall getFontFontIDTerminalRuleCall_4_1_1_0_1() { return cFontFontIDTerminalRuleCall_4_1_1_0_1; }
+
+		//("backgroundcolor" backgroundcolor=[Color] ("alternate" backgroundcolor_alternate=[Color])?)?
+		public Group getGroup_4_2() { return cGroup_4_2; }
+
+		//"backgroundcolor"
+		public Keyword getBackgroundcolorKeyword_4_2_0() { return cBackgroundcolorKeyword_4_2_0; }
+
+		//backgroundcolor=[Color]
+		public Assignment getBackgroundcolorAssignment_4_2_1() { return cBackgroundcolorAssignment_4_2_1; }
+
+		//[Color]
+		public CrossReference getBackgroundcolorColorCrossReference_4_2_1_0() { return cBackgroundcolorColorCrossReference_4_2_1_0; }
+
+		//ID
+		public RuleCall getBackgroundcolorColorIDTerminalRuleCall_4_2_1_0_1() { return cBackgroundcolorColorIDTerminalRuleCall_4_2_1_0_1; }
+
+		//("alternate" backgroundcolor_alternate=[Color])?
+		public Group getGroup_4_2_2() { return cGroup_4_2_2; }
+
+		//"alternate"
+		public Keyword getAlternateKeyword_4_2_2_0() { return cAlternateKeyword_4_2_2_0; }
+
+		//backgroundcolor_alternate=[Color]
+		public Assignment getBackgroundcolor_alternateAssignment_4_2_2_1() { return cBackgroundcolor_alternateAssignment_4_2_2_1; }
+
+		//[Color]
+		public CrossReference getBackgroundcolor_alternateColorCrossReference_4_2_2_1_0() { return cBackgroundcolor_alternateColorCrossReference_4_2_2_1_0; }
+
+		//ID
+		public RuleCall getBackgroundcolor_alternateColorIDTerminalRuleCall_4_2_2_1_0_1() { return cBackgroundcolor_alternateColorIDTerminalRuleCall_4_2_2_1_0_1; }
+
+		//("textcolor" textcolor=[Color])?
+		public Group getGroup_4_3() { return cGroup_4_3; }
+
+		//"textcolor"
+		public Keyword getTextcolorKeyword_4_3_0() { return cTextcolorKeyword_4_3_0; }
+
+		//textcolor=[Color]
+		public Assignment getTextcolorAssignment_4_3_1() { return cTextcolorAssignment_4_3_1; }
+
+		//[Color]
+		public CrossReference getTextcolorColorCrossReference_4_3_1_0() { return cTextcolorColorCrossReference_4_3_1_0; }
+
+		//ID
+		public RuleCall getTextcolorColorIDTerminalRuleCall_4_3_1_0_1() { return cTextcolorColorIDTerminalRuleCall_4_3_1_0_1; }
+
+		//("textalign" textalign=TextAlignEnum)?
+		public Group getGroup_4_4() { return cGroup_4_4; }
+
+		//"textalign"
+		public Keyword getTextalignKeyword_4_4_0() { return cTextalignKeyword_4_4_0; }
+
+		//textalign=TextAlignEnum
+		public Assignment getTextalignAssignment_4_4_1() { return cTextalignAssignment_4_4_1; }
+
+		//TextAlignEnum
+		public RuleCall getTextalignTextAlignEnumEnumRuleCall_4_4_1_0() { return cTextalignTextAlignEnumEnumRuleCall_4_4_1_0; }
+
+		//("border-top" borderTop=BorderStyle)?
+		public Group getGroup_4_5() { return cGroup_4_5; }
+
+		//"border-top"
+		public Keyword getBorderTopKeyword_4_5_0() { return cBorderTopKeyword_4_5_0; }
+
+		//borderTop=BorderStyle
+		public Assignment getBorderTopAssignment_4_5_1() { return cBorderTopAssignment_4_5_1; }
+
+		//BorderStyle
+		public RuleCall getBorderTopBorderStyleParserRuleCall_4_5_1_0() { return cBorderTopBorderStyleParserRuleCall_4_5_1_0; }
+
+		//("border-bottom" borderBottom=BorderStyle)?
+		public Group getGroup_4_6() { return cGroup_4_6; }
+
+		//"border-bottom"
+		public Keyword getBorderBottomKeyword_4_6_0() { return cBorderBottomKeyword_4_6_0; }
+
+		//borderBottom=BorderStyle
+		public Assignment getBorderBottomAssignment_4_6_1() { return cBorderBottomAssignment_4_6_1; }
+
+		//BorderStyle
+		public RuleCall getBorderBottomBorderStyleParserRuleCall_4_6_1_0() { return cBorderBottomBorderStyleParserRuleCall_4_6_1_0; }
+
+		//("border-left" borderLeft=BorderStyle)?
+		public Group getGroup_4_7() { return cGroup_4_7; }
+
+		//"border-left"
+		public Keyword getBorderLeftKeyword_4_7_0() { return cBorderLeftKeyword_4_7_0; }
+
+		//borderLeft=BorderStyle
+		public Assignment getBorderLeftAssignment_4_7_1() { return cBorderLeftAssignment_4_7_1; }
+
+		//BorderStyle
+		public RuleCall getBorderLeftBorderStyleParserRuleCall_4_7_1_0() { return cBorderLeftBorderStyleParserRuleCall_4_7_1_0; }
+
+		//("border-right" borderRight=BorderStyle)?
+		public Group getGroup_4_8() { return cGroup_4_8; }
+
+		//"border-right"
+		public Keyword getBorderRightKeyword_4_8_0() { return cBorderRightKeyword_4_8_0; }
+
+		//borderRight=BorderStyle
+		public Assignment getBorderRightAssignment_4_8_1() { return cBorderRightAssignment_4_8_1; }
+
+		//BorderStyle
+		public RuleCall getBorderRightBorderStyleParserRuleCall_4_8_1_0() { return cBorderRightBorderStyleParserRuleCall_4_8_1_0; }
+
+		//("padding-top" paddingTopValue=UnsignedNumber paddingTopUnit=UnitEnum)?
+		public Group getGroup_4_9() { return cGroup_4_9; }
+
+		//"padding-top"
+		public Keyword getPaddingTopKeyword_4_9_0() { return cPaddingTopKeyword_4_9_0; }
+
+		//paddingTopValue=UnsignedNumber
+		public Assignment getPaddingTopValueAssignment_4_9_1() { return cPaddingTopValueAssignment_4_9_1; }
+
+		//UnsignedNumber
+		public RuleCall getPaddingTopValueUnsignedNumberParserRuleCall_4_9_1_0() { return cPaddingTopValueUnsignedNumberParserRuleCall_4_9_1_0; }
+
+		//paddingTopUnit=UnitEnum
+		public Assignment getPaddingTopUnitAssignment_4_9_2() { return cPaddingTopUnitAssignment_4_9_2; }
+
+		//UnitEnum
+		public RuleCall getPaddingTopUnitUnitEnumEnumRuleCall_4_9_2_0() { return cPaddingTopUnitUnitEnumEnumRuleCall_4_9_2_0; }
+
+		//("padding-bottom" paddingBottomValue=UnsignedNumber paddingBottomUnit=UnitEnum)?
+		public Group getGroup_4_10() { return cGroup_4_10; }
+
+		//"padding-bottom"
+		public Keyword getPaddingBottomKeyword_4_10_0() { return cPaddingBottomKeyword_4_10_0; }
+
+		//paddingBottomValue=UnsignedNumber
+		public Assignment getPaddingBottomValueAssignment_4_10_1() { return cPaddingBottomValueAssignment_4_10_1; }
+
+		//UnsignedNumber
+		public RuleCall getPaddingBottomValueUnsignedNumberParserRuleCall_4_10_1_0() { return cPaddingBottomValueUnsignedNumberParserRuleCall_4_10_1_0; }
+
+		//paddingBottomUnit=UnitEnum
+		public Assignment getPaddingBottomUnitAssignment_4_10_2() { return cPaddingBottomUnitAssignment_4_10_2; }
+
+		//UnitEnum
+		public RuleCall getPaddingBottomUnitUnitEnumEnumRuleCall_4_10_2_0() { return cPaddingBottomUnitUnitEnumEnumRuleCall_4_10_2_0; }
+
+		//("padding-left" paddingLeftValue=UnsignedNumber paddingLeftUnit=UnitEnum)?
+		public Group getGroup_4_11() { return cGroup_4_11; }
+
+		//"padding-left"
+		public Keyword getPaddingLeftKeyword_4_11_0() { return cPaddingLeftKeyword_4_11_0; }
+
+		//paddingLeftValue=UnsignedNumber
+		public Assignment getPaddingLeftValueAssignment_4_11_1() { return cPaddingLeftValueAssignment_4_11_1; }
+
+		//UnsignedNumber
+		public RuleCall getPaddingLeftValueUnsignedNumberParserRuleCall_4_11_1_0() { return cPaddingLeftValueUnsignedNumberParserRuleCall_4_11_1_0; }
+
+		//paddingLeftUnit=UnitEnum
+		public Assignment getPaddingLeftUnitAssignment_4_11_2() { return cPaddingLeftUnitAssignment_4_11_2; }
+
+		//UnitEnum
+		public RuleCall getPaddingLeftUnitUnitEnumEnumRuleCall_4_11_2_0() { return cPaddingLeftUnitUnitEnumEnumRuleCall_4_11_2_0; }
+
+		//("padding-right" paddingRightValue=UnsignedNumber paddingRightUnit=UnitEnum)?
+		public Group getGroup_4_12() { return cGroup_4_12; }
+
+		//"padding-right"
+		public Keyword getPaddingRightKeyword_4_12_0() { return cPaddingRightKeyword_4_12_0; }
+
+		//paddingRightValue=UnsignedNumber
+		public Assignment getPaddingRightValueAssignment_4_12_1() { return cPaddingRightValueAssignment_4_12_1; }
+
+		//UnsignedNumber
+		public RuleCall getPaddingRightValueUnsignedNumberParserRuleCall_4_12_1_0() { return cPaddingRightValueUnsignedNumberParserRuleCall_4_12_1_0; }
+
+		//paddingRightUnit=UnitEnum
+		public Assignment getPaddingRightUnitAssignment_4_12_2() { return cPaddingRightUnitAssignment_4_12_2; }
+
+		//UnitEnum
+		public RuleCall getPaddingRightUnitUnitEnumEnumRuleCall_4_12_2_0() { return cPaddingRightUnitUnitEnumEnumRuleCall_4_12_2_0; }
+
+		//("margin-top" marginTopValue=UnsignedNumber marginTopUnit=UnitEnum)?
+		public Group getGroup_4_13() { return cGroup_4_13; }
+
+		//"margin-top"
+		public Keyword getMarginTopKeyword_4_13_0() { return cMarginTopKeyword_4_13_0; }
+
+		//marginTopValue=UnsignedNumber
+		public Assignment getMarginTopValueAssignment_4_13_1() { return cMarginTopValueAssignment_4_13_1; }
+
+		//UnsignedNumber
+		public RuleCall getMarginTopValueUnsignedNumberParserRuleCall_4_13_1_0() { return cMarginTopValueUnsignedNumberParserRuleCall_4_13_1_0; }
+
+		//marginTopUnit=UnitEnum
+		public Assignment getMarginTopUnitAssignment_4_13_2() { return cMarginTopUnitAssignment_4_13_2; }
+
+		//UnitEnum
+		public RuleCall getMarginTopUnitUnitEnumEnumRuleCall_4_13_2_0() { return cMarginTopUnitUnitEnumEnumRuleCall_4_13_2_0; }
+
+		//("margin-bottom" marginBottomValue=UnsignedNumber marginBottomUnit=UnitEnum)?
+		public Group getGroup_4_14() { return cGroup_4_14; }
+
+		//"margin-bottom"
+		public Keyword getMarginBottomKeyword_4_14_0() { return cMarginBottomKeyword_4_14_0; }
+
+		//marginBottomValue=UnsignedNumber
+		public Assignment getMarginBottomValueAssignment_4_14_1() { return cMarginBottomValueAssignment_4_14_1; }
+
+		//UnsignedNumber
+		public RuleCall getMarginBottomValueUnsignedNumberParserRuleCall_4_14_1_0() { return cMarginBottomValueUnsignedNumberParserRuleCall_4_14_1_0; }
+
+		//marginBottomUnit=UnitEnum
+		public Assignment getMarginBottomUnitAssignment_4_14_2() { return cMarginBottomUnitAssignment_4_14_2; }
+
+		//UnitEnum
+		public RuleCall getMarginBottomUnitUnitEnumEnumRuleCall_4_14_2_0() { return cMarginBottomUnitUnitEnumEnumRuleCall_4_14_2_0; }
+
+		//("margin-left" marginLeftValue=UnsignedNumber marginLeftUnit=UnitEnum)?
+		public Group getGroup_4_15() { return cGroup_4_15; }
+
+		//"margin-left"
+		public Keyword getMarginLeftKeyword_4_15_0() { return cMarginLeftKeyword_4_15_0; }
+
+		//marginLeftValue=UnsignedNumber
+		public Assignment getMarginLeftValueAssignment_4_15_1() { return cMarginLeftValueAssignment_4_15_1; }
+
+		//UnsignedNumber
+		public RuleCall getMarginLeftValueUnsignedNumberParserRuleCall_4_15_1_0() { return cMarginLeftValueUnsignedNumberParserRuleCall_4_15_1_0; }
+
+		//marginLeftUnit=UnitEnum
+		public Assignment getMarginLeftUnitAssignment_4_15_2() { return cMarginLeftUnitAssignment_4_15_2; }
+
+		//UnitEnum
+		public RuleCall getMarginLeftUnitUnitEnumEnumRuleCall_4_15_2_0() { return cMarginLeftUnitUnitEnumEnumRuleCall_4_15_2_0; }
+
+		//("margin-right" marginRightValue=UnsignedNumber marginRightUnit=UnitEnum)?
+		public Group getGroup_4_16() { return cGroup_4_16; }
+
+		//"margin-right"
+		public Keyword getMarginRightKeyword_4_16_0() { return cMarginRightKeyword_4_16_0; }
+
+		//marginRightValue=UnsignedNumber
+		public Assignment getMarginRightValueAssignment_4_16_1() { return cMarginRightValueAssignment_4_16_1; }
+
+		//UnsignedNumber
+		public RuleCall getMarginRightValueUnsignedNumberParserRuleCall_4_16_1_0() { return cMarginRightValueUnsignedNumberParserRuleCall_4_16_1_0; }
+
+		//marginRightUnit=UnitEnum
+		public Assignment getMarginRightUnitAssignment_4_16_2() { return cMarginRightUnitAssignment_4_16_2; }
+
+		//UnitEnum
+		public RuleCall getMarginRightUnitUnitEnumEnumRuleCall_4_16_2_0() { return cMarginRightUnitUnitEnumEnumRuleCall_4_16_2_0; }
+
+		//mediastyles+=MediaStyle*
+		public Assignment getMediastylesAssignment_5() { return cMediastylesAssignment_5; }
+
+		//MediaStyle
+		public RuleCall getMediastylesMediaStyleParserRuleCall_5_0() { return cMediastylesMediaStyleParserRuleCall_5_0; }
+
+		//"}"
+		public Keyword getRightCurlyBracketKeyword_6() { return cRightCurlyBracketKeyword_6; }
+	}
+
+	public class MediaStyleElements extends AbstractParserRuleElementFinder {
+		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "MediaStyle");
+		private final Group cGroup = (Group)rule.eContents().get(1);
+		private final Keyword cMediaKeyword_0 = (Keyword)cGroup.eContents().get(0);
+		private final Assignment cMediaAssignment_1 = (Assignment)cGroup.eContents().get(1);
+		private final CrossReference cMediaMediaCrossReference_1_0 = (CrossReference)cMediaAssignment_1.eContents().get(0);
+		private final RuleCall cMediaMediaIDTerminalRuleCall_1_0_1 = (RuleCall)cMediaMediaCrossReference_1_0.eContents().get(1);
+		private final Keyword cLeftCurlyBracketKeyword_2 = (Keyword)cGroup.eContents().get(2);
+		private final UnorderedGroup cUnorderedGroup_3 = (UnorderedGroup)cGroup.eContents().get(3);
+		private final Group cGroup_3_0 = (Group)cUnorderedGroup_3.eContents().get(0);
+		private final Keyword cFormatterKeyword_3_0_0 = (Keyword)cGroup_3_0.eContents().get(0);
+		private final Assignment cFormatAssignment_3_0_1 = (Assignment)cGroup_3_0.eContents().get(1);
+		private final CrossReference cFormatSomeFormatCrossReference_3_0_1_0 = (CrossReference)cFormatAssignment_3_0_1.eContents().get(0);
+		private final RuleCall cFormatSomeFormatIDTerminalRuleCall_3_0_1_0_1 = (RuleCall)cFormatSomeFormatCrossReference_3_0_1_0.eContents().get(1);
+		private final Group cGroup_3_1 = (Group)cUnorderedGroup_3.eContents().get(1);
+		private final Keyword cFontKeyword_3_1_0 = (Keyword)cGroup_3_1.eContents().get(0);
+		private final Assignment cFontAssignment_3_1_1 = (Assignment)cGroup_3_1.eContents().get(1);
+		private final CrossReference cFontFontCrossReference_3_1_1_0 = (CrossReference)cFontAssignment_3_1_1.eContents().get(0);
+		private final RuleCall cFontFontIDTerminalRuleCall_3_1_1_0_1 = (RuleCall)cFontFontCrossReference_3_1_1_0.eContents().get(1);
+		private final Group cGroup_3_2 = (Group)cUnorderedGroup_3.eContents().get(2);
+		private final Keyword cBackgroundcolorKeyword_3_2_0 = (Keyword)cGroup_3_2.eContents().get(0);
+		private final Assignment cBackgroundcolorAssignment_3_2_1 = (Assignment)cGroup_3_2.eContents().get(1);
+		private final CrossReference cBackgroundcolorColorCrossReference_3_2_1_0 = (CrossReference)cBackgroundcolorAssignment_3_2_1.eContents().get(0);
+		private final RuleCall cBackgroundcolorColorIDTerminalRuleCall_3_2_1_0_1 = (RuleCall)cBackgroundcolorColorCrossReference_3_2_1_0.eContents().get(1);
+		private final Group cGroup_3_2_2 = (Group)cGroup_3_2.eContents().get(2);
+		private final Keyword cAlternateKeyword_3_2_2_0 = (Keyword)cGroup_3_2_2.eContents().get(0);
+		private final Assignment cBackgroundcolor_alternateAssignment_3_2_2_1 = (Assignment)cGroup_3_2_2.eContents().get(1);
+		private final CrossReference cBackgroundcolor_alternateColorCrossReference_3_2_2_1_0 = (CrossReference)cBackgroundcolor_alternateAssignment_3_2_2_1.eContents().get(0);
+		private final RuleCall cBackgroundcolor_alternateColorIDTerminalRuleCall_3_2_2_1_0_1 = (RuleCall)cBackgroundcolor_alternateColorCrossReference_3_2_2_1_0.eContents().get(1);
+		private final Group cGroup_3_3 = (Group)cUnorderedGroup_3.eContents().get(3);
+		private final Keyword cTextcolorKeyword_3_3_0 = (Keyword)cGroup_3_3.eContents().get(0);
+		private final Assignment cTextcolorAssignment_3_3_1 = (Assignment)cGroup_3_3.eContents().get(1);
+		private final CrossReference cTextcolorColorCrossReference_3_3_1_0 = (CrossReference)cTextcolorAssignment_3_3_1.eContents().get(0);
+		private final RuleCall cTextcolorColorIDTerminalRuleCall_3_3_1_0_1 = (RuleCall)cTextcolorColorCrossReference_3_3_1_0.eContents().get(1);
+		private final Group cGroup_3_4 = (Group)cUnorderedGroup_3.eContents().get(4);
+		private final Keyword cTextalignKeyword_3_4_0 = (Keyword)cGroup_3_4.eContents().get(0);
+		private final Assignment cTextalignAssignment_3_4_1 = (Assignment)cGroup_3_4.eContents().get(1);
+		private final RuleCall cTextalignTextAlignEnumEnumRuleCall_3_4_1_0 = (RuleCall)cTextalignAssignment_3_4_1.eContents().get(0);
+		private final Group cGroup_3_5 = (Group)cUnorderedGroup_3.eContents().get(5);
+		private final Keyword cBorderTopKeyword_3_5_0 = (Keyword)cGroup_3_5.eContents().get(0);
+		private final Assignment cBorderTopAssignment_3_5_1 = (Assignment)cGroup_3_5.eContents().get(1);
+		private final RuleCall cBorderTopBorderStyleParserRuleCall_3_5_1_0 = (RuleCall)cBorderTopAssignment_3_5_1.eContents().get(0);
+		private final Group cGroup_3_6 = (Group)cUnorderedGroup_3.eContents().get(6);
+		private final Keyword cBorderBottomKeyword_3_6_0 = (Keyword)cGroup_3_6.eContents().get(0);
+		private final Assignment cBorderBottomAssignment_3_6_1 = (Assignment)cGroup_3_6.eContents().get(1);
+		private final RuleCall cBorderBottomBorderStyleParserRuleCall_3_6_1_0 = (RuleCall)cBorderBottomAssignment_3_6_1.eContents().get(0);
+		private final Group cGroup_3_7 = (Group)cUnorderedGroup_3.eContents().get(7);
+		private final Keyword cBorderLeftKeyword_3_7_0 = (Keyword)cGroup_3_7.eContents().get(0);
+		private final Assignment cBorderLeftAssignment_3_7_1 = (Assignment)cGroup_3_7.eContents().get(1);
+		private final RuleCall cBorderLeftBorderStyleParserRuleCall_3_7_1_0 = (RuleCall)cBorderLeftAssignment_3_7_1.eContents().get(0);
+		private final Group cGroup_3_8 = (Group)cUnorderedGroup_3.eContents().get(8);
+		private final Keyword cBorderRightKeyword_3_8_0 = (Keyword)cGroup_3_8.eContents().get(0);
+		private final Assignment cBorderRightAssignment_3_8_1 = (Assignment)cGroup_3_8.eContents().get(1);
+		private final RuleCall cBorderRightBorderStyleParserRuleCall_3_8_1_0 = (RuleCall)cBorderRightAssignment_3_8_1.eContents().get(0);
+		private final Group cGroup_3_9 = (Group)cUnorderedGroup_3.eContents().get(9);
+		private final Keyword cPaddingTopKeyword_3_9_0 = (Keyword)cGroup_3_9.eContents().get(0);
+		private final Assignment cPaddingTopValueAssignment_3_9_1 = (Assignment)cGroup_3_9.eContents().get(1);
+		private final RuleCall cPaddingTopValueUnsignedNumberParserRuleCall_3_9_1_0 = (RuleCall)cPaddingTopValueAssignment_3_9_1.eContents().get(0);
+		private final Assignment cPaddingTopUnitAssignment_3_9_2 = (Assignment)cGroup_3_9.eContents().get(2);
+		private final RuleCall cPaddingTopUnitUnitEnumEnumRuleCall_3_9_2_0 = (RuleCall)cPaddingTopUnitAssignment_3_9_2.eContents().get(0);
+		private final Group cGroup_3_10 = (Group)cUnorderedGroup_3.eContents().get(10);
+		private final Keyword cPaddingBottomKeyword_3_10_0 = (Keyword)cGroup_3_10.eContents().get(0);
+		private final Assignment cPaddingBottomValueAssignment_3_10_1 = (Assignment)cGroup_3_10.eContents().get(1);
+		private final RuleCall cPaddingBottomValueUnsignedNumberParserRuleCall_3_10_1_0 = (RuleCall)cPaddingBottomValueAssignment_3_10_1.eContents().get(0);
+		private final Assignment cPaddingBottomUnitAssignment_3_10_2 = (Assignment)cGroup_3_10.eContents().get(2);
+		private final RuleCall cPaddingBottomUnitUnitEnumEnumRuleCall_3_10_2_0 = (RuleCall)cPaddingBottomUnitAssignment_3_10_2.eContents().get(0);
+		private final Group cGroup_3_11 = (Group)cUnorderedGroup_3.eContents().get(11);
+		private final Keyword cPaddingLeftKeyword_3_11_0 = (Keyword)cGroup_3_11.eContents().get(0);
+		private final Assignment cPaddingLeftValueAssignment_3_11_1 = (Assignment)cGroup_3_11.eContents().get(1);
+		private final RuleCall cPaddingLeftValueUnsignedNumberParserRuleCall_3_11_1_0 = (RuleCall)cPaddingLeftValueAssignment_3_11_1.eContents().get(0);
+		private final Assignment cPaddingLeftUnitAssignment_3_11_2 = (Assignment)cGroup_3_11.eContents().get(2);
+		private final RuleCall cPaddingLeftUnitUnitEnumEnumRuleCall_3_11_2_0 = (RuleCall)cPaddingLeftUnitAssignment_3_11_2.eContents().get(0);
+		private final Group cGroup_3_12 = (Group)cUnorderedGroup_3.eContents().get(12);
+		private final Keyword cPaddingRightKeyword_3_12_0 = (Keyword)cGroup_3_12.eContents().get(0);
+		private final Assignment cPaddingRightValueAssignment_3_12_1 = (Assignment)cGroup_3_12.eContents().get(1);
+		private final RuleCall cPaddingRightValueUnsignedNumberParserRuleCall_3_12_1_0 = (RuleCall)cPaddingRightValueAssignment_3_12_1.eContents().get(0);
+		private final Assignment cPaddingRightUnitAssignment_3_12_2 = (Assignment)cGroup_3_12.eContents().get(2);
+		private final RuleCall cPaddingRightUnitUnitEnumEnumRuleCall_3_12_2_0 = (RuleCall)cPaddingRightUnitAssignment_3_12_2.eContents().get(0);
+		private final Group cGroup_3_13 = (Group)cUnorderedGroup_3.eContents().get(13);
+		private final Keyword cMarginTopKeyword_3_13_0 = (Keyword)cGroup_3_13.eContents().get(0);
+		private final Assignment cMarginTopValueAssignment_3_13_1 = (Assignment)cGroup_3_13.eContents().get(1);
+		private final RuleCall cMarginTopValueUnsignedNumberParserRuleCall_3_13_1_0 = (RuleCall)cMarginTopValueAssignment_3_13_1.eContents().get(0);
+		private final Assignment cMarginTopUnitAssignment_3_13_2 = (Assignment)cGroup_3_13.eContents().get(2);
+		private final RuleCall cMarginTopUnitUnitEnumEnumRuleCall_3_13_2_0 = (RuleCall)cMarginTopUnitAssignment_3_13_2.eContents().get(0);
+		private final Group cGroup_3_14 = (Group)cUnorderedGroup_3.eContents().get(14);
+		private final Keyword cMarginBottomKeyword_3_14_0 = (Keyword)cGroup_3_14.eContents().get(0);
+		private final Assignment cMarginBottomValueAssignment_3_14_1 = (Assignment)cGroup_3_14.eContents().get(1);
+		private final RuleCall cMarginBottomValueUnsignedNumberParserRuleCall_3_14_1_0 = (RuleCall)cMarginBottomValueAssignment_3_14_1.eContents().get(0);
+		private final Assignment cMarginBottomUnitAssignment_3_14_2 = (Assignment)cGroup_3_14.eContents().get(2);
+		private final RuleCall cMarginBottomUnitUnitEnumEnumRuleCall_3_14_2_0 = (RuleCall)cMarginBottomUnitAssignment_3_14_2.eContents().get(0);
+		private final Group cGroup_3_15 = (Group)cUnorderedGroup_3.eContents().get(15);
+		private final Keyword cMarginLeftKeyword_3_15_0 = (Keyword)cGroup_3_15.eContents().get(0);
+		private final Assignment cMarginLeftValueAssignment_3_15_1 = (Assignment)cGroup_3_15.eContents().get(1);
+		private final RuleCall cMarginLeftValueUnsignedNumberParserRuleCall_3_15_1_0 = (RuleCall)cMarginLeftValueAssignment_3_15_1.eContents().get(0);
+		private final Assignment cMarginLeftUnitAssignment_3_15_2 = (Assignment)cGroup_3_15.eContents().get(2);
+		private final RuleCall cMarginLeftUnitUnitEnumEnumRuleCall_3_15_2_0 = (RuleCall)cMarginLeftUnitAssignment_3_15_2.eContents().get(0);
+		private final Group cGroup_3_16 = (Group)cUnorderedGroup_3.eContents().get(16);
+		private final Keyword cMarginRightKeyword_3_16_0 = (Keyword)cGroup_3_16.eContents().get(0);
+		private final Assignment cMarginRightValueAssignment_3_16_1 = (Assignment)cGroup_3_16.eContents().get(1);
+		private final RuleCall cMarginRightValueUnsignedNumberParserRuleCall_3_16_1_0 = (RuleCall)cMarginRightValueAssignment_3_16_1.eContents().get(0);
+		private final Assignment cMarginRightUnitAssignment_3_16_2 = (Assignment)cGroup_3_16.eContents().get(2);
+		private final RuleCall cMarginRightUnitUnitEnumEnumRuleCall_3_16_2_0 = (RuleCall)cMarginRightUnitAssignment_3_16_2.eContents().get(0);
+		private final Keyword cRightCurlyBracketKeyword_4 = (Keyword)cGroup.eContents().get(4);
+		
+		//MediaStyle:
+		//	"media" media=[Media] "{" (("formatter" format=[SomeFormat])? & ("font" font=[Font])? & ("backgroundcolor"
+		//	backgroundcolor=[Color] ("alternate" backgroundcolor_alternate=[Color])?)? & ("textcolor" textcolor=[Color])? &
+		//	("textalign" textalign=TextAlignEnum)? & ("border-top" borderTop=BorderStyle)? & ("border-bottom"
+		//	borderBottom=BorderStyle)? & ("border-left" borderLeft=BorderStyle)? & ("border-right" borderRight=BorderStyle)? &
+		//	("padding-top" paddingTopValue=UnsignedNumber paddingTopUnit=UnitEnum)? & ("padding-bottom"
+		//	paddingBottomValue=UnsignedNumber paddingBottomUnit=UnitEnum)? & ("padding-left" paddingLeftValue=UnsignedNumber
+		//	paddingLeftUnit=UnitEnum)? & ("padding-right" paddingRightValue=UnsignedNumber paddingRightUnit=UnitEnum)? &
+		//	("margin-top" marginTopValue=UnsignedNumber marginTopUnit=UnitEnum)? & ("margin-bottom"
+		//	marginBottomValue=UnsignedNumber marginBottomUnit=UnitEnum)? & ("margin-left" marginLeftValue=UnsignedNumber
+		//	marginLeftUnit=UnitEnum)? & ("margin-right" marginRightValue=UnsignedNumber marginRightUnit=UnitEnum)?) "}";
+		public ParserRule getRule() { return rule; }
+
+		//"media" media=[Media] "{" (("formatter" format=[SomeFormat])? & ("font" font=[Font])? & ("backgroundcolor"
+		//backgroundcolor=[Color] ("alternate" backgroundcolor_alternate=[Color])?)? & ("textcolor" textcolor=[Color])? &
+		//("textalign" textalign=TextAlignEnum)? & ("border-top" borderTop=BorderStyle)? & ("border-bottom"
+		//borderBottom=BorderStyle)? & ("border-left" borderLeft=BorderStyle)? & ("border-right" borderRight=BorderStyle)? &
+		//("padding-top" paddingTopValue=UnsignedNumber paddingTopUnit=UnitEnum)? & ("padding-bottom"
+		//paddingBottomValue=UnsignedNumber paddingBottomUnit=UnitEnum)? & ("padding-left" paddingLeftValue=UnsignedNumber
+		//paddingLeftUnit=UnitEnum)? & ("padding-right" paddingRightValue=UnsignedNumber paddingRightUnit=UnitEnum)? &
+		//("margin-top" marginTopValue=UnsignedNumber marginTopUnit=UnitEnum)? & ("margin-bottom"
+		//marginBottomValue=UnsignedNumber marginBottomUnit=UnitEnum)? & ("margin-left" marginLeftValue=UnsignedNumber
+		//marginLeftUnit=UnitEnum)? & ("margin-right" marginRightValue=UnsignedNumber marginRightUnit=UnitEnum)?) "}"
+		public Group getGroup() { return cGroup; }
+
+		//"media"
+		public Keyword getMediaKeyword_0() { return cMediaKeyword_0; }
+
+		//media=[Media]
+		public Assignment getMediaAssignment_1() { return cMediaAssignment_1; }
+
+		//[Media]
+		public CrossReference getMediaMediaCrossReference_1_0() { return cMediaMediaCrossReference_1_0; }
+
+		//ID
+		public RuleCall getMediaMediaIDTerminalRuleCall_1_0_1() { return cMediaMediaIDTerminalRuleCall_1_0_1; }
+
+		//"{"
+		public Keyword getLeftCurlyBracketKeyword_2() { return cLeftCurlyBracketKeyword_2; }
+
+		//("formatter" format=[SomeFormat])? & ("font" font=[Font])? & ("backgroundcolor" backgroundcolor=[Color] ("alternate"
+		//backgroundcolor_alternate=[Color])?)? & ("textcolor" textcolor=[Color])? & ("textalign" textalign=TextAlignEnum)? &
+		//("border-top" borderTop=BorderStyle)? & ("border-bottom" borderBottom=BorderStyle)? & ("border-left"
+		//borderLeft=BorderStyle)? & ("border-right" borderRight=BorderStyle)? & ("padding-top" paddingTopValue=UnsignedNumber
+		//paddingTopUnit=UnitEnum)? & ("padding-bottom" paddingBottomValue=UnsignedNumber paddingBottomUnit=UnitEnum)? &
+		//("padding-left" paddingLeftValue=UnsignedNumber paddingLeftUnit=UnitEnum)? & ("padding-right"
+		//paddingRightValue=UnsignedNumber paddingRightUnit=UnitEnum)? & ("margin-top" marginTopValue=UnsignedNumber
+		//marginTopUnit=UnitEnum)? & ("margin-bottom" marginBottomValue=UnsignedNumber marginBottomUnit=UnitEnum)? &
+		//("margin-left" marginLeftValue=UnsignedNumber marginLeftUnit=UnitEnum)? & ("margin-right"
+		//marginRightValue=UnsignedNumber marginRightUnit=UnitEnum)?
+		public UnorderedGroup getUnorderedGroup_3() { return cUnorderedGroup_3; }
+
+		//("formatter" format=[SomeFormat])?
+		public Group getGroup_3_0() { return cGroup_3_0; }
+
+		//"formatter"
+		public Keyword getFormatterKeyword_3_0_0() { return cFormatterKeyword_3_0_0; }
+
+		//format=[SomeFormat]
+		public Assignment getFormatAssignment_3_0_1() { return cFormatAssignment_3_0_1; }
+
+		//[SomeFormat]
+		public CrossReference getFormatSomeFormatCrossReference_3_0_1_0() { return cFormatSomeFormatCrossReference_3_0_1_0; }
+
+		//ID
+		public RuleCall getFormatSomeFormatIDTerminalRuleCall_3_0_1_0_1() { return cFormatSomeFormatIDTerminalRuleCall_3_0_1_0_1; }
+
+		//("font" font=[Font])?
+		public Group getGroup_3_1() { return cGroup_3_1; }
+
+		//"font"
+		public Keyword getFontKeyword_3_1_0() { return cFontKeyword_3_1_0; }
+
+		//font=[Font]
+		public Assignment getFontAssignment_3_1_1() { return cFontAssignment_3_1_1; }
+
+		//[Font]
+		public CrossReference getFontFontCrossReference_3_1_1_0() { return cFontFontCrossReference_3_1_1_0; }
+
+		//ID
+		public RuleCall getFontFontIDTerminalRuleCall_3_1_1_0_1() { return cFontFontIDTerminalRuleCall_3_1_1_0_1; }
+
+		//("backgroundcolor" backgroundcolor=[Color] ("alternate" backgroundcolor_alternate=[Color])?)?
+		public Group getGroup_3_2() { return cGroup_3_2; }
+
+		//"backgroundcolor"
+		public Keyword getBackgroundcolorKeyword_3_2_0() { return cBackgroundcolorKeyword_3_2_0; }
+
+		//backgroundcolor=[Color]
+		public Assignment getBackgroundcolorAssignment_3_2_1() { return cBackgroundcolorAssignment_3_2_1; }
+
+		//[Color]
+		public CrossReference getBackgroundcolorColorCrossReference_3_2_1_0() { return cBackgroundcolorColorCrossReference_3_2_1_0; }
+
+		//ID
+		public RuleCall getBackgroundcolorColorIDTerminalRuleCall_3_2_1_0_1() { return cBackgroundcolorColorIDTerminalRuleCall_3_2_1_0_1; }
+
+		//("alternate" backgroundcolor_alternate=[Color])?
+		public Group getGroup_3_2_2() { return cGroup_3_2_2; }
+
+		//"alternate"
+		public Keyword getAlternateKeyword_3_2_2_0() { return cAlternateKeyword_3_2_2_0; }
+
+		//backgroundcolor_alternate=[Color]
+		public Assignment getBackgroundcolor_alternateAssignment_3_2_2_1() { return cBackgroundcolor_alternateAssignment_3_2_2_1; }
+
+		//[Color]
+		public CrossReference getBackgroundcolor_alternateColorCrossReference_3_2_2_1_0() { return cBackgroundcolor_alternateColorCrossReference_3_2_2_1_0; }
+
+		//ID
+		public RuleCall getBackgroundcolor_alternateColorIDTerminalRuleCall_3_2_2_1_0_1() { return cBackgroundcolor_alternateColorIDTerminalRuleCall_3_2_2_1_0_1; }
+
+		//("textcolor" textcolor=[Color])?
+		public Group getGroup_3_3() { return cGroup_3_3; }
+
+		//"textcolor"
+		public Keyword getTextcolorKeyword_3_3_0() { return cTextcolorKeyword_3_3_0; }
+
+		//textcolor=[Color]
+		public Assignment getTextcolorAssignment_3_3_1() { return cTextcolorAssignment_3_3_1; }
+
+		//[Color]
+		public CrossReference getTextcolorColorCrossReference_3_3_1_0() { return cTextcolorColorCrossReference_3_3_1_0; }
+
+		//ID
+		public RuleCall getTextcolorColorIDTerminalRuleCall_3_3_1_0_1() { return cTextcolorColorIDTerminalRuleCall_3_3_1_0_1; }
+
+		//("textalign" textalign=TextAlignEnum)?
+		public Group getGroup_3_4() { return cGroup_3_4; }
+
+		//"textalign"
+		public Keyword getTextalignKeyword_3_4_0() { return cTextalignKeyword_3_4_0; }
+
+		//textalign=TextAlignEnum
+		public Assignment getTextalignAssignment_3_4_1() { return cTextalignAssignment_3_4_1; }
+
+		//TextAlignEnum
+		public RuleCall getTextalignTextAlignEnumEnumRuleCall_3_4_1_0() { return cTextalignTextAlignEnumEnumRuleCall_3_4_1_0; }
+
+		//("border-top" borderTop=BorderStyle)?
+		public Group getGroup_3_5() { return cGroup_3_5; }
+
+		//"border-top"
+		public Keyword getBorderTopKeyword_3_5_0() { return cBorderTopKeyword_3_5_0; }
+
+		//borderTop=BorderStyle
+		public Assignment getBorderTopAssignment_3_5_1() { return cBorderTopAssignment_3_5_1; }
+
+		//BorderStyle
+		public RuleCall getBorderTopBorderStyleParserRuleCall_3_5_1_0() { return cBorderTopBorderStyleParserRuleCall_3_5_1_0; }
+
+		//("border-bottom" borderBottom=BorderStyle)?
+		public Group getGroup_3_6() { return cGroup_3_6; }
+
+		//"border-bottom"
+		public Keyword getBorderBottomKeyword_3_6_0() { return cBorderBottomKeyword_3_6_0; }
+
+		//borderBottom=BorderStyle
+		public Assignment getBorderBottomAssignment_3_6_1() { return cBorderBottomAssignment_3_6_1; }
+
+		//BorderStyle
+		public RuleCall getBorderBottomBorderStyleParserRuleCall_3_6_1_0() { return cBorderBottomBorderStyleParserRuleCall_3_6_1_0; }
+
+		//("border-left" borderLeft=BorderStyle)?
+		public Group getGroup_3_7() { return cGroup_3_7; }
+
+		//"border-left"
+		public Keyword getBorderLeftKeyword_3_7_0() { return cBorderLeftKeyword_3_7_0; }
+
+		//borderLeft=BorderStyle
+		public Assignment getBorderLeftAssignment_3_7_1() { return cBorderLeftAssignment_3_7_1; }
+
+		//BorderStyle
+		public RuleCall getBorderLeftBorderStyleParserRuleCall_3_7_1_0() { return cBorderLeftBorderStyleParserRuleCall_3_7_1_0; }
+
+		//("border-right" borderRight=BorderStyle)?
+		public Group getGroup_3_8() { return cGroup_3_8; }
+
+		//"border-right"
+		public Keyword getBorderRightKeyword_3_8_0() { return cBorderRightKeyword_3_8_0; }
+
+		//borderRight=BorderStyle
+		public Assignment getBorderRightAssignment_3_8_1() { return cBorderRightAssignment_3_8_1; }
+
+		//BorderStyle
+		public RuleCall getBorderRightBorderStyleParserRuleCall_3_8_1_0() { return cBorderRightBorderStyleParserRuleCall_3_8_1_0; }
+
+		//("padding-top" paddingTopValue=UnsignedNumber paddingTopUnit=UnitEnum)?
+		public Group getGroup_3_9() { return cGroup_3_9; }
+
+		//"padding-top"
+		public Keyword getPaddingTopKeyword_3_9_0() { return cPaddingTopKeyword_3_9_0; }
+
+		//paddingTopValue=UnsignedNumber
+		public Assignment getPaddingTopValueAssignment_3_9_1() { return cPaddingTopValueAssignment_3_9_1; }
+
+		//UnsignedNumber
+		public RuleCall getPaddingTopValueUnsignedNumberParserRuleCall_3_9_1_0() { return cPaddingTopValueUnsignedNumberParserRuleCall_3_9_1_0; }
+
+		//paddingTopUnit=UnitEnum
+		public Assignment getPaddingTopUnitAssignment_3_9_2() { return cPaddingTopUnitAssignment_3_9_2; }
+
+		//UnitEnum
+		public RuleCall getPaddingTopUnitUnitEnumEnumRuleCall_3_9_2_0() { return cPaddingTopUnitUnitEnumEnumRuleCall_3_9_2_0; }
+
+		//("padding-bottom" paddingBottomValue=UnsignedNumber paddingBottomUnit=UnitEnum)?
+		public Group getGroup_3_10() { return cGroup_3_10; }
+
+		//"padding-bottom"
+		public Keyword getPaddingBottomKeyword_3_10_0() { return cPaddingBottomKeyword_3_10_0; }
+
+		//paddingBottomValue=UnsignedNumber
+		public Assignment getPaddingBottomValueAssignment_3_10_1() { return cPaddingBottomValueAssignment_3_10_1; }
+
+		//UnsignedNumber
+		public RuleCall getPaddingBottomValueUnsignedNumberParserRuleCall_3_10_1_0() { return cPaddingBottomValueUnsignedNumberParserRuleCall_3_10_1_0; }
+
+		//paddingBottomUnit=UnitEnum
+		public Assignment getPaddingBottomUnitAssignment_3_10_2() { return cPaddingBottomUnitAssignment_3_10_2; }
+
+		//UnitEnum
+		public RuleCall getPaddingBottomUnitUnitEnumEnumRuleCall_3_10_2_0() { return cPaddingBottomUnitUnitEnumEnumRuleCall_3_10_2_0; }
+
+		//("padding-left" paddingLeftValue=UnsignedNumber paddingLeftUnit=UnitEnum)?
+		public Group getGroup_3_11() { return cGroup_3_11; }
+
+		//"padding-left"
+		public Keyword getPaddingLeftKeyword_3_11_0() { return cPaddingLeftKeyword_3_11_0; }
+
+		//paddingLeftValue=UnsignedNumber
+		public Assignment getPaddingLeftValueAssignment_3_11_1() { return cPaddingLeftValueAssignment_3_11_1; }
+
+		//UnsignedNumber
+		public RuleCall getPaddingLeftValueUnsignedNumberParserRuleCall_3_11_1_0() { return cPaddingLeftValueUnsignedNumberParserRuleCall_3_11_1_0; }
+
+		//paddingLeftUnit=UnitEnum
+		public Assignment getPaddingLeftUnitAssignment_3_11_2() { return cPaddingLeftUnitAssignment_3_11_2; }
+
+		//UnitEnum
+		public RuleCall getPaddingLeftUnitUnitEnumEnumRuleCall_3_11_2_0() { return cPaddingLeftUnitUnitEnumEnumRuleCall_3_11_2_0; }
+
+		//("padding-right" paddingRightValue=UnsignedNumber paddingRightUnit=UnitEnum)?
+		public Group getGroup_3_12() { return cGroup_3_12; }
+
+		//"padding-right"
+		public Keyword getPaddingRightKeyword_3_12_0() { return cPaddingRightKeyword_3_12_0; }
+
+		//paddingRightValue=UnsignedNumber
+		public Assignment getPaddingRightValueAssignment_3_12_1() { return cPaddingRightValueAssignment_3_12_1; }
+
+		//UnsignedNumber
+		public RuleCall getPaddingRightValueUnsignedNumberParserRuleCall_3_12_1_0() { return cPaddingRightValueUnsignedNumberParserRuleCall_3_12_1_0; }
+
+		//paddingRightUnit=UnitEnum
+		public Assignment getPaddingRightUnitAssignment_3_12_2() { return cPaddingRightUnitAssignment_3_12_2; }
+
+		//UnitEnum
+		public RuleCall getPaddingRightUnitUnitEnumEnumRuleCall_3_12_2_0() { return cPaddingRightUnitUnitEnumEnumRuleCall_3_12_2_0; }
+
+		//("margin-top" marginTopValue=UnsignedNumber marginTopUnit=UnitEnum)?
+		public Group getGroup_3_13() { return cGroup_3_13; }
+
+		//"margin-top"
+		public Keyword getMarginTopKeyword_3_13_0() { return cMarginTopKeyword_3_13_0; }
+
+		//marginTopValue=UnsignedNumber
+		public Assignment getMarginTopValueAssignment_3_13_1() { return cMarginTopValueAssignment_3_13_1; }
+
+		//UnsignedNumber
+		public RuleCall getMarginTopValueUnsignedNumberParserRuleCall_3_13_1_0() { return cMarginTopValueUnsignedNumberParserRuleCall_3_13_1_0; }
+
+		//marginTopUnit=UnitEnum
+		public Assignment getMarginTopUnitAssignment_3_13_2() { return cMarginTopUnitAssignment_3_13_2; }
+
+		//UnitEnum
+		public RuleCall getMarginTopUnitUnitEnumEnumRuleCall_3_13_2_0() { return cMarginTopUnitUnitEnumEnumRuleCall_3_13_2_0; }
+
+		//("margin-bottom" marginBottomValue=UnsignedNumber marginBottomUnit=UnitEnum)?
+		public Group getGroup_3_14() { return cGroup_3_14; }
+
+		//"margin-bottom"
+		public Keyword getMarginBottomKeyword_3_14_0() { return cMarginBottomKeyword_3_14_0; }
+
+		//marginBottomValue=UnsignedNumber
+		public Assignment getMarginBottomValueAssignment_3_14_1() { return cMarginBottomValueAssignment_3_14_1; }
+
+		//UnsignedNumber
+		public RuleCall getMarginBottomValueUnsignedNumberParserRuleCall_3_14_1_0() { return cMarginBottomValueUnsignedNumberParserRuleCall_3_14_1_0; }
+
+		//marginBottomUnit=UnitEnum
+		public Assignment getMarginBottomUnitAssignment_3_14_2() { return cMarginBottomUnitAssignment_3_14_2; }
+
+		//UnitEnum
+		public RuleCall getMarginBottomUnitUnitEnumEnumRuleCall_3_14_2_0() { return cMarginBottomUnitUnitEnumEnumRuleCall_3_14_2_0; }
+
+		//("margin-left" marginLeftValue=UnsignedNumber marginLeftUnit=UnitEnum)?
+		public Group getGroup_3_15() { return cGroup_3_15; }
+
+		//"margin-left"
+		public Keyword getMarginLeftKeyword_3_15_0() { return cMarginLeftKeyword_3_15_0; }
+
+		//marginLeftValue=UnsignedNumber
+		public Assignment getMarginLeftValueAssignment_3_15_1() { return cMarginLeftValueAssignment_3_15_1; }
+
+		//UnsignedNumber
+		public RuleCall getMarginLeftValueUnsignedNumberParserRuleCall_3_15_1_0() { return cMarginLeftValueUnsignedNumberParserRuleCall_3_15_1_0; }
+
+		//marginLeftUnit=UnitEnum
+		public Assignment getMarginLeftUnitAssignment_3_15_2() { return cMarginLeftUnitAssignment_3_15_2; }
+
+		//UnitEnum
+		public RuleCall getMarginLeftUnitUnitEnumEnumRuleCall_3_15_2_0() { return cMarginLeftUnitUnitEnumEnumRuleCall_3_15_2_0; }
+
+		//("margin-right" marginRightValue=UnsignedNumber marginRightUnit=UnitEnum)?
+		public Group getGroup_3_16() { return cGroup_3_16; }
+
+		//"margin-right"
+		public Keyword getMarginRightKeyword_3_16_0() { return cMarginRightKeyword_3_16_0; }
+
+		//marginRightValue=UnsignedNumber
+		public Assignment getMarginRightValueAssignment_3_16_1() { return cMarginRightValueAssignment_3_16_1; }
+
+		//UnsignedNumber
+		public RuleCall getMarginRightValueUnsignedNumberParserRuleCall_3_16_1_0() { return cMarginRightValueUnsignedNumberParserRuleCall_3_16_1_0; }
+
+		//marginRightUnit=UnitEnum
+		public Assignment getMarginRightUnitAssignment_3_16_2() { return cMarginRightUnitAssignment_3_16_2; }
+
+		//UnitEnum
+		public RuleCall getMarginRightUnitUnitEnumEnumRuleCall_3_16_2_0() { return cMarginRightUnitUnitEnumEnumRuleCall_3_16_2_0; }
+
+		//"}"
+		public Keyword getRightCurlyBracketKeyword_4() { return cRightCurlyBracketKeyword_4; }
+	}
+
+	public class SomeFormatElements extends AbstractParserRuleElementFinder {
+		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "SomeFormat");
+		private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1);
+		private final RuleCall cUomoFormatParserRuleCall_0 = (RuleCall)cAlternatives.eContents().get(0);
+		private final RuleCall cNumberFormatParserRuleCall_1 = (RuleCall)cAlternatives.eContents().get(1);
+		private final RuleCall cCurrencyFormatParserRuleCall_2 = (RuleCall)cAlternatives.eContents().get(2);
+		private final RuleCall cDateFormatParserRuleCall_3 = (RuleCall)cAlternatives.eContents().get(3);
+		private final RuleCall cDateTimeFormatParserRuleCall_4 = (RuleCall)cAlternatives.eContents().get(4);
+		private final RuleCall cTimeFormatParserRuleCall_5 = (RuleCall)cAlternatives.eContents().get(5);
+		
+		//SomeFormat:
+		//	UomoFormat | NumberFormat | CurrencyFormat | DateFormat | DateTimeFormat | TimeFormat;
+		public ParserRule getRule() { return rule; }
+
+		//UomoFormat | NumberFormat | CurrencyFormat | DateFormat | DateTimeFormat | TimeFormat
+		public Alternatives getAlternatives() { return cAlternatives; }
+
+		//UomoFormat
+		public RuleCall getUomoFormatParserRuleCall_0() { return cUomoFormatParserRuleCall_0; }
+
+		//NumberFormat
+		public RuleCall getNumberFormatParserRuleCall_1() { return cNumberFormatParserRuleCall_1; }
+
+		//CurrencyFormat
+		public RuleCall getCurrencyFormatParserRuleCall_2() { return cCurrencyFormatParserRuleCall_2; }
+
+		//DateFormat
+		public RuleCall getDateFormatParserRuleCall_3() { return cDateFormatParserRuleCall_3; }
+
+		//DateTimeFormat
+		public RuleCall getDateTimeFormatParserRuleCall_4() { return cDateTimeFormatParserRuleCall_4; }
+
+		//TimeFormat
+		public RuleCall getTimeFormatParserRuleCall_5() { return cTimeFormatParserRuleCall_5; }
+	}
+
+	public class UomoFormatElements extends AbstractParserRuleElementFinder {
+		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "UomoFormat");
+		private final Group cGroup = (Group)rule.eContents().get(1);
+		private final Keyword cUomoKeyword_0 = (Keyword)cGroup.eContents().get(0);
+		private final Assignment cNameAssignment_1 = (Assignment)cGroup.eContents().get(1);
+		private final RuleCall cNameIDTerminalRuleCall_1_0 = (RuleCall)cNameAssignment_1.eContents().get(0);
+		private final Keyword cLeftCurlyBracketKeyword_2 = (Keyword)cGroup.eContents().get(2);
+		private final Keyword cUiKeyword_3 = (Keyword)cGroup.eContents().get(3);
+		private final Assignment cUi_patternAssignment_4 = (Assignment)cGroup.eContents().get(4);
+		private final RuleCall cUi_patternSTRINGTerminalRuleCall_4_0 = (RuleCall)cUi_patternAssignment_4.eContents().get(0);
+		private final Keyword cReportKeyword_5 = (Keyword)cGroup.eContents().get(5);
+		private final Assignment cReport_patternAssignment_6 = (Assignment)cGroup.eContents().get(6);
+		private final RuleCall cReport_patternSTRINGTerminalRuleCall_6_0 = (RuleCall)cReport_patternAssignment_6.eContents().get(0);
+		private final Keyword cTextalignKeyword_7 = (Keyword)cGroup.eContents().get(7);
+		private final Assignment cTextalignAssignment_8 = (Assignment)cGroup.eContents().get(8);
+		private final RuleCall cTextalignTextAlignEnumEnumRuleCall_8_0 = (RuleCall)cTextalignAssignment_8.eContents().get(0);
+		private final Keyword cRightCurlyBracketKeyword_9 = (Keyword)cGroup.eContents().get(9);
+		
+		//UomoFormat:
+		//	"uomo" name=ID "{" "ui" ui_pattern=STRING "report" report_pattern=STRING "textalign" textalign=TextAlignEnum "}";
+		public ParserRule getRule() { return rule; }
+
+		//"uomo" name=ID "{" "ui" ui_pattern=STRING "report" report_pattern=STRING "textalign" textalign=TextAlignEnum "}"
+		public Group getGroup() { return cGroup; }
+
+		//"uomo"
+		public Keyword getUomoKeyword_0() { return cUomoKeyword_0; }
+
+		//name=ID
+		public Assignment getNameAssignment_1() { return cNameAssignment_1; }
+
+		//ID
+		public RuleCall getNameIDTerminalRuleCall_1_0() { return cNameIDTerminalRuleCall_1_0; }
+
+		//"{"
+		public Keyword getLeftCurlyBracketKeyword_2() { return cLeftCurlyBracketKeyword_2; }
+
+		//"ui"
+		public Keyword getUiKeyword_3() { return cUiKeyword_3; }
+
+		//ui_pattern=STRING
+		public Assignment getUi_patternAssignment_4() { return cUi_patternAssignment_4; }
+
+		//STRING
+		public RuleCall getUi_patternSTRINGTerminalRuleCall_4_0() { return cUi_patternSTRINGTerminalRuleCall_4_0; }
+
+		//"report"
+		public Keyword getReportKeyword_5() { return cReportKeyword_5; }
+
+		//report_pattern=STRING
+		public Assignment getReport_patternAssignment_6() { return cReport_patternAssignment_6; }
+
+		//STRING
+		public RuleCall getReport_patternSTRINGTerminalRuleCall_6_0() { return cReport_patternSTRINGTerminalRuleCall_6_0; }
+
+		//"textalign"
+		public Keyword getTextalignKeyword_7() { return cTextalignKeyword_7; }
+
+		//textalign=TextAlignEnum
+		public Assignment getTextalignAssignment_8() { return cTextalignAssignment_8; }
+
+		//TextAlignEnum
+		public RuleCall getTextalignTextAlignEnumEnumRuleCall_8_0() { return cTextalignTextAlignEnumEnumRuleCall_8_0; }
+
+		//"}"
+		public Keyword getRightCurlyBracketKeyword_9() { return cRightCurlyBracketKeyword_9; }
+	}
+
+	public class NumberFormatElements extends AbstractParserRuleElementFinder {
+		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "NumberFormat");
+		private final Group cGroup = (Group)rule.eContents().get(1);
+		private final Keyword cNumberKeyword_0 = (Keyword)cGroup.eContents().get(0);
+		private final Assignment cNameAssignment_1 = (Assignment)cGroup.eContents().get(1);
+		private final RuleCall cNameIDTerminalRuleCall_1_0 = (RuleCall)cNameAssignment_1.eContents().get(0);
+		private final Keyword cLeftCurlyBracketKeyword_2 = (Keyword)cGroup.eContents().get(2);
+		private final Keyword cUiKeyword_3 = (Keyword)cGroup.eContents().get(3);
+		private final Assignment cUi_patternAssignment_4 = (Assignment)cGroup.eContents().get(4);
+		private final RuleCall cUi_patternSTRINGTerminalRuleCall_4_0 = (RuleCall)cUi_patternAssignment_4.eContents().get(0);
+		private final Keyword cReportKeyword_5 = (Keyword)cGroup.eContents().get(5);
+		private final Assignment cReport_categoryAssignment_6 = (Assignment)cGroup.eContents().get(6);
+		private final RuleCall cReport_categoryNumberFormatCategoryEnumEnumRuleCall_6_0 = (RuleCall)cReport_categoryAssignment_6.eContents().get(0);
+		private final Assignment cReport_patternAssignment_7 = (Assignment)cGroup.eContents().get(7);
+		private final RuleCall cReport_patternSTRINGTerminalRuleCall_7_0 = (RuleCall)cReport_patternAssignment_7.eContents().get(0);
+		private final Keyword cTextalignKeyword_8 = (Keyword)cGroup.eContents().get(8);
+		private final Assignment cTextalignAssignment_9 = (Assignment)cGroup.eContents().get(9);
+		private final RuleCall cTextalignTextAlignEnumEnumRuleCall_9_0 = (RuleCall)cTextalignAssignment_9.eContents().get(0);
+		private final Keyword cRightCurlyBracketKeyword_10 = (Keyword)cGroup.eContents().get(10);
+		
+		//NumberFormat:
+		//	"number" name=ID "{" "ui" ui_pattern=STRING "report" report_category=NumberFormatCategoryEnum report_pattern=STRING
+		//	"textalign" textalign=TextAlignEnum "}";
+		public ParserRule getRule() { return rule; }
+
+		//"number" name=ID "{" "ui" ui_pattern=STRING "report" report_category=NumberFormatCategoryEnum report_pattern=STRING
+		//"textalign" textalign=TextAlignEnum "}"
+		public Group getGroup() { return cGroup; }
+
+		//"number"
+		public Keyword getNumberKeyword_0() { return cNumberKeyword_0; }
+
+		//name=ID
+		public Assignment getNameAssignment_1() { return cNameAssignment_1; }
+
+		//ID
+		public RuleCall getNameIDTerminalRuleCall_1_0() { return cNameIDTerminalRuleCall_1_0; }
+
+		//"{"
+		public Keyword getLeftCurlyBracketKeyword_2() { return cLeftCurlyBracketKeyword_2; }
+
+		//"ui"
+		public Keyword getUiKeyword_3() { return cUiKeyword_3; }
+
+		//ui_pattern=STRING
+		public Assignment getUi_patternAssignment_4() { return cUi_patternAssignment_4; }
+
+		//STRING
+		public RuleCall getUi_patternSTRINGTerminalRuleCall_4_0() { return cUi_patternSTRINGTerminalRuleCall_4_0; }
+
+		//"report"
+		public Keyword getReportKeyword_5() { return cReportKeyword_5; }
+
+		//report_category=NumberFormatCategoryEnum
+		public Assignment getReport_categoryAssignment_6() { return cReport_categoryAssignment_6; }
+
+		//NumberFormatCategoryEnum
+		public RuleCall getReport_categoryNumberFormatCategoryEnumEnumRuleCall_6_0() { return cReport_categoryNumberFormatCategoryEnumEnumRuleCall_6_0; }
+
+		//report_pattern=STRING
+		public Assignment getReport_patternAssignment_7() { return cReport_patternAssignment_7; }
+
+		//STRING
+		public RuleCall getReport_patternSTRINGTerminalRuleCall_7_0() { return cReport_patternSTRINGTerminalRuleCall_7_0; }
+
+		//"textalign"
+		public Keyword getTextalignKeyword_8() { return cTextalignKeyword_8; }
+
+		//textalign=TextAlignEnum
+		public Assignment getTextalignAssignment_9() { return cTextalignAssignment_9; }
+
+		//TextAlignEnum
+		public RuleCall getTextalignTextAlignEnumEnumRuleCall_9_0() { return cTextalignTextAlignEnumEnumRuleCall_9_0; }
+
+		//"}"
+		public Keyword getRightCurlyBracketKeyword_10() { return cRightCurlyBracketKeyword_10; }
+	}
+
+	public class CurrencyFormatElements extends AbstractParserRuleElementFinder {
+		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "CurrencyFormat");
+		private final Group cGroup = (Group)rule.eContents().get(1);
+		private final Keyword cCurrencyKeyword_0 = (Keyword)cGroup.eContents().get(0);
+		private final Assignment cNameAssignment_1 = (Assignment)cGroup.eContents().get(1);
+		private final RuleCall cNameIDTerminalRuleCall_1_0 = (RuleCall)cNameAssignment_1.eContents().get(0);
+		private final Keyword cLeftCurlyBracketKeyword_2 = (Keyword)cGroup.eContents().get(2);
+		private final Keyword cUiKeyword_3 = (Keyword)cGroup.eContents().get(3);
+		private final Assignment cUi_patternAssignment_4 = (Assignment)cGroup.eContents().get(4);
+		private final RuleCall cUi_patternSTRINGTerminalRuleCall_4_0 = (RuleCall)cUi_patternAssignment_4.eContents().get(0);
+		private final Keyword cReportKeyword_5 = (Keyword)cGroup.eContents().get(5);
+		private final Assignment cReport_categoryAssignment_6 = (Assignment)cGroup.eContents().get(6);
+		private final RuleCall cReport_categoryCurrencyFormatCategoryEnumEnumRuleCall_6_0 = (RuleCall)cReport_categoryAssignment_6.eContents().get(0);
+		private final Assignment cReport_patternAssignment_7 = (Assignment)cGroup.eContents().get(7);
+		private final RuleCall cReport_patternSTRINGTerminalRuleCall_7_0 = (RuleCall)cReport_patternAssignment_7.eContents().get(0);
+		private final Keyword cTextalignKeyword_8 = (Keyword)cGroup.eContents().get(8);
+		private final Assignment cTextalignAssignment_9 = (Assignment)cGroup.eContents().get(9);
+		private final RuleCall cTextalignTextAlignEnumEnumRuleCall_9_0 = (RuleCall)cTextalignAssignment_9.eContents().get(0);
+		private final Keyword cRightCurlyBracketKeyword_10 = (Keyword)cGroup.eContents().get(10);
+		
+		//CurrencyFormat:
+		//	"currency" name=ID "{" "ui" ui_pattern=STRING "report" report_category=CurrencyFormatCategoryEnum
+		//	report_pattern=STRING "textalign" textalign=TextAlignEnum "}";
+		public ParserRule getRule() { return rule; }
+
+		//"currency" name=ID "{" "ui" ui_pattern=STRING "report" report_category=CurrencyFormatCategoryEnum report_pattern=STRING
+		//"textalign" textalign=TextAlignEnum "}"
+		public Group getGroup() { return cGroup; }
+
+		//"currency"
+		public Keyword getCurrencyKeyword_0() { return cCurrencyKeyword_0; }
+
+		//name=ID
+		public Assignment getNameAssignment_1() { return cNameAssignment_1; }
+
+		//ID
+		public RuleCall getNameIDTerminalRuleCall_1_0() { return cNameIDTerminalRuleCall_1_0; }
+
+		//"{"
+		public Keyword getLeftCurlyBracketKeyword_2() { return cLeftCurlyBracketKeyword_2; }
+
+		//"ui"
+		public Keyword getUiKeyword_3() { return cUiKeyword_3; }
+
+		//ui_pattern=STRING
+		public Assignment getUi_patternAssignment_4() { return cUi_patternAssignment_4; }
+
+		//STRING
+		public RuleCall getUi_patternSTRINGTerminalRuleCall_4_0() { return cUi_patternSTRINGTerminalRuleCall_4_0; }
+
+		//"report"
+		public Keyword getReportKeyword_5() { return cReportKeyword_5; }
+
+		//report_category=CurrencyFormatCategoryEnum
+		public Assignment getReport_categoryAssignment_6() { return cReport_categoryAssignment_6; }
+
+		//CurrencyFormatCategoryEnum
+		public RuleCall getReport_categoryCurrencyFormatCategoryEnumEnumRuleCall_6_0() { return cReport_categoryCurrencyFormatCategoryEnumEnumRuleCall_6_0; }
+
+		//report_pattern=STRING
+		public Assignment getReport_patternAssignment_7() { return cReport_patternAssignment_7; }
+
+		//STRING
+		public RuleCall getReport_patternSTRINGTerminalRuleCall_7_0() { return cReport_patternSTRINGTerminalRuleCall_7_0; }
+
+		//"textalign"
+		public Keyword getTextalignKeyword_8() { return cTextalignKeyword_8; }
+
+		//textalign=TextAlignEnum
+		public Assignment getTextalignAssignment_9() { return cTextalignAssignment_9; }
+
+		//TextAlignEnum
+		public RuleCall getTextalignTextAlignEnumEnumRuleCall_9_0() { return cTextalignTextAlignEnumEnumRuleCall_9_0; }
+
+		//"}"
+		public Keyword getRightCurlyBracketKeyword_10() { return cRightCurlyBracketKeyword_10; }
+	}
+
+	public class DateFormatElements extends AbstractParserRuleElementFinder {
+		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "DateFormat");
+		private final Group cGroup = (Group)rule.eContents().get(1);
+		private final Keyword cDateKeyword_0 = (Keyword)cGroup.eContents().get(0);
+		private final Assignment cNameAssignment_1 = (Assignment)cGroup.eContents().get(1);
+		private final RuleCall cNameIDTerminalRuleCall_1_0 = (RuleCall)cNameAssignment_1.eContents().get(0);
+		private final Keyword cLeftCurlyBracketKeyword_2 = (Keyword)cGroup.eContents().get(2);
+		private final Keyword cUiKeyword_3 = (Keyword)cGroup.eContents().get(3);
+		private final Assignment cUi_patternAssignment_4 = (Assignment)cGroup.eContents().get(4);
+		private final RuleCall cUi_patternSTRINGTerminalRuleCall_4_0 = (RuleCall)cUi_patternAssignment_4.eContents().get(0);
+		private final Keyword cReportKeyword_5 = (Keyword)cGroup.eContents().get(5);
+		private final Assignment cReport_categoryAssignment_6 = (Assignment)cGroup.eContents().get(6);
+		private final RuleCall cReport_categoryDateFormatCategoryEnumEnumRuleCall_6_0 = (RuleCall)cReport_categoryAssignment_6.eContents().get(0);
+		private final Assignment cReport_patternAssignment_7 = (Assignment)cGroup.eContents().get(7);
+		private final RuleCall cReport_patternSTRINGTerminalRuleCall_7_0 = (RuleCall)cReport_patternAssignment_7.eContents().get(0);
+		private final Keyword cTextalignKeyword_8 = (Keyword)cGroup.eContents().get(8);
+		private final Assignment cTextalignAssignment_9 = (Assignment)cGroup.eContents().get(9);
+		private final RuleCall cTextalignTextAlignEnumEnumRuleCall_9_0 = (RuleCall)cTextalignAssignment_9.eContents().get(0);
+		private final Keyword cRightCurlyBracketKeyword_10 = (Keyword)cGroup.eContents().get(10);
+		
+		//DateFormat:
+		//	"date" name=ID "{" "ui" ui_pattern=STRING "report" report_category=DateFormatCategoryEnum report_pattern=STRING
+		//	"textalign" textalign=TextAlignEnum "}";
+		public ParserRule getRule() { return rule; }
+
+		//"date" name=ID "{" "ui" ui_pattern=STRING "report" report_category=DateFormatCategoryEnum report_pattern=STRING
+		//"textalign" textalign=TextAlignEnum "}"
+		public Group getGroup() { return cGroup; }
+
+		//"date"
+		public Keyword getDateKeyword_0() { return cDateKeyword_0; }
+
+		//name=ID
+		public Assignment getNameAssignment_1() { return cNameAssignment_1; }
+
+		//ID
+		public RuleCall getNameIDTerminalRuleCall_1_0() { return cNameIDTerminalRuleCall_1_0; }
+
+		//"{"
+		public Keyword getLeftCurlyBracketKeyword_2() { return cLeftCurlyBracketKeyword_2; }
+
+		//"ui"
+		public Keyword getUiKeyword_3() { return cUiKeyword_3; }
+
+		//ui_pattern=STRING
+		public Assignment getUi_patternAssignment_4() { return cUi_patternAssignment_4; }
+
+		//STRING
+		public RuleCall getUi_patternSTRINGTerminalRuleCall_4_0() { return cUi_patternSTRINGTerminalRuleCall_4_0; }
+
+		//"report"
+		public Keyword getReportKeyword_5() { return cReportKeyword_5; }
+
+		//report_category=DateFormatCategoryEnum
+		public Assignment getReport_categoryAssignment_6() { return cReport_categoryAssignment_6; }
+
+		//DateFormatCategoryEnum
+		public RuleCall getReport_categoryDateFormatCategoryEnumEnumRuleCall_6_0() { return cReport_categoryDateFormatCategoryEnumEnumRuleCall_6_0; }
+
+		//report_pattern=STRING
+		public Assignment getReport_patternAssignment_7() { return cReport_patternAssignment_7; }
+
+		//STRING
+		public RuleCall getReport_patternSTRINGTerminalRuleCall_7_0() { return cReport_patternSTRINGTerminalRuleCall_7_0; }
+
+		//"textalign"
+		public Keyword getTextalignKeyword_8() { return cTextalignKeyword_8; }
+
+		//textalign=TextAlignEnum
+		public Assignment getTextalignAssignment_9() { return cTextalignAssignment_9; }
+
+		//TextAlignEnum
+		public RuleCall getTextalignTextAlignEnumEnumRuleCall_9_0() { return cTextalignTextAlignEnumEnumRuleCall_9_0; }
+
+		//"}"
+		public Keyword getRightCurlyBracketKeyword_10() { return cRightCurlyBracketKeyword_10; }
+	}
+
+	public class DateTimeFormatElements extends AbstractParserRuleElementFinder {
+		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "DateTimeFormat");
+		private final Group cGroup = (Group)rule.eContents().get(1);
+		private final Keyword cDateTimeKeyword_0 = (Keyword)cGroup.eContents().get(0);
+		private final Assignment cNameAssignment_1 = (Assignment)cGroup.eContents().get(1);
+		private final RuleCall cNameIDTerminalRuleCall_1_0 = (RuleCall)cNameAssignment_1.eContents().get(0);
+		private final Keyword cLeftCurlyBracketKeyword_2 = (Keyword)cGroup.eContents().get(2);
+		private final Keyword cUiKeyword_3 = (Keyword)cGroup.eContents().get(3);
+		private final Assignment cUi_patternAssignment_4 = (Assignment)cGroup.eContents().get(4);
+		private final RuleCall cUi_patternSTRINGTerminalRuleCall_4_0 = (RuleCall)cUi_patternAssignment_4.eContents().get(0);
+		private final Keyword cReportKeyword_5 = (Keyword)cGroup.eContents().get(5);
+		private final Assignment cReport_categoryAssignment_6 = (Assignment)cGroup.eContents().get(6);
+		private final RuleCall cReport_categoryDateTimeFormatCategoryEnumEnumRuleCall_6_0 = (RuleCall)cReport_categoryAssignment_6.eContents().get(0);
+		private final Assignment cReport_patternAssignment_7 = (Assignment)cGroup.eContents().get(7);
+		private final RuleCall cReport_patternSTRINGTerminalRuleCall_7_0 = (RuleCall)cReport_patternAssignment_7.eContents().get(0);
+		private final Keyword cTextalignKeyword_8 = (Keyword)cGroup.eContents().get(8);
+		private final Assignment cTextalignAssignment_9 = (Assignment)cGroup.eContents().get(9);
+		private final RuleCall cTextalignTextAlignEnumEnumRuleCall_9_0 = (RuleCall)cTextalignAssignment_9.eContents().get(0);
+		private final Keyword cRightCurlyBracketKeyword_10 = (Keyword)cGroup.eContents().get(10);
+		
+		//DateTimeFormat:
+		//	"date+time" name=ID "{" "ui" ui_pattern=STRING "report" report_category=DateTimeFormatCategoryEnum
+		//	report_pattern=STRING "textalign" textalign=TextAlignEnum "}";
+		public ParserRule getRule() { return rule; }
+
+		//"date+time" name=ID "{" "ui" ui_pattern=STRING "report" report_category=DateTimeFormatCategoryEnum report_pattern=STRING
+		//"textalign" textalign=TextAlignEnum "}"
+		public Group getGroup() { return cGroup; }
+
+		//"date+time"
+		public Keyword getDateTimeKeyword_0() { return cDateTimeKeyword_0; }
+
+		//name=ID
+		public Assignment getNameAssignment_1() { return cNameAssignment_1; }
+
+		//ID
+		public RuleCall getNameIDTerminalRuleCall_1_0() { return cNameIDTerminalRuleCall_1_0; }
+
+		//"{"
+		public Keyword getLeftCurlyBracketKeyword_2() { return cLeftCurlyBracketKeyword_2; }
+
+		//"ui"
+		public Keyword getUiKeyword_3() { return cUiKeyword_3; }
+
+		//ui_pattern=STRING
+		public Assignment getUi_patternAssignment_4() { return cUi_patternAssignment_4; }
+
+		//STRING
+		public RuleCall getUi_patternSTRINGTerminalRuleCall_4_0() { return cUi_patternSTRINGTerminalRuleCall_4_0; }
+
+		//"report"
+		public Keyword getReportKeyword_5() { return cReportKeyword_5; }
+
+		//report_category=DateTimeFormatCategoryEnum
+		public Assignment getReport_categoryAssignment_6() { return cReport_categoryAssignment_6; }
+
+		//DateTimeFormatCategoryEnum
+		public RuleCall getReport_categoryDateTimeFormatCategoryEnumEnumRuleCall_6_0() { return cReport_categoryDateTimeFormatCategoryEnumEnumRuleCall_6_0; }
+
+		//report_pattern=STRING
+		public Assignment getReport_patternAssignment_7() { return cReport_patternAssignment_7; }
+
+		//STRING
+		public RuleCall getReport_patternSTRINGTerminalRuleCall_7_0() { return cReport_patternSTRINGTerminalRuleCall_7_0; }
+
+		//"textalign"
+		public Keyword getTextalignKeyword_8() { return cTextalignKeyword_8; }
+
+		//textalign=TextAlignEnum
+		public Assignment getTextalignAssignment_9() { return cTextalignAssignment_9; }
+
+		//TextAlignEnum
+		public RuleCall getTextalignTextAlignEnumEnumRuleCall_9_0() { return cTextalignTextAlignEnumEnumRuleCall_9_0; }
+
+		//"}"
+		public Keyword getRightCurlyBracketKeyword_10() { return cRightCurlyBracketKeyword_10; }
+	}
+
+	public class TimeFormatElements extends AbstractParserRuleElementFinder {
+		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "TimeFormat");
+		private final Group cGroup = (Group)rule.eContents().get(1);
+		private final Keyword cTimeKeyword_0 = (Keyword)cGroup.eContents().get(0);
+		private final Assignment cNameAssignment_1 = (Assignment)cGroup.eContents().get(1);
+		private final RuleCall cNameIDTerminalRuleCall_1_0 = (RuleCall)cNameAssignment_1.eContents().get(0);
+		private final Keyword cLeftCurlyBracketKeyword_2 = (Keyword)cGroup.eContents().get(2);
+		private final Keyword cUiKeyword_3 = (Keyword)cGroup.eContents().get(3);
+		private final Assignment cUi_patternAssignment_4 = (Assignment)cGroup.eContents().get(4);
+		private final RuleCall cUi_patternSTRINGTerminalRuleCall_4_0 = (RuleCall)cUi_patternAssignment_4.eContents().get(0);
+		private final Keyword cReportKeyword_5 = (Keyword)cGroup.eContents().get(5);
+		private final Assignment cReport_categoryAssignment_6 = (Assignment)cGroup.eContents().get(6);
+		private final RuleCall cReport_categoryTimeFormatCategoryEnumEnumRuleCall_6_0 = (RuleCall)cReport_categoryAssignment_6.eContents().get(0);
+		private final Assignment cReport_patternAssignment_7 = (Assignment)cGroup.eContents().get(7);
+		private final RuleCall cReport_patternSTRINGTerminalRuleCall_7_0 = (RuleCall)cReport_patternAssignment_7.eContents().get(0);
+		private final Keyword cTextalignKeyword_8 = (Keyword)cGroup.eContents().get(8);
+		private final Assignment cTextalignAssignment_9 = (Assignment)cGroup.eContents().get(9);
+		private final RuleCall cTextalignTextAlignEnumEnumRuleCall_9_0 = (RuleCall)cTextalignAssignment_9.eContents().get(0);
+		private final Keyword cRightCurlyBracketKeyword_10 = (Keyword)cGroup.eContents().get(10);
+		
+		//TimeFormat:
+		//	"time" name=ID "{" "ui" ui_pattern=STRING "report" report_category=TimeFormatCategoryEnum report_pattern=STRING
+		//	"textalign" textalign=TextAlignEnum "}";
+		public ParserRule getRule() { return rule; }
+
+		//"time" name=ID "{" "ui" ui_pattern=STRING "report" report_category=TimeFormatCategoryEnum report_pattern=STRING
+		//"textalign" textalign=TextAlignEnum "}"
+		public Group getGroup() { return cGroup; }
+
+		//"time"
+		public Keyword getTimeKeyword_0() { return cTimeKeyword_0; }
+
+		//name=ID
+		public Assignment getNameAssignment_1() { return cNameAssignment_1; }
+
+		//ID
+		public RuleCall getNameIDTerminalRuleCall_1_0() { return cNameIDTerminalRuleCall_1_0; }
+
+		//"{"
+		public Keyword getLeftCurlyBracketKeyword_2() { return cLeftCurlyBracketKeyword_2; }
+
+		//"ui"
+		public Keyword getUiKeyword_3() { return cUiKeyword_3; }
+
+		//ui_pattern=STRING
+		public Assignment getUi_patternAssignment_4() { return cUi_patternAssignment_4; }
+
+		//STRING
+		public RuleCall getUi_patternSTRINGTerminalRuleCall_4_0() { return cUi_patternSTRINGTerminalRuleCall_4_0; }
+
+		//"report"
+		public Keyword getReportKeyword_5() { return cReportKeyword_5; }
+
+		//report_category=TimeFormatCategoryEnum
+		public Assignment getReport_categoryAssignment_6() { return cReport_categoryAssignment_6; }
+
+		//TimeFormatCategoryEnum
+		public RuleCall getReport_categoryTimeFormatCategoryEnumEnumRuleCall_6_0() { return cReport_categoryTimeFormatCategoryEnumEnumRuleCall_6_0; }
+
+		//report_pattern=STRING
+		public Assignment getReport_patternAssignment_7() { return cReport_patternAssignment_7; }
+
+		//STRING
+		public RuleCall getReport_patternSTRINGTerminalRuleCall_7_0() { return cReport_patternSTRINGTerminalRuleCall_7_0; }
+
+		//"textalign"
+		public Keyword getTextalignKeyword_8() { return cTextalignKeyword_8; }
+
+		//textalign=TextAlignEnum
+		public Assignment getTextalignAssignment_9() { return cTextalignAssignment_9; }
+
+		//TextAlignEnum
+		public RuleCall getTextalignTextAlignEnumEnumRuleCall_9_0() { return cTextalignTextAlignEnumEnumRuleCall_9_0; }
+
+		//"}"
+		public Keyword getRightCurlyBracketKeyword_10() { return cRightCurlyBracketKeyword_10; }
+	}
+
+	public class ReportElements extends AbstractParserRuleElementFinder {
+		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "Report");
+		private final Group cGroup = (Group)rule.eContents().get(1);
+		private final Keyword cReportKeyword_0 = (Keyword)cGroup.eContents().get(0);
+		private final Assignment cNameAssignment_1 = (Assignment)cGroup.eContents().get(1);
+		private final RuleCall cNameIDTerminalRuleCall_1_0 = (RuleCall)cNameAssignment_1.eContents().get(0);
+		private final Group cGroup_2 = (Group)cGroup.eContents().get(2);
+		private final Assignment cDescriptionAssignment_2_0 = (Assignment)cGroup_2.eContents().get(0);
+		private final Keyword cDescriptionDescribedByKeyword_2_0_0 = (Keyword)cDescriptionAssignment_2_0.eContents().get(0);
+		private final Assignment cDescriptionValueAssignment_2_1 = (Assignment)cGroup_2.eContents().get(1);
+		private final RuleCall cDescriptionValueTRANSLATABLESTRINGParserRuleCall_2_1_0 = (RuleCall)cDescriptionValueAssignment_2_1.eContents().get(0);
+		private final Group cGroup_3 = (Group)cGroup.eContents().get(3);
+		private final Keyword cToolbarKeyword_3_0 = (Keyword)cGroup_3.eContents().get(0);
+		private final Assignment cToolbarAssignment_3_1 = (Assignment)cGroup_3.eContents().get(1);
+		private final CrossReference cToolbarActionToolbarCrossReference_3_1_0 = (CrossReference)cToolbarAssignment_3_1.eContents().get(0);
+		private final RuleCall cToolbarActionToolbarIDTerminalRuleCall_3_1_0_1 = (RuleCall)cToolbarActionToolbarCrossReference_3_1_0.eContents().get(1);
+		private final Keyword cLeftCurlyBracketKeyword_4 = (Keyword)cGroup.eContents().get(4);
+		private final Keyword cDatamartKeyword_5 = (Keyword)cGroup.eContents().get(5);
+		private final Assignment cDatamartRefAssignment_6 = (Assignment)cGroup.eContents().get(6);
+		private final CrossReference cDatamartRefDatamartDefinitionCrossReference_6_0 = (CrossReference)cDatamartRefAssignment_6.eContents().get(0);
+		private final RuleCall cDatamartRefDatamartDefinitionIDTerminalRuleCall_6_0_1 = (RuleCall)cDatamartRefDatamartDefinitionCrossReference_6_0.eContents().get(1);
+		private final Keyword cRenderingKeyword_7 = (Keyword)cGroup.eContents().get(7);
+		private final Assignment cRenderingAssignment_8 = (Assignment)cGroup.eContents().get(8);
+		private final RuleCall cRenderingRenderingEnumEnumRuleCall_8_0 = (RuleCall)cRenderingAssignment_8.eContents().get(0);
+		private final Group cGroup_9 = (Group)cGroup.eContents().get(9);
+		private final Keyword cExternalCssURIKeyword_9_0 = (Keyword)cGroup_9.eContents().get(0);
+		private final Assignment cExternalCssURIAssignment_9_1 = (Assignment)cGroup_9.eContents().get(1);
+		private final RuleCall cExternalCssURISTRINGTerminalRuleCall_9_1_0 = (RuleCall)cExternalCssURIAssignment_9_1.eContents().get(0);
+		private final Group cGroup_9_2 = (Group)cGroup_9.eContents().get(2);
+		private final Keyword cFromBundleKeyword_9_2_0 = (Keyword)cGroup_9_2.eContents().get(0);
+		private final Assignment cExternalCssURIBundleAssignment_9_2_1 = (Assignment)cGroup_9_2.eContents().get(1);
+		private final RuleCall cExternalCssURIBundleSTRINGTerminalRuleCall_9_2_1_0 = (RuleCall)cExternalCssURIBundleAssignment_9_2_1.eContents().get(0);
+		private final Keyword cPagetemplateKeyword_10 = (Keyword)cGroup.eContents().get(10);
+		private final Assignment cPageTemplateAssignment_11 = (Assignment)cGroup.eContents().get(11);
+		private final CrossReference cPageTemplatePageTemplateCrossReference_11_0 = (CrossReference)cPageTemplateAssignment_11.eContents().get(0);
+		private final RuleCall cPageTemplatePageTemplateIDTerminalRuleCall_11_0_1 = (RuleCall)cPageTemplatePageTemplateCrossReference_11_0.eContents().get(1);
+		private final Keyword cMediaKeyword_12 = (Keyword)cGroup.eContents().get(12);
+		private final Assignment cMediaAssignment_13 = (Assignment)cGroup.eContents().get(13);
+		private final CrossReference cMediaMediaCrossReference_13_0 = (CrossReference)cMediaAssignment_13.eContents().get(0);
+		private final RuleCall cMediaMediaIDTerminalRuleCall_13_0_1 = (RuleCall)cMediaMediaCrossReference_13_0.eContents().get(1);
+		private final Assignment cDesignAssignment_14 = (Assignment)cGroup.eContents().get(14);
+		private final RuleCall cDesignReportDesignParserRuleCall_14_0 = (RuleCall)cDesignAssignment_14.eContents().get(0);
+		private final Keyword cRightCurlyBracketKeyword_15 = (Keyword)cGroup.eContents().get(15);
+		
+		//Report:
+		//	"report" name=ID (description?="described by" descriptionValue=TRANSLATABLESTRING)? ("toolbar"
+		//	toolbar=[action::ActionToolbar])? "{" "datamart" datamartRef=[datamart::DatamartDefinition] "rendering"
+		//	rendering=RenderingEnum ("externalCssURI" externalCssURI=STRING ("from bundle" externalCssURIBundle=STRING)?)?
+		//	"pagetemplate" pageTemplate=[PageTemplate] "media" media=[Media] design=ReportDesign "}";
+		public ParserRule getRule() { return rule; }
+
+		//"report" name=ID (description?="described by" descriptionValue=TRANSLATABLESTRING)? ("toolbar"
+		//toolbar=[action::ActionToolbar])? "{" "datamart" datamartRef=[datamart::DatamartDefinition] "rendering"
+		//rendering=RenderingEnum ("externalCssURI" externalCssURI=STRING ("from bundle" externalCssURIBundle=STRING)?)?
+		//"pagetemplate" pageTemplate=[PageTemplate] "media" media=[Media] design=ReportDesign "}"
+		public Group getGroup() { return cGroup; }
+
+		//"report"
+		public Keyword getReportKeyword_0() { return cReportKeyword_0; }
+
+		//name=ID
+		public Assignment getNameAssignment_1() { return cNameAssignment_1; }
+
+		//ID
+		public RuleCall getNameIDTerminalRuleCall_1_0() { return cNameIDTerminalRuleCall_1_0; }
+
+		//(description?="described by" descriptionValue=TRANSLATABLESTRING)?
+		public Group getGroup_2() { return cGroup_2; }
+
+		//description?="described by"
+		public Assignment getDescriptionAssignment_2_0() { return cDescriptionAssignment_2_0; }
+
+		//"described by"
+		public Keyword getDescriptionDescribedByKeyword_2_0_0() { return cDescriptionDescribedByKeyword_2_0_0; }
+
+		//descriptionValue=TRANSLATABLESTRING
+		public Assignment getDescriptionValueAssignment_2_1() { return cDescriptionValueAssignment_2_1; }
+
+		//TRANSLATABLESTRING
+		public RuleCall getDescriptionValueTRANSLATABLESTRINGParserRuleCall_2_1_0() { return cDescriptionValueTRANSLATABLESTRINGParserRuleCall_2_1_0; }
+
+		//("toolbar" toolbar=[action::ActionToolbar])?
+		public Group getGroup_3() { return cGroup_3; }
+
+		//"toolbar"
+		public Keyword getToolbarKeyword_3_0() { return cToolbarKeyword_3_0; }
+
+		//toolbar=[action::ActionToolbar]
+		public Assignment getToolbarAssignment_3_1() { return cToolbarAssignment_3_1; }
+
+		//[action::ActionToolbar]
+		public CrossReference getToolbarActionToolbarCrossReference_3_1_0() { return cToolbarActionToolbarCrossReference_3_1_0; }
+
+		//ID
+		public RuleCall getToolbarActionToolbarIDTerminalRuleCall_3_1_0_1() { return cToolbarActionToolbarIDTerminalRuleCall_3_1_0_1; }
+
+		//"{"
+		public Keyword getLeftCurlyBracketKeyword_4() { return cLeftCurlyBracketKeyword_4; }
+
+		//"datamart"
+		public Keyword getDatamartKeyword_5() { return cDatamartKeyword_5; }
+
+		//datamartRef=[datamart::DatamartDefinition]
+		public Assignment getDatamartRefAssignment_6() { return cDatamartRefAssignment_6; }
+
+		//[datamart::DatamartDefinition]
+		public CrossReference getDatamartRefDatamartDefinitionCrossReference_6_0() { return cDatamartRefDatamartDefinitionCrossReference_6_0; }
+
+		//ID
+		public RuleCall getDatamartRefDatamartDefinitionIDTerminalRuleCall_6_0_1() { return cDatamartRefDatamartDefinitionIDTerminalRuleCall_6_0_1; }
+
+		//"rendering"
+		public Keyword getRenderingKeyword_7() { return cRenderingKeyword_7; }
+
+		//rendering=RenderingEnum
+		public Assignment getRenderingAssignment_8() { return cRenderingAssignment_8; }
+
+		//RenderingEnum
+		public RuleCall getRenderingRenderingEnumEnumRuleCall_8_0() { return cRenderingRenderingEnumEnumRuleCall_8_0; }
+
+		//("externalCssURI" externalCssURI=STRING ("from bundle" externalCssURIBundle=STRING)?)?
+		public Group getGroup_9() { return cGroup_9; }
+
+		//"externalCssURI"
+		public Keyword getExternalCssURIKeyword_9_0() { return cExternalCssURIKeyword_9_0; }
+
+		//externalCssURI=STRING
+		public Assignment getExternalCssURIAssignment_9_1() { return cExternalCssURIAssignment_9_1; }
+
+		//STRING
+		public RuleCall getExternalCssURISTRINGTerminalRuleCall_9_1_0() { return cExternalCssURISTRINGTerminalRuleCall_9_1_0; }
+
+		//("from bundle" externalCssURIBundle=STRING)?
+		public Group getGroup_9_2() { return cGroup_9_2; }
+
+		//"from bundle"
+		public Keyword getFromBundleKeyword_9_2_0() { return cFromBundleKeyword_9_2_0; }
+
+		//externalCssURIBundle=STRING
+		public Assignment getExternalCssURIBundleAssignment_9_2_1() { return cExternalCssURIBundleAssignment_9_2_1; }
+
+		//STRING
+		public RuleCall getExternalCssURIBundleSTRINGTerminalRuleCall_9_2_1_0() { return cExternalCssURIBundleSTRINGTerminalRuleCall_9_2_1_0; }
+
+		//"pagetemplate"
+		public Keyword getPagetemplateKeyword_10() { return cPagetemplateKeyword_10; }
+
+		//pageTemplate=[PageTemplate]
+		public Assignment getPageTemplateAssignment_11() { return cPageTemplateAssignment_11; }
+
+		//[PageTemplate]
+		public CrossReference getPageTemplatePageTemplateCrossReference_11_0() { return cPageTemplatePageTemplateCrossReference_11_0; }
+
+		//ID
+		public RuleCall getPageTemplatePageTemplateIDTerminalRuleCall_11_0_1() { return cPageTemplatePageTemplateIDTerminalRuleCall_11_0_1; }
+
+		//"media"
+		public Keyword getMediaKeyword_12() { return cMediaKeyword_12; }
+
+		//media=[Media]
+		public Assignment getMediaAssignment_13() { return cMediaAssignment_13; }
+
+		//[Media]
+		public CrossReference getMediaMediaCrossReference_13_0() { return cMediaMediaCrossReference_13_0; }
+
+		//ID
+		public RuleCall getMediaMediaIDTerminalRuleCall_13_0_1() { return cMediaMediaIDTerminalRuleCall_13_0_1; }
+
+		//design=ReportDesign
+		public Assignment getDesignAssignment_14() { return cDesignAssignment_14; }
+
+		//ReportDesign
+		public RuleCall getDesignReportDesignParserRuleCall_14_0() { return cDesignReportDesignParserRuleCall_14_0; }
+
+		//"}"
+		public Keyword getRightCurlyBracketKeyword_15() { return cRightCurlyBracketKeyword_15; }
+	}
+
+	public class ReportDesignElements extends AbstractParserRuleElementFinder {
+		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "ReportDesign");
+		private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1);
+		private final RuleCall cReportDesignFileParserRuleCall_0 = (RuleCall)cAlternatives.eContents().get(0);
+		private final RuleCall cReportDesignTemplateParserRuleCall_1 = (RuleCall)cAlternatives.eContents().get(1);
+		
+		//ReportDesign:
+		//	ReportDesignFile | ReportDesignTemplate;
+		public ParserRule getRule() { return rule; }
+
+		//ReportDesignFile | ReportDesignTemplate
+		public Alternatives getAlternatives() { return cAlternatives; }
+
+		//ReportDesignFile
+		public RuleCall getReportDesignFileParserRuleCall_0() { return cReportDesignFileParserRuleCall_0; }
+
+		//ReportDesignTemplate
+		public RuleCall getReportDesignTemplateParserRuleCall_1() { return cReportDesignTemplateParserRuleCall_1; }
+	}
+
+	public class ReportDesignFileElements extends AbstractParserRuleElementFinder {
+		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "ReportDesignFile");
+		private final Group cGroup = (Group)rule.eContents().get(1);
+		private final Keyword cFileKeyword_0 = (Keyword)cGroup.eContents().get(0);
+		private final Assignment cNameAssignment_1 = (Assignment)cGroup.eContents().get(1);
+		private final RuleCall cNameSTRINGTerminalRuleCall_1_0 = (RuleCall)cNameAssignment_1.eContents().get(0);
+		
+		//ReportDesignFile:
+		//	"file" name=STRING;
+		public ParserRule getRule() { return rule; }
+
+		//"file" name=STRING
+		public Group getGroup() { return cGroup; }
+
+		//"file"
+		public Keyword getFileKeyword_0() { return cFileKeyword_0; }
+
+		//name=STRING
+		public Assignment getNameAssignment_1() { return cNameAssignment_1; }
+
+		//STRING
+		public RuleCall getNameSTRINGTerminalRuleCall_1_0() { return cNameSTRINGTerminalRuleCall_1_0; }
+	}
+
+	public class ReportDesignTemplateElements extends AbstractParserRuleElementFinder {
+		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "ReportDesignTemplate");
+		private final Group cGroup = (Group)rule.eContents().get(1);
+		private final Keyword cTemplateKeyword_0 = (Keyword)cGroup.eContents().get(0);
+		private final Keyword cLeftCurlyBracketKeyword_1 = (Keyword)cGroup.eContents().get(1);
+		private final Group cGroup_2 = (Group)cGroup.eContents().get(2);
+		private final Keyword cDescribedByKeyword_2_0 = (Keyword)cGroup_2.eContents().get(0);
+		private final Assignment cDescriptionAssignment_2_1 = (Assignment)cGroup_2.eContents().get(1);
+		private final RuleCall cDescriptionSTRINGTerminalRuleCall_2_1_0 = (RuleCall)cDescriptionAssignment_2_1.eContents().get(0);
+		private final Assignment cHeaderAssignment_3 = (Assignment)cGroup.eContents().get(3);
+		private final RuleCall cHeaderPageHeaderParserRuleCall_3_0 = (RuleCall)cHeaderAssignment_3.eContents().get(0);
+		private final Assignment cDetailAssignment_4 = (Assignment)cGroup.eContents().get(4);
+		private final RuleCall cDetailPageDetailParserRuleCall_4_0 = (RuleCall)cDetailAssignment_4.eContents().get(0);
+		private final Assignment cFooterAssignment_5 = (Assignment)cGroup.eContents().get(5);
+		private final RuleCall cFooterPageFooterParserRuleCall_5_0 = (RuleCall)cFooterAssignment_5.eContents().get(0);
+		private final Keyword cRightCurlyBracketKeyword_6 = (Keyword)cGroup.eContents().get(6);
+		
+		//ReportDesignTemplate:
+		//	"template" "{" ("described by" description=STRING)? header=PageHeader? detail=PageDetail footer=PageFooter? "}";
+		public ParserRule getRule() { return rule; }
+
+		//"template" "{" ("described by" description=STRING)? header=PageHeader? detail=PageDetail footer=PageFooter? "}"
+		public Group getGroup() { return cGroup; }
+
+		//"template"
+		public Keyword getTemplateKeyword_0() { return cTemplateKeyword_0; }
+
+		//"{"
+		public Keyword getLeftCurlyBracketKeyword_1() { return cLeftCurlyBracketKeyword_1; }
+
+		//("described by" description=STRING)?
+		public Group getGroup_2() { return cGroup_2; }
+
+		//"described by"
+		public Keyword getDescribedByKeyword_2_0() { return cDescribedByKeyword_2_0; }
+
+		//description=STRING
+		public Assignment getDescriptionAssignment_2_1() { return cDescriptionAssignment_2_1; }
+
+		//STRING
+		public RuleCall getDescriptionSTRINGTerminalRuleCall_2_1_0() { return cDescriptionSTRINGTerminalRuleCall_2_1_0; }
+
+		//header=PageHeader?
+		public Assignment getHeaderAssignment_3() { return cHeaderAssignment_3; }
+
+		//PageHeader
+		public RuleCall getHeaderPageHeaderParserRuleCall_3_0() { return cHeaderPageHeaderParserRuleCall_3_0; }
+
+		//detail=PageDetail
+		public Assignment getDetailAssignment_4() { return cDetailAssignment_4; }
+
+		//PageDetail
+		public RuleCall getDetailPageDetailParserRuleCall_4_0() { return cDetailPageDetailParserRuleCall_4_0; }
+
+		//footer=PageFooter?
+		public Assignment getFooterAssignment_5() { return cFooterAssignment_5; }
+
+		//PageFooter
+		public RuleCall getFooterPageFooterParserRuleCall_5_0() { return cFooterPageFooterParserRuleCall_5_0; }
+
+		//"}"
+		public Keyword getRightCurlyBracketKeyword_6() { return cRightCurlyBracketKeyword_6; }
+	}
+
+	public class ContainerElements extends AbstractParserRuleElementFinder {
+		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "Container");
+		private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1);
+		private final RuleCall cPageHeaderParserRuleCall_0 = (RuleCall)cAlternatives.eContents().get(0);
+		private final RuleCall cPageDetailParserRuleCall_1 = (RuleCall)cAlternatives.eContents().get(1);
+		private final RuleCall cPageFooterParserRuleCall_2 = (RuleCall)cAlternatives.eContents().get(2);
+		private final RuleCall cGridCellParserRuleCall_3 = (RuleCall)cAlternatives.eContents().get(3);
+		
+		//Container:
+		//	PageHeader | PageDetail | PageFooter | GridCell;
+		public ParserRule getRule() { return rule; }
+
+		//PageHeader | PageDetail | PageFooter | GridCell
+		public Alternatives getAlternatives() { return cAlternatives; }
+
+		//PageHeader
+		public RuleCall getPageHeaderParserRuleCall_0() { return cPageHeaderParserRuleCall_0; }
+
+		//PageDetail
+		public RuleCall getPageDetailParserRuleCall_1() { return cPageDetailParserRuleCall_1; }
+
+		//PageFooter
+		public RuleCall getPageFooterParserRuleCall_2() { return cPageFooterParserRuleCall_2; }
+
+		//GridCell
+		public RuleCall getGridCellParserRuleCall_3() { return cGridCellParserRuleCall_3; }
+	}
+
+	public class PageHeaderElements extends AbstractParserRuleElementFinder {
+		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "PageHeader");
+		private final Group cGroup = (Group)rule.eContents().get(1);
+		private final Action cPageHeaderAction_0 = (Action)cGroup.eContents().get(0);
+		private final Keyword cHeaderKeyword_1 = (Keyword)cGroup.eContents().get(1);
+		private final Keyword cLeftCurlyBracketKeyword_2 = (Keyword)cGroup.eContents().get(2);
+		private final Assignment cShowOnFirstAssignment_3 = (Assignment)cGroup.eContents().get(3);
+		private final Keyword cShowOnFirstShowOnFirstKeyword_3_0 = (Keyword)cShowOnFirstAssignment_3.eContents().get(0);
+		private final Keyword cHeightKeyword_4 = (Keyword)cGroup.eContents().get(4);
+		private final Assignment cHeightValueAssignment_5 = (Assignment)cGroup.eContents().get(5);
+		private final RuleCall cHeightValueUnsignedNumberParserRuleCall_5_0 = (RuleCall)cHeightValueAssignment_5.eContents().get(0);
+		private final Assignment cHeightUnitAssignment_6 = (Assignment)cGroup.eContents().get(6);
+		private final RuleCall cHeightUnitUnitEnumEnumRuleCall_6_0 = (RuleCall)cHeightUnitAssignment_6.eContents().get(0);
+		private final Assignment cElementsAssignment_7 = (Assignment)cGroup.eContents().get(7);
+		private final RuleCall cElementsElementParserRuleCall_7_0 = (RuleCall)cElementsAssignment_7.eContents().get(0);
+		private final Keyword cRightCurlyBracketKeyword_8 = (Keyword)cGroup.eContents().get(8);
+		
+		//PageHeader:
+		//	{PageHeader} "header" "{" showOnFirst?="showOnFirst"? "height" heightValue=UnsignedNumber heightUnit=UnitEnum
+		//	elements+=Element "}";
+		public ParserRule getRule() { return rule; }
+
+		//{PageHeader} "header" "{" showOnFirst?="showOnFirst"? "height" heightValue=UnsignedNumber heightUnit=UnitEnum
+		//elements+=Element "}"
+		public Group getGroup() { return cGroup; }
+
+		//{PageHeader}
+		public Action getPageHeaderAction_0() { return cPageHeaderAction_0; }
+
+		//"header"
+		public Keyword getHeaderKeyword_1() { return cHeaderKeyword_1; }
+
+		//"{"
+		public Keyword getLeftCurlyBracketKeyword_2() { return cLeftCurlyBracketKeyword_2; }
+
+		//showOnFirst?="showOnFirst"?
+		public Assignment getShowOnFirstAssignment_3() { return cShowOnFirstAssignment_3; }
+
+		//"showOnFirst"
+		public Keyword getShowOnFirstShowOnFirstKeyword_3_0() { return cShowOnFirstShowOnFirstKeyword_3_0; }
+
+		//"height"
+		public Keyword getHeightKeyword_4() { return cHeightKeyword_4; }
+
+		//heightValue=UnsignedNumber
+		public Assignment getHeightValueAssignment_5() { return cHeightValueAssignment_5; }
+
+		//UnsignedNumber
+		public RuleCall getHeightValueUnsignedNumberParserRuleCall_5_0() { return cHeightValueUnsignedNumberParserRuleCall_5_0; }
+
+		//heightUnit=UnitEnum
+		public Assignment getHeightUnitAssignment_6() { return cHeightUnitAssignment_6; }
+
+		//UnitEnum
+		public RuleCall getHeightUnitUnitEnumEnumRuleCall_6_0() { return cHeightUnitUnitEnumEnumRuleCall_6_0; }
+
+		//elements+=Element
+		public Assignment getElementsAssignment_7() { return cElementsAssignment_7; }
+
+		//Element
+		public RuleCall getElementsElementParserRuleCall_7_0() { return cElementsElementParserRuleCall_7_0; }
+
+		//"}"
+		public Keyword getRightCurlyBracketKeyword_8() { return cRightCurlyBracketKeyword_8; }
+	}
+
+	public class PageDetailElements extends AbstractParserRuleElementFinder {
+		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "PageDetail");
+		private final Group cGroup = (Group)rule.eContents().get(1);
+		private final Action cPageDetailAction_0 = (Action)cGroup.eContents().get(0);
+		private final Keyword cDetailKeyword_1 = (Keyword)cGroup.eContents().get(1);
+		private final Keyword cLeftCurlyBracketKeyword_2 = (Keyword)cGroup.eContents().get(2);
+		private final Assignment cElementsAssignment_3 = (Assignment)cGroup.eContents().get(3);
+		private final RuleCall cElementsElementParserRuleCall_3_0 = (RuleCall)cElementsAssignment_3.eContents().get(0);
+		private final Keyword cRightCurlyBracketKeyword_4 = (Keyword)cGroup.eContents().get(4);
+		
+		//PageDetail:
+		//	{PageDetail} "detail" "{" elements+=Element* "}";
+		public ParserRule getRule() { return rule; }
+
+		//{PageDetail} "detail" "{" elements+=Element* "}"
+		public Group getGroup() { return cGroup; }
+
+		//{PageDetail}
+		public Action getPageDetailAction_0() { return cPageDetailAction_0; }
+
+		//"detail"
+		public Keyword getDetailKeyword_1() { return cDetailKeyword_1; }
+
+		//"{"
+		public Keyword getLeftCurlyBracketKeyword_2() { return cLeftCurlyBracketKeyword_2; }
+
+		//elements+=Element*
+		public Assignment getElementsAssignment_3() { return cElementsAssignment_3; }
+
+		//Element
+		public RuleCall getElementsElementParserRuleCall_3_0() { return cElementsElementParserRuleCall_3_0; }
+
+		//"}"
+		public Keyword getRightCurlyBracketKeyword_4() { return cRightCurlyBracketKeyword_4; }
+	}
+
+	public class PageFooterElements extends AbstractParserRuleElementFinder {
+		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "PageFooter");
+		private final Group cGroup = (Group)rule.eContents().get(1);
+		private final Action cPageFooterAction_0 = (Action)cGroup.eContents().get(0);
+		private final Keyword cFooterKeyword_1 = (Keyword)cGroup.eContents().get(1);
+		private final Keyword cLeftCurlyBracketKeyword_2 = (Keyword)cGroup.eContents().get(2);
+		private final Assignment cShowOnLastAssignment_3 = (Assignment)cGroup.eContents().get(3);
+		private final Keyword cShowOnLastShowOnLastKeyword_3_0 = (Keyword)cShowOnLastAssignment_3.eContents().get(0);
+		private final Keyword cHeightKeyword_4 = (Keyword)cGroup.eContents().get(4);
+		private final Assignment cHeightValueAssignment_5 = (Assignment)cGroup.eContents().get(5);
+		private final RuleCall cHeightValueUnsignedNumberParserRuleCall_5_0 = (RuleCall)cHeightValueAssignment_5.eContents().get(0);
+		private final Assignment cHeightUnitAssignment_6 = (Assignment)cGroup.eContents().get(6);
+		private final RuleCall cHeightUnitUnitEnumEnumRuleCall_6_0 = (RuleCall)cHeightUnitAssignment_6.eContents().get(0);
+		private final Assignment cElementsAssignment_7 = (Assignment)cGroup.eContents().get(7);
+		private final RuleCall cElementsElementParserRuleCall_7_0 = (RuleCall)cElementsAssignment_7.eContents().get(0);
+		private final Keyword cRightCurlyBracketKeyword_8 = (Keyword)cGroup.eContents().get(8);
+		
+		//PageFooter:
+		//	{PageFooter} "footer" "{" showOnLast?="showOnLast"? "height" heightValue=UnsignedNumber heightUnit=UnitEnum
+		//	elements+=Element "}";
+		public ParserRule getRule() { return rule; }
+
+		//{PageFooter} "footer" "{" showOnLast?="showOnLast"? "height" heightValue=UnsignedNumber heightUnit=UnitEnum
+		//elements+=Element "}"
+		public Group getGroup() { return cGroup; }
+
+		//{PageFooter}
+		public Action getPageFooterAction_0() { return cPageFooterAction_0; }
+
+		//"footer"
+		public Keyword getFooterKeyword_1() { return cFooterKeyword_1; }
+
+		//"{"
+		public Keyword getLeftCurlyBracketKeyword_2() { return cLeftCurlyBracketKeyword_2; }
+
+		//showOnLast?="showOnLast"?
+		public Assignment getShowOnLastAssignment_3() { return cShowOnLastAssignment_3; }
+
+		//"showOnLast"
+		public Keyword getShowOnLastShowOnLastKeyword_3_0() { return cShowOnLastShowOnLastKeyword_3_0; }
+
+		//"height"
+		public Keyword getHeightKeyword_4() { return cHeightKeyword_4; }
+
+		//heightValue=UnsignedNumber
+		public Assignment getHeightValueAssignment_5() { return cHeightValueAssignment_5; }
+
+		//UnsignedNumber
+		public RuleCall getHeightValueUnsignedNumberParserRuleCall_5_0() { return cHeightValueUnsignedNumberParserRuleCall_5_0; }
+
+		//heightUnit=UnitEnum
+		public Assignment getHeightUnitAssignment_6() { return cHeightUnitAssignment_6; }
+
+		//UnitEnum
+		public RuleCall getHeightUnitUnitEnumEnumRuleCall_6_0() { return cHeightUnitUnitEnumEnumRuleCall_6_0; }
+
+		//elements+=Element
+		public Assignment getElementsAssignment_7() { return cElementsAssignment_7; }
+
+		//Element
+		public RuleCall getElementsElementParserRuleCall_7_0() { return cElementsElementParserRuleCall_7_0; }
+
+		//"}"
+		public Keyword getRightCurlyBracketKeyword_8() { return cRightCurlyBracketKeyword_8; }
+	}
+
+	public class ElementElements extends AbstractParserRuleElementFinder {
+		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "Element");
+		private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1);
+		private final RuleCall cTitleParserRuleCall_0 = (RuleCall)cAlternatives.eContents().get(0);
+		private final RuleCall cSubTitleParserRuleCall_1 = (RuleCall)cAlternatives.eContents().get(1);
+		private final RuleCall cSubSubTitleParserRuleCall_2 = (RuleCall)cAlternatives.eContents().get(2);
+		private final RuleCall cLabelParserRuleCall_3 = (RuleCall)cAlternatives.eContents().get(3);
+		private final RuleCall cTextParserRuleCall_4 = (RuleCall)cAlternatives.eContents().get(4);
+		private final RuleCall cAutoTextParserRuleCall_5 = (RuleCall)cAlternatives.eContents().get(5);
+		private final RuleCall cImageParserRuleCall_6 = (RuleCall)cAlternatives.eContents().get(6);
+		private final RuleCall cDatamartTableParserRuleCall_7 = (RuleCall)cAlternatives.eContents().get(7);
+		private final RuleCall cDatamartTablePropertyParserRuleCall_8 = (RuleCall)cAlternatives.eContents().get(8);
+		private final RuleCall cGridParserRuleCall_9 = (RuleCall)cAlternatives.eContents().get(9);
+		
+		/// * | TableDsl | ChartDsl* / Element:
+		//	Title | SubTitle | SubSubTitle | Label | Text | AutoText | Image | DatamartTable | DatamartTableProperty | Grid;
+		public ParserRule getRule() { return rule; }
+
+		//Title | SubTitle | SubSubTitle | Label | Text | AutoText | Image | DatamartTable | DatamartTableProperty | Grid
+		public Alternatives getAlternatives() { return cAlternatives; }
+
+		//Title
+		public RuleCall getTitleParserRuleCall_0() { return cTitleParserRuleCall_0; }
+
+		//SubTitle
+		public RuleCall getSubTitleParserRuleCall_1() { return cSubTitleParserRuleCall_1; }
+
+		//SubSubTitle
+		public RuleCall getSubSubTitleParserRuleCall_2() { return cSubSubTitleParserRuleCall_2; }
+
+		//Label
+		public RuleCall getLabelParserRuleCall_3() { return cLabelParserRuleCall_3; }
+
+		//Text
+		public RuleCall getTextParserRuleCall_4() { return cTextParserRuleCall_4; }
+
+		//AutoText
+		public RuleCall getAutoTextParserRuleCall_5() { return cAutoTextParserRuleCall_5; }
+
+		//Image
+		public RuleCall getImageParserRuleCall_6() { return cImageParserRuleCall_6; }
+
+		//DatamartTable
+		public RuleCall getDatamartTableParserRuleCall_7() { return cDatamartTableParserRuleCall_7; }
+
+		//DatamartTableProperty
+		public RuleCall getDatamartTablePropertyParserRuleCall_8() { return cDatamartTablePropertyParserRuleCall_8; }
+
+		//Grid
+		public RuleCall getGridParserRuleCall_9() { return cGridParserRuleCall_9; }
+	}
+
+	public class GridElements extends AbstractParserRuleElementFinder {
+		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "Grid");
+		private final Group cGroup = (Group)rule.eContents().get(1);
+		private final Action cGridAction_0 = (Action)cGroup.eContents().get(0);
+		private final Keyword cGridKeyword_1 = (Keyword)cGroup.eContents().get(1);
+		private final Group cGroup_2 = (Group)cGroup.eContents().get(2);
+		private final Keyword cAsKeyword_2_0 = (Keyword)cGroup_2.eContents().get(0);
+		private final Assignment cNameAssignment_2_1 = (Assignment)cGroup_2.eContents().get(1);
+		private final RuleCall cNameIDTerminalRuleCall_2_1_0 = (RuleCall)cNameAssignment_2_1.eContents().get(0);
+		private final Keyword cLeftCurlyBracketKeyword_3 = (Keyword)cGroup.eContents().get(3);
+		private final Assignment cRowsAssignment_4 = (Assignment)cGroup.eContents().get(4);
+		private final RuleCall cRowsGridRowParserRuleCall_4_0 = (RuleCall)cRowsAssignment_4.eContents().get(0);
+		private final Keyword cRightCurlyBracketKeyword_5 = (Keyword)cGroup.eContents().get(5);
+		
+		//Grid:
+		//	{Grid} "grid" ("as" name=ID)? "{" rows+=GridRow* "}";
+		public ParserRule getRule() { return rule; }
+
+		//{Grid} "grid" ("as" name=ID)? "{" rows+=GridRow* "}"
+		public Group getGroup() { return cGroup; }
+
+		//{Grid}
+		public Action getGridAction_0() { return cGridAction_0; }
+
+		//"grid"
+		public Keyword getGridKeyword_1() { return cGridKeyword_1; }
+
+		//("as" name=ID)?
+		public Group getGroup_2() { return cGroup_2; }
+
+		//"as"
+		public Keyword getAsKeyword_2_0() { return cAsKeyword_2_0; }
+
+		//name=ID
+		public Assignment getNameAssignment_2_1() { return cNameAssignment_2_1; }
+
+		//ID
+		public RuleCall getNameIDTerminalRuleCall_2_1_0() { return cNameIDTerminalRuleCall_2_1_0; }
+
+		//"{"
+		public Keyword getLeftCurlyBracketKeyword_3() { return cLeftCurlyBracketKeyword_3; }
+
+		//rows+=GridRow*
+		public Assignment getRowsAssignment_4() { return cRowsAssignment_4; }
+
+		//GridRow
+		public RuleCall getRowsGridRowParserRuleCall_4_0() { return cRowsGridRowParserRuleCall_4_0; }
+
+		//"}"
+		public Keyword getRightCurlyBracketKeyword_5() { return cRightCurlyBracketKeyword_5; }
+	}
+
+	public class GridRowElements extends AbstractParserRuleElementFinder {
+		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "GridRow");
+		private final Group cGroup = (Group)rule.eContents().get(1);
+		private final Action cGridRowAction_0 = (Action)cGroup.eContents().get(0);
+		private final Keyword cRowKeyword_1 = (Keyword)cGroup.eContents().get(1);
+		private final Group cGroup_2 = (Group)cGroup.eContents().get(2);
+		private final Keyword cAsKeyword_2_0 = (Keyword)cGroup_2.eContents().get(0);
+		private final Assignment cNameAssignment_2_1 = (Assignment)cGroup_2.eContents().get(1);
+		private final RuleCall cNameIDTerminalRuleCall_2_1_0 = (RuleCall)cNameAssignment_2_1.eContents().get(0);
+		private final Group cGroup_3 = (Group)cGroup.eContents().get(3);
+		private final Keyword cStyleKeyword_3_0 = (Keyword)cGroup_3.eContents().get(0);
+		private final Assignment cStyleAssignment_3_1 = (Assignment)cGroup_3.eContents().get(1);
+		private final CrossReference cStyleStyleCrossReference_3_1_0 = (CrossReference)cStyleAssignment_3_1.eContents().get(0);
+		private final RuleCall cStyleStyleIDTerminalRuleCall_3_1_0_1 = (RuleCall)cStyleStyleCrossReference_3_1_0.eContents().get(1);
+		private final Keyword cLeftCurlyBracketKeyword_4 = (Keyword)cGroup.eContents().get(4);
+		private final Assignment cCellsAssignment_5 = (Assignment)cGroup.eContents().get(5);
+		private final RuleCall cCellsGridCellParserRuleCall_5_0 = (RuleCall)cCellsAssignment_5.eContents().get(0);
+		private final Keyword cRightCurlyBracketKeyword_6 = (Keyword)cGroup.eContents().get(6);
+		
+		//GridRow:
+		//	{GridRow} "row" ("as" name=ID)? ("style" style=[Style])? "{" cells+=GridCell* "}";
+		public ParserRule getRule() { return rule; }
+
+		//{GridRow} "row" ("as" name=ID)? ("style" style=[Style])? "{" cells+=GridCell* "}"
+		public Group getGroup() { return cGroup; }
+
+		//{GridRow}
+		public Action getGridRowAction_0() { return cGridRowAction_0; }
+
+		//"row"
+		public Keyword getRowKeyword_1() { return cRowKeyword_1; }
+
+		//("as" name=ID)?
+		public Group getGroup_2() { return cGroup_2; }
+
+		//"as"
+		public Keyword getAsKeyword_2_0() { return cAsKeyword_2_0; }
+
+		//name=ID
+		public Assignment getNameAssignment_2_1() { return cNameAssignment_2_1; }
+
+		//ID
+		public RuleCall getNameIDTerminalRuleCall_2_1_0() { return cNameIDTerminalRuleCall_2_1_0; }
+
+		//("style" style=[Style])?
+		public Group getGroup_3() { return cGroup_3; }
+
+		//"style"
+		public Keyword getStyleKeyword_3_0() { return cStyleKeyword_3_0; }
+
+		//style=[Style]
+		public Assignment getStyleAssignment_3_1() { return cStyleAssignment_3_1; }
+
+		//[Style]
+		public CrossReference getStyleStyleCrossReference_3_1_0() { return cStyleStyleCrossReference_3_1_0; }
+
+		//ID
+		public RuleCall getStyleStyleIDTerminalRuleCall_3_1_0_1() { return cStyleStyleIDTerminalRuleCall_3_1_0_1; }
+
+		//"{"
+		public Keyword getLeftCurlyBracketKeyword_4() { return cLeftCurlyBracketKeyword_4; }
+
+		//cells+=GridCell*
+		public Assignment getCellsAssignment_5() { return cCellsAssignment_5; }
+
+		//GridCell
+		public RuleCall getCellsGridCellParserRuleCall_5_0() { return cCellsGridCellParserRuleCall_5_0; }
+
+		//"}"
+		public Keyword getRightCurlyBracketKeyword_6() { return cRightCurlyBracketKeyword_6; }
+	}
+
+	public class GridCellElements extends AbstractParserRuleElementFinder {
+		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "GridCell");
+		private final Group cGroup = (Group)rule.eContents().get(1);
+		private final Action cGridCellAction_0 = (Action)cGroup.eContents().get(0);
+		private final Keyword cCellKeyword_1 = (Keyword)cGroup.eContents().get(1);
+		private final Group cGroup_2 = (Group)cGroup.eContents().get(2);
+		private final Keyword cAsKeyword_2_0 = (Keyword)cGroup_2.eContents().get(0);
+		private final Assignment cNameAssignment_2_1 = (Assignment)cGroup_2.eContents().get(1);
+		private final RuleCall cNameIDTerminalRuleCall_2_1_0 = (RuleCall)cNameAssignment_2_1.eContents().get(0);
+		private final Group cGroup_3 = (Group)cGroup.eContents().get(3);
+		private final Keyword cColumnspanKeyword_3_0 = (Keyword)cGroup_3.eContents().get(0);
+		private final Assignment cColumnspanAssignment_3_1 = (Assignment)cGroup_3.eContents().get(1);
+		private final RuleCall cColumnspanINTTerminalRuleCall_3_1_0 = (RuleCall)cColumnspanAssignment_3_1.eContents().get(0);
+		private final Keyword cLeftCurlyBracketKeyword_4 = (Keyword)cGroup.eContents().get(4);
+		private final Assignment cElementsAssignment_5 = (Assignment)cGroup.eContents().get(5);
+		private final RuleCall cElementsElementParserRuleCall_5_0 = (RuleCall)cElementsAssignment_5.eContents().get(0);
+		private final Keyword cRightCurlyBracketKeyword_6 = (Keyword)cGroup.eContents().get(6);
+		
+		//GridCell:
+		//	{GridCell} "cell" ("as" name=ID)? ("columnspan" columnspan=INT)? "{" elements+=Element* "}";
+		public ParserRule getRule() { return rule; }
+
+		//{GridCell} "cell" ("as" name=ID)? ("columnspan" columnspan=INT)? "{" elements+=Element* "}"
+		public Group getGroup() { return cGroup; }
+
+		//{GridCell}
+		public Action getGridCellAction_0() { return cGridCellAction_0; }
+
+		//"cell"
+		public Keyword getCellKeyword_1() { return cCellKeyword_1; }
+
+		//("as" name=ID)?
+		public Group getGroup_2() { return cGroup_2; }
+
+		//"as"
+		public Keyword getAsKeyword_2_0() { return cAsKeyword_2_0; }
+
+		//name=ID
+		public Assignment getNameAssignment_2_1() { return cNameAssignment_2_1; }
+
+		//ID
+		public RuleCall getNameIDTerminalRuleCall_2_1_0() { return cNameIDTerminalRuleCall_2_1_0; }
+
+		//("columnspan" columnspan=INT)?
+		public Group getGroup_3() { return cGroup_3; }
+
+		//"columnspan"
+		public Keyword getColumnspanKeyword_3_0() { return cColumnspanKeyword_3_0; }
+
+		//columnspan=INT
+		public Assignment getColumnspanAssignment_3_1() { return cColumnspanAssignment_3_1; }
+
+		//INT
+		public RuleCall getColumnspanINTTerminalRuleCall_3_1_0() { return cColumnspanINTTerminalRuleCall_3_1_0; }
+
+		//"{"
+		public Keyword getLeftCurlyBracketKeyword_4() { return cLeftCurlyBracketKeyword_4; }
+
+		//elements+=Element*
+		public Assignment getElementsAssignment_5() { return cElementsAssignment_5; }
+
+		//Element
+		public RuleCall getElementsElementParserRuleCall_5_0() { return cElementsElementParserRuleCall_5_0; }
+
+		//"}"
+		public Keyword getRightCurlyBracketKeyword_6() { return cRightCurlyBracketKeyword_6; }
+	}
+
+	public class DatamartTableElements extends AbstractParserRuleElementFinder {
+		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "DatamartTable");
+		private final Group cGroup = (Group)rule.eContents().get(1);
+		private final Keyword cTableKeyword_0 = (Keyword)cGroup.eContents().get(0);
+		private final Group cGroup_1 = (Group)cGroup.eContents().get(1);
+		private final Keyword cStyleKeyword_1_0 = (Keyword)cGroup_1.eContents().get(0);
+		private final Assignment cStyleAssignment_1_1 = (Assignment)cGroup_1.eContents().get(1);
+		private final CrossReference cStyleStyleCrossReference_1_1_0 = (CrossReference)cStyleAssignment_1_1.eContents().get(0);
+		private final RuleCall cStyleStyleIDTerminalRuleCall_1_1_0_1 = (RuleCall)cStyleStyleCrossReference_1_1_0.eContents().get(1);
+		private final Keyword cLeftCurlyBracketKeyword_2 = (Keyword)cGroup.eContents().get(2);
+		private final Group cGroup_3 = (Group)cGroup.eContents().get(3);
+		private final Assignment cDetailheaderAssignment_3_0 = (Assignment)cGroup_3.eContents().get(0);
+		private final Keyword cDetailheaderDetailheaderKeyword_3_0_0 = (Keyword)cDetailheaderAssignment_3_0.eContents().get(0);
+		private final Group cGroup_3_1 = (Group)cGroup_3.eContents().get(1);
+		private final Keyword cStyleKeyword_3_1_0 = (Keyword)cGroup_3_1.eContents().get(0);
+		private final Assignment cHeaderstyleAssignment_3_1_1 = (Assignment)cGroup_3_1.eContents().get(1);
+		private final CrossReference cHeaderstyleStyleCrossReference_3_1_1_0 = (CrossReference)cHeaderstyleAssignment_3_1_1.eContents().get(0);
+		private final RuleCall cHeaderstyleStyleIDTerminalRuleCall_3_1_1_0_1 = (RuleCall)cHeaderstyleStyleCrossReference_3_1_1_0.eContents().get(1);
+		private final Group cGroup_4 = (Group)cGroup.eContents().get(4);
+		private final Assignment cDetailfooterAssignment_4_0 = (Assignment)cGroup_4.eContents().get(0);
+		private final Keyword cDetailfooterDetailfooterKeyword_4_0_0 = (Keyword)cDetailfooterAssignment_4_0.eContents().get(0);
+		private final Group cGroup_4_1 = (Group)cGroup_4.eContents().get(1);
+		private final Keyword cStyleKeyword_4_1_0 = (Keyword)cGroup_4_1.eContents().get(0);
+		private final Assignment cFooterstyleAssignment_4_1_1 = (Assignment)cGroup_4_1.eContents().get(1);
+		private final CrossReference cFooterstyleStyleCrossReference_4_1_1_0 = (CrossReference)cFooterstyleAssignment_4_1_1.eContents().get(0);
+		private final RuleCall cFooterstyleStyleIDTerminalRuleCall_4_1_1_0_1 = (RuleCall)cFooterstyleStyleCrossReference_4_1_1_0.eContents().get(1);
+		private final Assignment cGroupsAssignment_5 = (Assignment)cGroup.eContents().get(5);
+		private final RuleCall cGroupsDatamartTableGroupParserRuleCall_5_0 = (RuleCall)cGroupsAssignment_5.eContents().get(0);
+		private final Assignment cDetailAssignment_6 = (Assignment)cGroup.eContents().get(6);
+		private final RuleCall cDetailDatamartTableDetailParserRuleCall_6_0 = (RuleCall)cDetailAssignment_6.eContents().get(0);
+		private final Keyword cRightCurlyBracketKeyword_7 = (Keyword)cGroup.eContents().get(7);
+		
+		//DatamartTable:
+		//	"table" / *datamartRef=[datamart::DatamartDefinition] ('as' name=ID)?* / ("style" style=[Style])? "{"
+		//	(detailheader?="detailheader" ("style" headerstyle=[Style])?)? (detailfooter?="detailfooter" ("style"
+		//	footerstyle=[Style])?)? groups+=DatamartTableGroup* detail=DatamartTableDetail "}";
+		public ParserRule getRule() { return rule; }
+
+		//"table" / *datamartRef=[datamart::DatamartDefinition] ('as' name=ID)?* / ("style" style=[Style])? "{"
+		//(detailheader?="detailheader" ("style" headerstyle=[Style])?)? (detailfooter?="detailfooter" ("style"
+		//footerstyle=[Style])?)? groups+=DatamartTableGroup* detail=DatamartTableDetail "}"
+		public Group getGroup() { return cGroup; }
+
+		//"table"
+		public Keyword getTableKeyword_0() { return cTableKeyword_0; }
+
+		//("style" style=[Style])?
+		public Group getGroup_1() { return cGroup_1; }
+
+		//"style"
+		public Keyword getStyleKeyword_1_0() { return cStyleKeyword_1_0; }
+
+		//style=[Style]
+		public Assignment getStyleAssignment_1_1() { return cStyleAssignment_1_1; }
+
+		//[Style]
+		public CrossReference getStyleStyleCrossReference_1_1_0() { return cStyleStyleCrossReference_1_1_0; }
+
+		//ID
+		public RuleCall getStyleStyleIDTerminalRuleCall_1_1_0_1() { return cStyleStyleIDTerminalRuleCall_1_1_0_1; }
+
+		//"{"
+		public Keyword getLeftCurlyBracketKeyword_2() { return cLeftCurlyBracketKeyword_2; }
+
+		//(detailheader?="detailheader" ("style" headerstyle=[Style])?)?
+		public Group getGroup_3() { return cGroup_3; }
+
+		//detailheader?="detailheader"
+		public Assignment getDetailheaderAssignment_3_0() { return cDetailheaderAssignment_3_0; }
+
+		//"detailheader"
+		public Keyword getDetailheaderDetailheaderKeyword_3_0_0() { return cDetailheaderDetailheaderKeyword_3_0_0; }
+
+		//("style" headerstyle=[Style])?
+		public Group getGroup_3_1() { return cGroup_3_1; }
+
+		//"style"
+		public Keyword getStyleKeyword_3_1_0() { return cStyleKeyword_3_1_0; }
+
+		//headerstyle=[Style]
+		public Assignment getHeaderstyleAssignment_3_1_1() { return cHeaderstyleAssignment_3_1_1; }
+
+		//[Style]
+		public CrossReference getHeaderstyleStyleCrossReference_3_1_1_0() { return cHeaderstyleStyleCrossReference_3_1_1_0; }
+
+		//ID
+		public RuleCall getHeaderstyleStyleIDTerminalRuleCall_3_1_1_0_1() { return cHeaderstyleStyleIDTerminalRuleCall_3_1_1_0_1; }
+
+		//(detailfooter?="detailfooter" ("style" footerstyle=[Style])?)?
+		public Group getGroup_4() { return cGroup_4; }
+
+		//detailfooter?="detailfooter"
+		public Assignment getDetailfooterAssignment_4_0() { return cDetailfooterAssignment_4_0; }
+
+		//"detailfooter"
+		public Keyword getDetailfooterDetailfooterKeyword_4_0_0() { return cDetailfooterDetailfooterKeyword_4_0_0; }
+
+		//("style" footerstyle=[Style])?
+		public Group getGroup_4_1() { return cGroup_4_1; }
+
+		//"style"
+		public Keyword getStyleKeyword_4_1_0() { return cStyleKeyword_4_1_0; }
+
+		//footerstyle=[Style]
+		public Assignment getFooterstyleAssignment_4_1_1() { return cFooterstyleAssignment_4_1_1; }
+
+		//[Style]
+		public CrossReference getFooterstyleStyleCrossReference_4_1_1_0() { return cFooterstyleStyleCrossReference_4_1_1_0; }
+
+		//ID
+		public RuleCall getFooterstyleStyleIDTerminalRuleCall_4_1_1_0_1() { return cFooterstyleStyleIDTerminalRuleCall_4_1_1_0_1; }
+
+		//groups+=DatamartTableGroup*
+		public Assignment getGroupsAssignment_5() { return cGroupsAssignment_5; }
+
+		//DatamartTableGroup
+		public RuleCall getGroupsDatamartTableGroupParserRuleCall_5_0() { return cGroupsDatamartTableGroupParserRuleCall_5_0; }
+
+		//detail=DatamartTableDetail
+		public Assignment getDetailAssignment_6() { return cDetailAssignment_6; }
+
+		//DatamartTableDetail
+		public RuleCall getDetailDatamartTableDetailParserRuleCall_6_0() { return cDetailDatamartTableDetailParserRuleCall_6_0; }
+
+		//"}"
+		public Keyword getRightCurlyBracketKeyword_7() { return cRightCurlyBracketKeyword_7; }
+	}
+
+	public class DatamartTableGroupElements extends AbstractParserRuleElementFinder {
+		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "DatamartTableGroup");
+		private final Group cGroup = (Group)rule.eContents().get(1);
+		private final Keyword cGroupKeyword_0 = (Keyword)cGroup.eContents().get(0);
+		private final Assignment cNameAssignment_1 = (Assignment)cGroup.eContents().get(1);
+		private final RuleCall cNameIDTerminalRuleCall_1_0 = (RuleCall)cNameAssignment_1.eContents().get(0);
+		private final Keyword cByKeyword_2 = (Keyword)cGroup.eContents().get(2);
+		private final Assignment cGroupingRefAssignment_3 = (Assignment)cGroup.eContents().get(3);
+		private final CrossReference cGroupingRefDatamartPropertyCrossReference_3_0 = (CrossReference)cGroupingRefAssignment_3.eContents().get(0);
+		private final RuleCall cGroupingRefDatamartPropertyIDTerminalRuleCall_3_0_1 = (RuleCall)cGroupingRefDatamartPropertyCrossReference_3_0.eContents().get(1);
+		private final Keyword cLeftCurlyBracketKeyword_4 = (Keyword)cGroup.eContents().get(4);
+		private final Assignment cHeaderAssignment_5 = (Assignment)cGroup.eContents().get(5);
+		private final RuleCall cHeaderDatamartTableGroupHeaderParserRuleCall_5_0 = (RuleCall)cHeaderAssignment_5.eContents().get(0);
+		private final Group cGroup_6 = (Group)cGroup.eContents().get(6);
+		private final Assignment cDetailheaderAssignment_6_0 = (Assignment)cGroup_6.eContents().get(0);
+		private final Keyword cDetailheaderDetailheaderKeyword_6_0_0 = (Keyword)cDetailheaderAssignment_6_0.eContents().get(0);
+		private final Group cGroup_6_1 = (Group)cGroup_6.eContents().get(1);
+		private final Keyword cStyleKeyword_6_1_0 = (Keyword)cGroup_6_1.eContents().get(0);
+		private final Assignment cHeaderstyleAssignment_6_1_1 = (Assignment)cGroup_6_1.eContents().get(1);
+		private final CrossReference cHeaderstyleStyleCrossReference_6_1_1_0 = (CrossReference)cHeaderstyleAssignment_6_1_1.eContents().get(0);
+		private final RuleCall cHeaderstyleStyleIDTerminalRuleCall_6_1_1_0_1 = (RuleCall)cHeaderstyleStyleCrossReference_6_1_1_0.eContents().get(1);
+		private final Group cGroup_7 = (Group)cGroup.eContents().get(7);
+		private final Assignment cDetailfooterAssignment_7_0 = (Assignment)cGroup_7.eContents().get(0);
+		private final Keyword cDetailfooterDetailfooterKeyword_7_0_0 = (Keyword)cDetailfooterAssignment_7_0.eContents().get(0);
+		private final Group cGroup_7_1 = (Group)cGroup_7.eContents().get(1);
+		private final Keyword cStyleKeyword_7_1_0 = (Keyword)cGroup_7_1.eContents().get(0);
+		private final Assignment cFooterstyleAssignment_7_1_1 = (Assignment)cGroup_7_1.eContents().get(1);
+		private final CrossReference cFooterstyleStyleCrossReference_7_1_1_0 = (CrossReference)cFooterstyleAssignment_7_1_1.eContents().get(0);
+		private final RuleCall cFooterstyleStyleIDTerminalRuleCall_7_1_1_0_1 = (RuleCall)cFooterstyleStyleCrossReference_7_1_1_0.eContents().get(1);
+		private final Assignment cFooterAssignment_8 = (Assignment)cGroup.eContents().get(8);
+		private final RuleCall cFooterDatamartTableGroupFooterParserRuleCall_8_0 = (RuleCall)cFooterAssignment_8.eContents().get(0);
+		private final Keyword cRightCurlyBracketKeyword_9 = (Keyword)cGroup.eContents().get(9);
+		
+		//DatamartTableGroup:
+		//	"group" name=ID "by" groupingRef=[datamart::DatamartProperty] "{" header=DatamartTableGroupHeader?
+		//	(detailheader?="detailheader" ("style" headerstyle=[Style])?)? (detailfooter?="detailfooter" ("style"
+		//	footerstyle=[Style])?)? footer=DatamartTableGroupFooter? "}";
+		public ParserRule getRule() { return rule; }
+
+		//"group" name=ID "by" groupingRef=[datamart::DatamartProperty] "{" header=DatamartTableGroupHeader?
+		//(detailheader?="detailheader" ("style" headerstyle=[Style])?)? (detailfooter?="detailfooter" ("style"
+		//footerstyle=[Style])?)? footer=DatamartTableGroupFooter? "}"
+		public Group getGroup() { return cGroup; }
+
+		//"group"
+		public Keyword getGroupKeyword_0() { return cGroupKeyword_0; }
+
+		//name=ID
+		public Assignment getNameAssignment_1() { return cNameAssignment_1; }
+
+		//ID
+		public RuleCall getNameIDTerminalRuleCall_1_0() { return cNameIDTerminalRuleCall_1_0; }
+
+		//"by"
+		public Keyword getByKeyword_2() { return cByKeyword_2; }
+
+		//groupingRef=[datamart::DatamartProperty]
+		public Assignment getGroupingRefAssignment_3() { return cGroupingRefAssignment_3; }
+
+		//[datamart::DatamartProperty]
+		public CrossReference getGroupingRefDatamartPropertyCrossReference_3_0() { return cGroupingRefDatamartPropertyCrossReference_3_0; }
+
+		//ID
+		public RuleCall getGroupingRefDatamartPropertyIDTerminalRuleCall_3_0_1() { return cGroupingRefDatamartPropertyIDTerminalRuleCall_3_0_1; }
+
+		//"{"
+		public Keyword getLeftCurlyBracketKeyword_4() { return cLeftCurlyBracketKeyword_4; }
+
+		//header=DatamartTableGroupHeader?
+		public Assignment getHeaderAssignment_5() { return cHeaderAssignment_5; }
+
+		//DatamartTableGroupHeader
+		public RuleCall getHeaderDatamartTableGroupHeaderParserRuleCall_5_0() { return cHeaderDatamartTableGroupHeaderParserRuleCall_5_0; }
+
+		//(detailheader?="detailheader" ("style" headerstyle=[Style])?)?
+		public Group getGroup_6() { return cGroup_6; }
+
+		//detailheader?="detailheader"
+		public Assignment getDetailheaderAssignment_6_0() { return cDetailheaderAssignment_6_0; }
+
+		//"detailheader"
+		public Keyword getDetailheaderDetailheaderKeyword_6_0_0() { return cDetailheaderDetailheaderKeyword_6_0_0; }
+
+		//("style" headerstyle=[Style])?
+		public Group getGroup_6_1() { return cGroup_6_1; }
+
+		//"style"
+		public Keyword getStyleKeyword_6_1_0() { return cStyleKeyword_6_1_0; }
+
+		//headerstyle=[Style]
+		public Assignment getHeaderstyleAssignment_6_1_1() { return cHeaderstyleAssignment_6_1_1; }
+
+		//[Style]
+		public CrossReference getHeaderstyleStyleCrossReference_6_1_1_0() { return cHeaderstyleStyleCrossReference_6_1_1_0; }
+
+		//ID
+		public RuleCall getHeaderstyleStyleIDTerminalRuleCall_6_1_1_0_1() { return cHeaderstyleStyleIDTerminalRuleCall_6_1_1_0_1; }
+
+		//(detailfooter?="detailfooter" ("style" footerstyle=[Style])?)?
+		public Group getGroup_7() { return cGroup_7; }
+
+		//detailfooter?="detailfooter"
+		public Assignment getDetailfooterAssignment_7_0() { return cDetailfooterAssignment_7_0; }
+
+		//"detailfooter"
+		public Keyword getDetailfooterDetailfooterKeyword_7_0_0() { return cDetailfooterDetailfooterKeyword_7_0_0; }
+
+		//("style" footerstyle=[Style])?
+		public Group getGroup_7_1() { return cGroup_7_1; }
+
+		//"style"
+		public Keyword getStyleKeyword_7_1_0() { return cStyleKeyword_7_1_0; }
+
+		//footerstyle=[Style]
+		public Assignment getFooterstyleAssignment_7_1_1() { return cFooterstyleAssignment_7_1_1; }
+
+		//[Style]
+		public CrossReference getFooterstyleStyleCrossReference_7_1_1_0() { return cFooterstyleStyleCrossReference_7_1_1_0; }
+
+		//ID
+		public RuleCall getFooterstyleStyleIDTerminalRuleCall_7_1_1_0_1() { return cFooterstyleStyleIDTerminalRuleCall_7_1_1_0_1; }
+
+		//footer=DatamartTableGroupFooter?
+		public Assignment getFooterAssignment_8() { return cFooterAssignment_8; }
+
+		//DatamartTableGroupFooter
+		public RuleCall getFooterDatamartTableGroupFooterParserRuleCall_8_0() { return cFooterDatamartTableGroupFooterParserRuleCall_8_0; }
+
+		//"}"
+		public Keyword getRightCurlyBracketKeyword_9() { return cRightCurlyBracketKeyword_9; }
+	}
+
+	public class DatamartTableGroupHeaderElements extends AbstractParserRuleElementFinder {
+		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "DatamartTableGroupHeader");
+		private final Group cGroup = (Group)rule.eContents().get(1);
+		private final Action cDatamartTableGroupHeaderAction_0 = (Action)cGroup.eContents().get(0);
+		private final Keyword cHeaderKeyword_1 = (Keyword)cGroup.eContents().get(1);
+		private final Group cGroup_2 = (Group)cGroup.eContents().get(2);
+		private final Keyword cStyleKeyword_2_0 = (Keyword)cGroup_2.eContents().get(0);
+		private final Assignment cStyleAssignment_2_1 = (Assignment)cGroup_2.eContents().get(1);
+		private final CrossReference cStyleStyleCrossReference_2_1_0 = (CrossReference)cStyleAssignment_2_1.eContents().get(0);
+		private final RuleCall cStyleStyleIDTerminalRuleCall_2_1_0_1 = (RuleCall)cStyleStyleCrossReference_2_1_0.eContents().get(1);
+		private final Keyword cLeftCurlyBracketKeyword_3 = (Keyword)cGroup.eContents().get(3);
+		private final Assignment cRowsAssignment_4 = (Assignment)cGroup.eContents().get(4);
+		private final RuleCall cRowsGridRowParserRuleCall_4_0 = (RuleCall)cRowsAssignment_4.eContents().get(0);
+		private final Keyword cRightCurlyBracketKeyword_5 = (Keyword)cGroup.eContents().get(5);
+		
+		//DatamartTableGroupHeader:
+		//	{DatamartTableGroupHeader} "header" ("style" style=[Style])? "{" rows+=GridRow* "}";
+		public ParserRule getRule() { return rule; }
+
+		//{DatamartTableGroupHeader} "header" ("style" style=[Style])? "{" rows+=GridRow* "}"
+		public Group getGroup() { return cGroup; }
+
+		//{DatamartTableGroupHeader}
+		public Action getDatamartTableGroupHeaderAction_0() { return cDatamartTableGroupHeaderAction_0; }
+
+		//"header"
+		public Keyword getHeaderKeyword_1() { return cHeaderKeyword_1; }
+
+		//("style" style=[Style])?
+		public Group getGroup_2() { return cGroup_2; }
+
+		//"style"
+		public Keyword getStyleKeyword_2_0() { return cStyleKeyword_2_0; }
+
+		//style=[Style]
+		public Assignment getStyleAssignment_2_1() { return cStyleAssignment_2_1; }
+
+		//[Style]
+		public CrossReference getStyleStyleCrossReference_2_1_0() { return cStyleStyleCrossReference_2_1_0; }
+
+		//ID
+		public RuleCall getStyleStyleIDTerminalRuleCall_2_1_0_1() { return cStyleStyleIDTerminalRuleCall_2_1_0_1; }
+
+		//"{"
+		public Keyword getLeftCurlyBracketKeyword_3() { return cLeftCurlyBracketKeyword_3; }
+
+		//rows+=GridRow*
+		public Assignment getRowsAssignment_4() { return cRowsAssignment_4; }
+
+		//GridRow
+		public RuleCall getRowsGridRowParserRuleCall_4_0() { return cRowsGridRowParserRuleCall_4_0; }
+
+		//"}"
+		public Keyword getRightCurlyBracketKeyword_5() { return cRightCurlyBracketKeyword_5; }
+	}
+
+	public class DatamartTableGroupFooterElements extends AbstractParserRuleElementFinder {
+		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "DatamartTableGroupFooter");
+		private final Group cGroup = (Group)rule.eContents().get(1);
+		private final Action cDatamartTableGroupFooterAction_0 = (Action)cGroup.eContents().get(0);
+		private final Keyword cFooterKeyword_1 = (Keyword)cGroup.eContents().get(1);
+		private final Group cGroup_2 = (Group)cGroup.eContents().get(2);
+		private final Keyword cStyleKeyword_2_0 = (Keyword)cGroup_2.eContents().get(0);
+		private final Assignment cStyleAssignment_2_1 = (Assignment)cGroup_2.eContents().get(1);
+		private final CrossReference cStyleStyleCrossReference_2_1_0 = (CrossReference)cStyleAssignment_2_1.eContents().get(0);
+		private final RuleCall cStyleStyleIDTerminalRuleCall_2_1_0_1 = (RuleCall)cStyleStyleCrossReference_2_1_0.eContents().get(1);
+		private final Keyword cLeftCurlyBracketKeyword_3 = (Keyword)cGroup.eContents().get(3);
+		private final Assignment cRowsAssignment_4 = (Assignment)cGroup.eContents().get(4);
+		private final RuleCall cRowsGridRowParserRuleCall_4_0 = (RuleCall)cRowsAssignment_4.eContents().get(0);
+		private final Keyword cRightCurlyBracketKeyword_5 = (Keyword)cGroup.eContents().get(5);
+		
+		//DatamartTableGroupFooter:
+		//	{DatamartTableGroupFooter} "footer" ("style" style=[Style])? "{" rows+=GridRow* "}";
+		public ParserRule getRule() { return rule; }
+
+		//{DatamartTableGroupFooter} "footer" ("style" style=[Style])? "{" rows+=GridRow* "}"
+		public Group getGroup() { return cGroup; }
+
+		//{DatamartTableGroupFooter}
+		public Action getDatamartTableGroupFooterAction_0() { return cDatamartTableGroupFooterAction_0; }
+
+		//"footer"
+		public Keyword getFooterKeyword_1() { return cFooterKeyword_1; }
+
+		//("style" style=[Style])?
+		public Group getGroup_2() { return cGroup_2; }
+
+		//"style"
+		public Keyword getStyleKeyword_2_0() { return cStyleKeyword_2_0; }
+
+		//style=[Style]
+		public Assignment getStyleAssignment_2_1() { return cStyleAssignment_2_1; }
+
+		//[Style]
+		public CrossReference getStyleStyleCrossReference_2_1_0() { return cStyleStyleCrossReference_2_1_0; }
+
+		//ID
+		public RuleCall getStyleStyleIDTerminalRuleCall_2_1_0_1() { return cStyleStyleIDTerminalRuleCall_2_1_0_1; }
+
+		//"{"
+		public Keyword getLeftCurlyBracketKeyword_3() { return cLeftCurlyBracketKeyword_3; }
+
+		//rows+=GridRow*
+		public Assignment getRowsAssignment_4() { return cRowsAssignment_4; }
+
+		//GridRow
+		public RuleCall getRowsGridRowParserRuleCall_4_0() { return cRowsGridRowParserRuleCall_4_0; }
+
+		//"}"
+		public Keyword getRightCurlyBracketKeyword_5() { return cRightCurlyBracketKeyword_5; }
+	}
+
+	public class DatamartTableDetailElements extends AbstractParserRuleElementFinder {
+		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "DatamartTableDetail");
+		private final Group cGroup = (Group)rule.eContents().get(1);
+		private final Action cDatamartTableDetailAction_0 = (Action)cGroup.eContents().get(0);
+		private final Keyword cDetailsKeyword_1 = (Keyword)cGroup.eContents().get(1);
+		private final Group cGroup_2 = (Group)cGroup.eContents().get(2);
+		private final Keyword cStyleKeyword_2_0 = (Keyword)cGroup_2.eContents().get(0);
+		private final Assignment cStyleAssignment_2_1 = (Assignment)cGroup_2.eContents().get(1);
+		private final CrossReference cStyleStyleCrossReference_2_1_0 = (CrossReference)cStyleAssignment_2_1.eContents().get(0);
+		private final RuleCall cStyleStyleIDTerminalRuleCall_2_1_0_1 = (RuleCall)cStyleStyleCrossReference_2_1_0.eContents().get(1);
+		private final Alternatives cAlternatives_3 = (Alternatives)cGroup.eContents().get(3);
+		private final Keyword cAllKeyword_3_0 = (Keyword)cAlternatives_3.eContents().get(0);
+		private final Group cGroup_3_1 = (Group)cAlternatives_3.eContents().get(1);
+		private final Keyword cLeftCurlyBracketKeyword_3_1_0 = (Keyword)cGroup_3_1.eContents().get(0);
+		private final Assignment cColumnFormattersAssignment_3_1_1 = (Assignment)cGroup_3_1.eContents().get(1);
+		private final RuleCall cColumnFormattersDatamartTablePropertyParserRuleCall_3_1_1_0 = (RuleCall)cColumnFormattersAssignment_3_1_1.eContents().get(0);
+		private final Keyword cRightCurlyBracketKeyword_3_1_2 = (Keyword)cGroup_3_1.eContents().get(2);
+		
+		//DatamartTableDetail:
+		//	{DatamartTableDetail} "details" ("style" style=[Style])? ("all" | "{" columnFormatters+=DatamartTableProperty* "}");
+		public ParserRule getRule() { return rule; }
+
+		//{DatamartTableDetail} "details" ("style" style=[Style])? ("all" | "{" columnFormatters+=DatamartTableProperty* "}")
+		public Group getGroup() { return cGroup; }
+
+		//{DatamartTableDetail}
+		public Action getDatamartTableDetailAction_0() { return cDatamartTableDetailAction_0; }
+
+		//"details"
+		public Keyword getDetailsKeyword_1() { return cDetailsKeyword_1; }
+
+		//("style" style=[Style])?
+		public Group getGroup_2() { return cGroup_2; }
+
+		//"style"
+		public Keyword getStyleKeyword_2_0() { return cStyleKeyword_2_0; }
+
+		//style=[Style]
+		public Assignment getStyleAssignment_2_1() { return cStyleAssignment_2_1; }
+
+		//[Style]
+		public CrossReference getStyleStyleCrossReference_2_1_0() { return cStyleStyleCrossReference_2_1_0; }
+
+		//ID
+		public RuleCall getStyleStyleIDTerminalRuleCall_2_1_0_1() { return cStyleStyleIDTerminalRuleCall_2_1_0_1; }
+
+		//"all" | "{" columnFormatters+=DatamartTableProperty* "}"
+		public Alternatives getAlternatives_3() { return cAlternatives_3; }
+
+		//"all"
+		public Keyword getAllKeyword_3_0() { return cAllKeyword_3_0; }
+
+		//"{" columnFormatters+=DatamartTableProperty* "}"
+		public Group getGroup_3_1() { return cGroup_3_1; }
+
+		//"{"
+		public Keyword getLeftCurlyBracketKeyword_3_1_0() { return cLeftCurlyBracketKeyword_3_1_0; }
+
+		//columnFormatters+=DatamartTableProperty*
+		public Assignment getColumnFormattersAssignment_3_1_1() { return cColumnFormattersAssignment_3_1_1; }
+
+		//DatamartTableProperty
+		public RuleCall getColumnFormattersDatamartTablePropertyParserRuleCall_3_1_1_0() { return cColumnFormattersDatamartTablePropertyParserRuleCall_3_1_1_0; }
+
+		//"}"
+		public Keyword getRightCurlyBracketKeyword_3_1_2() { return cRightCurlyBracketKeyword_3_1_2; }
+	}
+
+	public class DatamartTablePropertyElements extends AbstractParserRuleElementFinder {
+		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "DatamartTableProperty");
+		private final Group cGroup = (Group)rule.eContents().get(1);
+		private final Assignment cColumnAssignment_0 = (Assignment)cGroup.eContents().get(0);
+		private final RuleCall cColumnTableValueElementParserRuleCall_0_0 = (RuleCall)cColumnAssignment_0.eContents().get(0);
+		private final UnorderedGroup cUnorderedGroup_1 = (UnorderedGroup)cGroup.eContents().get(1);
+		private final Group cGroup_1_0 = (Group)cUnorderedGroup_1.eContents().get(0);
+		private final Keyword cStyleKeyword_1_0_0 = (Keyword)cGroup_1_0.eContents().get(0);
+		private final Assignment cStyleAssignment_1_0_1 = (Assignment)cGroup_1_0.eContents().get(1);
+		private final CrossReference cStyleStyleCrossReference_1_0_1_0 = (CrossReference)cStyleAssignment_1_0_1.eContents().get(0);
+		private final RuleCall cStyleStyleIDTerminalRuleCall_1_0_1_0_1 = (RuleCall)cStyleStyleCrossReference_1_0_1_0.eContents().get(1);
+		private final Group cGroup_1_1 = (Group)cUnorderedGroup_1.eContents().get(1);
+		private final Assignment cHasImageAssignment_1_1_0 = (Assignment)cGroup_1_1.eContents().get(0);
+		private final Keyword cHasImageImageKeyword_1_1_0_0 = (Keyword)cHasImageAssignment_1_1_0.eContents().get(0);
+		private final Assignment cImageAssignment_1_1_1 = (Assignment)cGroup_1_1.eContents().get(1);
+		private final RuleCall cImageTableImageParserRuleCall_1_1_1_0 = (RuleCall)cImageAssignment_1_1_1.eContents().get(0);
+		private final Group cGroup_1_2 = (Group)cUnorderedGroup_1.eContents().get(2);
+		private final Keyword cIntervalsKeyword_1_2_0 = (Keyword)cGroup_1_2.eContents().get(0);
+		private final Assignment cHideLabelIntervalAssignment_1_2_1 = (Assignment)cGroup_1_2.eContents().get(1);
+		private final Keyword cHideLabelIntervalHidelabelKeyword_1_2_1_0 = (Keyword)cHideLabelIntervalAssignment_1_2_1.eContents().get(0);
+		private final Keyword cLeftCurlyBracketKeyword_1_2_2 = (Keyword)cGroup_1_2.eContents().get(2);
+		private final Assignment cIntervalsAssignment_1_2_3 = (Assignment)cGroup_1_2.eContents().get(3);
+		private final RuleCall cIntervalsTableIntervalParserRuleCall_1_2_3_0 = (RuleCall)cIntervalsAssignment_1_2_3.eContents().get(0);
+		private final Keyword cRightCurlyBracketKeyword_1_2_4 = (Keyword)cGroup_1_2.eContents().get(4);
+		private final Group cGroup_1_3 = (Group)cUnorderedGroup_1.eContents().get(3);
+		private final Keyword cLookupsKeyword_1_3_0 = (Keyword)cGroup_1_3.eContents().get(0);
+		private final Assignment cHideLabelLookupAssignment_1_3_1 = (Assignment)cGroup_1_3.eContents().get(1);
+		private final Keyword cHideLabelLookupHidelabelKeyword_1_3_1_0 = (Keyword)cHideLabelLookupAssignment_1_3_1.eContents().get(0);
+		private final Keyword cLeftCurlyBracketKeyword_1_3_2 = (Keyword)cGroup_1_3.eContents().get(2);
+		private final Assignment cLookupsAssignment_1_3_3 = (Assignment)cGroup_1_3.eContents().get(3);
+		private final RuleCall cLookupsTableLookupParserRuleCall_1_3_3_0 = (RuleCall)cLookupsAssignment_1_3_3.eContents().get(0);
+		private final Keyword cRightCurlyBracketKeyword_1_3_4 = (Keyword)cGroup_1_3.eContents().get(4);
+		
+		/// * !!! copy from tabledsl ... * / DatamartTableProperty:
+		//	column=TableValueElement (("style" style=[Style])? & (hasImage?="image" image=TableImage)? & ("intervals"
+		//	hideLabelInterval?="hidelabel"? "{" intervals+=TableInterval* "}")? & ("lookups" hideLabelLookup?="hidelabel"? "{"
+		//	lookups+=TableLookup* "}")?);
+		public ParserRule getRule() { return rule; }
+
+		//column=TableValueElement (("style" style=[Style])? & (hasImage?="image" image=TableImage)? & ("intervals"
+		//hideLabelInterval?="hidelabel"? "{" intervals+=TableInterval* "}")? & ("lookups" hideLabelLookup?="hidelabel"? "{"
+		//lookups+=TableLookup* "}")?)
+		public Group getGroup() { return cGroup; }
+
+		//column=TableValueElement
+		public Assignment getColumnAssignment_0() { return cColumnAssignment_0; }
+
+		//TableValueElement
+		public RuleCall getColumnTableValueElementParserRuleCall_0_0() { return cColumnTableValueElementParserRuleCall_0_0; }
+
+		//("style" style=[Style])? & (hasImage?="image" image=TableImage)? & ("intervals" hideLabelInterval?="hidelabel"? "{"
+		//intervals+=TableInterval* "}")? & ("lookups" hideLabelLookup?="hidelabel"? "{" lookups+=TableLookup* "}")?
+		public UnorderedGroup getUnorderedGroup_1() { return cUnorderedGroup_1; }
+
+		//("style" style=[Style])?
+		public Group getGroup_1_0() { return cGroup_1_0; }
+
+		//"style"
+		public Keyword getStyleKeyword_1_0_0() { return cStyleKeyword_1_0_0; }
+
+		//style=[Style]
+		public Assignment getStyleAssignment_1_0_1() { return cStyleAssignment_1_0_1; }
+
+		//[Style]
+		public CrossReference getStyleStyleCrossReference_1_0_1_0() { return cStyleStyleCrossReference_1_0_1_0; }
+
+		//ID
+		public RuleCall getStyleStyleIDTerminalRuleCall_1_0_1_0_1() { return cStyleStyleIDTerminalRuleCall_1_0_1_0_1; }
+
+		//(hasImage?="image" image=TableImage)?
+		public Group getGroup_1_1() { return cGroup_1_1; }
+
+		//hasImage?="image"
+		public Assignment getHasImageAssignment_1_1_0() { return cHasImageAssignment_1_1_0; }
+
+		//"image"
+		public Keyword getHasImageImageKeyword_1_1_0_0() { return cHasImageImageKeyword_1_1_0_0; }
+
+		//image=TableImage
+		public Assignment getImageAssignment_1_1_1() { return cImageAssignment_1_1_1; }
+
+		//TableImage
+		public RuleCall getImageTableImageParserRuleCall_1_1_1_0() { return cImageTableImageParserRuleCall_1_1_1_0; }
+
+		//("intervals" hideLabelInterval?="hidelabel"? "{" intervals+=TableInterval* "}")?
+		public Group getGroup_1_2() { return cGroup_1_2; }
+
+		//"intervals"
+		public Keyword getIntervalsKeyword_1_2_0() { return cIntervalsKeyword_1_2_0; }
+
+		//hideLabelInterval?="hidelabel"?
+		public Assignment getHideLabelIntervalAssignment_1_2_1() { return cHideLabelIntervalAssignment_1_2_1; }
+
+		//"hidelabel"
+		public Keyword getHideLabelIntervalHidelabelKeyword_1_2_1_0() { return cHideLabelIntervalHidelabelKeyword_1_2_1_0; }
+
+		//"{"
+		public Keyword getLeftCurlyBracketKeyword_1_2_2() { return cLeftCurlyBracketKeyword_1_2_2; }
+
+		//intervals+=TableInterval*
+		public Assignment getIntervalsAssignment_1_2_3() { return cIntervalsAssignment_1_2_3; }
+
+		//TableInterval
+		public RuleCall getIntervalsTableIntervalParserRuleCall_1_2_3_0() { return cIntervalsTableIntervalParserRuleCall_1_2_3_0; }
+
+		//"}"
+		public Keyword getRightCurlyBracketKeyword_1_2_4() { return cRightCurlyBracketKeyword_1_2_4; }
+
+		//("lookups" hideLabelLookup?="hidelabel"? "{" lookups+=TableLookup* "}")?
+		public Group getGroup_1_3() { return cGroup_1_3; }
+
+		//"lookups"
+		public Keyword getLookupsKeyword_1_3_0() { return cLookupsKeyword_1_3_0; }
+
+		//hideLabelLookup?="hidelabel"?
+		public Assignment getHideLabelLookupAssignment_1_3_1() { return cHideLabelLookupAssignment_1_3_1; }
+
+		//"hidelabel"
+		public Keyword getHideLabelLookupHidelabelKeyword_1_3_1_0() { return cHideLabelLookupHidelabelKeyword_1_3_1_0; }
+
+		//"{"
+		public Keyword getLeftCurlyBracketKeyword_1_3_2() { return cLeftCurlyBracketKeyword_1_3_2; }
+
+		//lookups+=TableLookup*
+		public Assignment getLookupsAssignment_1_3_3() { return cLookupsAssignment_1_3_3; }
+
+		//TableLookup
+		public RuleCall getLookupsTableLookupParserRuleCall_1_3_3_0() { return cLookupsTableLookupParserRuleCall_1_3_3_0; }
+
+		//"}"
+		public Keyword getRightCurlyBracketKeyword_1_3_4() { return cRightCurlyBracketKeyword_1_3_4; }
+	}
+
+	public class TableFormatterElements extends AbstractParserRuleElementFinder {
+		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "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);
+		private final Assignment cFormatAssignment_2 = (Assignment)cGroup.eContents().get(2);
+		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
+		public Group getGroup() { return cGroup; }
+
+		//{TableFormatter}
+		public Action getTableFormatterAction_0() { return cTableFormatterAction_0; }
+
+		//"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 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);
+		private final Assignment cImagePathPatternAssignment_2 = (Assignment)cGroup.eContents().get(2);
+		private final RuleCall cImagePathPatternSTRINGTerminalRuleCall_2_0 = (RuleCall)cImagePathPatternAssignment_2.eContents().get(0);
+		private final UnorderedGroup cUnorderedGroup_3 = (UnorderedGroup)cGroup.eContents().get(3);
+		private final Assignment cHasParameterAssignment_3_0 = (Assignment)cUnorderedGroup_3.eContents().get(0);
+		private final Keyword cHasParameterDynamicKeyword_3_0_0 = (Keyword)cHasParameterAssignment_3_0.eContents().get(0);
+		private final Assignment cHideImageLabelAssignment_3_1 = (Assignment)cUnorderedGroup_3.eContents().get(1);
+		private final Keyword cHideImageLabelHidelabelKeyword_3_1_0 = (Keyword)cHideImageLabelAssignment_3_1.eContents().get(0);
+		private final Group cGroup_3_2 = (Group)cUnorderedGroup_3.eContents().get(2);
+		private final Assignment cResizeAssignment_3_2_0 = (Assignment)cGroup_3_2.eContents().get(0);
+		private final Keyword cResizeResizeKeyword_3_2_0_0 = (Keyword)cResizeAssignment_3_2_0.eContents().get(0);
+		private final Assignment cResizeStringAssignment_3_2_1 = (Assignment)cGroup_3_2.eContents().get(1);
+		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"
+		//resizeString=STRING)?)
+		public Group getGroup() { return cGroup; }
+
+		//{TableImage}
+		public Action getTableImageAction_0() { return cTableImageAction_0; }
+
+		//"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)?
+		public UnorderedGroup getUnorderedGroup_3() { return cUnorderedGroup_3; }
+
+		//hasParameter?="dynamic"?
+		public Assignment getHasParameterAssignment_3_0() { return cHasParameterAssignment_3_0; }
+
+		//"dynamic"
+		public Keyword getHasParameterDynamicKeyword_3_0_0() { return cHasParameterDynamicKeyword_3_0_0; }
+
+		//hideImageLabel?="hidelabel"?
+		public Assignment getHideImageLabelAssignment_3_1() { return cHideImageLabelAssignment_3_1; }
+
+		//"hidelabel"
+		public Keyword getHideImageLabelHidelabelKeyword_3_1_0() { return cHideImageLabelHidelabelKeyword_3_1_0; }
+
+		//(resize?="resize" resizeString=STRING)?
+		public Group getGroup_3_2() { return cGroup_3_2; }
+
+		//resize?="resize"
+		public Assignment getResizeAssignment_3_2_0() { return cResizeAssignment_3_2_0; }
+
+		//"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 TableValueElementElements extends AbstractParserRuleElementFinder {
+		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "TableValueElement");
+		private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1);
+		private final RuleCall cTablePropertyParserRuleCall_0 = (RuleCall)cAlternatives.eContents().get(0);
+		private final RuleCall cTableAggregationParserRuleCall_1 = (RuleCall)cAlternatives.eContents().get(1);
+		
+		//TableValueElement:
+		//	TableProperty | TableAggregation;
+		public ParserRule getRule() { return rule; }
+
+		//TableProperty | TableAggregation
+		public Alternatives getAlternatives() { return cAlternatives; }
+
+		//TableProperty
+		public RuleCall getTablePropertyParserRuleCall_0() { return cTablePropertyParserRuleCall_0; }
+
+		//TableAggregation
+		public RuleCall getTableAggregationParserRuleCall_1() { return cTableAggregationParserRuleCall_1; }
+	}
+
+	public class TablePropertyElements extends AbstractParserRuleElementFinder {
+		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "TableProperty");
+		private final Group cGroup = (Group)rule.eContents().get(1);
+		private final Keyword cPropertyKeyword_0 = (Keyword)cGroup.eContents().get(0);
+		private final Assignment cValueRefAssignment_1 = (Assignment)cGroup.eContents().get(1);
+		private final CrossReference cValueRefDatamartPropertyCrossReference_1_0 = (CrossReference)cValueRefAssignment_1.eContents().get(0);
+		private final RuleCall cValueRefDatamartPropertyIDTerminalRuleCall_1_0_1 = (RuleCall)cValueRefDatamartPropertyCrossReference_1_0.eContents().get(1);
+		
+		/// *|TableBinaryAggregation|TableMultipleAggregation* /
+		/// *TableMeasure|TableDerived|TableHierarchy|TableOrdinal|TableColumn|TableTask* / TableProperty:
+		//	"property" valueRef=[datamart::DatamartProperty];
+		public ParserRule getRule() { return rule; }
+
+		//"property" valueRef=[datamart::DatamartProperty]
+		public Group getGroup() { return cGroup; }
+
+		//"property"
+		public Keyword getPropertyKeyword_0() { return cPropertyKeyword_0; }
+
+		//valueRef=[datamart::DatamartProperty]
+		public Assignment getValueRefAssignment_1() { return cValueRefAssignment_1; }
+
+		//[datamart::DatamartProperty]
+		public CrossReference getValueRefDatamartPropertyCrossReference_1_0() { return cValueRefDatamartPropertyCrossReference_1_0; }
+
+		//ID
+		public RuleCall getValueRefDatamartPropertyIDTerminalRuleCall_1_0_1() { return cValueRefDatamartPropertyIDTerminalRuleCall_1_0_1; }
+	}
+
+	public class TableAggregationElements extends AbstractParserRuleElementFinder {
+		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "TableAggregation");
+		private final Group cGroup = (Group)rule.eContents().get(1);
+		private final Keyword cAggregateKeyword_0 = (Keyword)cGroup.eContents().get(0);
+		private final Assignment cAggregationAssignment_1 = (Assignment)cGroup.eContents().get(1);
+		private final RuleCall cAggregationTableBaseAggregationParserRuleCall_1_0 = (RuleCall)cAggregationAssignment_1.eContents().get(0);
+		private final UnorderedGroup cUnorderedGroup_2 = (UnorderedGroup)cGroup.eContents().get(2);
+		private final Group cGroup_2_0 = (Group)cUnorderedGroup_2.eContents().get(0);
+		private final Keyword cOnGroupKeyword_2_0_0 = (Keyword)cGroup_2_0.eContents().get(0);
+		private final Assignment cOnGroupAssignment_2_0_1 = (Assignment)cGroup_2_0.eContents().get(1);
+		private final CrossReference cOnGroupDatamartTableGroupCrossReference_2_0_1_0 = (CrossReference)cOnGroupAssignment_2_0_1.eContents().get(0);
+		private final RuleCall cOnGroupDatamartTableGroupIDTerminalRuleCall_2_0_1_0_1 = (RuleCall)cOnGroupDatamartTableGroupCrossReference_2_0_1_0.eContents().get(1);
+		private final Group cGroup_2_1 = (Group)cUnorderedGroup_2.eContents().get(1);
+		private final Keyword cTitleKeyword_2_1_0 = (Keyword)cGroup_2_1.eContents().get(0);
+		private final Assignment cTextAssignment_2_1_1 = (Assignment)cGroup_2_1.eContents().get(1);
+		private final RuleCall cTextTRANSLATABLESTRINGParserRuleCall_2_1_1_0 = (RuleCall)cTextAssignment_2_1_1.eContents().get(0);
+		
+		//TableAggregation:
+		//	"aggregate" aggregation=TableBaseAggregation (("on-group" onGroup=[DatamartTableGroup])? & ("title"
+		//	text=TRANSLATABLESTRING)?);
+		public ParserRule getRule() { return rule; }
+
+		//"aggregate" aggregation=TableBaseAggregation (("on-group" onGroup=[DatamartTableGroup])? & ("title"
+		//text=TRANSLATABLESTRING)?)
+		public Group getGroup() { return cGroup; }
+
+		//"aggregate"
+		public Keyword getAggregateKeyword_0() { return cAggregateKeyword_0; }
+
+		//aggregation=TableBaseAggregation
+		public Assignment getAggregationAssignment_1() { return cAggregationAssignment_1; }
+
+		//TableBaseAggregation
+		public RuleCall getAggregationTableBaseAggregationParserRuleCall_1_0() { return cAggregationTableBaseAggregationParserRuleCall_1_0; }
+
+		//("on-group" onGroup=[DatamartTableGroup])? & ("title" text=TRANSLATABLESTRING)?
+		public UnorderedGroup getUnorderedGroup_2() { return cUnorderedGroup_2; }
+
+		//("on-group" onGroup=[DatamartTableGroup])?
+		public Group getGroup_2_0() { return cGroup_2_0; }
+
+		//"on-group"
+		public Keyword getOnGroupKeyword_2_0_0() { return cOnGroupKeyword_2_0_0; }
+
+		//onGroup=[DatamartTableGroup]
+		public Assignment getOnGroupAssignment_2_0_1() { return cOnGroupAssignment_2_0_1; }
+
+		//[DatamartTableGroup]
+		public CrossReference getOnGroupDatamartTableGroupCrossReference_2_0_1_0() { return cOnGroupDatamartTableGroupCrossReference_2_0_1_0; }
+
+		//ID
+		public RuleCall getOnGroupDatamartTableGroupIDTerminalRuleCall_2_0_1_0_1() { return cOnGroupDatamartTableGroupIDTerminalRuleCall_2_0_1_0_1; }
+
+		//("title" text=TRANSLATABLESTRING)?
+		public Group getGroup_2_1() { return cGroup_2_1; }
+
+		//"title"
+		public Keyword getTitleKeyword_2_1_0() { return cTitleKeyword_2_1_0; }
+
+		//text=TRANSLATABLESTRING
+		public Assignment getTextAssignment_2_1_1() { return cTextAssignment_2_1_1; }
+
+		//TRANSLATABLESTRING
+		public RuleCall getTextTRANSLATABLESTRINGParserRuleCall_2_1_1_0() { return cTextTRANSLATABLESTRINGParserRuleCall_2_1_1_0; }
+	}
+
+	public class TableBaseAggregationElements extends AbstractParserRuleElementFinder {
+		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "TableBaseAggregation");
+		private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1);
+		private final RuleCall cTablePureAggregationParserRuleCall_0 = (RuleCall)cAlternatives.eContents().get(0);
+		private final RuleCall cTableUnaryAggregationParserRuleCall_1 = (RuleCall)cAlternatives.eContents().get(1);
+		private final RuleCall cTableMultipleAggregationParserRuleCall_2 = (RuleCall)cAlternatives.eContents().get(2);
+		private final RuleCall cTableBinaryAggregationParserRuleCall_3 = (RuleCall)cAlternatives.eContents().get(3);
+		
+		//TableBaseAggregation:
+		//	TablePureAggregation | TableUnaryAggregation | TableMultipleAggregation | TableBinaryAggregation;
+		public ParserRule getRule() { return rule; }
+
+		//TablePureAggregation | TableUnaryAggregation | TableMultipleAggregation | TableBinaryAggregation
+		public Alternatives getAlternatives() { return cAlternatives; }
+
+		//TablePureAggregation
+		public RuleCall getTablePureAggregationParserRuleCall_0() { return cTablePureAggregationParserRuleCall_0; }
+
+		//TableUnaryAggregation
+		public RuleCall getTableUnaryAggregationParserRuleCall_1() { return cTableUnaryAggregationParserRuleCall_1; }
+
+		//TableMultipleAggregation
+		public RuleCall getTableMultipleAggregationParserRuleCall_2() { return cTableMultipleAggregationParserRuleCall_2; }
+
+		//TableBinaryAggregation
+		public RuleCall getTableBinaryAggregationParserRuleCall_3() { return cTableBinaryAggregationParserRuleCall_3; }
+	}
+
+	public class TablePureAggregationElements extends AbstractParserRuleElementFinder {
+		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "TablePureAggregation");
+		private final Assignment cAggregationAssignment = (Assignment)rule.eContents().get(1);
+		private final RuleCall cAggregationPureAggregationTypeEnumEnumRuleCall_0 = (RuleCall)cAggregationAssignment.eContents().get(0);
+		
+		//TablePureAggregation:
+		//	aggregation=PureAggregationTypeEnum;
+		public ParserRule getRule() { return rule; }
+
+		//aggregation=PureAggregationTypeEnum
+		public Assignment getAggregationAssignment() { return cAggregationAssignment; }
+
+		//PureAggregationTypeEnum
+		public RuleCall getAggregationPureAggregationTypeEnumEnumRuleCall_0() { return cAggregationPureAggregationTypeEnumEnumRuleCall_0; }
+	}
+
+	public class TableUnaryAggregationElements extends AbstractParserRuleElementFinder {
+		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "TableUnaryAggregation");
+		private final Group cGroup = (Group)rule.eContents().get(1);
+		private final Assignment cAggregationAssignment_0 = (Assignment)cGroup.eContents().get(0);
+		private final RuleCall cAggregationUnaryAggregationTypeEnumEnumRuleCall_0_0 = (RuleCall)cAggregationAssignment_0.eContents().get(0);
+		private final Keyword cOfKeyword_1 = (Keyword)cGroup.eContents().get(1);
+		private final Assignment cValueRefsAssignment_2 = (Assignment)cGroup.eContents().get(2);
+		private final CrossReference cValueRefsDatamartPropertyCrossReference_2_0 = (CrossReference)cValueRefsAssignment_2.eContents().get(0);
+		private final RuleCall cValueRefsDatamartPropertyIDTerminalRuleCall_2_0_1 = (RuleCall)cValueRefsDatamartPropertyCrossReference_2_0.eContents().get(1);
+		
+		//TableUnaryAggregation:
+		//	aggregation=UnaryAggregationTypeEnum "of" valueRefs+=[datamart::DatamartProperty];
+		public ParserRule getRule() { return rule; }
+
+		//aggregation=UnaryAggregationTypeEnum "of" valueRefs+=[datamart::DatamartProperty]
+		public Group getGroup() { return cGroup; }
+
+		//aggregation=UnaryAggregationTypeEnum
+		public Assignment getAggregationAssignment_0() { return cAggregationAssignment_0; }
+
+		//UnaryAggregationTypeEnum
+		public RuleCall getAggregationUnaryAggregationTypeEnumEnumRuleCall_0_0() { return cAggregationUnaryAggregationTypeEnumEnumRuleCall_0_0; }
+
+		//"of"
+		public Keyword getOfKeyword_1() { return cOfKeyword_1; }
+
+		//valueRefs+=[datamart::DatamartProperty]
+		public Assignment getValueRefsAssignment_2() { return cValueRefsAssignment_2; }
+
+		//[datamart::DatamartProperty]
+		public CrossReference getValueRefsDatamartPropertyCrossReference_2_0() { return cValueRefsDatamartPropertyCrossReference_2_0; }
+
+		//ID
+		public RuleCall getValueRefsDatamartPropertyIDTerminalRuleCall_2_0_1() { return cValueRefsDatamartPropertyIDTerminalRuleCall_2_0_1; }
+	}
+
+	public class TableMultipleAggregationElements extends AbstractParserRuleElementFinder {
+		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "TableMultipleAggregation");
+		private final Group cGroup = (Group)rule.eContents().get(1);
+		private final Assignment cAggregationAssignment_0 = (Assignment)cGroup.eContents().get(0);
+		private final RuleCall cAggregationMultipleAggregationTypeEnumEnumRuleCall_0_0 = (RuleCall)cAggregationAssignment_0.eContents().get(0);
+		private final Keyword cOfKeyword_1 = (Keyword)cGroup.eContents().get(1);
+		private final Keyword cLeftParenthesisKeyword_2 = (Keyword)cGroup.eContents().get(2);
+		private final Assignment cValueRefsAssignment_3 = (Assignment)cGroup.eContents().get(3);
+		private final CrossReference cValueRefsDatamartPropertyCrossReference_3_0 = (CrossReference)cValueRefsAssignment_3.eContents().get(0);
+		private final RuleCall cValueRefsDatamartPropertyIDTerminalRuleCall_3_0_1 = (RuleCall)cValueRefsDatamartPropertyCrossReference_3_0.eContents().get(1);
+		private final Keyword cRightParenthesisKeyword_4 = (Keyword)cGroup.eContents().get(4);
+		
+		//TableMultipleAggregation:
+		//	aggregation=MultipleAggregationTypeEnum "of" "(" valueRefs+=[datamart::DatamartProperty]* ")";
+		public ParserRule getRule() { return rule; }
+
+		//aggregation=MultipleAggregationTypeEnum "of" "(" valueRefs+=[datamart::DatamartProperty]* ")"
+		public Group getGroup() { return cGroup; }
+
+		//aggregation=MultipleAggregationTypeEnum
+		public Assignment getAggregationAssignment_0() { return cAggregationAssignment_0; }
+
+		//MultipleAggregationTypeEnum
+		public RuleCall getAggregationMultipleAggregationTypeEnumEnumRuleCall_0_0() { return cAggregationMultipleAggregationTypeEnumEnumRuleCall_0_0; }
+
+		//"of"
+		public Keyword getOfKeyword_1() { return cOfKeyword_1; }
+
+		//"("
+		public Keyword getLeftParenthesisKeyword_2() { return cLeftParenthesisKeyword_2; }
+
+		//valueRefs+=[datamart::DatamartProperty]*
+		public Assignment getValueRefsAssignment_3() { return cValueRefsAssignment_3; }
+
+		//[datamart::DatamartProperty]
+		public CrossReference getValueRefsDatamartPropertyCrossReference_3_0() { return cValueRefsDatamartPropertyCrossReference_3_0; }
+
+		//ID
+		public RuleCall getValueRefsDatamartPropertyIDTerminalRuleCall_3_0_1() { return cValueRefsDatamartPropertyIDTerminalRuleCall_3_0_1; }
+
+		//")"
+		public Keyword getRightParenthesisKeyword_4() { return cRightParenthesisKeyword_4; }
+	}
+
+	public class TableBinaryAggregationElements extends AbstractParserRuleElementFinder {
+		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "TableBinaryAggregation");
+		private final Group cGroup = (Group)rule.eContents().get(1);
+		private final Assignment cAggregationAssignment_0 = (Assignment)cGroup.eContents().get(0);
+		private final RuleCall cAggregationBinaryAggregationTypeEnumEnumRuleCall_0_0 = (RuleCall)cAggregationAssignment_0.eContents().get(0);
+		private final Keyword cOfKeyword_1 = (Keyword)cGroup.eContents().get(1);
+		private final Keyword cLeftParenthesisKeyword_2 = (Keyword)cGroup.eContents().get(2);
+		private final Assignment cValueRefsAssignment_3 = (Assignment)cGroup.eContents().get(3);
+		private final CrossReference cValueRefsDatamartPropertyCrossReference_3_0 = (CrossReference)cValueRefsAssignment_3.eContents().get(0);
+		private final RuleCall cValueRefsDatamartPropertyIDTerminalRuleCall_3_0_1 = (RuleCall)cValueRefsDatamartPropertyCrossReference_3_0.eContents().get(1);
+		private final Assignment cValueRefsAssignment_4 = (Assignment)cGroup.eContents().get(4);
+		private final CrossReference cValueRefsDatamartPropertyCrossReference_4_0 = (CrossReference)cValueRefsAssignment_4.eContents().get(0);
+		private final RuleCall cValueRefsDatamartPropertyIDTerminalRuleCall_4_0_1 = (RuleCall)cValueRefsDatamartPropertyCrossReference_4_0.eContents().get(1);
+		private final Keyword cRightParenthesisKeyword_5 = (Keyword)cGroup.eContents().get(5);
+		
+		//TableBinaryAggregation:
+		//	aggregation=BinaryAggregationTypeEnum "of" "(" valueRefs+=[datamart::DatamartProperty]
+		//	valueRefs+=[datamart::DatamartProperty] ")";
+		public ParserRule getRule() { return rule; }
+
+		//aggregation=BinaryAggregationTypeEnum "of" "(" valueRefs+=[datamart::DatamartProperty]
+		//valueRefs+=[datamart::DatamartProperty] ")"
+		public Group getGroup() { return cGroup; }
+
+		//aggregation=BinaryAggregationTypeEnum
+		public Assignment getAggregationAssignment_0() { return cAggregationAssignment_0; }
+
+		//BinaryAggregationTypeEnum
+		public RuleCall getAggregationBinaryAggregationTypeEnumEnumRuleCall_0_0() { return cAggregationBinaryAggregationTypeEnumEnumRuleCall_0_0; }
+
+		//"of"
+		public Keyword getOfKeyword_1() { return cOfKeyword_1; }
+
+		//"("
+		public Keyword getLeftParenthesisKeyword_2() { return cLeftParenthesisKeyword_2; }
+
+		//valueRefs+=[datamart::DatamartProperty]
+		public Assignment getValueRefsAssignment_3() { return cValueRefsAssignment_3; }
+
+		//[datamart::DatamartProperty]
+		public CrossReference getValueRefsDatamartPropertyCrossReference_3_0() { return cValueRefsDatamartPropertyCrossReference_3_0; }
+
+		//ID
+		public RuleCall getValueRefsDatamartPropertyIDTerminalRuleCall_3_0_1() { return cValueRefsDatamartPropertyIDTerminalRuleCall_3_0_1; }
+
+		//valueRefs+=[datamart::DatamartProperty]
+		public Assignment getValueRefsAssignment_4() { return cValueRefsAssignment_4; }
+
+		//[datamart::DatamartProperty]
+		public CrossReference getValueRefsDatamartPropertyCrossReference_4_0() { return cValueRefsDatamartPropertyCrossReference_4_0; }
+
+		//ID
+		public RuleCall getValueRefsDatamartPropertyIDTerminalRuleCall_4_0_1() { return cValueRefsDatamartPropertyIDTerminalRuleCall_4_0_1; }
+
+		//")"
+		public Keyword getRightParenthesisKeyword_5() { return cRightParenthesisKeyword_5; }
+	}
+
+	public class TableIntervalElements extends AbstractParserRuleElementFinder {
+		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "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);
+		
+		//TableInterval:
+		//	TableNumberInterval | TableDateDayInterval;
+		public ParserRule getRule() { return rule; }
+
+		//TableNumberInterval | TableDateDayInterval
+		public Alternatives getAlternatives() { return cAlternatives; }
+
+		//TableNumberInterval
+		public RuleCall getTableNumberIntervalParserRuleCall_0() { return cTableNumberIntervalParserRuleCall_0; }
+
+		//TableDateDayInterval
+		public RuleCall getTableDateDayIntervalParserRuleCall_1() { return cTableDateDayIntervalParserRuleCall_1; }
+	}
+
+	public class TableNumberIntervalElements extends AbstractParserRuleElementFinder {
+		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "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 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
+		public Group getGroup() { return cGroup; }
+
+		//{TableNumberInterval}
+		public Action getTableNumberIntervalAction_0() { return cTableNumberIntervalAction_0; }
+
+		//"up to"
+		public Keyword getUpToKeyword_1() { return cUpToKeyword_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 TableDateDayIntervalElements extends AbstractParserRuleElementFinder {
+		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "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 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
+		public Group getGroup() { return cGroup; }
+
+		//{TableDateDayInterval}
+		public Action getTableDateDayIntervalAction_0() { return cTableDateDayIntervalAction_0; }
+
+		//"days in past"
+		public Keyword getDaysInPastKeyword_1() { return cDaysInPastKeyword_1; }
+
+		//dateIntervalValue=SignedNumber
+		public Assignment getDateIntervalValueAssignment_2() { return cDateIntervalValueAssignment_2; }
+
+		//SignedNumber
+		public RuleCall getDateIntervalValueSignedNumberParserRuleCall_2_0() { return cDateIntervalValueSignedNumberParserRuleCall_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 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);
+		
+		//TableLookup:
+		//	TableNumberLookup | TableStringLookup | TableDateDayLookup;
+		public ParserRule getRule() { return rule; }
+
+		//TableNumberLookup | TableStringLookup | TableDateDayLookup
+		public Alternatives getAlternatives() { return cAlternatives; }
+
+		//TableNumberLookup
+		public RuleCall getTableNumberLookupParserRuleCall_0() { return cTableNumberLookupParserRuleCall_0; }
+
+		//TableStringLookup
+		public RuleCall getTableStringLookupParserRuleCall_1() { return cTableStringLookupParserRuleCall_1; }
+
+		//TableDateDayLookup
+		public RuleCall getTableDateDayLookupParserRuleCall_2() { return cTableDateDayLookupParserRuleCall_2; }
+	}
+
+	public class TableNumberLookupElements extends AbstractParserRuleElementFinder {
+		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "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);
+		private final Assignment cLookupValueAssignment_2 = (Assignment)cGroup.eContents().get(2);
+		private final RuleCall cLookupValueSignedNumberParserRuleCall_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);
+		
+		//TableNumberLookup:
+		//	{TableNumberLookup} "number" lookupValue=SignedNumber discrete=TableRangeElement;
+		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"
+		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 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);
+		private final Assignment cLookupValueAssignment_2 = (Assignment)cGroup.eContents().get(2);
+		private final RuleCall cLookupValueSTRINGTerminalRuleCall_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);
+		
+		//TableStringLookup:
+		//	{TableStringLookup} "string" lookupValue=STRING discrete=TableRangeElement;
+		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"
+		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 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 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
+		public Group getGroup() { return cGroup; }
+
+		//{TableDateDayLookup}
+		public Action getTableDateDayLookupAction_0() { return cTableDateDayLookupAction_0; }
+
+		//"days in past"
+		public Keyword getDaysInPastKeyword_1() { return cDaysInPastKeyword_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 TableRangeElementElements extends AbstractParserRuleElementFinder {
+		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "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);
+		private final RuleCall cTableIconParserRuleCall_2 = (RuleCall)cAlternatives.eContents().get(2);
+		private final RuleCall cTableTrendParserRuleCall_3 = (RuleCall)cAlternatives.eContents().get(3);
+		
+		//TableRangeElement:
+		//	TableTextColor | TableCellColor | TableIcon | TableTrend;
+		public ParserRule getRule() { return rule; }
+
+		//TableTextColor | TableCellColor | TableIcon | TableTrend
+		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; }
+	}
+
+	public class SignedNumberElements extends AbstractParserRuleElementFinder {
+		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "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);
+		
+		//SignedNumber returns ecore::EDouble:
+		//	"-"? Number;
+		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 TableTextColorElements extends AbstractParserRuleElementFinder {
+		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "TableTextColor");
+		private final Group cGroup = (Group)rule.eContents().get(1);
+		private final Keyword cTextcolorKeyword_0 = (Keyword)cGroup.eContents().get(0);
+		private final Assignment cColorAssignment_1 = (Assignment)cGroup.eContents().get(1);
+		private final CrossReference cColorColorCrossReference_1_0 = (CrossReference)cColorAssignment_1.eContents().get(0);
+		private final RuleCall cColorColorIDTerminalRuleCall_1_0_1 = (RuleCall)cColorColorCrossReference_1_0.eContents().get(1);
+		
+		//TableTextColor:
+		//	"textcolor" color=[Color];
+		public ParserRule getRule() { return rule; }
+
+		//"textcolor" color=[Color]
+		public Group getGroup() { return cGroup; }
+
+		//"textcolor"
+		public Keyword getTextcolorKeyword_0() { return cTextcolorKeyword_0; }
+
+		//color=[Color]
+		public Assignment getColorAssignment_1() { return cColorAssignment_1; }
+
+		//[Color]
+		public CrossReference getColorColorCrossReference_1_0() { return cColorColorCrossReference_1_0; }
+
+		//ID
+		public RuleCall getColorColorIDTerminalRuleCall_1_0_1() { return cColorColorIDTerminalRuleCall_1_0_1; }
+	}
+
+	public class TableCellColorElements extends AbstractParserRuleElementFinder {
+		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "TableCellColor");
+		private final Group cGroup = (Group)rule.eContents().get(1);
+		private final Keyword cCellcolorKeyword_0 = (Keyword)cGroup.eContents().get(0);
+		private final Assignment cColorAssignment_1 = (Assignment)cGroup.eContents().get(1);
+		private final CrossReference cColorColorCrossReference_1_0 = (CrossReference)cColorAssignment_1.eContents().get(0);
+		private final RuleCall cColorColorIDTerminalRuleCall_1_0_1 = (RuleCall)cColorColorCrossReference_1_0.eContents().get(1);
+		
+		//TableCellColor:
+		//	"cellcolor" color=[Color];
+		public ParserRule getRule() { return rule; }
+
+		//"cellcolor" color=[Color]
+		public Group getGroup() { return cGroup; }
+
+		//"cellcolor"
+		public Keyword getCellcolorKeyword_0() { return cCellcolorKeyword_0; }
+
+		//color=[Color]
+		public Assignment getColorAssignment_1() { return cColorAssignment_1; }
+
+		//[Color]
+		public CrossReference getColorColorCrossReference_1_0() { return cColorColorCrossReference_1_0; }
+
+		//ID
+		public RuleCall getColorColorIDTerminalRuleCall_1_0_1() { return cColorColorIDTerminalRuleCall_1_0_1; }
+	}
+
+	public class TableIconElements extends AbstractParserRuleElementFinder {
+		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "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
+		public Group getGroup() { return cGroup; }
+
+		//"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 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
+		public Group getGroup() { return cGroup; }
+
+		//"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 TitleElements extends AbstractParserRuleElementFinder {
+		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "Title");
+		private final Group cGroup = (Group)rule.eContents().get(1);
+		private final Action cTitleAction_0 = (Action)cGroup.eContents().get(0);
+		private final Keyword cTitleKeyword_1 = (Keyword)cGroup.eContents().get(1);
+		private final Assignment cTextAssignment_2 = (Assignment)cGroup.eContents().get(2);
+		private final RuleCall cTextTRANSLATABLESTRINGParserRuleCall_2_0 = (RuleCall)cTextAssignment_2.eContents().get(0);
+		private final Group cGroup_3 = (Group)cGroup.eContents().get(3);
+		private final Keyword cStyleKeyword_3_0 = (Keyword)cGroup_3.eContents().get(0);
+		private final Assignment cStyleAssignment_3_1 = (Assignment)cGroup_3.eContents().get(1);
+		private final CrossReference cStyleStyleCrossReference_3_1_0 = (CrossReference)cStyleAssignment_3_1.eContents().get(0);
+		private final RuleCall cStyleStyleIDTerminalRuleCall_3_1_0_1 = (RuleCall)cStyleStyleCrossReference_3_1_0.eContents().get(1);
+		
+		/// * ... copy from tabledsl !!! * / //ChartDsl:
+		////	'chart' chartRef=[chart::Chart] ('as' name=ID)?;
+		////
+		//Title:
+		//	{Title} "title" text=TRANSLATABLESTRING ("style" style=[Style])?;
+		public ParserRule getRule() { return rule; }
+
+		//{Title} "title" text=TRANSLATABLESTRING ("style" style=[Style])?
+		public Group getGroup() { return cGroup; }
+
+		//{Title}
+		public Action getTitleAction_0() { return cTitleAction_0; }
+
+		//"title"
+		public Keyword getTitleKeyword_1() { return cTitleKeyword_1; }
+
+		//text=TRANSLATABLESTRING
+		public Assignment getTextAssignment_2() { return cTextAssignment_2; }
+
+		//TRANSLATABLESTRING
+		public RuleCall getTextTRANSLATABLESTRINGParserRuleCall_2_0() { return cTextTRANSLATABLESTRINGParserRuleCall_2_0; }
+
+		//("style" style=[Style])?
+		public Group getGroup_3() { return cGroup_3; }
+
+		//"style"
+		public Keyword getStyleKeyword_3_0() { return cStyleKeyword_3_0; }
+
+		//style=[Style]
+		public Assignment getStyleAssignment_3_1() { return cStyleAssignment_3_1; }
+
+		//[Style]
+		public CrossReference getStyleStyleCrossReference_3_1_0() { return cStyleStyleCrossReference_3_1_0; }
+
+		//ID
+		public RuleCall getStyleStyleIDTerminalRuleCall_3_1_0_1() { return cStyleStyleIDTerminalRuleCall_3_1_0_1; }
+	}
+
+	public class SubTitleElements extends AbstractParserRuleElementFinder {
+		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "SubTitle");
+		private final Group cGroup = (Group)rule.eContents().get(1);
+		private final Action cSubTitleAction_0 = (Action)cGroup.eContents().get(0);
+		private final Keyword cSubtitleKeyword_1 = (Keyword)cGroup.eContents().get(1);
+		private final Assignment cTextAssignment_2 = (Assignment)cGroup.eContents().get(2);
+		private final RuleCall cTextTRANSLATABLESTRINGParserRuleCall_2_0 = (RuleCall)cTextAssignment_2.eContents().get(0);
+		private final Group cGroup_3 = (Group)cGroup.eContents().get(3);
+		private final Keyword cStyleKeyword_3_0 = (Keyword)cGroup_3.eContents().get(0);
+		private final Assignment cStyleAssignment_3_1 = (Assignment)cGroup_3.eContents().get(1);
+		private final CrossReference cStyleStyleCrossReference_3_1_0 = (CrossReference)cStyleAssignment_3_1.eContents().get(0);
+		private final RuleCall cStyleStyleIDTerminalRuleCall_3_1_0_1 = (RuleCall)cStyleStyleCrossReference_3_1_0.eContents().get(1);
+		
+		//SubTitle:
+		//	{SubTitle} "subtitle" text=TRANSLATABLESTRING ("style" style=[Style])?;
+		public ParserRule getRule() { return rule; }
+
+		//{SubTitle} "subtitle" text=TRANSLATABLESTRING ("style" style=[Style])?
+		public Group getGroup() { return cGroup; }
+
+		//{SubTitle}
+		public Action getSubTitleAction_0() { return cSubTitleAction_0; }
+
+		//"subtitle"
+		public Keyword getSubtitleKeyword_1() { return cSubtitleKeyword_1; }
+
+		//text=TRANSLATABLESTRING
+		public Assignment getTextAssignment_2() { return cTextAssignment_2; }
+
+		//TRANSLATABLESTRING
+		public RuleCall getTextTRANSLATABLESTRINGParserRuleCall_2_0() { return cTextTRANSLATABLESTRINGParserRuleCall_2_0; }
+
+		//("style" style=[Style])?
+		public Group getGroup_3() { return cGroup_3; }
+
+		//"style"
+		public Keyword getStyleKeyword_3_0() { return cStyleKeyword_3_0; }
+
+		//style=[Style]
+		public Assignment getStyleAssignment_3_1() { return cStyleAssignment_3_1; }
+
+		//[Style]
+		public CrossReference getStyleStyleCrossReference_3_1_0() { return cStyleStyleCrossReference_3_1_0; }
+
+		//ID
+		public RuleCall getStyleStyleIDTerminalRuleCall_3_1_0_1() { return cStyleStyleIDTerminalRuleCall_3_1_0_1; }
+	}
+
+	public class SubSubTitleElements extends AbstractParserRuleElementFinder {
+		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "SubSubTitle");
+		private final Group cGroup = (Group)rule.eContents().get(1);
+		private final Action cSubSubTitleAction_0 = (Action)cGroup.eContents().get(0);
+		private final Keyword cSubsubtitleKeyword_1 = (Keyword)cGroup.eContents().get(1);
+		private final Assignment cTextAssignment_2 = (Assignment)cGroup.eContents().get(2);
+		private final RuleCall cTextTRANSLATABLESTRINGParserRuleCall_2_0 = (RuleCall)cTextAssignment_2.eContents().get(0);
+		private final Group cGroup_3 = (Group)cGroup.eContents().get(3);
+		private final Keyword cStyleKeyword_3_0 = (Keyword)cGroup_3.eContents().get(0);
+		private final Assignment cStyleAssignment_3_1 = (Assignment)cGroup_3.eContents().get(1);
+		private final CrossReference cStyleStyleCrossReference_3_1_0 = (CrossReference)cStyleAssignment_3_1.eContents().get(0);
+		private final RuleCall cStyleStyleIDTerminalRuleCall_3_1_0_1 = (RuleCall)cStyleStyleCrossReference_3_1_0.eContents().get(1);
+		
+		//SubSubTitle:
+		//	{SubSubTitle} "subsubtitle" text=TRANSLATABLESTRING ("style" style=[Style])?;
+		public ParserRule getRule() { return rule; }
+
+		//{SubSubTitle} "subsubtitle" text=TRANSLATABLESTRING ("style" style=[Style])?
+		public Group getGroup() { return cGroup; }
+
+		//{SubSubTitle}
+		public Action getSubSubTitleAction_0() { return cSubSubTitleAction_0; }
+
+		//"subsubtitle"
+		public Keyword getSubsubtitleKeyword_1() { return cSubsubtitleKeyword_1; }
+
+		//text=TRANSLATABLESTRING
+		public Assignment getTextAssignment_2() { return cTextAssignment_2; }
+
+		//TRANSLATABLESTRING
+		public RuleCall getTextTRANSLATABLESTRINGParserRuleCall_2_0() { return cTextTRANSLATABLESTRINGParserRuleCall_2_0; }
+
+		//("style" style=[Style])?
+		public Group getGroup_3() { return cGroup_3; }
+
+		//"style"
+		public Keyword getStyleKeyword_3_0() { return cStyleKeyword_3_0; }
+
+		//style=[Style]
+		public Assignment getStyleAssignment_3_1() { return cStyleAssignment_3_1; }
+
+		//[Style]
+		public CrossReference getStyleStyleCrossReference_3_1_0() { return cStyleStyleCrossReference_3_1_0; }
+
+		//ID
+		public RuleCall getStyleStyleIDTerminalRuleCall_3_1_0_1() { return cStyleStyleIDTerminalRuleCall_3_1_0_1; }
+	}
+
+	public class LabelElements extends AbstractParserRuleElementFinder {
+		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "Label");
+		private final Group cGroup = (Group)rule.eContents().get(1);
+		private final Action cLabelAction_0 = (Action)cGroup.eContents().get(0);
+		private final Keyword cLabelKeyword_1 = (Keyword)cGroup.eContents().get(1);
+		private final Assignment cTextAssignment_2 = (Assignment)cGroup.eContents().get(2);
+		private final RuleCall cTextTRANSLATABLESTRINGParserRuleCall_2_0 = (RuleCall)cTextAssignment_2.eContents().get(0);
+		private final Group cGroup_3 = (Group)cGroup.eContents().get(3);
+		private final Keyword cStyleKeyword_3_0 = (Keyword)cGroup_3.eContents().get(0);
+		private final Assignment cStyleAssignment_3_1 = (Assignment)cGroup_3.eContents().get(1);
+		private final CrossReference cStyleStyleCrossReference_3_1_0 = (CrossReference)cStyleAssignment_3_1.eContents().get(0);
+		private final RuleCall cStyleStyleIDTerminalRuleCall_3_1_0_1 = (RuleCall)cStyleStyleCrossReference_3_1_0.eContents().get(1);
+		
+		//Label:
+		//	{Label} "label" text=TRANSLATABLESTRING ("style" style=[Style])?;
+		public ParserRule getRule() { return rule; }
+
+		//{Label} "label" text=TRANSLATABLESTRING ("style" style=[Style])?
+		public Group getGroup() { return cGroup; }
+
+		//{Label}
+		public Action getLabelAction_0() { return cLabelAction_0; }
+
+		//"label"
+		public Keyword getLabelKeyword_1() { return cLabelKeyword_1; }
+
+		//text=TRANSLATABLESTRING
+		public Assignment getTextAssignment_2() { return cTextAssignment_2; }
+
+		//TRANSLATABLESTRING
+		public RuleCall getTextTRANSLATABLESTRINGParserRuleCall_2_0() { return cTextTRANSLATABLESTRINGParserRuleCall_2_0; }
+
+		//("style" style=[Style])?
+		public Group getGroup_3() { return cGroup_3; }
+
+		//"style"
+		public Keyword getStyleKeyword_3_0() { return cStyleKeyword_3_0; }
+
+		//style=[Style]
+		public Assignment getStyleAssignment_3_1() { return cStyleAssignment_3_1; }
+
+		//[Style]
+		public CrossReference getStyleStyleCrossReference_3_1_0() { return cStyleStyleCrossReference_3_1_0; }
+
+		//ID
+		public RuleCall getStyleStyleIDTerminalRuleCall_3_1_0_1() { return cStyleStyleIDTerminalRuleCall_3_1_0_1; }
+	}
+
+	public class TextElements extends AbstractParserRuleElementFinder {
+		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "Text");
+		private final Group cGroup = (Group)rule.eContents().get(1);
+		private final Action cTextAction_0 = (Action)cGroup.eContents().get(0);
+		private final Keyword cTextKeyword_1 = (Keyword)cGroup.eContents().get(1);
+		private final Assignment cTextAssignment_2 = (Assignment)cGroup.eContents().get(2);
+		private final RuleCall cTextTRANSLATABLESTRINGParserRuleCall_2_0 = (RuleCall)cTextAssignment_2.eContents().get(0);
+		private final Group cGroup_3 = (Group)cGroup.eContents().get(3);
+		private final Keyword cStyleKeyword_3_0 = (Keyword)cGroup_3.eContents().get(0);
+		private final Assignment cStyleAssignment_3_1 = (Assignment)cGroup_3.eContents().get(1);
+		private final CrossReference cStyleStyleCrossReference_3_1_0 = (CrossReference)cStyleAssignment_3_1.eContents().get(0);
+		private final RuleCall cStyleStyleIDTerminalRuleCall_3_1_0_1 = (RuleCall)cStyleStyleCrossReference_3_1_0.eContents().get(1);
+		
+		//Text:
+		//	{Text} "text" text=TRANSLATABLESTRING ("style" style=[Style])?;
+		public ParserRule getRule() { return rule; }
+
+		//{Text} "text" text=TRANSLATABLESTRING ("style" style=[Style])?
+		public Group getGroup() { return cGroup; }
+
+		//{Text}
+		public Action getTextAction_0() { return cTextAction_0; }
+
+		//"text"
+		public Keyword getTextKeyword_1() { return cTextKeyword_1; }
+
+		//text=TRANSLATABLESTRING
+		public Assignment getTextAssignment_2() { return cTextAssignment_2; }
+
+		//TRANSLATABLESTRING
+		public RuleCall getTextTRANSLATABLESTRINGParserRuleCall_2_0() { return cTextTRANSLATABLESTRINGParserRuleCall_2_0; }
+
+		//("style" style=[Style])?
+		public Group getGroup_3() { return cGroup_3; }
+
+		//"style"
+		public Keyword getStyleKeyword_3_0() { return cStyleKeyword_3_0; }
+
+		//style=[Style]
+		public Assignment getStyleAssignment_3_1() { return cStyleAssignment_3_1; }
+
+		//[Style]
+		public CrossReference getStyleStyleCrossReference_3_1_0() { return cStyleStyleCrossReference_3_1_0; }
+
+		//ID
+		public RuleCall getStyleStyleIDTerminalRuleCall_3_1_0_1() { return cStyleStyleIDTerminalRuleCall_3_1_0_1; }
+	}
+
+	public class AutoTextElements extends AbstractParserRuleElementFinder {
+		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "AutoText");
+		private final Group cGroup = (Group)rule.eContents().get(1);
+		private final Keyword cAutotextKeyword_0 = (Keyword)cGroup.eContents().get(0);
+		private final Assignment cTypeAssignment_1 = (Assignment)cGroup.eContents().get(1);
+		private final RuleCall cTypeAutoTextEnumEnumRuleCall_1_0 = (RuleCall)cTypeAssignment_1.eContents().get(0);
+		private final Group cGroup_2 = (Group)cGroup.eContents().get(2);
+		private final Keyword cStyleKeyword_2_0 = (Keyword)cGroup_2.eContents().get(0);
+		private final Assignment cStyleAssignment_2_1 = (Assignment)cGroup_2.eContents().get(1);
+		private final CrossReference cStyleStyleCrossReference_2_1_0 = (CrossReference)cStyleAssignment_2_1.eContents().get(0);
+		private final RuleCall cStyleStyleIDTerminalRuleCall_2_1_0_1 = (RuleCall)cStyleStyleCrossReference_2_1_0.eContents().get(1);
+		
+		//AutoText:
+		//	"autotext" type=AutoTextEnum ("style" style=[Style])?;
+		public ParserRule getRule() { return rule; }
+
+		//"autotext" type=AutoTextEnum ("style" style=[Style])?
+		public Group getGroup() { return cGroup; }
+
+		//"autotext"
+		public Keyword getAutotextKeyword_0() { return cAutotextKeyword_0; }
+
+		//type=AutoTextEnum
+		public Assignment getTypeAssignment_1() { return cTypeAssignment_1; }
+
+		//AutoTextEnum
+		public RuleCall getTypeAutoTextEnumEnumRuleCall_1_0() { return cTypeAutoTextEnumEnumRuleCall_1_0; }
+
+		//("style" style=[Style])?
+		public Group getGroup_2() { return cGroup_2; }
+
+		//"style"
+		public Keyword getStyleKeyword_2_0() { return cStyleKeyword_2_0; }
+
+		//style=[Style]
+		public Assignment getStyleAssignment_2_1() { return cStyleAssignment_2_1; }
+
+		//[Style]
+		public CrossReference getStyleStyleCrossReference_2_1_0() { return cStyleStyleCrossReference_2_1_0; }
+
+		//ID
+		public RuleCall getStyleStyleIDTerminalRuleCall_2_1_0_1() { return cStyleStyleIDTerminalRuleCall_2_1_0_1; }
+	}
+
+	public class ImageElements extends AbstractParserRuleElementFinder {
+		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "Image");
+		private final Group cGroup = (Group)rule.eContents().get(1);
+		private final Keyword cImageKeyword_0 = (Keyword)cGroup.eContents().get(0);
+		private final Assignment cSizeAssignment_1 = (Assignment)cGroup.eContents().get(1);
+		private final RuleCall cSizeImageSizeEnumEnumRuleCall_1_0 = (RuleCall)cSizeAssignment_1.eContents().get(0);
+		private final Group cGroup_2 = (Group)cGroup.eContents().get(2);
+		private final Keyword cScaleKeyword_2_0 = (Keyword)cGroup_2.eContents().get(0);
+		private final Assignment cScaleAssignment_2_1 = (Assignment)cGroup_2.eContents().get(1);
+		private final RuleCall cScaleUnsignedNumberParserRuleCall_2_1_0 = (RuleCall)cScaleAssignment_2_1.eContents().get(0);
+		private final Assignment cSourceTypeAssignment_3 = (Assignment)cGroup.eContents().get(3);
+		private final RuleCall cSourceTypeImageSourceEnumEnumRuleCall_3_0 = (RuleCall)cSourceTypeAssignment_3.eContents().get(0);
+		private final Assignment cFilenameAssignment_4 = (Assignment)cGroup.eContents().get(4);
+		private final RuleCall cFilenameSTRINGTerminalRuleCall_4_0 = (RuleCall)cFilenameAssignment_4.eContents().get(0);
+		
+		//Image:
+		//	"image" size=ImageSizeEnum ("scale" scale=UnsignedNumber)? sourceType=ImageSourceEnum filename=STRING;
+		public ParserRule getRule() { return rule; }
+
+		//"image" size=ImageSizeEnum ("scale" scale=UnsignedNumber)? sourceType=ImageSourceEnum filename=STRING
+		public Group getGroup() { return cGroup; }
+
+		//"image"
+		public Keyword getImageKeyword_0() { return cImageKeyword_0; }
+
+		//size=ImageSizeEnum
+		public Assignment getSizeAssignment_1() { return cSizeAssignment_1; }
+
+		//ImageSizeEnum
+		public RuleCall getSizeImageSizeEnumEnumRuleCall_1_0() { return cSizeImageSizeEnumEnumRuleCall_1_0; }
+
+		//("scale" scale=UnsignedNumber)?
+		public Group getGroup_2() { return cGroup_2; }
+
+		//"scale"
+		public Keyword getScaleKeyword_2_0() { return cScaleKeyword_2_0; }
+
+		//scale=UnsignedNumber
+		public Assignment getScaleAssignment_2_1() { return cScaleAssignment_2_1; }
+
+		//UnsignedNumber
+		public RuleCall getScaleUnsignedNumberParserRuleCall_2_1_0() { return cScaleUnsignedNumberParserRuleCall_2_1_0; }
+
+		//sourceType=ImageSourceEnum
+		public Assignment getSourceTypeAssignment_3() { return cSourceTypeAssignment_3; }
+
+		//ImageSourceEnum
+		public RuleCall getSourceTypeImageSourceEnumEnumRuleCall_3_0() { return cSourceTypeImageSourceEnumEnumRuleCall_3_0; }
+
+		//filename=STRING
+		public Assignment getFilenameAssignment_4() { return cFilenameAssignment_4; }
+
+		//STRING
+		public RuleCall getFilenameSTRINGTerminalRuleCall_4_0() { return cFilenameSTRINGTerminalRuleCall_4_0; }
+	}
+
+	public class ReportImportElements extends AbstractParserRuleElementFinder {
+		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "ReportImport");
+		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 cImportedNamespaceReportQualifiedNameWithWildCardParserRuleCall_1_0 = (RuleCall)cImportedNamespaceAssignment_1.eContents().get(0);
+		
+		//ReportImport returns types::LImport:
+		//	"import" importedNamespace=ReportQualifiedNameWithWildCard;
+		public ParserRule getRule() { return rule; }
+
+		//"import" importedNamespace=ReportQualifiedNameWithWildCard
+		public Group getGroup() { return cGroup; }
+
+		//"import"
+		public Keyword getImportKeyword_0() { return cImportKeyword_0; }
+
+		//importedNamespace=ReportQualifiedNameWithWildCard
+		public Assignment getImportedNamespaceAssignment_1() { return cImportedNamespaceAssignment_1; }
+
+		//ReportQualifiedNameWithWildCard
+		public RuleCall getImportedNamespaceReportQualifiedNameWithWildCardParserRuleCall_1_0() { return cImportedNamespaceReportQualifiedNameWithWildCardParserRuleCall_1_0; }
+	}
+
+	public class ReportQualifiedNameWithWildCardElements extends AbstractParserRuleElementFinder {
+		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "ReportQualifiedNameWithWildCard");
+		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);
+		
+		//ReportQualifiedNameWithWildCard:
+		//	QualifiedName ("." "*")?;
+		public ParserRule getRule() { return rule; }
+
+		//QualifiedName ("." "*")?
+		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 TRANSLATABLESTRINGElements extends AbstractParserRuleElementFinder {
+		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "TRANSLATABLESTRING");
+		private final RuleCall cSTRINGTerminalRuleCall = (RuleCall)rule.eContents().get(1);
+		
+		//TRANSLATABLESTRING:
+		//	STRING;
+		public ParserRule getRule() { return rule; }
+
+		//STRING
+		public RuleCall getSTRINGTerminalRuleCall() { return cSTRINGTerminalRuleCall; }
+	}
+	
+	
+	public class UnitEnumElements extends AbstractEnumRuleElementFinder {
+		private final EnumRule rule = (EnumRule) GrammarUtil.findRuleForName(getGrammar(), "UnitEnum");
+		private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1);
+		private final EnumLiteralDeclaration cMMEnumLiteralDeclaration_0 = (EnumLiteralDeclaration)cAlternatives.eContents().get(0);
+		private final Keyword cMMMmKeyword_0_0 = (Keyword)cMMEnumLiteralDeclaration_0.eContents().get(0);
+		private final EnumLiteralDeclaration cCMEnumLiteralDeclaration_1 = (EnumLiteralDeclaration)cAlternatives.eContents().get(1);
+		private final Keyword cCMCmKeyword_1_0 = (Keyword)cCMEnumLiteralDeclaration_1.eContents().get(0);
+		private final EnumLiteralDeclaration cPTEnumLiteralDeclaration_2 = (EnumLiteralDeclaration)cAlternatives.eContents().get(2);
+		private final Keyword cPTPtKeyword_2_0 = (Keyword)cPTEnumLiteralDeclaration_2.eContents().get(0);
+		private final EnumLiteralDeclaration cINEnumLiteralDeclaration_3 = (EnumLiteralDeclaration)cAlternatives.eContents().get(3);
+		private final Keyword cINInchKeyword_3_0 = (Keyword)cINEnumLiteralDeclaration_3.eContents().get(0);
+		private final EnumLiteralDeclaration cPCEnumLiteralDeclaration_4 = (EnumLiteralDeclaration)cAlternatives.eContents().get(4);
+		private final Keyword cPCPcKeyword_4_0 = (Keyword)cPCEnumLiteralDeclaration_4.eContents().get(0);
+		private final EnumLiteralDeclaration cEMEnumLiteralDeclaration_5 = (EnumLiteralDeclaration)cAlternatives.eContents().get(5);
+		private final Keyword cEMEmKeyword_5_0 = (Keyword)cEMEnumLiteralDeclaration_5.eContents().get(0);
+		private final EnumLiteralDeclaration cEXEnumLiteralDeclaration_6 = (EnumLiteralDeclaration)cAlternatives.eContents().get(6);
+		private final Keyword cEXExKeyword_6_0 = (Keyword)cEXEnumLiteralDeclaration_6.eContents().get(0);
+		private final EnumLiteralDeclaration cPXEnumLiteralDeclaration_7 = (EnumLiteralDeclaration)cAlternatives.eContents().get(7);
+		private final Keyword cPXPxKeyword_7_0 = (Keyword)cPXEnumLiteralDeclaration_7.eContents().get(0);
+		private final EnumLiteralDeclaration cPERCENTAGEEnumLiteralDeclaration_8 = (EnumLiteralDeclaration)cAlternatives.eContents().get(8);
+		private final Keyword cPERCENTAGEPercentSignKeyword_8_0 = (Keyword)cPERCENTAGEEnumLiteralDeclaration_8.eContents().get(0);
+		
+		//enum UnitEnum:
+		//	MM="mm" | CM="cm" | PT="pt" | IN="inch" | PC="pc" | EM="em" | EX="ex" | PX="px" | PERCENTAGE="%";
+		public EnumRule getRule() { return rule; }
+
+		//MM="mm" | CM="cm" | PT="pt" | IN="inch" | PC="pc" | EM="em" | EX="ex" | PX="px" | PERCENTAGE="%"
+		public Alternatives getAlternatives() { return cAlternatives; }
+
+		//MM="mm"
+		public EnumLiteralDeclaration getMMEnumLiteralDeclaration_0() { return cMMEnumLiteralDeclaration_0; }
+
+		//"mm"
+		public Keyword getMMMmKeyword_0_0() { return cMMMmKeyword_0_0; }
+
+		//CM="cm"
+		public EnumLiteralDeclaration getCMEnumLiteralDeclaration_1() { return cCMEnumLiteralDeclaration_1; }
+
+		//"cm"
+		public Keyword getCMCmKeyword_1_0() { return cCMCmKeyword_1_0; }
+
+		//PT="pt"
+		public EnumLiteralDeclaration getPTEnumLiteralDeclaration_2() { return cPTEnumLiteralDeclaration_2; }
+
+		//"pt"
+		public Keyword getPTPtKeyword_2_0() { return cPTPtKeyword_2_0; }
+
+		//IN="inch"
+		public EnumLiteralDeclaration getINEnumLiteralDeclaration_3() { return cINEnumLiteralDeclaration_3; }
+
+		//"inch"
+		public Keyword getINInchKeyword_3_0() { return cINInchKeyword_3_0; }
+
+		//PC="pc"
+		public EnumLiteralDeclaration getPCEnumLiteralDeclaration_4() { return cPCEnumLiteralDeclaration_4; }
+
+		//"pc"
+		public Keyword getPCPcKeyword_4_0() { return cPCPcKeyword_4_0; }
+
+		//EM="em"
+		public EnumLiteralDeclaration getEMEnumLiteralDeclaration_5() { return cEMEnumLiteralDeclaration_5; }
+
+		//"em"
+		public Keyword getEMEmKeyword_5_0() { return cEMEmKeyword_5_0; }
+
+		//EX="ex"
+		public EnumLiteralDeclaration getEXEnumLiteralDeclaration_6() { return cEXEnumLiteralDeclaration_6; }
+
+		//"ex"
+		public Keyword getEXExKeyword_6_0() { return cEXExKeyword_6_0; }
+
+		//PX="px"
+		public EnumLiteralDeclaration getPXEnumLiteralDeclaration_7() { return cPXEnumLiteralDeclaration_7; }
+
+		//"px"
+		public Keyword getPXPxKeyword_7_0() { return cPXPxKeyword_7_0; }
+
+		//PERCENTAGE="%"
+		public EnumLiteralDeclaration getPERCENTAGEEnumLiteralDeclaration_8() { return cPERCENTAGEEnumLiteralDeclaration_8; }
+
+		//"%"
+		public Keyword getPERCENTAGEPercentSignKeyword_8_0() { return cPERCENTAGEPercentSignKeyword_8_0; }
+	}
+
+	public class PageSizeEnumElements extends AbstractEnumRuleElementFinder {
+		private final EnumRule rule = (EnumRule) GrammarUtil.findRuleForName(getGrammar(), "PageSizeEnum");
+		private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1);
+		private final EnumLiteralDeclaration cA4EnumLiteralDeclaration_0 = (EnumLiteralDeclaration)cAlternatives.eContents().get(0);
+		private final Keyword cA4A4Keyword_0_0 = (Keyword)cA4EnumLiteralDeclaration_0.eContents().get(0);
+		private final EnumLiteralDeclaration cA3EnumLiteralDeclaration_1 = (EnumLiteralDeclaration)cAlternatives.eContents().get(1);
+		private final Keyword cA3A3Keyword_1_0 = (Keyword)cA3EnumLiteralDeclaration_1.eContents().get(0);
+		private final EnumLiteralDeclaration cA5EnumLiteralDeclaration_2 = (EnumLiteralDeclaration)cAlternatives.eContents().get(2);
+		private final Keyword cA5A5Keyword_2_0 = (Keyword)cA5EnumLiteralDeclaration_2.eContents().get(0);
+		private final EnumLiteralDeclaration cUS_LETTEREnumLiteralDeclaration_3 = (EnumLiteralDeclaration)cAlternatives.eContents().get(3);
+		private final Keyword cUS_LETTERUsLetterKeyword_3_0 = (Keyword)cUS_LETTEREnumLiteralDeclaration_3.eContents().get(0);
+		private final EnumLiteralDeclaration cUS_LEGALEnumLiteralDeclaration_4 = (EnumLiteralDeclaration)cAlternatives.eContents().get(4);
+		private final Keyword cUS_LEGALUsLegalKeyword_4_0 = (Keyword)cUS_LEGALEnumLiteralDeclaration_4.eContents().get(0);
+		private final EnumLiteralDeclaration cUS_LEDGEREnumLiteralDeclaration_5 = (EnumLiteralDeclaration)cAlternatives.eContents().get(5);
+		private final Keyword cUS_LEDGERUsLedgerKeyword_5_0 = (Keyword)cUS_LEDGEREnumLiteralDeclaration_5.eContents().get(0);
+		private final EnumLiteralDeclaration cUS_SUPER_BEnumLiteralDeclaration_6 = (EnumLiteralDeclaration)cAlternatives.eContents().get(6);
+		private final Keyword cUS_SUPER_BUsSuperBKeyword_6_0 = (Keyword)cUS_SUPER_BEnumLiteralDeclaration_6.eContents().get(0);
+		
+		//enum PageSizeEnum:
+		//	A4="a4" | A3="a3" | A5="a5" | US_LETTER="us-letter" | US_LEGAL="us-legal" | US_LEDGER="us-ledger" |
+		//	US_SUPER_B="us-super-b";
+		public EnumRule getRule() { return rule; }
+
+		//A4="a4" | A3="a3" | A5="a5" | US_LETTER="us-letter" | US_LEGAL="us-legal" | US_LEDGER="us-ledger" |
+		//US_SUPER_B="us-super-b"
+		public Alternatives getAlternatives() { return cAlternatives; }
+
+		//A4="a4"
+		public EnumLiteralDeclaration getA4EnumLiteralDeclaration_0() { return cA4EnumLiteralDeclaration_0; }
+
+		//"a4"
+		public Keyword getA4A4Keyword_0_0() { return cA4A4Keyword_0_0; }
+
+		//A3="a3"
+		public EnumLiteralDeclaration getA3EnumLiteralDeclaration_1() { return cA3EnumLiteralDeclaration_1; }
+
+		//"a3"
+		public Keyword getA3A3Keyword_1_0() { return cA3A3Keyword_1_0; }
+
+		//A5="a5"
+		public EnumLiteralDeclaration getA5EnumLiteralDeclaration_2() { return cA5EnumLiteralDeclaration_2; }
+
+		//"a5"
+		public Keyword getA5A5Keyword_2_0() { return cA5A5Keyword_2_0; }
+
+		//US_LETTER="us-letter"
+		public EnumLiteralDeclaration getUS_LETTEREnumLiteralDeclaration_3() { return cUS_LETTEREnumLiteralDeclaration_3; }
+
+		//"us-letter"
+		public Keyword getUS_LETTERUsLetterKeyword_3_0() { return cUS_LETTERUsLetterKeyword_3_0; }
+
+		//US_LEGAL="us-legal"
+		public EnumLiteralDeclaration getUS_LEGALEnumLiteralDeclaration_4() { return cUS_LEGALEnumLiteralDeclaration_4; }
+
+		//"us-legal"
+		public Keyword getUS_LEGALUsLegalKeyword_4_0() { return cUS_LEGALUsLegalKeyword_4_0; }
+
+		//US_LEDGER="us-ledger"
+		public EnumLiteralDeclaration getUS_LEDGEREnumLiteralDeclaration_5() { return cUS_LEDGEREnumLiteralDeclaration_5; }
+
+		//"us-ledger"
+		public Keyword getUS_LEDGERUsLedgerKeyword_5_0() { return cUS_LEDGERUsLedgerKeyword_5_0; }
+
+		//US_SUPER_B="us-super-b"
+		public EnumLiteralDeclaration getUS_SUPER_BEnumLiteralDeclaration_6() { return cUS_SUPER_BEnumLiteralDeclaration_6; }
+
+		//"us-super-b"
+		public Keyword getUS_SUPER_BUsSuperBKeyword_6_0() { return cUS_SUPER_BUsSuperBKeyword_6_0; }
+	}
+
+	public class OrientationEnumElements extends AbstractEnumRuleElementFinder {
+		private final EnumRule rule = (EnumRule) GrammarUtil.findRuleForName(getGrammar(), "OrientationEnum");
+		private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1);
+		private final EnumLiteralDeclaration cPORTRAITEnumLiteralDeclaration_0 = (EnumLiteralDeclaration)cAlternatives.eContents().get(0);
+		private final Keyword cPORTRAITPortraitKeyword_0_0 = (Keyword)cPORTRAITEnumLiteralDeclaration_0.eContents().get(0);
+		private final EnumLiteralDeclaration cLANDSCAPEEnumLiteralDeclaration_1 = (EnumLiteralDeclaration)cAlternatives.eContents().get(1);
+		private final Keyword cLANDSCAPELandscapeKeyword_1_0 = (Keyword)cLANDSCAPEEnumLiteralDeclaration_1.eContents().get(0);
+		
+		//enum OrientationEnum:
+		//	PORTRAIT="portrait" | LANDSCAPE="landscape";
+		public EnumRule getRule() { return rule; }
+
+		//PORTRAIT="portrait" | LANDSCAPE="landscape"
+		public Alternatives getAlternatives() { return cAlternatives; }
+
+		//PORTRAIT="portrait"
+		public EnumLiteralDeclaration getPORTRAITEnumLiteralDeclaration_0() { return cPORTRAITEnumLiteralDeclaration_0; }
+
+		//"portrait"
+		public Keyword getPORTRAITPortraitKeyword_0_0() { return cPORTRAITPortraitKeyword_0_0; }
+
+		//LANDSCAPE="landscape"
+		public EnumLiteralDeclaration getLANDSCAPEEnumLiteralDeclaration_1() { return cLANDSCAPEEnumLiteralDeclaration_1; }
+
+		//"landscape"
+		public Keyword getLANDSCAPELandscapeKeyword_1_0() { return cLANDSCAPELandscapeKeyword_1_0; }
+	}
+
+	public class FontStyleEnumElements extends AbstractEnumRuleElementFinder {
+		private final EnumRule rule = (EnumRule) GrammarUtil.findRuleForName(getGrammar(), "FontStyleEnum");
+		private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1);
+		private final EnumLiteralDeclaration cNORMALEnumLiteralDeclaration_0 = (EnumLiteralDeclaration)cAlternatives.eContents().get(0);
+		private final Keyword cNORMALNormalKeyword_0_0 = (Keyword)cNORMALEnumLiteralDeclaration_0.eContents().get(0);
+		private final EnumLiteralDeclaration cITALICEnumLiteralDeclaration_1 = (EnumLiteralDeclaration)cAlternatives.eContents().get(1);
+		private final Keyword cITALICItalicKeyword_1_0 = (Keyword)cITALICEnumLiteralDeclaration_1.eContents().get(0);
+		private final EnumLiteralDeclaration cOBLIQUEEnumLiteralDeclaration_2 = (EnumLiteralDeclaration)cAlternatives.eContents().get(2);
+		private final Keyword cOBLIQUEObliqueKeyword_2_0 = (Keyword)cOBLIQUEEnumLiteralDeclaration_2.eContents().get(0);
+		
+		//enum FontStyleEnum:
+		//	NORMAL="normal" | ITALIC="italic" | OBLIQUE="oblique";
+		public EnumRule getRule() { return rule; }
+
+		//NORMAL="normal" | ITALIC="italic" | OBLIQUE="oblique"
+		public Alternatives getAlternatives() { return cAlternatives; }
+
+		//NORMAL="normal"
+		public EnumLiteralDeclaration getNORMALEnumLiteralDeclaration_0() { return cNORMALEnumLiteralDeclaration_0; }
+
+		//"normal"
+		public Keyword getNORMALNormalKeyword_0_0() { return cNORMALNormalKeyword_0_0; }
+
+		//ITALIC="italic"
+		public EnumLiteralDeclaration getITALICEnumLiteralDeclaration_1() { return cITALICEnumLiteralDeclaration_1; }
+
+		//"italic"
+		public Keyword getITALICItalicKeyword_1_0() { return cITALICItalicKeyword_1_0; }
+
+		//OBLIQUE="oblique"
+		public EnumLiteralDeclaration getOBLIQUEEnumLiteralDeclaration_2() { return cOBLIQUEEnumLiteralDeclaration_2; }
+
+		//"oblique"
+		public Keyword getOBLIQUEObliqueKeyword_2_0() { return cOBLIQUEObliqueKeyword_2_0; }
+	}
+
+	public class BuildInFontFamilyEnumElements extends AbstractEnumRuleElementFinder {
+		private final EnumRule rule = (EnumRule) GrammarUtil.findRuleForName(getGrammar(), "BuildInFontFamilyEnum");
+		private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1);
+		private final EnumLiteralDeclaration cMONOSPACEEnumLiteralDeclaration_0 = (EnumLiteralDeclaration)cAlternatives.eContents().get(0);
+		private final Keyword cMONOSPACEMonospaceKeyword_0_0 = (Keyword)cMONOSPACEEnumLiteralDeclaration_0.eContents().get(0);
+		private final EnumLiteralDeclaration cSANS_SERIFEnumLiteralDeclaration_1 = (EnumLiteralDeclaration)cAlternatives.eContents().get(1);
+		private final Keyword cSANS_SERIFSansSerifKeyword_1_0 = (Keyword)cSANS_SERIFEnumLiteralDeclaration_1.eContents().get(0);
+		private final EnumLiteralDeclaration cSERIFEnumLiteralDeclaration_2 = (EnumLiteralDeclaration)cAlternatives.eContents().get(2);
+		private final Keyword cSERIFSerifKeyword_2_0 = (Keyword)cSERIFEnumLiteralDeclaration_2.eContents().get(0);
+		
+		//enum BuildInFontFamilyEnum:
+		//	MONOSPACE="monospace" | SANS_SERIF="sans-serif" | SERIF="serif";
+		public EnumRule getRule() { return rule; }
+
+		//MONOSPACE="monospace" | SANS_SERIF="sans-serif" | SERIF="serif"
+		public Alternatives getAlternatives() { return cAlternatives; }
+
+		//MONOSPACE="monospace"
+		public EnumLiteralDeclaration getMONOSPACEEnumLiteralDeclaration_0() { return cMONOSPACEEnumLiteralDeclaration_0; }
+
+		//"monospace"
+		public Keyword getMONOSPACEMonospaceKeyword_0_0() { return cMONOSPACEMonospaceKeyword_0_0; }
+
+		//SANS_SERIF="sans-serif"
+		public EnumLiteralDeclaration getSANS_SERIFEnumLiteralDeclaration_1() { return cSANS_SERIFEnumLiteralDeclaration_1; }
+
+		//"sans-serif"
+		public Keyword getSANS_SERIFSansSerifKeyword_1_0() { return cSANS_SERIFSansSerifKeyword_1_0; }
+
+		//SERIF="serif"
+		public EnumLiteralDeclaration getSERIFEnumLiteralDeclaration_2() { return cSERIFEnumLiteralDeclaration_2; }
+
+		//"serif"
+		public Keyword getSERIFSerifKeyword_2_0() { return cSERIFSerifKeyword_2_0; }
+	}
+
+	public class TextAlignEnumElements extends AbstractEnumRuleElementFinder {
+		private final EnumRule rule = (EnumRule) GrammarUtil.findRuleForName(getGrammar(), "TextAlignEnum");
+		private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1);
+		private final EnumLiteralDeclaration cLEFTEnumLiteralDeclaration_0 = (EnumLiteralDeclaration)cAlternatives.eContents().get(0);
+		private final Keyword cLEFTLeftKeyword_0_0 = (Keyword)cLEFTEnumLiteralDeclaration_0.eContents().get(0);
+		private final EnumLiteralDeclaration cCENTEREnumLiteralDeclaration_1 = (EnumLiteralDeclaration)cAlternatives.eContents().get(1);
+		private final Keyword cCENTERCenterKeyword_1_0 = (Keyword)cCENTEREnumLiteralDeclaration_1.eContents().get(0);
+		private final EnumLiteralDeclaration cRIGHTEnumLiteralDeclaration_2 = (EnumLiteralDeclaration)cAlternatives.eContents().get(2);
+		private final Keyword cRIGHTRightKeyword_2_0 = (Keyword)cRIGHTEnumLiteralDeclaration_2.eContents().get(0);
+		
+		//enum TextAlignEnum:
+		//	LEFT="left" | CENTER="center" | RIGHT="right";
+		public EnumRule getRule() { return rule; }
+
+		//LEFT="left" | CENTER="center" | RIGHT="right"
+		public Alternatives getAlternatives() { return cAlternatives; }
+
+		//LEFT="left"
+		public EnumLiteralDeclaration getLEFTEnumLiteralDeclaration_0() { return cLEFTEnumLiteralDeclaration_0; }
+
+		//"left"
+		public Keyword getLEFTLeftKeyword_0_0() { return cLEFTLeftKeyword_0_0; }
+
+		//CENTER="center"
+		public EnumLiteralDeclaration getCENTEREnumLiteralDeclaration_1() { return cCENTEREnumLiteralDeclaration_1; }
+
+		//"center"
+		public Keyword getCENTERCenterKeyword_1_0() { return cCENTERCenterKeyword_1_0; }
+
+		//RIGHT="right"
+		public EnumLiteralDeclaration getRIGHTEnumLiteralDeclaration_2() { return cRIGHTEnumLiteralDeclaration_2; }
+
+		//"right"
+		public Keyword getRIGHTRightKeyword_2_0() { return cRIGHTRightKeyword_2_0; }
+	}
+
+	public class NumberFormatCategoryEnumElements extends AbstractEnumRuleElementFinder {
+		private final EnumRule rule = (EnumRule) GrammarUtil.findRuleForName(getGrammar(), "NumberFormatCategoryEnum");
+		private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1);
+		private final EnumLiteralDeclaration cUNFORMATTEDEnumLiteralDeclaration_0 = (EnumLiteralDeclaration)cAlternatives.eContents().get(0);
+		private final Keyword cUNFORMATTEDUnformattedKeyword_0_0 = (Keyword)cUNFORMATTEDEnumLiteralDeclaration_0.eContents().get(0);
+		private final EnumLiteralDeclaration cGENERAL_NUMBEREnumLiteralDeclaration_1 = (EnumLiteralDeclaration)cAlternatives.eContents().get(1);
+		private final Keyword cGENERAL_NUMBERGeneralNumberKeyword_1_0 = (Keyword)cGENERAL_NUMBEREnumLiteralDeclaration_1.eContents().get(0);
+		private final EnumLiteralDeclaration cFIXEDEnumLiteralDeclaration_2 = (EnumLiteralDeclaration)cAlternatives.eContents().get(2);
+		private final Keyword cFIXEDFixedKeyword_2_0 = (Keyword)cFIXEDEnumLiteralDeclaration_2.eContents().get(0);
+		private final EnumLiteralDeclaration cPERCENTEnumLiteralDeclaration_3 = (EnumLiteralDeclaration)cAlternatives.eContents().get(3);
+		private final Keyword cPERCENTPercentKeyword_3_0 = (Keyword)cPERCENTEnumLiteralDeclaration_3.eContents().get(0);
+		private final EnumLiteralDeclaration cSCIENTIFICEnumLiteralDeclaration_4 = (EnumLiteralDeclaration)cAlternatives.eContents().get(4);
+		private final Keyword cSCIENTIFICScientificKeyword_4_0 = (Keyword)cSCIENTIFICEnumLiteralDeclaration_4.eContents().get(0);
+		private final EnumLiteralDeclaration cCUSTOMEnumLiteralDeclaration_5 = (EnumLiteralDeclaration)cAlternatives.eContents().get(5);
+		private final Keyword cCUSTOMCustomKeyword_5_0 = (Keyword)cCUSTOMEnumLiteralDeclaration_5.eContents().get(0);
+		
+		//enum NumberFormatCategoryEnum:
+		//	UNFORMATTED="unformatted" | GENERAL_NUMBER="general-number" | FIXED="fixed" | PERCENT="percent" |
+		//	SCIENTIFIC="scientific" | CUSTOM="custom";
+		public EnumRule getRule() { return rule; }
+
+		//UNFORMATTED="unformatted" | GENERAL_NUMBER="general-number" | FIXED="fixed" | PERCENT="percent" |
+		//SCIENTIFIC="scientific" | CUSTOM="custom"
+		public Alternatives getAlternatives() { return cAlternatives; }
+
+		//UNFORMATTED="unformatted"
+		public EnumLiteralDeclaration getUNFORMATTEDEnumLiteralDeclaration_0() { return cUNFORMATTEDEnumLiteralDeclaration_0; }
+
+		//"unformatted"
+		public Keyword getUNFORMATTEDUnformattedKeyword_0_0() { return cUNFORMATTEDUnformattedKeyword_0_0; }
+
+		//GENERAL_NUMBER="general-number"
+		public EnumLiteralDeclaration getGENERAL_NUMBEREnumLiteralDeclaration_1() { return cGENERAL_NUMBEREnumLiteralDeclaration_1; }
+
+		//"general-number"
+		public Keyword getGENERAL_NUMBERGeneralNumberKeyword_1_0() { return cGENERAL_NUMBERGeneralNumberKeyword_1_0; }
+
+		//FIXED="fixed"
+		public EnumLiteralDeclaration getFIXEDEnumLiteralDeclaration_2() { return cFIXEDEnumLiteralDeclaration_2; }
+
+		//"fixed"
+		public Keyword getFIXEDFixedKeyword_2_0() { return cFIXEDFixedKeyword_2_0; }
+
+		//PERCENT="percent"
+		public EnumLiteralDeclaration getPERCENTEnumLiteralDeclaration_3() { return cPERCENTEnumLiteralDeclaration_3; }
+
+		//"percent"
+		public Keyword getPERCENTPercentKeyword_3_0() { return cPERCENTPercentKeyword_3_0; }
+
+		//SCIENTIFIC="scientific"
+		public EnumLiteralDeclaration getSCIENTIFICEnumLiteralDeclaration_4() { return cSCIENTIFICEnumLiteralDeclaration_4; }
+
+		//"scientific"
+		public Keyword getSCIENTIFICScientificKeyword_4_0() { return cSCIENTIFICScientificKeyword_4_0; }
+
+		//CUSTOM="custom"
+		public EnumLiteralDeclaration getCUSTOMEnumLiteralDeclaration_5() { return cCUSTOMEnumLiteralDeclaration_5; }
+
+		//"custom"
+		public Keyword getCUSTOMCustomKeyword_5_0() { return cCUSTOMCustomKeyword_5_0; }
+	}
+
+	public class CurrencyFormatCategoryEnumElements extends AbstractEnumRuleElementFinder {
+		private final EnumRule rule = (EnumRule) GrammarUtil.findRuleForName(getGrammar(), "CurrencyFormatCategoryEnum");
+		private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1);
+		private final EnumLiteralDeclaration cUNFORMATTEDEnumLiteralDeclaration_0 = (EnumLiteralDeclaration)cAlternatives.eContents().get(0);
+		private final Keyword cUNFORMATTEDUnformattedKeyword_0_0 = (Keyword)cUNFORMATTEDEnumLiteralDeclaration_0.eContents().get(0);
+		private final EnumLiteralDeclaration cCURRENCYEnumLiteralDeclaration_1 = (EnumLiteralDeclaration)cAlternatives.eContents().get(1);
+		private final Keyword cCURRENCYCurrencyKeyword_1_0 = (Keyword)cCURRENCYEnumLiteralDeclaration_1.eContents().get(0);
+		private final EnumLiteralDeclaration cCUSTOMEnumLiteralDeclaration_2 = (EnumLiteralDeclaration)cAlternatives.eContents().get(2);
+		private final Keyword cCUSTOMCustomKeyword_2_0 = (Keyword)cCUSTOMEnumLiteralDeclaration_2.eContents().get(0);
+		
+		//enum CurrencyFormatCategoryEnum:
+		//	UNFORMATTED="unformatted" | CURRENCY="currency" | CUSTOM="custom";
+		public EnumRule getRule() { return rule; }
+
+		//UNFORMATTED="unformatted" | CURRENCY="currency" | CUSTOM="custom"
+		public Alternatives getAlternatives() { return cAlternatives; }
+
+		//UNFORMATTED="unformatted"
+		public EnumLiteralDeclaration getUNFORMATTEDEnumLiteralDeclaration_0() { return cUNFORMATTEDEnumLiteralDeclaration_0; }
+
+		//"unformatted"
+		public Keyword getUNFORMATTEDUnformattedKeyword_0_0() { return cUNFORMATTEDUnformattedKeyword_0_0; }
+
+		//CURRENCY="currency"
+		public EnumLiteralDeclaration getCURRENCYEnumLiteralDeclaration_1() { return cCURRENCYEnumLiteralDeclaration_1; }
+
+		//"currency"
+		public Keyword getCURRENCYCurrencyKeyword_1_0() { return cCURRENCYCurrencyKeyword_1_0; }
+
+		//CUSTOM="custom"
+		public EnumLiteralDeclaration getCUSTOMEnumLiteralDeclaration_2() { return cCUSTOMEnumLiteralDeclaration_2; }
+
+		//"custom"
+		public Keyword getCUSTOMCustomKeyword_2_0() { return cCUSTOMCustomKeyword_2_0; }
+	}
+
+	public class DateFormatCategoryEnumElements extends AbstractEnumRuleElementFinder {
+		private final EnumRule rule = (EnumRule) GrammarUtil.findRuleForName(getGrammar(), "DateFormatCategoryEnum");
+		private final EnumLiteralDeclaration cCUSTOMEnumLiteralDeclaration = (EnumLiteralDeclaration)rule.eContents().get(1);
+		private final Keyword cCUSTOMCustomKeyword_0 = (Keyword)cCUSTOMEnumLiteralDeclaration.eContents().get(0);
+		
+		//enum DateFormatCategoryEnum:
+		//	CUSTOM="custom";
+		public EnumRule getRule() { return rule; }
+
+		//CUSTOM="custom"
+		public EnumLiteralDeclaration getCUSTOMEnumLiteralDeclaration() { return cCUSTOMEnumLiteralDeclaration; }
+
+		//"custom"
+		public Keyword getCUSTOMCustomKeyword_0() { return cCUSTOMCustomKeyword_0; }
+	}
+
+	public class DateTimeFormatCategoryEnumElements extends AbstractEnumRuleElementFinder {
+		private final EnumRule rule = (EnumRule) GrammarUtil.findRuleForName(getGrammar(), "DateTimeFormatCategoryEnum");
+		private final EnumLiteralDeclaration cCUSTOMEnumLiteralDeclaration = (EnumLiteralDeclaration)rule.eContents().get(1);
+		private final Keyword cCUSTOMCustomKeyword_0 = (Keyword)cCUSTOMEnumLiteralDeclaration.eContents().get(0);
+		
+		//enum DateTimeFormatCategoryEnum:
+		//	CUSTOM="custom";
+		public EnumRule getRule() { return rule; }
+
+		//CUSTOM="custom"
+		public EnumLiteralDeclaration getCUSTOMEnumLiteralDeclaration() { return cCUSTOMEnumLiteralDeclaration; }
+
+		//"custom"
+		public Keyword getCUSTOMCustomKeyword_0() { return cCUSTOMCustomKeyword_0; }
+	}
+
+	public class TimeFormatCategoryEnumElements extends AbstractEnumRuleElementFinder {
+		private final EnumRule rule = (EnumRule) GrammarUtil.findRuleForName(getGrammar(), "TimeFormatCategoryEnum");
+		private final EnumLiteralDeclaration cCUSTOMEnumLiteralDeclaration = (EnumLiteralDeclaration)rule.eContents().get(1);
+		private final Keyword cCUSTOMCustomKeyword_0 = (Keyword)cCUSTOMEnumLiteralDeclaration.eContents().get(0);
+		
+		//enum TimeFormatCategoryEnum:
+		//	CUSTOM="custom";
+		public EnumRule getRule() { return rule; }
+
+		//CUSTOM="custom"
+		public EnumLiteralDeclaration getCUSTOMEnumLiteralDeclaration() { return cCUSTOMEnumLiteralDeclaration; }
+
+		//"custom"
+		public Keyword getCUSTOMCustomKeyword_0() { return cCUSTOMCustomKeyword_0; }
+	}
+
+	public class RenderingEnumElements extends AbstractEnumRuleElementFinder {
+		private final EnumRule rule = (EnumRule) GrammarUtil.findRuleForName(getGrammar(), "RenderingEnum");
+		private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1);
+		private final EnumLiteralDeclaration cHTMLEnumLiteralDeclaration_0 = (EnumLiteralDeclaration)cAlternatives.eContents().get(0);
+		private final Keyword cHTMLHtmlKeyword_0_0 = (Keyword)cHTMLEnumLiteralDeclaration_0.eContents().get(0);
+		private final EnumLiteralDeclaration cPDFEnumLiteralDeclaration_1 = (EnumLiteralDeclaration)cAlternatives.eContents().get(1);
+		private final Keyword cPDFPdfKeyword_1_0 = (Keyword)cPDFEnumLiteralDeclaration_1.eContents().get(0);
+		
+		//enum RenderingEnum:
+		//	HTML="html" | PDF="pdf";
+		public EnumRule getRule() { return rule; }
+
+		//HTML="html" | PDF="pdf"
+		public Alternatives getAlternatives() { return cAlternatives; }
+
+		//HTML="html"
+		public EnumLiteralDeclaration getHTMLEnumLiteralDeclaration_0() { return cHTMLEnumLiteralDeclaration_0; }
+
+		//"html"
+		public Keyword getHTMLHtmlKeyword_0_0() { return cHTMLHtmlKeyword_0_0; }
+
+		//PDF="pdf"
+		public EnumLiteralDeclaration getPDFEnumLiteralDeclaration_1() { return cPDFEnumLiteralDeclaration_1; }
+
+		//"pdf"
+		public Keyword getPDFPdfKeyword_1_0() { return cPDFPdfKeyword_1_0; }
+	}
+
+	public class PureAggregationTypeEnumElements extends AbstractEnumRuleElementFinder {
+		private final EnumRule rule = (EnumRule) GrammarUtil.findRuleForName(getGrammar(), "PureAggregationTypeEnum");
+		private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1);
+		private final EnumLiteralDeclaration cCOUNTEnumLiteralDeclaration_0 = (EnumLiteralDeclaration)cAlternatives.eContents().get(0);
+		private final Keyword cCOUNTCountKeyword_0_0 = (Keyword)cCOUNTEnumLiteralDeclaration_0.eContents().get(0);
+		private final EnumLiteralDeclaration cRUNNINGCOUNTEnumLiteralDeclaration_1 = (EnumLiteralDeclaration)cAlternatives.eContents().get(1);
+		private final Keyword cRUNNINGCOUNTRunningCountKeyword_1_0 = (Keyword)cRUNNINGCOUNTEnumLiteralDeclaration_1.eContents().get(0);
+		
+		//enum PureAggregationTypeEnum:
+		//	COUNT="count" | RUNNINGCOUNT="running-count";
+		public EnumRule getRule() { return rule; }
+
+		//COUNT="count" | RUNNINGCOUNT="running-count"
+		public Alternatives getAlternatives() { return cAlternatives; }
+
+		//COUNT="count"
+		public EnumLiteralDeclaration getCOUNTEnumLiteralDeclaration_0() { return cCOUNTEnumLiteralDeclaration_0; }
+
+		//"count"
+		public Keyword getCOUNTCountKeyword_0_0() { return cCOUNTCountKeyword_0_0; }
+
+		//RUNNINGCOUNT="running-count"
+		public EnumLiteralDeclaration getRUNNINGCOUNTEnumLiteralDeclaration_1() { return cRUNNINGCOUNTEnumLiteralDeclaration_1; }
+
+		//"running-count"
+		public Keyword getRUNNINGCOUNTRunningCountKeyword_1_0() { return cRUNNINGCOUNTRunningCountKeyword_1_0; }
+	}
+
+	public class UnaryAggregationTypeEnumElements extends AbstractEnumRuleElementFinder {
+		private final EnumRule rule = (EnumRule) GrammarUtil.findRuleForName(getGrammar(), "UnaryAggregationTypeEnum");
+		private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1);
+		private final EnumLiteralDeclaration cSUMEnumLiteralDeclaration_0 = (EnumLiteralDeclaration)cAlternatives.eContents().get(0);
+		private final Keyword cSUMSumKeyword_0_0 = (Keyword)cSUMEnumLiteralDeclaration_0.eContents().get(0);
+		private final EnumLiteralDeclaration cAVEEnumLiteralDeclaration_1 = (EnumLiteralDeclaration)cAlternatives.eContents().get(1);
+		private final Keyword cAVEAverageKeyword_1_0 = (Keyword)cAVEEnumLiteralDeclaration_1.eContents().get(0);
+		private final EnumLiteralDeclaration cMINEnumLiteralDeclaration_2 = (EnumLiteralDeclaration)cAlternatives.eContents().get(2);
+		private final Keyword cMINMinimumKeyword_2_0 = (Keyword)cMINEnumLiteralDeclaration_2.eContents().get(0);
+		private final EnumLiteralDeclaration cMAXEnumLiteralDeclaration_3 = (EnumLiteralDeclaration)cAlternatives.eContents().get(3);
+		private final Keyword cMAXMaximumKeyword_3_0 = (Keyword)cMAXEnumLiteralDeclaration_3.eContents().get(0);
+		private final EnumLiteralDeclaration cRUNNINGSUMEnumLiteralDeclaration_4 = (EnumLiteralDeclaration)cAlternatives.eContents().get(4);
+		private final Keyword cRUNNINGSUMRunningSumKeyword_4_0 = (Keyword)cRUNNINGSUMEnumLiteralDeclaration_4.eContents().get(0);
+		
+		//enum UnaryAggregationTypeEnum:
+		//	SUM="sum" | AVE="average" | MIN="minimum" | MAX="maximum" | RUNNINGSUM="running-sum";
+		public EnumRule getRule() { return rule; }
+
+		//SUM="sum" | AVE="average" | MIN="minimum" | MAX="maximum" | RUNNINGSUM="running-sum"
+		public Alternatives getAlternatives() { return cAlternatives; }
+
+		//SUM="sum"
+		public EnumLiteralDeclaration getSUMEnumLiteralDeclaration_0() { return cSUMEnumLiteralDeclaration_0; }
+
+		//"sum"
+		public Keyword getSUMSumKeyword_0_0() { return cSUMSumKeyword_0_0; }
+
+		//AVE="average"
+		public EnumLiteralDeclaration getAVEEnumLiteralDeclaration_1() { return cAVEEnumLiteralDeclaration_1; }
+
+		//"average"
+		public Keyword getAVEAverageKeyword_1_0() { return cAVEAverageKeyword_1_0; }
+
+		//MIN="minimum"
+		public EnumLiteralDeclaration getMINEnumLiteralDeclaration_2() { return cMINEnumLiteralDeclaration_2; }
+
+		//"minimum"
+		public Keyword getMINMinimumKeyword_2_0() { return cMINMinimumKeyword_2_0; }
+
+		//MAX="maximum"
+		public EnumLiteralDeclaration getMAXEnumLiteralDeclaration_3() { return cMAXEnumLiteralDeclaration_3; }
+
+		//"maximum"
+		public Keyword getMAXMaximumKeyword_3_0() { return cMAXMaximumKeyword_3_0; }
+
+		//RUNNINGSUM="running-sum"
+		public EnumLiteralDeclaration getRUNNINGSUMEnumLiteralDeclaration_4() { return cRUNNINGSUMEnumLiteralDeclaration_4; }
+
+		//"running-sum"
+		public Keyword getRUNNINGSUMRunningSumKeyword_4_0() { return cRUNNINGSUMRunningSumKeyword_4_0; }
+	}
+
+	public class BinaryAggregationTypeEnumElements extends AbstractEnumRuleElementFinder {
+		private final EnumRule rule = (EnumRule) GrammarUtil.findRuleForName(getGrammar(), "BinaryAggregationTypeEnum");
+		private final EnumLiteralDeclaration cDIVEnumLiteralDeclaration = (EnumLiteralDeclaration)rule.eContents().get(1);
+		private final Keyword cDIVDivideKeyword_0 = (Keyword)cDIVEnumLiteralDeclaration.eContents().get(0);
+		
+		//enum BinaryAggregationTypeEnum:
+		//	DIV="divide";
+		public EnumRule getRule() { return rule; }
+
+		//DIV="divide"
+		public EnumLiteralDeclaration getDIVEnumLiteralDeclaration() { return cDIVEnumLiteralDeclaration; }
+
+		//"divide"
+		public Keyword getDIVDivideKeyword_0() { return cDIVDivideKeyword_0; }
+	}
+
+	public class MultipleAggregationTypeEnumElements extends AbstractEnumRuleElementFinder {
+		private final EnumRule rule = (EnumRule) GrammarUtil.findRuleForName(getGrammar(), "MultipleAggregationTypeEnum");
+		private final EnumLiteralDeclaration cCONCATEnumLiteralDeclaration = (EnumLiteralDeclaration)rule.eContents().get(1);
+		private final Keyword cCONCATConcatKeyword_0 = (Keyword)cCONCATEnumLiteralDeclaration.eContents().get(0);
+		
+		//enum MultipleAggregationTypeEnum:
+		//	CONCAT="concat";
+		public EnumRule getRule() { return rule; }
+
+		//CONCAT="concat"
+		public EnumLiteralDeclaration getCONCATEnumLiteralDeclaration() { return cCONCATEnumLiteralDeclaration; }
+
+		//"concat"
+		public Keyword getCONCATConcatKeyword_0() { return cCONCATConcatKeyword_0; }
+	}
+
+	public class TrendIconEnumElements extends AbstractEnumRuleElementFinder {
+		private final EnumRule rule = (EnumRule) GrammarUtil.findRuleForName(getGrammar(), "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);
+		private final EnumLiteralDeclaration cBADRISINGEnumLiteralDeclaration_1 = (EnumLiteralDeclaration)cAlternatives.eContents().get(1);
+		private final Keyword cBADRISINGBadRisingKeyword_1_0 = (Keyword)cBADRISINGEnumLiteralDeclaration_1.eContents().get(0);
+		private final EnumLiteralDeclaration cSLOPINGEnumLiteralDeclaration_2 = (EnumLiteralDeclaration)cAlternatives.eContents().get(2);
+		private final Keyword cSLOPINGSlopingKeyword_2_0 = (Keyword)cSLOPINGEnumLiteralDeclaration_2.eContents().get(0);
+		private final EnumLiteralDeclaration cGOODSLOPINGEnumLiteralDeclaration_3 = (EnumLiteralDeclaration)cAlternatives.eContents().get(3);
+		private final Keyword cGOODSLOPINGGoodSlopingKeyword_3_0 = (Keyword)cGOODSLOPINGEnumLiteralDeclaration_3.eContents().get(0);
+		private final EnumLiteralDeclaration cSTAGNATINGEnumLiteralDeclaration_4 = (EnumLiteralDeclaration)cAlternatives.eContents().get(4);
+		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";
+		public EnumRule getRule() { return rule; }
+
+		//RISING="rising" | BADRISING="bad-rising" | SLOPING="sloping" | GOODSLOPING="good-sloping" | STAGNATING="stagnating"
+		public Alternatives getAlternatives() { return cAlternatives; }
+
+		//RISING="rising"
+		public EnumLiteralDeclaration getRISINGEnumLiteralDeclaration_0() { return cRISINGEnumLiteralDeclaration_0; }
+
+		//"rising"
+		public Keyword getRISINGRisingKeyword_0_0() { return cRISINGRisingKeyword_0_0; }
+
+		//BADRISING="bad-rising"
+		public EnumLiteralDeclaration getBADRISINGEnumLiteralDeclaration_1() { return cBADRISINGEnumLiteralDeclaration_1; }
+
+		//"bad-rising"
+		public Keyword getBADRISINGBadRisingKeyword_1_0() { return cBADRISINGBadRisingKeyword_1_0; }
+
+		//SLOPING="sloping"
+		public EnumLiteralDeclaration getSLOPINGEnumLiteralDeclaration_2() { return cSLOPINGEnumLiteralDeclaration_2; }
+
+		//"sloping"
+		public Keyword getSLOPINGSlopingKeyword_2_0() { return cSLOPINGSlopingKeyword_2_0; }
+
+		//GOODSLOPING="good-sloping"
+		public EnumLiteralDeclaration getGOODSLOPINGEnumLiteralDeclaration_3() { return cGOODSLOPINGEnumLiteralDeclaration_3; }
+
+		//"good-sloping"
+		public Keyword getGOODSLOPINGGoodSlopingKeyword_3_0() { return cGOODSLOPINGGoodSlopingKeyword_3_0; }
+
+		//STAGNATING="stagnating"
+		public EnumLiteralDeclaration getSTAGNATINGEnumLiteralDeclaration_4() { return cSTAGNATINGEnumLiteralDeclaration_4; }
+
+		//"stagnating"
+		public Keyword getSTAGNATINGStagnatingKeyword_4_0() { return cSTAGNATINGStagnatingKeyword_4_0; }
+	}
+
+	public class BorderTypeEnumElements extends AbstractEnumRuleElementFinder {
+		private final EnumRule rule = (EnumRule) GrammarUtil.findRuleForName(getGrammar(), "BorderTypeEnum");
+		private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1);
+		private final EnumLiteralDeclaration cNONEEnumLiteralDeclaration_0 = (EnumLiteralDeclaration)cAlternatives.eContents().get(0);
+		private final Keyword cNONENoneKeyword_0_0 = (Keyword)cNONEEnumLiteralDeclaration_0.eContents().get(0);
+		private final EnumLiteralDeclaration cSOLIDEnumLiteralDeclaration_1 = (EnumLiteralDeclaration)cAlternatives.eContents().get(1);
+		private final Keyword cSOLIDSolidKeyword_1_0 = (Keyword)cSOLIDEnumLiteralDeclaration_1.eContents().get(0);
+		private final EnumLiteralDeclaration cDOTTEDEnumLiteralDeclaration_2 = (EnumLiteralDeclaration)cAlternatives.eContents().get(2);
+		private final Keyword cDOTTEDDottedKeyword_2_0 = (Keyword)cDOTTEDEnumLiteralDeclaration_2.eContents().get(0);
+		private final EnumLiteralDeclaration cDASHEDEnumLiteralDeclaration_3 = (EnumLiteralDeclaration)cAlternatives.eContents().get(3);
+		private final Keyword cDASHEDDashedKeyword_3_0 = (Keyword)cDASHEDEnumLiteralDeclaration_3.eContents().get(0);
+		private final EnumLiteralDeclaration cDOUBLEEnumLiteralDeclaration_4 = (EnumLiteralDeclaration)cAlternatives.eContents().get(4);
+		private final Keyword cDOUBLEDoubleKeyword_4_0 = (Keyword)cDOUBLEEnumLiteralDeclaration_4.eContents().get(0);
+		private final EnumLiteralDeclaration cGROOVEEnumLiteralDeclaration_5 = (EnumLiteralDeclaration)cAlternatives.eContents().get(5);
+		private final Keyword cGROOVEGrooveKeyword_5_0 = (Keyword)cGROOVEEnumLiteralDeclaration_5.eContents().get(0);
+		private final EnumLiteralDeclaration cRIDGEEnumLiteralDeclaration_6 = (EnumLiteralDeclaration)cAlternatives.eContents().get(6);
+		private final Keyword cRIDGERidgeKeyword_6_0 = (Keyword)cRIDGEEnumLiteralDeclaration_6.eContents().get(0);
+		private final EnumLiteralDeclaration cINSETEnumLiteralDeclaration_7 = (EnumLiteralDeclaration)cAlternatives.eContents().get(7);
+		private final Keyword cINSETInsetKeyword_7_0 = (Keyword)cINSETEnumLiteralDeclaration_7.eContents().get(0);
+		private final EnumLiteralDeclaration cOUTSETEnumLiteralDeclaration_8 = (EnumLiteralDeclaration)cAlternatives.eContents().get(8);
+		private final Keyword cOUTSETOutsetKeyword_8_0 = (Keyword)cOUTSETEnumLiteralDeclaration_8.eContents().get(0);
+		
+		//enum BorderTypeEnum:
+		//	NONE="none" | SOLID="solid" | DOTTED="dotted" | DASHED="dashed" | DOUBLE="double" | GROOVE="groove" | RIDGE="ridge" |
+		//	INSET="inset" | OUTSET="outset";
+		public EnumRule getRule() { return rule; }
+
+		//NONE="none" | SOLID="solid" | DOTTED="dotted" | DASHED="dashed" | DOUBLE="double" | GROOVE="groove" | RIDGE="ridge" |
+		//INSET="inset" | OUTSET="outset"
+		public Alternatives getAlternatives() { return cAlternatives; }
+
+		//NONE="none"
+		public EnumLiteralDeclaration getNONEEnumLiteralDeclaration_0() { return cNONEEnumLiteralDeclaration_0; }
+
+		//"none"
+		public Keyword getNONENoneKeyword_0_0() { return cNONENoneKeyword_0_0; }
+
+		//SOLID="solid"
+		public EnumLiteralDeclaration getSOLIDEnumLiteralDeclaration_1() { return cSOLIDEnumLiteralDeclaration_1; }
+
+		//"solid"
+		public Keyword getSOLIDSolidKeyword_1_0() { return cSOLIDSolidKeyword_1_0; }
+
+		//DOTTED="dotted"
+		public EnumLiteralDeclaration getDOTTEDEnumLiteralDeclaration_2() { return cDOTTEDEnumLiteralDeclaration_2; }
+
+		//"dotted"
+		public Keyword getDOTTEDDottedKeyword_2_0() { return cDOTTEDDottedKeyword_2_0; }
+
+		//DASHED="dashed"
+		public EnumLiteralDeclaration getDASHEDEnumLiteralDeclaration_3() { return cDASHEDEnumLiteralDeclaration_3; }
+
+		//"dashed"
+		public Keyword getDASHEDDashedKeyword_3_0() { return cDASHEDDashedKeyword_3_0; }
+
+		//DOUBLE="double"
+		public EnumLiteralDeclaration getDOUBLEEnumLiteralDeclaration_4() { return cDOUBLEEnumLiteralDeclaration_4; }
+
+		//"double"
+		public Keyword getDOUBLEDoubleKeyword_4_0() { return cDOUBLEDoubleKeyword_4_0; }
+
+		//GROOVE="groove"
+		public EnumLiteralDeclaration getGROOVEEnumLiteralDeclaration_5() { return cGROOVEEnumLiteralDeclaration_5; }
+
+		//"groove"
+		public Keyword getGROOVEGrooveKeyword_5_0() { return cGROOVEGrooveKeyword_5_0; }
+
+		//RIDGE="ridge"
+		public EnumLiteralDeclaration getRIDGEEnumLiteralDeclaration_6() { return cRIDGEEnumLiteralDeclaration_6; }
+
+		//"ridge"
+		public Keyword getRIDGERidgeKeyword_6_0() { return cRIDGERidgeKeyword_6_0; }
+
+		//INSET="inset"
+		public EnumLiteralDeclaration getINSETEnumLiteralDeclaration_7() { return cINSETEnumLiteralDeclaration_7; }
+
+		//"inset"
+		public Keyword getINSETInsetKeyword_7_0() { return cINSETInsetKeyword_7_0; }
+
+		//OUTSET="outset"
+		public EnumLiteralDeclaration getOUTSETEnumLiteralDeclaration_8() { return cOUTSETEnumLiteralDeclaration_8; }
+
+		//"outset"
+		public Keyword getOUTSETOutsetKeyword_8_0() { return cOUTSETOutsetKeyword_8_0; }
+	}
+
+	public class AutoTextEnumElements extends AbstractEnumRuleElementFinder {
+		private final EnumRule rule = (EnumRule) GrammarUtil.findRuleForName(getGrammar(), "AutoTextEnum");
+		private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1);
+		private final EnumLiteralDeclaration cPAGE_NUMBEREnumLiteralDeclaration_0 = (EnumLiteralDeclaration)cAlternatives.eContents().get(0);
+		private final Keyword cPAGE_NUMBERPageNumberKeyword_0_0 = (Keyword)cPAGE_NUMBEREnumLiteralDeclaration_0.eContents().get(0);
+		private final EnumLiteralDeclaration cTOTAL_PAGEEnumLiteralDeclaration_1 = (EnumLiteralDeclaration)cAlternatives.eContents().get(1);
+		private final Keyword cTOTAL_PAGETotalPageKeyword_1_0 = (Keyword)cTOTAL_PAGEEnumLiteralDeclaration_1.eContents().get(0);
+		private final EnumLiteralDeclaration cPAGE_NUMBER_UNFILTEREDEnumLiteralDeclaration_2 = (EnumLiteralDeclaration)cAlternatives.eContents().get(2);
+		private final Keyword cPAGE_NUMBER_UNFILTEREDPageNumberUnfilteredKeyword_2_0 = (Keyword)cPAGE_NUMBER_UNFILTEREDEnumLiteralDeclaration_2.eContents().get(0);
+		private final EnumLiteralDeclaration cTOTAL_PAGE_UNFILTEREDEnumLiteralDeclaration_3 = (EnumLiteralDeclaration)cAlternatives.eContents().get(3);
+		private final Keyword cTOTAL_PAGE_UNFILTEREDTotalPageUnfilteredKeyword_3_0 = (Keyword)cTOTAL_PAGE_UNFILTEREDEnumLiteralDeclaration_3.eContents().get(0);
+		private final EnumLiteralDeclaration cPAGE_VARIABLEEnumLiteralDeclaration_4 = (EnumLiteralDeclaration)cAlternatives.eContents().get(4);
+		private final Keyword cPAGE_VARIABLEPageVariableKeyword_4_0 = (Keyword)cPAGE_VARIABLEEnumLiteralDeclaration_4.eContents().get(0);
+		
+		//enum AutoTextEnum:
+		//	PAGE_NUMBER="page-number" | TOTAL_PAGE="total-page" | PAGE_NUMBER_UNFILTERED="page-number-unfiltered" |
+		//	TOTAL_PAGE_UNFILTERED="total-page-unfiltered" | PAGE_VARIABLE="page-variable";
+		public EnumRule getRule() { return rule; }
+
+		//PAGE_NUMBER="page-number" | TOTAL_PAGE="total-page" | PAGE_NUMBER_UNFILTERED="page-number-unfiltered" |
+		//TOTAL_PAGE_UNFILTERED="total-page-unfiltered" | PAGE_VARIABLE="page-variable"
+		public Alternatives getAlternatives() { return cAlternatives; }
+
+		//PAGE_NUMBER="page-number"
+		public EnumLiteralDeclaration getPAGE_NUMBEREnumLiteralDeclaration_0() { return cPAGE_NUMBEREnumLiteralDeclaration_0; }
+
+		//"page-number"
+		public Keyword getPAGE_NUMBERPageNumberKeyword_0_0() { return cPAGE_NUMBERPageNumberKeyword_0_0; }
+
+		//TOTAL_PAGE="total-page"
+		public EnumLiteralDeclaration getTOTAL_PAGEEnumLiteralDeclaration_1() { return cTOTAL_PAGEEnumLiteralDeclaration_1; }
+
+		//"total-page"
+		public Keyword getTOTAL_PAGETotalPageKeyword_1_0() { return cTOTAL_PAGETotalPageKeyword_1_0; }
+
+		//PAGE_NUMBER_UNFILTERED="page-number-unfiltered"
+		public EnumLiteralDeclaration getPAGE_NUMBER_UNFILTEREDEnumLiteralDeclaration_2() { return cPAGE_NUMBER_UNFILTEREDEnumLiteralDeclaration_2; }
+
+		//"page-number-unfiltered"
+		public Keyword getPAGE_NUMBER_UNFILTEREDPageNumberUnfilteredKeyword_2_0() { return cPAGE_NUMBER_UNFILTEREDPageNumberUnfilteredKeyword_2_0; }
+
+		//TOTAL_PAGE_UNFILTERED="total-page-unfiltered"
+		public EnumLiteralDeclaration getTOTAL_PAGE_UNFILTEREDEnumLiteralDeclaration_3() { return cTOTAL_PAGE_UNFILTEREDEnumLiteralDeclaration_3; }
+
+		//"total-page-unfiltered"
+		public Keyword getTOTAL_PAGE_UNFILTEREDTotalPageUnfilteredKeyword_3_0() { return cTOTAL_PAGE_UNFILTEREDTotalPageUnfilteredKeyword_3_0; }
+
+		//PAGE_VARIABLE="page-variable"
+		public EnumLiteralDeclaration getPAGE_VARIABLEEnumLiteralDeclaration_4() { return cPAGE_VARIABLEEnumLiteralDeclaration_4; }
+
+		//"page-variable"
+		public Keyword getPAGE_VARIABLEPageVariableKeyword_4_0() { return cPAGE_VARIABLEPageVariableKeyword_4_0; }
+	}
+
+	public class ImageSizeEnumElements extends AbstractEnumRuleElementFinder {
+		private final EnumRule rule = (EnumRule) GrammarUtil.findRuleForName(getGrammar(), "ImageSizeEnum");
+		private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1);
+		private final EnumLiteralDeclaration cSIZE_TO_IMAGEEnumLiteralDeclaration_0 = (EnumLiteralDeclaration)cAlternatives.eContents().get(0);
+		private final Keyword cSIZE_TO_IMAGESizeToImageKeyword_0_0 = (Keyword)cSIZE_TO_IMAGEEnumLiteralDeclaration_0.eContents().get(0);
+		private final EnumLiteralDeclaration cSCALE_TO_ITEMEnumLiteralDeclaration_1 = (EnumLiteralDeclaration)cAlternatives.eContents().get(1);
+		private final Keyword cSCALE_TO_ITEMScaleToItemKeyword_1_0 = (Keyword)cSCALE_TO_ITEMEnumLiteralDeclaration_1.eContents().get(0);
+		private final EnumLiteralDeclaration cCLIPEnumLiteralDeclaration_2 = (EnumLiteralDeclaration)cAlternatives.eContents().get(2);
+		private final Keyword cCLIPClipKeyword_2_0 = (Keyword)cCLIPEnumLiteralDeclaration_2.eContents().get(0);
+		
+		//enum ImageSizeEnum:
+		//	SIZE_TO_IMAGE="size-to-image" | SCALE_TO_ITEM="scale-to-item" | CLIP="clip";
+		public EnumRule getRule() { return rule; }
+
+		//SIZE_TO_IMAGE="size-to-image" | SCALE_TO_ITEM="scale-to-item" | CLIP="clip"
+		public Alternatives getAlternatives() { return cAlternatives; }
+
+		//SIZE_TO_IMAGE="size-to-image"
+		public EnumLiteralDeclaration getSIZE_TO_IMAGEEnumLiteralDeclaration_0() { return cSIZE_TO_IMAGEEnumLiteralDeclaration_0; }
+
+		//"size-to-image"
+		public Keyword getSIZE_TO_IMAGESizeToImageKeyword_0_0() { return cSIZE_TO_IMAGESizeToImageKeyword_0_0; }
+
+		//SCALE_TO_ITEM="scale-to-item"
+		public EnumLiteralDeclaration getSCALE_TO_ITEMEnumLiteralDeclaration_1() { return cSCALE_TO_ITEMEnumLiteralDeclaration_1; }
+
+		//"scale-to-item"
+		public Keyword getSCALE_TO_ITEMScaleToItemKeyword_1_0() { return cSCALE_TO_ITEMScaleToItemKeyword_1_0; }
+
+		//CLIP="clip"
+		public EnumLiteralDeclaration getCLIPEnumLiteralDeclaration_2() { return cCLIPEnumLiteralDeclaration_2; }
+
+		//"clip"
+		public Keyword getCLIPClipKeyword_2_0() { return cCLIPClipKeyword_2_0; }
+	}
+
+	public class ImageSourceEnumElements extends AbstractEnumRuleElementFinder {
+		private final EnumRule rule = (EnumRule) GrammarUtil.findRuleForName(getGrammar(), "ImageSourceEnum");
+		private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1);
+		private final EnumLiteralDeclaration cFILEEnumLiteralDeclaration_0 = (EnumLiteralDeclaration)cAlternatives.eContents().get(0);
+		private final Keyword cFILEFileKeyword_0_0 = (Keyword)cFILEEnumLiteralDeclaration_0.eContents().get(0);
+		private final EnumLiteralDeclaration cURLEnumLiteralDeclaration_1 = (EnumLiteralDeclaration)cAlternatives.eContents().get(1);
+		private final Keyword cURLUrlKeyword_1_0 = (Keyword)cURLEnumLiteralDeclaration_1.eContents().get(0);
+		private final EnumLiteralDeclaration cEMBEDEnumLiteralDeclaration_2 = (EnumLiteralDeclaration)cAlternatives.eContents().get(2);
+		private final Keyword cEMBEDEmbedKeyword_2_0 = (Keyword)cEMBEDEnumLiteralDeclaration_2.eContents().get(0);
+		
+		//enum ImageSourceEnum:
+		//	FILE="file" | URL="url" | EMBED="embed";
+		public EnumRule getRule() { return rule; }
+
+		//FILE="file" | URL="url" | EMBED="embed"
+		public Alternatives getAlternatives() { return cAlternatives; }
+
+		//FILE="file"
+		public EnumLiteralDeclaration getFILEEnumLiteralDeclaration_0() { return cFILEEnumLiteralDeclaration_0; }
+
+		//"file"
+		public Keyword getFILEFileKeyword_0_0() { return cFILEFileKeyword_0_0; }
+
+		//URL="url"
+		public EnumLiteralDeclaration getURLEnumLiteralDeclaration_1() { return cURLEnumLiteralDeclaration_1; }
+
+		//"url"
+		public Keyword getURLUrlKeyword_1_0() { return cURLUrlKeyword_1_0; }
+
+		//EMBED="embed"
+		public EnumLiteralDeclaration getEMBEDEnumLiteralDeclaration_2() { return cEMBEDEnumLiteralDeclaration_2; }
+
+		//"embed"
+		public Keyword getEMBEDEmbedKeyword_2_0() { return cEMBEDEmbedKeyword_2_0; }
+	}
+	
+	private final ReportModelElements pReportModel;
+	private final ReportPackageElements pReportPackage;
+	private final PageTemplatesElements pPageTemplates;
+	private final SomeFormatsElements pSomeFormats;
+	private final ColorsElements pColors;
+	private final FontsElements pFonts;
+	private final MediasElements pMedias;
+	private final MediaElements pMedia;
+	private final StylesElements pStyles;
+	private final PageTemplateElements pPageTemplate;
+	private final UnsignedNumberElements pUnsignedNumber;
+	private final UnitEnumElements unknownRuleUnitEnum;
+	private final PageSizeEnumElements unknownRulePageSizeEnum;
+	private final OrientationEnumElements unknownRuleOrientationEnum;
+	private final ColorElements pColor;
+	private final FontElements pFont;
+	private final FontStyleEnumElements unknownRuleFontStyleEnum;
+	private final FontFamilyElements pFontFamily;
+	private final BuildInFontFamilyElements pBuildInFontFamily;
+	private final BuildInFontFamilyEnumElements unknownRuleBuildInFontFamilyEnum;
+	private final CustomFontFamilyElements pCustomFontFamily;
+	private final BorderStyleElements pBorderStyle;
+	private final StyleElements pStyle;
+	private final MediaStyleElements pMediaStyle;
+	private final TextAlignEnumElements unknownRuleTextAlignEnum;
+	private final SomeFormatElements pSomeFormat;
+	private final UomoFormatElements pUomoFormat;
+	private final NumberFormatElements pNumberFormat;
+	private final NumberFormatCategoryEnumElements unknownRuleNumberFormatCategoryEnum;
+	private final CurrencyFormatElements pCurrencyFormat;
+	private final CurrencyFormatCategoryEnumElements unknownRuleCurrencyFormatCategoryEnum;
+	private final DateFormatElements pDateFormat;
+	private final DateFormatCategoryEnumElements unknownRuleDateFormatCategoryEnum;
+	private final DateTimeFormatElements pDateTimeFormat;
+	private final DateTimeFormatCategoryEnumElements unknownRuleDateTimeFormatCategoryEnum;
+	private final TimeFormatElements pTimeFormat;
+	private final TimeFormatCategoryEnumElements unknownRuleTimeFormatCategoryEnum;
+	private final ReportElements pReport;
+	private final RenderingEnumElements unknownRuleRenderingEnum;
+	private final ReportDesignElements pReportDesign;
+	private final ReportDesignFileElements pReportDesignFile;
+	private final ReportDesignTemplateElements pReportDesignTemplate;
+	private final ContainerElements pContainer;
+	private final PageHeaderElements pPageHeader;
+	private final PageDetailElements pPageDetail;
+	private final PageFooterElements pPageFooter;
+	private final ElementElements pElement;
+	private final GridElements pGrid;
+	private final GridRowElements pGridRow;
+	private final GridCellElements pGridCell;
+	private final DatamartTableElements pDatamartTable;
+	private final DatamartTableGroupElements pDatamartTableGroup;
+	private final DatamartTableGroupHeaderElements pDatamartTableGroupHeader;
+	private final DatamartTableGroupFooterElements pDatamartTableGroupFooter;
+	private final DatamartTableDetailElements pDatamartTableDetail;
+	private final DatamartTablePropertyElements pDatamartTableProperty;
+	private final PureAggregationTypeEnumElements unknownRulePureAggregationTypeEnum;
+	private final UnaryAggregationTypeEnumElements unknownRuleUnaryAggregationTypeEnum;
+	private final BinaryAggregationTypeEnumElements unknownRuleBinaryAggregationTypeEnum;
+	private final MultipleAggregationTypeEnumElements unknownRuleMultipleAggregationTypeEnum;
+	private final TableFormatterElements pTableFormatter;
+	private final TableImageElements pTableImage;
+	private final TableValueElementElements pTableValueElement;
+	private final TablePropertyElements pTableProperty;
+	private final TableAggregationElements pTableAggregation;
+	private final TableBaseAggregationElements pTableBaseAggregation;
+	private final TablePureAggregationElements pTablePureAggregation;
+	private final TableUnaryAggregationElements pTableUnaryAggregation;
+	private final TableMultipleAggregationElements pTableMultipleAggregation;
+	private final TableBinaryAggregationElements pTableBinaryAggregation;
+	private final TableIntervalElements pTableInterval;
+	private final TableNumberIntervalElements pTableNumberInterval;
+	private final TableDateDayIntervalElements pTableDateDayInterval;
+	private final TableLookupElements pTableLookup;
+	private final TableNumberLookupElements pTableNumberLookup;
+	private final TableStringLookupElements pTableStringLookup;
+	private final TableDateDayLookupElements pTableDateDayLookup;
+	private final TableRangeElementElements pTableRangeElement;
+	private final SignedNumberElements pSignedNumber;
+	private final TableTextColorElements pTableTextColor;
+	private final TableCellColorElements pTableCellColor;
+	private final TableIconElements pTableIcon;
+	private final TableTrendElements pTableTrend;
+	private final TrendIconEnumElements unknownRuleTrendIconEnum;
+	private final TitleElements pTitle;
+	private final SubTitleElements pSubTitle;
+	private final SubSubTitleElements pSubSubTitle;
+	private final LabelElements pLabel;
+	private final TextElements pText;
+	private final AutoTextElements pAutoText;
+	private final BorderTypeEnumElements unknownRuleBorderTypeEnum;
+	private final AutoTextEnumElements unknownRuleAutoTextEnum;
+	private final ImageElements pImage;
+	private final ImageSizeEnumElements unknownRuleImageSizeEnum;
+	private final ImageSourceEnumElements unknownRuleImageSourceEnum;
+	private final ReportImportElements pReportImport;
+	private final ReportQualifiedNameWithWildCardElements pReportQualifiedNameWithWildCard;
+	private final TRANSLATABLESTRINGElements pTRANSLATABLESTRING;
+	
+	private final Grammar grammar;
+
+	private final XbaseWithAnnotationsGrammarAccess gaXbaseWithAnnotations;
+
+	@Inject
+	public ReportDSLGrammarAccess(GrammarProvider grammarProvider,
+		XbaseWithAnnotationsGrammarAccess gaXbaseWithAnnotations) {
+		this.grammar = internalFindGrammar(grammarProvider);
+		this.gaXbaseWithAnnotations = gaXbaseWithAnnotations;
+		this.pReportModel = new ReportModelElements();
+		this.pReportPackage = new ReportPackageElements();
+		this.pPageTemplates = new PageTemplatesElements();
+		this.pSomeFormats = new SomeFormatsElements();
+		this.pColors = new ColorsElements();
+		this.pFonts = new FontsElements();
+		this.pMedias = new MediasElements();
+		this.pMedia = new MediaElements();
+		this.pStyles = new StylesElements();
+		this.pPageTemplate = new PageTemplateElements();
+		this.pUnsignedNumber = new UnsignedNumberElements();
+		this.unknownRuleUnitEnum = new UnitEnumElements();
+		this.unknownRulePageSizeEnum = new PageSizeEnumElements();
+		this.unknownRuleOrientationEnum = new OrientationEnumElements();
+		this.pColor = new ColorElements();
+		this.pFont = new FontElements();
+		this.unknownRuleFontStyleEnum = new FontStyleEnumElements();
+		this.pFontFamily = new FontFamilyElements();
+		this.pBuildInFontFamily = new BuildInFontFamilyElements();
+		this.unknownRuleBuildInFontFamilyEnum = new BuildInFontFamilyEnumElements();
+		this.pCustomFontFamily = new CustomFontFamilyElements();
+		this.pBorderStyle = new BorderStyleElements();
+		this.pStyle = new StyleElements();
+		this.pMediaStyle = new MediaStyleElements();
+		this.unknownRuleTextAlignEnum = new TextAlignEnumElements();
+		this.pSomeFormat = new SomeFormatElements();
+		this.pUomoFormat = new UomoFormatElements();
+		this.pNumberFormat = new NumberFormatElements();
+		this.unknownRuleNumberFormatCategoryEnum = new NumberFormatCategoryEnumElements();
+		this.pCurrencyFormat = new CurrencyFormatElements();
+		this.unknownRuleCurrencyFormatCategoryEnum = new CurrencyFormatCategoryEnumElements();
+		this.pDateFormat = new DateFormatElements();
+		this.unknownRuleDateFormatCategoryEnum = new DateFormatCategoryEnumElements();
+		this.pDateTimeFormat = new DateTimeFormatElements();
+		this.unknownRuleDateTimeFormatCategoryEnum = new DateTimeFormatCategoryEnumElements();
+		this.pTimeFormat = new TimeFormatElements();
+		this.unknownRuleTimeFormatCategoryEnum = new TimeFormatCategoryEnumElements();
+		this.pReport = new ReportElements();
+		this.unknownRuleRenderingEnum = new RenderingEnumElements();
+		this.pReportDesign = new ReportDesignElements();
+		this.pReportDesignFile = new ReportDesignFileElements();
+		this.pReportDesignTemplate = new ReportDesignTemplateElements();
+		this.pContainer = new ContainerElements();
+		this.pPageHeader = new PageHeaderElements();
+		this.pPageDetail = new PageDetailElements();
+		this.pPageFooter = new PageFooterElements();
+		this.pElement = new ElementElements();
+		this.pGrid = new GridElements();
+		this.pGridRow = new GridRowElements();
+		this.pGridCell = new GridCellElements();
+		this.pDatamartTable = new DatamartTableElements();
+		this.pDatamartTableGroup = new DatamartTableGroupElements();
+		this.pDatamartTableGroupHeader = new DatamartTableGroupHeaderElements();
+		this.pDatamartTableGroupFooter = new DatamartTableGroupFooterElements();
+		this.pDatamartTableDetail = new DatamartTableDetailElements();
+		this.pDatamartTableProperty = new DatamartTablePropertyElements();
+		this.unknownRulePureAggregationTypeEnum = new PureAggregationTypeEnumElements();
+		this.unknownRuleUnaryAggregationTypeEnum = new UnaryAggregationTypeEnumElements();
+		this.unknownRuleBinaryAggregationTypeEnum = new BinaryAggregationTypeEnumElements();
+		this.unknownRuleMultipleAggregationTypeEnum = new MultipleAggregationTypeEnumElements();
+		this.pTableFormatter = new TableFormatterElements();
+		this.pTableImage = new TableImageElements();
+		this.pTableValueElement = new TableValueElementElements();
+		this.pTableProperty = new TablePropertyElements();
+		this.pTableAggregation = new TableAggregationElements();
+		this.pTableBaseAggregation = new TableBaseAggregationElements();
+		this.pTablePureAggregation = new TablePureAggregationElements();
+		this.pTableUnaryAggregation = new TableUnaryAggregationElements();
+		this.pTableMultipleAggregation = new TableMultipleAggregationElements();
+		this.pTableBinaryAggregation = new TableBinaryAggregationElements();
+		this.pTableInterval = new TableIntervalElements();
+		this.pTableNumberInterval = new TableNumberIntervalElements();
+		this.pTableDateDayInterval = new TableDateDayIntervalElements();
+		this.pTableLookup = new TableLookupElements();
+		this.pTableNumberLookup = new TableNumberLookupElements();
+		this.pTableStringLookup = new TableStringLookupElements();
+		this.pTableDateDayLookup = new TableDateDayLookupElements();
+		this.pTableRangeElement = new TableRangeElementElements();
+		this.pSignedNumber = new SignedNumberElements();
+		this.pTableTextColor = new TableTextColorElements();
+		this.pTableCellColor = new TableCellColorElements();
+		this.pTableIcon = new TableIconElements();
+		this.pTableTrend = new TableTrendElements();
+		this.unknownRuleTrendIconEnum = new TrendIconEnumElements();
+		this.pTitle = new TitleElements();
+		this.pSubTitle = new SubTitleElements();
+		this.pSubSubTitle = new SubSubTitleElements();
+		this.pLabel = new LabelElements();
+		this.pText = new TextElements();
+		this.pAutoText = new AutoTextElements();
+		this.unknownRuleBorderTypeEnum = new BorderTypeEnumElements();
+		this.unknownRuleAutoTextEnum = new AutoTextEnumElements();
+		this.pImage = new ImageElements();
+		this.unknownRuleImageSizeEnum = new ImageSizeEnumElements();
+		this.unknownRuleImageSourceEnum = new ImageSourceEnumElements();
+		this.pReportImport = new ReportImportElements();
+		this.pReportQualifiedNameWithWildCard = new ReportQualifiedNameWithWildCardElements();
+		this.pTRANSLATABLESTRING = new TRANSLATABLESTRINGElements();
+	}
+	
+	protected Grammar internalFindGrammar(GrammarProvider grammarProvider) {
+		Grammar grammar = grammarProvider.getGrammar(this);
+		while (grammar != null) {
+			if ("org.eclipse.osbp.xtext.reportdsl.ReportDSL".equals(grammar.getName())) {
+				return grammar;
+			}
+			List<Grammar> grammars = grammar.getUsedGrammars();
+			if (!grammars.isEmpty()) {
+				grammar = grammars.iterator().next();
+			} else {
+				return null;
+			}
+		}
+		return grammar;
+	}
+	
+	
+	public Grammar getGrammar() {
+		return grammar;
+	}
+	
+
+	public XbaseWithAnnotationsGrammarAccess getXbaseWithAnnotationsGrammarAccess() {
+		return gaXbaseWithAnnotations;
+	}
+
+	
+	//ReportModel:
+	//	pckg+=ReportPackage*;
+	public ReportModelElements getReportModelAccess() {
+		return pReportModel;
+	}
+	
+	public ParserRule getReportModelRule() {
+		return getReportModelAccess().getRule();
+	}
+
+	//ReportPackage:
+	//	{ReportPackage} "package" name=QualifiedName "{" imports+=ReportImport* ("layout-data" "{" ("externalCssURI"
+	//	externalCssURI=STRING ("from bundle" externalCssURIBundle=STRING)?)? pagetemplates=PageTemplates
+	//	formatters=SomeFormats colors=Colors fonts=Fonts medias=Medias styles=Styles "}")? reports+=Report* "}";
+	public ReportPackageElements getReportPackageAccess() {
+		return pReportPackage;
+	}
+	
+	public ParserRule getReportPackageRule() {
+		return getReportPackageAccess().getRule();
+	}
+
+	//PageTemplates:
+	//	{PageTemplates} pagetemplates+=PageTemplate*;
+	public PageTemplatesElements getPageTemplatesAccess() {
+		return pPageTemplates;
+	}
+	
+	public ParserRule getPageTemplatesRule() {
+		return getPageTemplatesAccess().getRule();
+	}
+
+	//SomeFormats:
+	//	{SomeFormats} "formatters" "{" formatters+=SomeFormat* "}";
+	public SomeFormatsElements getSomeFormatsAccess() {
+		return pSomeFormats;
+	}
+	
+	public ParserRule getSomeFormatsRule() {
+		return getSomeFormatsAccess().getRule();
+	}
+
+	//Colors:
+	//	{Colors} "colors" "{" colors+=Color* "}";
+	public ColorsElements getColorsAccess() {
+		return pColors;
+	}
+	
+	public ParserRule getColorsRule() {
+		return getColorsAccess().getRule();
+	}
+
+	//Fonts:
+	//	{Fonts} "fonts" "{" fonts+=Font* "}";
+	public FontsElements getFontsAccess() {
+		return pFonts;
+	}
+	
+	public ParserRule getFontsRule() {
+		return getFontsAccess().getRule();
+	}
+
+	//Medias:
+	//	{Medias} "medias" "{" medias+=Media* "}";
+	public MediasElements getMediasAccess() {
+		return pMedias;
+	}
+	
+	public ParserRule getMediasRule() {
+		return getMediasAccess().getRule();
+	}
+
+	//Media:
+	//	"media" name=ID;
+	public MediaElements getMediaAccess() {
+		return pMedia;
+	}
+	
+	public ParserRule getMediaRule() {
+		return getMediaAccess().getRule();
+	}
+
+	//Styles:
+	//	{Styles} "styles" "{" styles+=Style* "}";
+	public StylesElements getStylesAccess() {
+		return pStyles;
+	}
+	
+	public ParserRule getStylesRule() {
+		return getStylesAccess().getRule();
+	}
+
+	//PageTemplate:
+	//	"pagetemplate" name=ID "{" "type" size=PageSizeEnum "orientation" orientation=OrientationEnum "topmargin"
+	//	topMarginValue=UnsignedNumber topMarginUnit=UnitEnum "leftmargin" leftMarginValue=UnsignedNumber
+	//	leftMarginUnit=UnitEnum "bottommargin" bottomMarginValue=UnsignedNumber bottomMarginUnit=UnitEnum "rightmargin"
+	//	rightMarginValue=UnsignedNumber rightMarginUnit=UnitEnum header=PageHeader? footer=PageFooter? "}";
+	public PageTemplateElements getPageTemplateAccess() {
+		return pPageTemplate;
+	}
+	
+	public ParserRule getPageTemplateRule() {
+		return getPageTemplateAccess().getRule();
+	}
+
+	//UnsignedNumber returns ecore::EDouble:
+	//	Number;
+	public UnsignedNumberElements getUnsignedNumberAccess() {
+		return pUnsignedNumber;
+	}
+	
+	public ParserRule getUnsignedNumberRule() {
+		return getUnsignedNumberAccess().getRule();
+	}
+
+	//enum UnitEnum:
+	//	MM="mm" | CM="cm" | PT="pt" | IN="inch" | PC="pc" | EM="em" | EX="ex" | PX="px" | PERCENTAGE="%";
+	public UnitEnumElements getUnitEnumAccess() {
+		return unknownRuleUnitEnum;
+	}
+	
+	public EnumRule getUnitEnumRule() {
+		return getUnitEnumAccess().getRule();
+	}
+
+	//enum PageSizeEnum:
+	//	A4="a4" | A3="a3" | A5="a5" | US_LETTER="us-letter" | US_LEGAL="us-legal" | US_LEDGER="us-ledger" |
+	//	US_SUPER_B="us-super-b";
+	public PageSizeEnumElements getPageSizeEnumAccess() {
+		return unknownRulePageSizeEnum;
+	}
+	
+	public EnumRule getPageSizeEnumRule() {
+		return getPageSizeEnumAccess().getRule();
+	}
+
+	//enum OrientationEnum:
+	//	PORTRAIT="portrait" | LANDSCAPE="landscape";
+	public OrientationEnumElements getOrientationEnumAccess() {
+		return unknownRuleOrientationEnum;
+	}
+	
+	public EnumRule getOrientationEnumRule() {
+		return getOrientationEnumAccess().getRule();
+	}
+
+	//Color:
+	//	"color" name=ID (color=STRING | "darkens" basecolor=[Color] "by-percent" darkensby=INT | "lightens" basecolor=[Color]
+	//	"by-percent" lightensby=INT | "transforms" basecolor=[Color] "by-percent" transformsby=INT "towards"
+	//	targetcolor=[Color]);
+	public ColorElements getColorAccess() {
+		return pColor;
+	}
+	
+	public ParserRule getColorRule() {
+		return getColorAccess().getRule();
+	}
+
+	//Font:
+	//	"font" name=ID "{" ("extends" extends=[Font])? ("family" family=FontFamily)? & style=FontStyleEnum? & bold?="bold"? &
+	//	("size" sizevalue=UnsignedNumber sizeunit=UnitEnum)? "}";
+	public FontElements getFontAccess() {
+		return pFont;
+	}
+	
+	public ParserRule getFontRule() {
+		return getFontAccess().getRule();
+	}
+
+	//enum FontStyleEnum:
+	//	NORMAL="normal" | ITALIC="italic" | OBLIQUE="oblique";
+	public FontStyleEnumElements getFontStyleEnumAccess() {
+		return unknownRuleFontStyleEnum;
+	}
+	
+	public EnumRule getFontStyleEnumRule() {
+		return getFontStyleEnumAccess().getRule();
+	}
+
+	//FontFamily:
+	//	BuildInFontFamily | CustomFontFamily;
+	public FontFamilyElements getFontFamilyAccess() {
+		return pFontFamily;
+	}
+	
+	public ParserRule getFontFamilyRule() {
+		return getFontFamilyAccess().getRule();
+	}
+
+	//BuildInFontFamily:
+	//	custom=BuildInFontFamilyEnum;
+	public BuildInFontFamilyElements getBuildInFontFamilyAccess() {
+		return pBuildInFontFamily;
+	}
+	
+	public ParserRule getBuildInFontFamilyRule() {
+		return getBuildInFontFamilyAccess().getRule();
+	}
+
+	//enum BuildInFontFamilyEnum:
+	//	MONOSPACE="monospace" | SANS_SERIF="sans-serif" | SERIF="serif";
+	public BuildInFontFamilyEnumElements getBuildInFontFamilyEnumAccess() {
+		return unknownRuleBuildInFontFamilyEnum;
+	}
+	
+	public EnumRule getBuildInFontFamilyEnumRule() {
+		return getBuildInFontFamilyEnumAccess().getRule();
+	}
+
+	//CustomFontFamily:
+	//	custom=STRING;
+	public CustomFontFamilyElements getCustomFontFamilyAccess() {
+		return pCustomFontFamily;
+	}
+	
+	public ParserRule getCustomFontFamilyRule() {
+		return getCustomFontFamilyAccess().getRule();
+	}
+
+	//BorderStyle:
+	//	type=BorderTypeEnum widthvalue=UnsignedNumber widthunit=UnitEnum color=[Color];
+	public BorderStyleElements getBorderStyleAccess() {
+		return pBorderStyle;
+	}
+	
+	public ParserRule getBorderStyleRule() {
+		return getBorderStyleAccess().getRule();
+	}
+
+	//Style:
+	//	"style" name=ID "{" ("extends" extends=[Style])? (("formatter" format=[SomeFormat])? & ("font" font=[Font])? &
+	//	("backgroundcolor" backgroundcolor=[Color] ("alternate" backgroundcolor_alternate=[Color])?)? & ("textcolor"
+	//	textcolor=[Color])? & ("textalign" textalign=TextAlignEnum)? & ("border-top" borderTop=BorderStyle)? &
+	//	("border-bottom" borderBottom=BorderStyle)? & ("border-left" borderLeft=BorderStyle)? & ("border-right"
+	//	borderRight=BorderStyle)? & ("padding-top" paddingTopValue=UnsignedNumber paddingTopUnit=UnitEnum)? &
+	//	("padding-bottom" paddingBottomValue=UnsignedNumber paddingBottomUnit=UnitEnum)? & ("padding-left"
+	//	paddingLeftValue=UnsignedNumber paddingLeftUnit=UnitEnum)? & ("padding-right" paddingRightValue=UnsignedNumber
+	//	paddingRightUnit=UnitEnum)? & ("margin-top" marginTopValue=UnsignedNumber marginTopUnit=UnitEnum)? & ("margin-bottom"
+	//	marginBottomValue=UnsignedNumber marginBottomUnit=UnitEnum)? & ("margin-left" marginLeftValue=UnsignedNumber
+	//	marginLeftUnit=UnitEnum)? & ("margin-right" marginRightValue=UnsignedNumber marginRightUnit=UnitEnum)?)
+	//	mediastyles+=MediaStyle* "}";
+	public StyleElements getStyleAccess() {
+		return pStyle;
+	}
+	
+	public ParserRule getStyleRule() {
+		return getStyleAccess().getRule();
+	}
+
+	//MediaStyle:
+	//	"media" media=[Media] "{" (("formatter" format=[SomeFormat])? & ("font" font=[Font])? & ("backgroundcolor"
+	//	backgroundcolor=[Color] ("alternate" backgroundcolor_alternate=[Color])?)? & ("textcolor" textcolor=[Color])? &
+	//	("textalign" textalign=TextAlignEnum)? & ("border-top" borderTop=BorderStyle)? & ("border-bottom"
+	//	borderBottom=BorderStyle)? & ("border-left" borderLeft=BorderStyle)? & ("border-right" borderRight=BorderStyle)? &
+	//	("padding-top" paddingTopValue=UnsignedNumber paddingTopUnit=UnitEnum)? & ("padding-bottom"
+	//	paddingBottomValue=UnsignedNumber paddingBottomUnit=UnitEnum)? & ("padding-left" paddingLeftValue=UnsignedNumber
+	//	paddingLeftUnit=UnitEnum)? & ("padding-right" paddingRightValue=UnsignedNumber paddingRightUnit=UnitEnum)? &
+	//	("margin-top" marginTopValue=UnsignedNumber marginTopUnit=UnitEnum)? & ("margin-bottom"
+	//	marginBottomValue=UnsignedNumber marginBottomUnit=UnitEnum)? & ("margin-left" marginLeftValue=UnsignedNumber
+	//	marginLeftUnit=UnitEnum)? & ("margin-right" marginRightValue=UnsignedNumber marginRightUnit=UnitEnum)?) "}";
+	public MediaStyleElements getMediaStyleAccess() {
+		return pMediaStyle;
+	}
+	
+	public ParserRule getMediaStyleRule() {
+		return getMediaStyleAccess().getRule();
+	}
+
+	//enum TextAlignEnum:
+	//	LEFT="left" | CENTER="center" | RIGHT="right";
+	public TextAlignEnumElements getTextAlignEnumAccess() {
+		return unknownRuleTextAlignEnum;
+	}
+	
+	public EnumRule getTextAlignEnumRule() {
+		return getTextAlignEnumAccess().getRule();
+	}
+
+	//SomeFormat:
+	//	UomoFormat | NumberFormat | CurrencyFormat | DateFormat | DateTimeFormat | TimeFormat;
+	public SomeFormatElements getSomeFormatAccess() {
+		return pSomeFormat;
+	}
+	
+	public ParserRule getSomeFormatRule() {
+		return getSomeFormatAccess().getRule();
+	}
+
+	//UomoFormat:
+	//	"uomo" name=ID "{" "ui" ui_pattern=STRING "report" report_pattern=STRING "textalign" textalign=TextAlignEnum "}";
+	public UomoFormatElements getUomoFormatAccess() {
+		return pUomoFormat;
+	}
+	
+	public ParserRule getUomoFormatRule() {
+		return getUomoFormatAccess().getRule();
+	}
+
+	//NumberFormat:
+	//	"number" name=ID "{" "ui" ui_pattern=STRING "report" report_category=NumberFormatCategoryEnum report_pattern=STRING
+	//	"textalign" textalign=TextAlignEnum "}";
+	public NumberFormatElements getNumberFormatAccess() {
+		return pNumberFormat;
+	}
+	
+	public ParserRule getNumberFormatRule() {
+		return getNumberFormatAccess().getRule();
+	}
+
+	//enum NumberFormatCategoryEnum:
+	//	UNFORMATTED="unformatted" | GENERAL_NUMBER="general-number" | FIXED="fixed" | PERCENT="percent" |
+	//	SCIENTIFIC="scientific" | CUSTOM="custom";
+	public NumberFormatCategoryEnumElements getNumberFormatCategoryEnumAccess() {
+		return unknownRuleNumberFormatCategoryEnum;
+	}
+	
+	public EnumRule getNumberFormatCategoryEnumRule() {
+		return getNumberFormatCategoryEnumAccess().getRule();
+	}
+
+	//CurrencyFormat:
+	//	"currency" name=ID "{" "ui" ui_pattern=STRING "report" report_category=CurrencyFormatCategoryEnum
+	//	report_pattern=STRING "textalign" textalign=TextAlignEnum "}";
+	public CurrencyFormatElements getCurrencyFormatAccess() {
+		return pCurrencyFormat;
+	}
+	
+	public ParserRule getCurrencyFormatRule() {
+		return getCurrencyFormatAccess().getRule();
+	}
+
+	//enum CurrencyFormatCategoryEnum:
+	//	UNFORMATTED="unformatted" | CURRENCY="currency" | CUSTOM="custom";
+	public CurrencyFormatCategoryEnumElements getCurrencyFormatCategoryEnumAccess() {
+		return unknownRuleCurrencyFormatCategoryEnum;
+	}
+	
+	public EnumRule getCurrencyFormatCategoryEnumRule() {
+		return getCurrencyFormatCategoryEnumAccess().getRule();
+	}
+
+	//DateFormat:
+	//	"date" name=ID "{" "ui" ui_pattern=STRING "report" report_category=DateFormatCategoryEnum report_pattern=STRING
+	//	"textalign" textalign=TextAlignEnum "}";
+	public DateFormatElements getDateFormatAccess() {
+		return pDateFormat;
+	}
+	
+	public ParserRule getDateFormatRule() {
+		return getDateFormatAccess().getRule();
+	}
+
+	//enum DateFormatCategoryEnum:
+	//	CUSTOM="custom";
+	public DateFormatCategoryEnumElements getDateFormatCategoryEnumAccess() {
+		return unknownRuleDateFormatCategoryEnum;
+	}
+	
+	public EnumRule getDateFormatCategoryEnumRule() {
+		return getDateFormatCategoryEnumAccess().getRule();
+	}
+
+	//DateTimeFormat:
+	//	"date+time" name=ID "{" "ui" ui_pattern=STRING "report" report_category=DateTimeFormatCategoryEnum
+	//	report_pattern=STRING "textalign" textalign=TextAlignEnum "}";
+	public DateTimeFormatElements getDateTimeFormatAccess() {
+		return pDateTimeFormat;
+	}
+	
+	public ParserRule getDateTimeFormatRule() {
+		return getDateTimeFormatAccess().getRule();
+	}
+
+	//enum DateTimeFormatCategoryEnum:
+	//	CUSTOM="custom";
+	public DateTimeFormatCategoryEnumElements getDateTimeFormatCategoryEnumAccess() {
+		return unknownRuleDateTimeFormatCategoryEnum;
+	}
+	
+	public EnumRule getDateTimeFormatCategoryEnumRule() {
+		return getDateTimeFormatCategoryEnumAccess().getRule();
+	}
+
+	//TimeFormat:
+	//	"time" name=ID "{" "ui" ui_pattern=STRING "report" report_category=TimeFormatCategoryEnum report_pattern=STRING
+	//	"textalign" textalign=TextAlignEnum "}";
+	public TimeFormatElements getTimeFormatAccess() {
+		return pTimeFormat;
+	}
+	
+	public ParserRule getTimeFormatRule() {
+		return getTimeFormatAccess().getRule();
+	}
+
+	//enum TimeFormatCategoryEnum:
+	//	CUSTOM="custom";
+	public TimeFormatCategoryEnumElements getTimeFormatCategoryEnumAccess() {
+		return unknownRuleTimeFormatCategoryEnum;
+	}
+	
+	public EnumRule getTimeFormatCategoryEnumRule() {
+		return getTimeFormatCategoryEnumAccess().getRule();
+	}
+
+	//Report:
+	//	"report" name=ID (description?="described by" descriptionValue=TRANSLATABLESTRING)? ("toolbar"
+	//	toolbar=[action::ActionToolbar])? "{" "datamart" datamartRef=[datamart::DatamartDefinition] "rendering"
+	//	rendering=RenderingEnum ("externalCssURI" externalCssURI=STRING ("from bundle" externalCssURIBundle=STRING)?)?
+	//	"pagetemplate" pageTemplate=[PageTemplate] "media" media=[Media] design=ReportDesign "}";
+	public ReportElements getReportAccess() {
+		return pReport;
+	}
+	
+	public ParserRule getReportRule() {
+		return getReportAccess().getRule();
+	}
+
+	//enum RenderingEnum:
+	//	HTML="html" | PDF="pdf";
+	public RenderingEnumElements getRenderingEnumAccess() {
+		return unknownRuleRenderingEnum;
+	}
+	
+	public EnumRule getRenderingEnumRule() {
+		return getRenderingEnumAccess().getRule();
+	}
+
+	//ReportDesign:
+	//	ReportDesignFile | ReportDesignTemplate;
+	public ReportDesignElements getReportDesignAccess() {
+		return pReportDesign;
+	}
+	
+	public ParserRule getReportDesignRule() {
+		return getReportDesignAccess().getRule();
+	}
+
+	//ReportDesignFile:
+	//	"file" name=STRING;
+	public ReportDesignFileElements getReportDesignFileAccess() {
+		return pReportDesignFile;
+	}
+	
+	public ParserRule getReportDesignFileRule() {
+		return getReportDesignFileAccess().getRule();
+	}
+
+	//ReportDesignTemplate:
+	//	"template" "{" ("described by" description=STRING)? header=PageHeader? detail=PageDetail footer=PageFooter? "}";
+	public ReportDesignTemplateElements getReportDesignTemplateAccess() {
+		return pReportDesignTemplate;
+	}
+	
+	public ParserRule getReportDesignTemplateRule() {
+		return getReportDesignTemplateAccess().getRule();
+	}
+
+	//Container:
+	//	PageHeader | PageDetail | PageFooter | GridCell;
+	public ContainerElements getContainerAccess() {
+		return pContainer;
+	}
+	
+	public ParserRule getContainerRule() {
+		return getContainerAccess().getRule();
+	}
+
+	//PageHeader:
+	//	{PageHeader} "header" "{" showOnFirst?="showOnFirst"? "height" heightValue=UnsignedNumber heightUnit=UnitEnum
+	//	elements+=Element "}";
+	public PageHeaderElements getPageHeaderAccess() {
+		return pPageHeader;
+	}
+	
+	public ParserRule getPageHeaderRule() {
+		return getPageHeaderAccess().getRule();
+	}
+
+	//PageDetail:
+	//	{PageDetail} "detail" "{" elements+=Element* "}";
+	public PageDetailElements getPageDetailAccess() {
+		return pPageDetail;
+	}
+	
+	public ParserRule getPageDetailRule() {
+		return getPageDetailAccess().getRule();
+	}
+
+	//PageFooter:
+	//	{PageFooter} "footer" "{" showOnLast?="showOnLast"? "height" heightValue=UnsignedNumber heightUnit=UnitEnum
+	//	elements+=Element "}";
+	public PageFooterElements getPageFooterAccess() {
+		return pPageFooter;
+	}
+	
+	public ParserRule getPageFooterRule() {
+		return getPageFooterAccess().getRule();
+	}
+
+	/// * | TableDsl | ChartDsl* / Element:
+	//	Title | SubTitle | SubSubTitle | Label | Text | AutoText | Image | DatamartTable | DatamartTableProperty | Grid;
+	public ElementElements getElementAccess() {
+		return pElement;
+	}
+	
+	public ParserRule getElementRule() {
+		return getElementAccess().getRule();
+	}
+
+	//Grid:
+	//	{Grid} "grid" ("as" name=ID)? "{" rows+=GridRow* "}";
+	public GridElements getGridAccess() {
+		return pGrid;
+	}
+	
+	public ParserRule getGridRule() {
+		return getGridAccess().getRule();
+	}
+
+	//GridRow:
+	//	{GridRow} "row" ("as" name=ID)? ("style" style=[Style])? "{" cells+=GridCell* "}";
+	public GridRowElements getGridRowAccess() {
+		return pGridRow;
+	}
+	
+	public ParserRule getGridRowRule() {
+		return getGridRowAccess().getRule();
+	}
+
+	//GridCell:
+	//	{GridCell} "cell" ("as" name=ID)? ("columnspan" columnspan=INT)? "{" elements+=Element* "}";
+	public GridCellElements getGridCellAccess() {
+		return pGridCell;
+	}
+	
+	public ParserRule getGridCellRule() {
+		return getGridCellAccess().getRule();
+	}
+
+	//DatamartTable:
+	//	"table" / *datamartRef=[datamart::DatamartDefinition] ('as' name=ID)?* / ("style" style=[Style])? "{"
+	//	(detailheader?="detailheader" ("style" headerstyle=[Style])?)? (detailfooter?="detailfooter" ("style"
+	//	footerstyle=[Style])?)? groups+=DatamartTableGroup* detail=DatamartTableDetail "}";
+	public DatamartTableElements getDatamartTableAccess() {
+		return pDatamartTable;
+	}
+	
+	public ParserRule getDatamartTableRule() {
+		return getDatamartTableAccess().getRule();
+	}
+
+	//DatamartTableGroup:
+	//	"group" name=ID "by" groupingRef=[datamart::DatamartProperty] "{" header=DatamartTableGroupHeader?
+	//	(detailheader?="detailheader" ("style" headerstyle=[Style])?)? (detailfooter?="detailfooter" ("style"
+	//	footerstyle=[Style])?)? footer=DatamartTableGroupFooter? "}";
+	public DatamartTableGroupElements getDatamartTableGroupAccess() {
+		return pDatamartTableGroup;
+	}
+	
+	public ParserRule getDatamartTableGroupRule() {
+		return getDatamartTableGroupAccess().getRule();
+	}
+
+	//DatamartTableGroupHeader:
+	//	{DatamartTableGroupHeader} "header" ("style" style=[Style])? "{" rows+=GridRow* "}";
+	public DatamartTableGroupHeaderElements getDatamartTableGroupHeaderAccess() {
+		return pDatamartTableGroupHeader;
+	}
+	
+	public ParserRule getDatamartTableGroupHeaderRule() {
+		return getDatamartTableGroupHeaderAccess().getRule();
+	}
+
+	//DatamartTableGroupFooter:
+	//	{DatamartTableGroupFooter} "footer" ("style" style=[Style])? "{" rows+=GridRow* "}";
+	public DatamartTableGroupFooterElements getDatamartTableGroupFooterAccess() {
+		return pDatamartTableGroupFooter;
+	}
+	
+	public ParserRule getDatamartTableGroupFooterRule() {
+		return getDatamartTableGroupFooterAccess().getRule();
+	}
+
+	//DatamartTableDetail:
+	//	{DatamartTableDetail} "details" ("style" style=[Style])? ("all" | "{" columnFormatters+=DatamartTableProperty* "}");
+	public DatamartTableDetailElements getDatamartTableDetailAccess() {
+		return pDatamartTableDetail;
+	}
+	
+	public ParserRule getDatamartTableDetailRule() {
+		return getDatamartTableDetailAccess().getRule();
+	}
+
+	/// * !!! copy from tabledsl ... * / DatamartTableProperty:
+	//	column=TableValueElement (("style" style=[Style])? & (hasImage?="image" image=TableImage)? & ("intervals"
+	//	hideLabelInterval?="hidelabel"? "{" intervals+=TableInterval* "}")? & ("lookups" hideLabelLookup?="hidelabel"? "{"
+	//	lookups+=TableLookup* "}")?);
+	public DatamartTablePropertyElements getDatamartTablePropertyAccess() {
+		return pDatamartTableProperty;
+	}
+	
+	public ParserRule getDatamartTablePropertyRule() {
+		return getDatamartTablePropertyAccess().getRule();
+	}
+
+	//enum PureAggregationTypeEnum:
+	//	COUNT="count" | RUNNINGCOUNT="running-count";
+	public PureAggregationTypeEnumElements getPureAggregationTypeEnumAccess() {
+		return unknownRulePureAggregationTypeEnum;
+	}
+	
+	public EnumRule getPureAggregationTypeEnumRule() {
+		return getPureAggregationTypeEnumAccess().getRule();
+	}
+
+	//enum UnaryAggregationTypeEnum:
+	//	SUM="sum" | AVE="average" | MIN="minimum" | MAX="maximum" | RUNNINGSUM="running-sum";
+	public UnaryAggregationTypeEnumElements getUnaryAggregationTypeEnumAccess() {
+		return unknownRuleUnaryAggregationTypeEnum;
+	}
+	
+	public EnumRule getUnaryAggregationTypeEnumRule() {
+		return getUnaryAggregationTypeEnumAccess().getRule();
+	}
+
+	//enum BinaryAggregationTypeEnum:
+	//	DIV="divide";
+	public BinaryAggregationTypeEnumElements getBinaryAggregationTypeEnumAccess() {
+		return unknownRuleBinaryAggregationTypeEnum;
+	}
+	
+	public EnumRule getBinaryAggregationTypeEnumRule() {
+		return getBinaryAggregationTypeEnumAccess().getRule();
+	}
+
+	//enum MultipleAggregationTypeEnum:
+	//	CONCAT="concat";
+	public MultipleAggregationTypeEnumElements getMultipleAggregationTypeEnumAccess() {
+		return unknownRuleMultipleAggregationTypeEnum;
+	}
+	
+	public EnumRule getMultipleAggregationTypeEnumRule() {
+		return getMultipleAggregationTypeEnumAccess().getRule();
+	}
+
+	//TableFormatter:
+	//	{TableFormatter} "formatter" format=STRING;
+	public TableFormatterElements getTableFormatterAccess() {
+		return pTableFormatter;
+	}
+	
+	public ParserRule getTableFormatterRule() {
+		return getTableFormatterAccess().getRule();
+	}
+
+	//TableImage:
+	//	{TableImage} "path" imagePathPattern=STRING (hasParameter?="dynamic"? & hideImageLabel?="hidelabel"? &
+	//	(resize?="resize" resizeString=STRING)?);
+	public TableImageElements getTableImageAccess() {
+		return pTableImage;
+	}
+	
+	public ParserRule getTableImageRule() {
+		return getTableImageAccess().getRule();
+	}
+
+	//TableValueElement:
+	//	TableProperty | TableAggregation;
+	public TableValueElementElements getTableValueElementAccess() {
+		return pTableValueElement;
+	}
+	
+	public ParserRule getTableValueElementRule() {
+		return getTableValueElementAccess().getRule();
+	}
+
+	/// *|TableBinaryAggregation|TableMultipleAggregation* /
+	/// *TableMeasure|TableDerived|TableHierarchy|TableOrdinal|TableColumn|TableTask* / TableProperty:
+	//	"property" valueRef=[datamart::DatamartProperty];
+	public TablePropertyElements getTablePropertyAccess() {
+		return pTableProperty;
+	}
+	
+	public ParserRule getTablePropertyRule() {
+		return getTablePropertyAccess().getRule();
+	}
+
+	//TableAggregation:
+	//	"aggregate" aggregation=TableBaseAggregation (("on-group" onGroup=[DatamartTableGroup])? & ("title"
+	//	text=TRANSLATABLESTRING)?);
+	public TableAggregationElements getTableAggregationAccess() {
+		return pTableAggregation;
+	}
+	
+	public ParserRule getTableAggregationRule() {
+		return getTableAggregationAccess().getRule();
+	}
+
+	//TableBaseAggregation:
+	//	TablePureAggregation | TableUnaryAggregation | TableMultipleAggregation | TableBinaryAggregation;
+	public TableBaseAggregationElements getTableBaseAggregationAccess() {
+		return pTableBaseAggregation;
+	}
+	
+	public ParserRule getTableBaseAggregationRule() {
+		return getTableBaseAggregationAccess().getRule();
+	}
+
+	//TablePureAggregation:
+	//	aggregation=PureAggregationTypeEnum;
+	public TablePureAggregationElements getTablePureAggregationAccess() {
+		return pTablePureAggregation;
+	}
+	
+	public ParserRule getTablePureAggregationRule() {
+		return getTablePureAggregationAccess().getRule();
+	}
+
+	//TableUnaryAggregation:
+	//	aggregation=UnaryAggregationTypeEnum "of" valueRefs+=[datamart::DatamartProperty];
+	public TableUnaryAggregationElements getTableUnaryAggregationAccess() {
+		return pTableUnaryAggregation;
+	}
+	
+	public ParserRule getTableUnaryAggregationRule() {
+		return getTableUnaryAggregationAccess().getRule();
+	}
+
+	//TableMultipleAggregation:
+	//	aggregation=MultipleAggregationTypeEnum "of" "(" valueRefs+=[datamart::DatamartProperty]* ")";
+	public TableMultipleAggregationElements getTableMultipleAggregationAccess() {
+		return pTableMultipleAggregation;
+	}
+	
+	public ParserRule getTableMultipleAggregationRule() {
+		return getTableMultipleAggregationAccess().getRule();
+	}
+
+	//TableBinaryAggregation:
+	//	aggregation=BinaryAggregationTypeEnum "of" "(" valueRefs+=[datamart::DatamartProperty]
+	//	valueRefs+=[datamart::DatamartProperty] ")";
+	public TableBinaryAggregationElements getTableBinaryAggregationAccess() {
+		return pTableBinaryAggregation;
+	}
+	
+	public ParserRule getTableBinaryAggregationRule() {
+		return getTableBinaryAggregationAccess().getRule();
+	}
+
+	//TableInterval:
+	//	TableNumberInterval | TableDateDayInterval;
+	public TableIntervalElements getTableIntervalAccess() {
+		return pTableInterval;
+	}
+	
+	public ParserRule getTableIntervalRule() {
+		return getTableIntervalAccess().getRule();
+	}
+
+	//TableNumberInterval:
+	//	{TableNumberInterval} "up to" numberIntervalValue=SignedNumber numberRange=TableRangeElement;
+	public TableNumberIntervalElements getTableNumberIntervalAccess() {
+		return pTableNumberInterval;
+	}
+	
+	public ParserRule getTableNumberIntervalRule() {
+		return getTableNumberIntervalAccess().getRule();
+	}
+
+	//TableDateDayInterval:
+	//	{TableDateDayInterval} "days in past" dateIntervalValue=SignedNumber dateRange=TableRangeElement;
+	public TableDateDayIntervalElements getTableDateDayIntervalAccess() {
+		return pTableDateDayInterval;
+	}
+	
+	public ParserRule getTableDateDayIntervalRule() {
+		return getTableDateDayIntervalAccess().getRule();
+	}
+
+	//TableLookup:
+	//	TableNumberLookup | TableStringLookup | TableDateDayLookup;
+	public TableLookupElements getTableLookupAccess() {
+		return pTableLookup;
+	}
+	
+	public ParserRule getTableLookupRule() {
+		return getTableLookupAccess().getRule();
+	}
+
+	//TableNumberLookup:
+	//	{TableNumberLookup} "number" lookupValue=SignedNumber discrete=TableRangeElement;
+	public TableNumberLookupElements getTableNumberLookupAccess() {
+		return pTableNumberLookup;
+	}
+	
+	public ParserRule getTableNumberLookupRule() {
+		return getTableNumberLookupAccess().getRule();
+	}
+
+	//TableStringLookup:
+	//	{TableStringLookup} "string" lookupValue=STRING discrete=TableRangeElement;
+	public TableStringLookupElements getTableStringLookupAccess() {
+		return pTableStringLookup;
+	}
+	
+	public ParserRule getTableStringLookupRule() {
+		return getTableStringLookupAccess().getRule();
+	}
+
+	//TableDateDayLookup:
+	//	{TableDateDayLookup} "days in past" lookupValue=SignedNumber discrete=TableRangeElement;
+	public TableDateDayLookupElements getTableDateDayLookupAccess() {
+		return pTableDateDayLookup;
+	}
+	
+	public ParserRule getTableDateDayLookupRule() {
+		return getTableDateDayLookupAccess().getRule();
+	}
+
+	//TableRangeElement:
+	//	TableTextColor | TableCellColor | TableIcon | TableTrend;
+	public TableRangeElementElements getTableRangeElementAccess() {
+		return pTableRangeElement;
+	}
+	
+	public ParserRule getTableRangeElementRule() {
+		return getTableRangeElementAccess().getRule();
+	}
+
+	//SignedNumber returns ecore::EDouble:
+	//	"-"? Number;
+	public SignedNumberElements getSignedNumberAccess() {
+		return pSignedNumber;
+	}
+	
+	public ParserRule getSignedNumberRule() {
+		return getSignedNumberAccess().getRule();
+	}
+
+	//TableTextColor:
+	//	"textcolor" color=[Color];
+	public TableTextColorElements getTableTextColorAccess() {
+		return pTableTextColor;
+	}
+	
+	public ParserRule getTableTextColorRule() {
+		return getTableTextColorAccess().getRule();
+	}
+
+	//TableCellColor:
+	//	"cellcolor" color=[Color];
+	public TableCellColorElements getTableCellColorAccess() {
+		return pTableCellColor;
+	}
+	
+	public ParserRule getTableCellColorRule() {
+		return getTableCellColorAccess().getRule();
+	}
+
+	//TableIcon:
+	//	"icon" icon=STRING;
+	public TableIconElements getTableIconAccess() {
+		return pTableIcon;
+	}
+	
+	public ParserRule getTableIconRule() {
+		return getTableIconAccess().getRule();
+	}
+
+	//TableTrend:
+	//	"trend" icon=TrendIconEnum;
+	public TableTrendElements getTableTrendAccess() {
+		return pTableTrend;
+	}
+	
+	public ParserRule getTableTrendRule() {
+		return getTableTrendAccess().getRule();
+	}
+
+	//enum TrendIconEnum:
+	//	RISING="rising" | BADRISING="bad-rising" | SLOPING="sloping" | GOODSLOPING="good-sloping" | STAGNATING="stagnating";
+	public TrendIconEnumElements getTrendIconEnumAccess() {
+		return unknownRuleTrendIconEnum;
+	}
+	
+	public EnumRule getTrendIconEnumRule() {
+		return getTrendIconEnumAccess().getRule();
+	}
+
+	/// * ... copy from tabledsl !!! * / //ChartDsl:
+	////	'chart' chartRef=[chart::Chart] ('as' name=ID)?;
+	////
+	//Title:
+	//	{Title} "title" text=TRANSLATABLESTRING ("style" style=[Style])?;
+	public TitleElements getTitleAccess() {
+		return pTitle;
+	}
+	
+	public ParserRule getTitleRule() {
+		return getTitleAccess().getRule();
+	}
+
+	//SubTitle:
+	//	{SubTitle} "subtitle" text=TRANSLATABLESTRING ("style" style=[Style])?;
+	public SubTitleElements getSubTitleAccess() {
+		return pSubTitle;
+	}
+	
+	public ParserRule getSubTitleRule() {
+		return getSubTitleAccess().getRule();
+	}
+
+	//SubSubTitle:
+	//	{SubSubTitle} "subsubtitle" text=TRANSLATABLESTRING ("style" style=[Style])?;
+	public SubSubTitleElements getSubSubTitleAccess() {
+		return pSubSubTitle;
+	}
+	
+	public ParserRule getSubSubTitleRule() {
+		return getSubSubTitleAccess().getRule();
+	}
+
+	//Label:
+	//	{Label} "label" text=TRANSLATABLESTRING ("style" style=[Style])?;
+	public LabelElements getLabelAccess() {
+		return pLabel;
+	}
+	
+	public ParserRule getLabelRule() {
+		return getLabelAccess().getRule();
+	}
+
+	//Text:
+	//	{Text} "text" text=TRANSLATABLESTRING ("style" style=[Style])?;
+	public TextElements getTextAccess() {
+		return pText;
+	}
+	
+	public ParserRule getTextRule() {
+		return getTextAccess().getRule();
+	}
+
+	//AutoText:
+	//	"autotext" type=AutoTextEnum ("style" style=[Style])?;
+	public AutoTextElements getAutoTextAccess() {
+		return pAutoText;
+	}
+	
+	public ParserRule getAutoTextRule() {
+		return getAutoTextAccess().getRule();
+	}
+
+	//enum BorderTypeEnum:
+	//	NONE="none" | SOLID="solid" | DOTTED="dotted" | DASHED="dashed" | DOUBLE="double" | GROOVE="groove" | RIDGE="ridge" |
+	//	INSET="inset" | OUTSET="outset";
+	public BorderTypeEnumElements getBorderTypeEnumAccess() {
+		return unknownRuleBorderTypeEnum;
+	}
+	
+	public EnumRule getBorderTypeEnumRule() {
+		return getBorderTypeEnumAccess().getRule();
+	}
+
+	//enum AutoTextEnum:
+	//	PAGE_NUMBER="page-number" | TOTAL_PAGE="total-page" | PAGE_NUMBER_UNFILTERED="page-number-unfiltered" |
+	//	TOTAL_PAGE_UNFILTERED="total-page-unfiltered" | PAGE_VARIABLE="page-variable";
+	public AutoTextEnumElements getAutoTextEnumAccess() {
+		return unknownRuleAutoTextEnum;
+	}
+	
+	public EnumRule getAutoTextEnumRule() {
+		return getAutoTextEnumAccess().getRule();
+	}
+
+	//Image:
+	//	"image" size=ImageSizeEnum ("scale" scale=UnsignedNumber)? sourceType=ImageSourceEnum filename=STRING;
+	public ImageElements getImageAccess() {
+		return pImage;
+	}
+	
+	public ParserRule getImageRule() {
+		return getImageAccess().getRule();
+	}
+
+	//enum ImageSizeEnum:
+	//	SIZE_TO_IMAGE="size-to-image" | SCALE_TO_ITEM="scale-to-item" | CLIP="clip";
+	public ImageSizeEnumElements getImageSizeEnumAccess() {
+		return unknownRuleImageSizeEnum;
+	}
+	
+	public EnumRule getImageSizeEnumRule() {
+		return getImageSizeEnumAccess().getRule();
+	}
+
+	//enum ImageSourceEnum:
+	//	FILE="file" | URL="url" | EMBED="embed";
+	public ImageSourceEnumElements getImageSourceEnumAccess() {
+		return unknownRuleImageSourceEnum;
+	}
+	
+	public EnumRule getImageSourceEnumRule() {
+		return getImageSourceEnumAccess().getRule();
+	}
+
+	//ReportImport returns types::LImport:
+	//	"import" importedNamespace=ReportQualifiedNameWithWildCard;
+	public ReportImportElements getReportImportAccess() {
+		return pReportImport;
+	}
+	
+	public ParserRule getReportImportRule() {
+		return getReportImportAccess().getRule();
+	}
+
+	//ReportQualifiedNameWithWildCard:
+	//	QualifiedName ("." "*")?;
+	public ReportQualifiedNameWithWildCardElements getReportQualifiedNameWithWildCardAccess() {
+		return pReportQualifiedNameWithWildCard;
+	}
+	
+	public ParserRule getReportQualifiedNameWithWildCardRule() {
+		return getReportQualifiedNameWithWildCardAccess().getRule();
+	}
+
+	//TRANSLATABLESTRING:
+	//	STRING;
+	public TRANSLATABLESTRINGElements getTRANSLATABLESTRINGAccess() {
+		return pTRANSLATABLESTRING;
+	}
+	
+	public ParserRule getTRANSLATABLESTRINGRule() {
+		return getTRANSLATABLESTRINGAccess().getRule();
+	}
+
+	//XAnnotation:
+	//	{XAnnotation} "@" annotationType=[types::JvmAnnotationType|QualifiedName] ("("
+	//	(elementValuePairs+=XAnnotationElementValuePair ("," elementValuePairs+=XAnnotationElementValuePair)* |
+	//	value=XAnnotationElementValueOrCommaList)? ")")?;
+	public XbaseWithAnnotationsGrammarAccess.XAnnotationElements getXAnnotationAccess() {
+		return gaXbaseWithAnnotations.getXAnnotationAccess();
+	}
+	
+	public ParserRule getXAnnotationRule() {
+		return getXAnnotationAccess().getRule();
+	}
+
+	//XAnnotationElementValuePair:
+	//	=> (element=[types::JvmOperation|ValidID] "=") value=XAnnotationElementValue;
+	public XbaseWithAnnotationsGrammarAccess.XAnnotationElementValuePairElements getXAnnotationElementValuePairAccess() {
+		return gaXbaseWithAnnotations.getXAnnotationElementValuePairAccess();
+	}
+	
+	public ParserRule getXAnnotationElementValuePairRule() {
+		return getXAnnotationElementValuePairAccess().getRule();
+	}
+
+	//XAnnotationElementValueOrCommaList returns xbase::XExpression:
+	//	=> ({xbase::XListLiteral} "#" "[") (elements+=XAnnotationOrExpression ("," elements+=XAnnotationOrExpression)*)? "]"
+	//	| XAnnotationOrExpression ({xbase::XListLiteral.elements+=current} ("," elements+=XAnnotationOrExpression)+)?;
+	public XbaseWithAnnotationsGrammarAccess.XAnnotationElementValueOrCommaListElements getXAnnotationElementValueOrCommaListAccess() {
+		return gaXbaseWithAnnotations.getXAnnotationElementValueOrCommaListAccess();
+	}
+	
+	public ParserRule getXAnnotationElementValueOrCommaListRule() {
+		return getXAnnotationElementValueOrCommaListAccess().getRule();
+	}
+
+	//XAnnotationElementValue returns xbase::XExpression:
+	//	=> ({xbase::XListLiteral} "#" "[") (elements+=XAnnotationOrExpression ("," elements+=XAnnotationOrExpression)*)? "]"
+	//	| XAnnotationOrExpression;
+	public XbaseWithAnnotationsGrammarAccess.XAnnotationElementValueElements getXAnnotationElementValueAccess() {
+		return gaXbaseWithAnnotations.getXAnnotationElementValueAccess();
+	}
+	
+	public ParserRule getXAnnotationElementValueRule() {
+		return getXAnnotationElementValueAccess().getRule();
+	}
+
+	//XAnnotationOrExpression returns xbase::XExpression:
+	//	XAnnotation | XExpression;
+	public XbaseWithAnnotationsGrammarAccess.XAnnotationOrExpressionElements getXAnnotationOrExpressionAccess() {
+		return gaXbaseWithAnnotations.getXAnnotationOrExpressionAccess();
+	}
+	
+	public ParserRule getXAnnotationOrExpressionRule() {
+		return getXAnnotationOrExpressionAccess().getRule();
+	}
+
+	//XExpression:
+	//	XAssignment;
+	public XbaseGrammarAccess.XExpressionElements getXExpressionAccess() {
+		return gaXbaseWithAnnotations.getXExpressionAccess();
+	}
+	
+	public ParserRule getXExpressionRule() {
+		return getXExpressionAccess().getRule();
+	}
+
+	//XAssignment returns 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();
+	}
+	
+	public ParserRule getXAssignmentRule() {
+		return getXAssignmentAccess().getRule();
+	}
+
+	//OpSingleAssign:
+	//	"=";
+	public XbaseGrammarAccess.OpSingleAssignElements getOpSingleAssignAccess() {
+		return gaXbaseWithAnnotations.getOpSingleAssignAccess();
+	}
+	
+	public ParserRule getOpSingleAssignRule() {
+		return getOpSingleAssignAccess().getRule();
+	}
+
+	//OpMultiAssign:
+	//	"+=" | "-=" | "*=" | "/=" | "%=" | "<" "<" "=" | ">" ">"? ">=";
+	public XbaseGrammarAccess.OpMultiAssignElements getOpMultiAssignAccess() {
+		return gaXbaseWithAnnotations.getOpMultiAssignAccess();
+	}
+	
+	public ParserRule getOpMultiAssignRule() {
+		return getOpMultiAssignAccess().getRule();
+	}
+
+	//XOrExpression returns XExpression:
+	//	XAndExpression (=> ({XBinaryOperation.leftOperand=current} feature=[types::JvmIdentifiableElement|OpOr])
+	//	rightOperand=XAndExpression)*;
+	public XbaseGrammarAccess.XOrExpressionElements getXOrExpressionAccess() {
+		return gaXbaseWithAnnotations.getXOrExpressionAccess();
+	}
+	
+	public ParserRule getXOrExpressionRule() {
+		return getXOrExpressionAccess().getRule();
+	}
+
+	//OpOr:
+	//	"||";
+	public XbaseGrammarAccess.OpOrElements getOpOrAccess() {
+		return gaXbaseWithAnnotations.getOpOrAccess();
+	}
+	
+	public ParserRule getOpOrRule() {
+		return getOpOrAccess().getRule();
+	}
+
+	//XAndExpression returns XExpression:
+	//	XEqualityExpression (=> ({XBinaryOperation.leftOperand=current} feature=[types::JvmIdentifiableElement|OpAnd])
+	//	rightOperand=XEqualityExpression)*;
+	public XbaseGrammarAccess.XAndExpressionElements getXAndExpressionAccess() {
+		return gaXbaseWithAnnotations.getXAndExpressionAccess();
+	}
+	
+	public ParserRule getXAndExpressionRule() {
+		return getXAndExpressionAccess().getRule();
+	}
+
+	//OpAnd:
+	//	"&&";
+	public XbaseGrammarAccess.OpAndElements getOpAndAccess() {
+		return gaXbaseWithAnnotations.getOpAndAccess();
+	}
+	
+	public ParserRule getOpAndRule() {
+		return getOpAndAccess().getRule();
+	}
+
+	//XEqualityExpression returns XExpression:
+	//	XRelationalExpression (=> ({XBinaryOperation.leftOperand=current} feature=[types::JvmIdentifiableElement|OpEquality])
+	//	rightOperand=XRelationalExpression)*;
+	public XbaseGrammarAccess.XEqualityExpressionElements getXEqualityExpressionAccess() {
+		return gaXbaseWithAnnotations.getXEqualityExpressionAccess();
+	}
+	
+	public ParserRule getXEqualityExpressionRule() {
+		return getXEqualityExpressionAccess().getRule();
+	}
+
+	//OpEquality:
+	//	"==" | "!=" | "===" | "!==";
+	public XbaseGrammarAccess.OpEqualityElements getOpEqualityAccess() {
+		return gaXbaseWithAnnotations.getOpEqualityAccess();
+	}
+	
+	public ParserRule getOpEqualityRule() {
+		return getOpEqualityAccess().getRule();
+	}
+
+	//XRelationalExpression returns XExpression:
+	//	XOtherOperatorExpression (=> ({XInstanceOfExpression.expression=current} "instanceof") type=JvmTypeReference | =>
+	//	({XBinaryOperation.leftOperand=current} feature=[types::JvmIdentifiableElement|OpCompare])
+	//	rightOperand=XOtherOperatorExpression)*;
+	public XbaseGrammarAccess.XRelationalExpressionElements getXRelationalExpressionAccess() {
+		return gaXbaseWithAnnotations.getXRelationalExpressionAccess();
+	}
+	
+	public ParserRule getXRelationalExpressionRule() {
+		return getXRelationalExpressionAccess().getRule();
+	}
+
+	//OpCompare:
+	//	">=" | "<" "=" | ">" | "<";
+	public XbaseGrammarAccess.OpCompareElements getOpCompareAccess() {
+		return gaXbaseWithAnnotations.getOpCompareAccess();
+	}
+	
+	public ParserRule getOpCompareRule() {
+		return getOpCompareAccess().getRule();
+	}
+
+	//XOtherOperatorExpression returns XExpression:
+	//	XAdditiveExpression (=> ({XBinaryOperation.leftOperand=current} feature=[types::JvmIdentifiableElement|OpOther])
+	//	rightOperand=XAdditiveExpression)*;
+	public XbaseGrammarAccess.XOtherOperatorExpressionElements getXOtherOperatorExpressionAccess() {
+		return gaXbaseWithAnnotations.getXOtherOperatorExpressionAccess();
+	}
+	
+	public ParserRule getXOtherOperatorExpressionRule() {
+		return getXOtherOperatorExpressionAccess().getRule();
+	}
+
+	//OpOther:
+	//	"->" | "..<" | ">" ".." | ".." | "=>" | ">" (=> (">" ">") | ">") | "<" (=> ("<" "<") | "<" | "=>") | "<>" | "?:";
+	public XbaseGrammarAccess.OpOtherElements getOpOtherAccess() {
+		return gaXbaseWithAnnotations.getOpOtherAccess();
+	}
+	
+	public ParserRule getOpOtherRule() {
+		return getOpOtherAccess().getRule();
+	}
+
+	//XAdditiveExpression returns XExpression:
+	//	XMultiplicativeExpression (=> ({XBinaryOperation.leftOperand=current} feature=[types::JvmIdentifiableElement|OpAdd])
+	//	rightOperand=XMultiplicativeExpression)*;
+	public XbaseGrammarAccess.XAdditiveExpressionElements getXAdditiveExpressionAccess() {
+		return gaXbaseWithAnnotations.getXAdditiveExpressionAccess();
+	}
+	
+	public ParserRule getXAdditiveExpressionRule() {
+		return getXAdditiveExpressionAccess().getRule();
+	}
+
+	//OpAdd:
+	//	"+" | "-";
+	public XbaseGrammarAccess.OpAddElements getOpAddAccess() {
+		return gaXbaseWithAnnotations.getOpAddAccess();
+	}
+	
+	public ParserRule getOpAddRule() {
+		return getOpAddAccess().getRule();
+	}
+
+	//XMultiplicativeExpression returns XExpression:
+	//	XUnaryOperation (=> ({XBinaryOperation.leftOperand=current} feature=[types::JvmIdentifiableElement|OpMulti])
+	//	rightOperand=XUnaryOperation)*;
+	public XbaseGrammarAccess.XMultiplicativeExpressionElements getXMultiplicativeExpressionAccess() {
+		return gaXbaseWithAnnotations.getXMultiplicativeExpressionAccess();
+	}
+	
+	public ParserRule getXMultiplicativeExpressionRule() {
+		return getXMultiplicativeExpressionAccess().getRule();
+	}
+
+	//OpMulti:
+	//	"*" | "**" | "/" | "%";
+	public XbaseGrammarAccess.OpMultiElements getOpMultiAccess() {
+		return gaXbaseWithAnnotations.getOpMultiAccess();
+	}
+	
+	public ParserRule getOpMultiRule() {
+		return getOpMultiAccess().getRule();
+	}
+
+	//XUnaryOperation returns XExpression:
+	//	{XUnaryOperation} feature=[types::JvmIdentifiableElement|OpUnary] operand=XUnaryOperation | XCastedExpression;
+	public XbaseGrammarAccess.XUnaryOperationElements getXUnaryOperationAccess() {
+		return gaXbaseWithAnnotations.getXUnaryOperationAccess();
+	}
+	
+	public ParserRule getXUnaryOperationRule() {
+		return getXUnaryOperationAccess().getRule();
+	}
+
+	//OpUnary:
+	//	"!" | "-" | "+";
+	public XbaseGrammarAccess.OpUnaryElements getOpUnaryAccess() {
+		return gaXbaseWithAnnotations.getOpUnaryAccess();
+	}
+	
+	public ParserRule getOpUnaryRule() {
+		return getOpUnaryAccess().getRule();
+	}
+
+	//XCastedExpression returns XExpression:
+	//	XPostfixOperation (=> ({XCastedExpression.target=current} "as") type=JvmTypeReference)*;
+	public XbaseGrammarAccess.XCastedExpressionElements getXCastedExpressionAccess() {
+		return gaXbaseWithAnnotations.getXCastedExpressionAccess();
+	}
+	
+	public ParserRule getXCastedExpressionRule() {
+		return getXCastedExpressionAccess().getRule();
+	}
+
+	//XPostfixOperation returns XExpression:
+	//	XMemberFeatureCall => ({XPostfixOperation.operand=current} feature=[types::JvmIdentifiableElement|OpPostfix])?;
+	public XbaseGrammarAccess.XPostfixOperationElements getXPostfixOperationAccess() {
+		return gaXbaseWithAnnotations.getXPostfixOperationAccess();
+	}
+	
+	public ParserRule getXPostfixOperationRule() {
+		return getXPostfixOperationAccess().getRule();
+	}
+
+	//OpPostfix:
+	//	"++" | "--";
+	public XbaseGrammarAccess.OpPostfixElements getOpPostfixAccess() {
+		return gaXbaseWithAnnotations.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?)*;
+	public XbaseGrammarAccess.XMemberFeatureCallElements getXMemberFeatureCallAccess() {
+		return gaXbaseWithAnnotations.getXMemberFeatureCallAccess();
+	}
+	
+	public ParserRule getXMemberFeatureCallRule() {
+		return getXMemberFeatureCallAccess().getRule();
+	}
+
+	//XPrimaryExpression returns XExpression:
+	//	XConstructorCall | XBlockExpression | XSwitchExpression | XSynchronizedExpression | XFeatureCall | XLiteral |
+	//	XIfExpression | XForLoopExpression | XBasicForLoopExpression | XWhileExpression | XDoWhileExpression |
+	//	XThrowExpression | XReturnExpression | XTryCatchFinallyExpression | XParenthesizedExpression;
+	public XbaseGrammarAccess.XPrimaryExpressionElements getXPrimaryExpressionAccess() {
+		return gaXbaseWithAnnotations.getXPrimaryExpressionAccess();
+	}
+	
+	public ParserRule getXPrimaryExpressionRule() {
+		return getXPrimaryExpressionAccess().getRule();
+	}
+
+	//XLiteral returns XExpression:
+	//	XCollectionLiteral | XClosure | XBooleanLiteral | XNumberLiteral | XNullLiteral | XStringLiteral | XTypeLiteral;
+	public XbaseGrammarAccess.XLiteralElements getXLiteralAccess() {
+		return gaXbaseWithAnnotations.getXLiteralAccess();
+	}
+	
+	public ParserRule getXLiteralRule() {
+		return getXLiteralAccess().getRule();
+	}
+
+	//XCollectionLiteral:
+	//	XSetLiteral | XListLiteral;
+	public XbaseGrammarAccess.XCollectionLiteralElements getXCollectionLiteralAccess() {
+		return gaXbaseWithAnnotations.getXCollectionLiteralAccess();
+	}
+	
+	public ParserRule getXCollectionLiteralRule() {
+		return getXCollectionLiteralAccess().getRule();
+	}
+
+	//XSetLiteral:
+	//	{XSetLiteral} "#" "{" (elements+=XExpression ("," elements+=XExpression)*)? "}";
+	public XbaseGrammarAccess.XSetLiteralElements getXSetLiteralAccess() {
+		return gaXbaseWithAnnotations.getXSetLiteralAccess();
+	}
+	
+	public ParserRule getXSetLiteralRule() {
+		return getXSetLiteralAccess().getRule();
+	}
+
+	//XListLiteral:
+	//	{XListLiteral} "#" "[" (elements+=XExpression ("," elements+=XExpression)*)? "]";
+	public XbaseGrammarAccess.XListLiteralElements getXListLiteralAccess() {
+		return gaXbaseWithAnnotations.getXListLiteralAccess();
+	}
+	
+	public ParserRule getXListLiteralRule() {
+		return getXListLiteralAccess().getRule();
+	}
+
+	//XClosure returns XExpression:
+	//	=> ({XClosure} "[") => ((declaredFormalParameters+=JvmFormalParameter (","
+	//	declaredFormalParameters+=JvmFormalParameter)*)? explicitSyntax?="|")? expression=XExpressionInClosure "]";
+	public XbaseGrammarAccess.XClosureElements getXClosureAccess() {
+		return gaXbaseWithAnnotations.getXClosureAccess();
+	}
+	
+	public ParserRule getXClosureRule() {
+		return getXClosureAccess().getRule();
+	}
+
+	//XExpressionInClosure returns XExpression:
+	//	{XBlockExpression} (expressions+=XExpressionOrVarDeclaration ";"?)*;
+	public XbaseGrammarAccess.XExpressionInClosureElements getXExpressionInClosureAccess() {
+		return gaXbaseWithAnnotations.getXExpressionInClosureAccess();
+	}
+	
+	public ParserRule getXExpressionInClosureRule() {
+		return getXExpressionInClosureAccess().getRule();
+	}
+
+	//XShortClosure returns XExpression:
+	//	=> ({XClosure} (declaredFormalParameters+=JvmFormalParameter ("," declaredFormalParameters+=JvmFormalParameter)*)?
+	//	explicitSyntax?="|") expression=XExpression;
+	public XbaseGrammarAccess.XShortClosureElements getXShortClosureAccess() {
+		return gaXbaseWithAnnotations.getXShortClosureAccess();
+	}
+	
+	public ParserRule getXShortClosureRule() {
+		return getXShortClosureAccess().getRule();
+	}
+
+	//XParenthesizedExpression returns XExpression:
+	//	"(" XExpression ")";
+	public XbaseGrammarAccess.XParenthesizedExpressionElements getXParenthesizedExpressionAccess() {
+		return gaXbaseWithAnnotations.getXParenthesizedExpressionAccess();
+	}
+	
+	public ParserRule getXParenthesizedExpressionRule() {
+		return getXParenthesizedExpressionAccess().getRule();
+	}
+
+	//XIfExpression returns XExpression:
+	//	{XIfExpression} "if" "(" if=XExpression ")" then=XExpression ("else" else=XExpression)?;
+	public XbaseGrammarAccess.XIfExpressionElements getXIfExpressionAccess() {
+		return gaXbaseWithAnnotations.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)? "}";
+	public XbaseGrammarAccess.XSwitchExpressionElements getXSwitchExpressionAccess() {
+		return gaXbaseWithAnnotations.getXSwitchExpressionAccess();
+	}
+	
+	public ParserRule getXSwitchExpressionRule() {
+		return getXSwitchExpressionAccess().getRule();
+	}
+
+	//XCasePart:
+	//	{XCasePart} typeGuard=JvmTypeReference? ("case" case=XExpression)? (":" then=XExpression | fallThrough?=",");
+	public XbaseGrammarAccess.XCasePartElements getXCasePartAccess() {
+		return gaXbaseWithAnnotations.getXCasePartAccess();
+	}
+	
+	public ParserRule getXCasePartRule() {
+		return getXCasePartAccess().getRule();
+	}
+
+	//XForLoopExpression returns XExpression:
+	//	=> ({XForLoopExpression} "for" "(" declaredParam=JvmFormalParameter ":") forExpression=XExpression ")"
+	//	eachExpression=XExpression;
+	public XbaseGrammarAccess.XForLoopExpressionElements getXForLoopExpressionAccess() {
+		return gaXbaseWithAnnotations.getXForLoopExpressionAccess();
+	}
+	
+	public ParserRule getXForLoopExpressionRule() {
+		return getXForLoopExpressionAccess().getRule();
+	}
+
+	//XBasicForLoopExpression returns XExpression:
+	//	{XBasicForLoopExpression} "for" "(" (initExpressions+=XExpressionOrVarDeclaration (","
+	//	initExpressions+=XExpressionOrVarDeclaration)*)? ";" expression=XExpression? ";" (updateExpressions+=XExpression (","
+	//	updateExpressions+=XExpression)*)? ")" eachExpression=XExpression;
+	public XbaseGrammarAccess.XBasicForLoopExpressionElements getXBasicForLoopExpressionAccess() {
+		return gaXbaseWithAnnotations.getXBasicForLoopExpressionAccess();
+	}
+	
+	public ParserRule getXBasicForLoopExpressionRule() {
+		return getXBasicForLoopExpressionAccess().getRule();
+	}
+
+	//XWhileExpression returns XExpression:
+	//	{XWhileExpression} "while" "(" predicate=XExpression ")" body=XExpression;
+	public XbaseGrammarAccess.XWhileExpressionElements getXWhileExpressionAccess() {
+		return gaXbaseWithAnnotations.getXWhileExpressionAccess();
+	}
+	
+	public ParserRule getXWhileExpressionRule() {
+		return getXWhileExpressionAccess().getRule();
+	}
+
+	//XDoWhileExpression returns XExpression:
+	//	{XDoWhileExpression} "do" body=XExpression "while" "(" predicate=XExpression ")";
+	public XbaseGrammarAccess.XDoWhileExpressionElements getXDoWhileExpressionAccess() {
+		return gaXbaseWithAnnotations.getXDoWhileExpressionAccess();
+	}
+	
+	public ParserRule getXDoWhileExpressionRule() {
+		return getXDoWhileExpressionAccess().getRule();
+	}
+
+	//XBlockExpression returns XExpression:
+	//	{XBlockExpression} "{" (expressions+=XExpressionOrVarDeclaration ";"?)* "}";
+	public XbaseGrammarAccess.XBlockExpressionElements getXBlockExpressionAccess() {
+		return gaXbaseWithAnnotations.getXBlockExpressionAccess();
+	}
+	
+	public ParserRule getXBlockExpressionRule() {
+		return getXBlockExpressionAccess().getRule();
+	}
+
+	//XExpressionOrVarDeclaration returns XExpression:
+	//	XVariableDeclaration | XExpression;
+	public XbaseGrammarAccess.XExpressionOrVarDeclarationElements getXExpressionOrVarDeclarationAccess() {
+		return gaXbaseWithAnnotations.getXExpressionOrVarDeclarationAccess();
+	}
+	
+	public ParserRule getXExpressionOrVarDeclarationRule() {
+		return getXExpressionOrVarDeclarationAccess().getRule();
+	}
+
+	//XVariableDeclaration returns XExpression:
+	//	{XVariableDeclaration} (writeable?="var" | "val") (=> (type=JvmTypeReference name=ValidID) | name=ValidID) ("="
+	//	right=XExpression)?;
+	public XbaseGrammarAccess.XVariableDeclarationElements getXVariableDeclarationAccess() {
+		return gaXbaseWithAnnotations.getXVariableDeclarationAccess();
+	}
+	
+	public ParserRule getXVariableDeclarationRule() {
+		return getXVariableDeclarationAccess().getRule();
+	}
+
+	//JvmFormalParameter returns types::JvmFormalParameter:
+	//	parameterType=JvmTypeReference? name=ValidID;
+	public XbaseGrammarAccess.JvmFormalParameterElements getJvmFormalParameterAccess() {
+		return gaXbaseWithAnnotations.getJvmFormalParameterAccess();
+	}
+	
+	public ParserRule getJvmFormalParameterRule() {
+		return getJvmFormalParameterAccess().getRule();
+	}
+
+	//FullJvmFormalParameter returns types::JvmFormalParameter:
+	//	parameterType=JvmTypeReference name=ValidID;
+	public XbaseGrammarAccess.FullJvmFormalParameterElements getFullJvmFormalParameterAccess() {
+		return gaXbaseWithAnnotations.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?;
+	public XbaseGrammarAccess.XFeatureCallElements getXFeatureCallAccess() {
+		return gaXbaseWithAnnotations.getXFeatureCallAccess();
+	}
+	
+	public ParserRule getXFeatureCallRule() {
+		return getXFeatureCallAccess().getRule();
+	}
+
+	//FeatureCallID:
+	//	ValidID | "extends" | "static" | "import" | "extension";
+	public XbaseGrammarAccess.FeatureCallIDElements getFeatureCallIDAccess() {
+		return gaXbaseWithAnnotations.getFeatureCallIDAccess();
+	}
+	
+	public ParserRule getFeatureCallIDRule() {
+		return getFeatureCallIDAccess().getRule();
+	}
+
+	//IdOrSuper:
+	//	FeatureCallID | "super";
+	public XbaseGrammarAccess.IdOrSuperElements getIdOrSuperAccess() {
+		return gaXbaseWithAnnotations.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)*)? ")")?
+	//	arguments+=XClosure?;
+	public XbaseGrammarAccess.XConstructorCallElements getXConstructorCallAccess() {
+		return gaXbaseWithAnnotations.getXConstructorCallAccess();
+	}
+	
+	public ParserRule getXConstructorCallRule() {
+		return getXConstructorCallAccess().getRule();
+	}
+
+	//XBooleanLiteral returns XExpression:
+	//	{XBooleanLiteral} ("false" | isTrue?="true");
+	public XbaseGrammarAccess.XBooleanLiteralElements getXBooleanLiteralAccess() {
+		return gaXbaseWithAnnotations.getXBooleanLiteralAccess();
+	}
+	
+	public ParserRule getXBooleanLiteralRule() {
+		return getXBooleanLiteralAccess().getRule();
+	}
+
+	//XNullLiteral returns XExpression:
+	//	{XNullLiteral} "null";
+	public XbaseGrammarAccess.XNullLiteralElements getXNullLiteralAccess() {
+		return gaXbaseWithAnnotations.getXNullLiteralAccess();
+	}
+	
+	public ParserRule getXNullLiteralRule() {
+		return getXNullLiteralAccess().getRule();
+	}
+
+	//XNumberLiteral returns XExpression:
+	//	{XNumberLiteral} value=Number;
+	public XbaseGrammarAccess.XNumberLiteralElements getXNumberLiteralAccess() {
+		return gaXbaseWithAnnotations.getXNumberLiteralAccess();
+	}
+	
+	public ParserRule getXNumberLiteralRule() {
+		return getXNumberLiteralAccess().getRule();
+	}
+
+	//XStringLiteral returns XExpression:
+	//	{XStringLiteral} value=STRING;
+	public XbaseGrammarAccess.XStringLiteralElements getXStringLiteralAccess() {
+		return gaXbaseWithAnnotations.getXStringLiteralAccess();
+	}
+	
+	public ParserRule getXStringLiteralRule() {
+		return getXStringLiteralAccess().getRule();
+	}
+
+	//XTypeLiteral returns XExpression:
+	//	{XTypeLiteral} "typeof" "(" type=[types::JvmType|QualifiedName] arrayDimensions+=ArrayBrackets* ")";
+	public XbaseGrammarAccess.XTypeLiteralElements getXTypeLiteralAccess() {
+		return gaXbaseWithAnnotations.getXTypeLiteralAccess();
+	}
+	
+	public ParserRule getXTypeLiteralRule() {
+		return getXTypeLiteralAccess().getRule();
+	}
+
+	//XThrowExpression returns XExpression:
+	//	{XThrowExpression} "throw" expression=XExpression;
+	public XbaseGrammarAccess.XThrowExpressionElements getXThrowExpressionAccess() {
+		return gaXbaseWithAnnotations.getXThrowExpressionAccess();
+	}
+	
+	public ParserRule getXThrowExpressionRule() {
+		return getXThrowExpressionAccess().getRule();
+	}
+
+	//XReturnExpression returns XExpression:
+	//	{XReturnExpression} "return" -> expression=XExpression?;
+	public XbaseGrammarAccess.XReturnExpressionElements getXReturnExpressionAccess() {
+		return gaXbaseWithAnnotations.getXReturnExpressionAccess();
+	}
+	
+	public ParserRule getXReturnExpressionRule() {
+		return getXReturnExpressionAccess().getRule();
+	}
+
+	//XTryCatchFinallyExpression returns XExpression:
+	//	{XTryCatchFinallyExpression} "try" expression=XExpression (catchClauses+=XCatchClause+ ("finally"
+	//	finallyExpression=XExpression)? | "finally" finallyExpression=XExpression);
+	public XbaseGrammarAccess.XTryCatchFinallyExpressionElements getXTryCatchFinallyExpressionAccess() {
+		return gaXbaseWithAnnotations.getXTryCatchFinallyExpressionAccess();
+	}
+	
+	public ParserRule getXTryCatchFinallyExpressionRule() {
+		return getXTryCatchFinallyExpressionAccess().getRule();
+	}
+
+	//XSynchronizedExpression returns XExpression:
+	//	=> ({XSynchronizedExpression} "synchronized" "(") param=XExpression ")" expression=XExpression;
+	public XbaseGrammarAccess.XSynchronizedExpressionElements getXSynchronizedExpressionAccess() {
+		return gaXbaseWithAnnotations.getXSynchronizedExpressionAccess();
+	}
+	
+	public ParserRule getXSynchronizedExpressionRule() {
+		return getXSynchronizedExpressionAccess().getRule();
+	}
+
+	//XCatchClause:
+	//	"catch" "(" declaredParam=FullJvmFormalParameter ")" expression=XExpression;
+	public XbaseGrammarAccess.XCatchClauseElements getXCatchClauseAccess() {
+		return gaXbaseWithAnnotations.getXCatchClauseAccess();
+	}
+	
+	public ParserRule getXCatchClauseRule() {
+		return getXCatchClauseAccess().getRule();
+	}
+
+	//QualifiedName:
+	//	ValidID ("." ValidID)*;
+	public XbaseGrammarAccess.QualifiedNameElements getQualifiedNameAccess() {
+		return gaXbaseWithAnnotations.getQualifiedNameAccess();
+	}
+	
+	public ParserRule getQualifiedNameRule() {
+		return getQualifiedNameAccess().getRule();
+	}
+
+	//Number hidden():
+	//	HEX | (INT | DECIMAL) ("." (INT | DECIMAL))?;
+	public XbaseGrammarAccess.NumberElements getNumberAccess() {
+		return gaXbaseWithAnnotations.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 "::")+;
+	public XbaseGrammarAccess.StaticQualifierElements getStaticQualifierAccess() {
+		return gaXbaseWithAnnotations.getStaticQualifierAccess();
+	}
+	
+	public ParserRule getStaticQualifierRule() {
+		return getStaticQualifierAccess().getRule();
+	}
+
+	//terminal HEX:
+	//	("0x" | "0X") ("0".."9" | "a".."f" | "A".."F" | "_")+ ("#" (("b" | "B") ("i" | "I") | ("l" | "L")))?;
+	public TerminalRule getHEXRule() {
+		return gaXbaseWithAnnotations.getHEXRule();
+	} 
+
+	//terminal INT returns ecore::EInt:
+	//	"0".."9" ("0".."9" | "_")*;
+	public TerminalRule getINTRule() {
+		return gaXbaseWithAnnotations.getINTRule();
+	} 
+
+	//terminal DECIMAL:
+	//	INT (("e" | "E") ("+" | "-")? INT)? (("b" | "B") ("i" | "I" | "d" | "D") | ("l" | "L" | "d" | "D" | "f" | "F"))?;
+	public TerminalRule getDECIMALRule() {
+		return gaXbaseWithAnnotations.getDECIMALRule();
+	} 
+
+	//JvmTypeReference:
+	//	JvmParameterizedTypeReference => ({JvmGenericArrayTypeReference.componentType=current} ArrayBrackets)* |
+	//	XFunctionTypeRef;
+	public XtypeGrammarAccess.JvmTypeReferenceElements getJvmTypeReferenceAccess() {
+		return gaXbaseWithAnnotations.getJvmTypeReferenceAccess();
+	}
+	
+	public ParserRule getJvmTypeReferenceRule() {
+		return getJvmTypeReferenceAccess().getRule();
+	}
+
+	//ArrayBrackets:
+	//	"[" "]";
+	public XtypeGrammarAccess.ArrayBracketsElements getArrayBracketsAccess() {
+		return gaXbaseWithAnnotations.getArrayBracketsAccess();
+	}
+	
+	public ParserRule getArrayBracketsRule() {
+		return getArrayBracketsAccess().getRule();
+	}
+
+	//XFunctionTypeRef:
+	//	("(" (paramTypes+=JvmTypeReference ("," paramTypes+=JvmTypeReference)*)? ")")? "=>" returnType=JvmTypeReference;
+	public XtypeGrammarAccess.XFunctionTypeRefElements getXFunctionTypeRefAccess() {
+		return gaXbaseWithAnnotations.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)* ">")?)*)?;
+	public XtypeGrammarAccess.JvmParameterizedTypeReferenceElements getJvmParameterizedTypeReferenceAccess() {
+		return gaXbaseWithAnnotations.getJvmParameterizedTypeReferenceAccess();
+	}
+	
+	public ParserRule getJvmParameterizedTypeReferenceRule() {
+		return getJvmParameterizedTypeReferenceAccess().getRule();
+	}
+
+	//JvmArgumentTypeReference returns JvmTypeReference:
+	//	JvmTypeReference | JvmWildcardTypeReference;
+	public XtypeGrammarAccess.JvmArgumentTypeReferenceElements getJvmArgumentTypeReferenceAccess() {
+		return gaXbaseWithAnnotations.getJvmArgumentTypeReferenceAccess();
+	}
+	
+	public ParserRule getJvmArgumentTypeReferenceRule() {
+		return getJvmArgumentTypeReferenceAccess().getRule();
+	}
+
+	//JvmWildcardTypeReference:
+	//	{JvmWildcardTypeReference} "?" (constraints+=JvmUpperBound constraints+=JvmUpperBoundAnded* |
+	//	constraints+=JvmLowerBound constraints+=JvmLowerBoundAnded*)?;
+	public XtypeGrammarAccess.JvmWildcardTypeReferenceElements getJvmWildcardTypeReferenceAccess() {
+		return gaXbaseWithAnnotations.getJvmWildcardTypeReferenceAccess();
+	}
+	
+	public ParserRule getJvmWildcardTypeReferenceRule() {
+		return getJvmWildcardTypeReferenceAccess().getRule();
+	}
+
+	//JvmUpperBound:
+	//	"extends" typeReference=JvmTypeReference;
+	public XtypeGrammarAccess.JvmUpperBoundElements getJvmUpperBoundAccess() {
+		return gaXbaseWithAnnotations.getJvmUpperBoundAccess();
+	}
+	
+	public ParserRule getJvmUpperBoundRule() {
+		return getJvmUpperBoundAccess().getRule();
+	}
+
+	//JvmUpperBoundAnded returns JvmUpperBound:
+	//	"&" typeReference=JvmTypeReference;
+	public XtypeGrammarAccess.JvmUpperBoundAndedElements getJvmUpperBoundAndedAccess() {
+		return gaXbaseWithAnnotations.getJvmUpperBoundAndedAccess();
+	}
+	
+	public ParserRule getJvmUpperBoundAndedRule() {
+		return getJvmUpperBoundAndedAccess().getRule();
+	}
+
+	//JvmLowerBound:
+	//	"super" typeReference=JvmTypeReference;
+	public XtypeGrammarAccess.JvmLowerBoundElements getJvmLowerBoundAccess() {
+		return gaXbaseWithAnnotations.getJvmLowerBoundAccess();
+	}
+	
+	public ParserRule getJvmLowerBoundRule() {
+		return getJvmLowerBoundAccess().getRule();
+	}
+
+	//JvmLowerBoundAnded returns JvmLowerBound:
+	//	"&" typeReference=JvmTypeReference;
+	public XtypeGrammarAccess.JvmLowerBoundAndedElements getJvmLowerBoundAndedAccess() {
+		return gaXbaseWithAnnotations.getJvmLowerBoundAndedAccess();
+	}
+	
+	public ParserRule getJvmLowerBoundAndedRule() {
+		return getJvmLowerBoundAndedAccess().getRule();
+	}
+
+	//JvmTypeParameter:
+	//	name=ValidID (constraints+=JvmUpperBound constraints+=JvmUpperBoundAnded*)?;
+	public XtypeGrammarAccess.JvmTypeParameterElements getJvmTypeParameterAccess() {
+		return gaXbaseWithAnnotations.getJvmTypeParameterAccess();
+	}
+	
+	public ParserRule getJvmTypeParameterRule() {
+		return getJvmTypeParameterAccess().getRule();
+	}
+
+	//QualifiedNameWithWildcard:
+	//	QualifiedName "." "*";
+	public XtypeGrammarAccess.QualifiedNameWithWildcardElements getQualifiedNameWithWildcardAccess() {
+		return gaXbaseWithAnnotations.getQualifiedNameWithWildcardAccess();
+	}
+	
+	public ParserRule getQualifiedNameWithWildcardRule() {
+		return getQualifiedNameWithWildcardAccess().getRule();
+	}
+
+	//ValidID:
+	//	ID;
+	public XtypeGrammarAccess.ValidIDElements getValidIDAccess() {
+		return gaXbaseWithAnnotations.getValidIDAccess();
+	}
+	
+	public ParserRule getValidIDRule() {
+		return getValidIDAccess().getRule();
+	}
+
+	//XImportSection:
+	//	importDeclarations+=XImportDeclaration+;
+	public XtypeGrammarAccess.XImportSectionElements getXImportSectionAccess() {
+		return gaXbaseWithAnnotations.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 ".")+;
+	public XtypeGrammarAccess.QualifiedNameInStaticImportElements getQualifiedNameInStaticImportAccess() {
+		return gaXbaseWithAnnotations.getQualifiedNameInStaticImportAccess();
+	}
+	
+	public ParserRule getQualifiedNameInStaticImportRule() {
+		return getQualifiedNameInStaticImportAccess().getRule();
+	}
+
+	//terminal ID:
+	//	"^"? ("a".."z" | "A".."Z" | "$" | "_") ("a".."z" | "A".."Z" | "$" | "_" | "0".."9")*;
+	public TerminalRule getIDRule() {
+		return gaXbaseWithAnnotations.getIDRule();
+	} 
+
+	//terminal STRING:
+	//	"\"" ("\\" . / * ('b'|'t'|'n'|'f'|'r'|'u'|'"'|"'"|'\\') * / | !("\\" | "\""))* "\""? | "\'" ("\\" .
+	//	/ * ('b'|'t'|'n'|'f'|'r'|'u'|'"'|"'"|'\\') * / | !("\\" | "\'"))* "\'"?;
+	public TerminalRule getSTRINGRule() {
+		return gaXbaseWithAnnotations.getSTRINGRule();
+	} 
+
+	//terminal ML_COMMENT:
+	//	"/ *"->"* /";
+	public TerminalRule getML_COMMENTRule() {
+		return gaXbaseWithAnnotations.getML_COMMENTRule();
+	} 
+
+	//terminal SL_COMMENT:
+	//	"//" !("\n" | "\r")* ("\r"? "\n")?;
+	public TerminalRule getSL_COMMENTRule() {
+		return gaXbaseWithAnnotations.getSL_COMMENTRule();
+	} 
+
+	//terminal WS:
+	//	(" " | "\t" | "\r" | "\n")+;
+	public TerminalRule getWSRule() {
+		return gaXbaseWithAnnotations.getWSRule();
+	} 
+
+	//terminal ANY_OTHER:
+	//	.;
+	public TerminalRule getANY_OTHERRule() {
+		return gaXbaseWithAnnotations.getANY_OTHERRule();
+	} 
+}
diff --git a/org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/validation/AbstractReportDSLValidator.java b/org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/validation/AbstractReportDSLValidator.java
new file mode 100644
index 0000000..b99e1f4
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl/src-gen/org/eclipse/osbp/xtext/reportdsl/validation/AbstractReportDSLValidator.java
@@ -0,0 +1,36 @@
+/**
+ *                                                                            
+ *  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.reportdsl.validation;
+
+import java.util.ArrayList;
+import java.util.List;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.xtext.validation.ComposedChecks;
+
+@ComposedChecks(validators= {org.eclipse.osbp.xtext.reportdsl.validation.NamesAreUniqueValidator.class})
+public class AbstractReportDSLValidator extends org.eclipse.xtext.xbase.annotations.validation.XbaseWithAnnotationsValidator {
+
+	@Override
+	protected List<EPackage> getEPackages() {
+	    List<EPackage> result = new ArrayList<EPackage>(super.getEPackages());
+	    result.add(EPackage.Registry.INSTANCE.getEPackage("http://osbp.eclipse.org/xtext/reportdsl/ReportDSL"));
+	    result.add(EPackage.Registry.INSTANCE.getEPackage("http://osbp.eclipse.org/dsl/common/types/v1"));
+	    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.reportdsl/src/org/eclipse/osbp/xtext/reportdsl/GenerateReportDSL.mwe2 b/org.eclipse.osbp.xtext.reportdsl/src/org/eclipse/osbp/xtext/reportdsl/GenerateReportDSL.mwe2
new file mode 100644
index 0000000..d9ae3ac
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl/src/org/eclipse/osbp/xtext/reportdsl/GenerateReportDSL.mwe2
@@ -0,0 +1,193 @@
+/**
+ *                                                                            
+ *  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
+ * 
+ */
+
+module org.eclipse.osbp.xtext.reportdsl.GenerateReportDSL
+
+import org.eclipse.emf.mwe.utils.*
+import org.eclipse.xtext.generator.*
+import org.eclipse.xtext.ui.generator.*
+import org.eclipse.osbp.dsl.mwe.*
+
+var projectName = "org.eclipse.osbp.xtext.reportdsl"
+var grammarURI = "platform:/resource/${projectName}/src/org/eclipse/osbp/xtext/reportdsl/ReportDSL.xtext"
+var fileExtensions = "report"
+var runtimeProject = "../${projectName}"
+var generateXtendStub = true
+var encoding = "UTF-8"
+
+Workflow {
+	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.xtext.reportdsl/model/ReportDSL.xcore"
+		registerGeneratedEPackage = "org.eclipse.osbp.xtext.reportdsl.ReportDSLPackage"
+		
+		registerGenModelFile = "platform:/resource/org.eclipse.osbp.xtext.datamartdsl/model/DatamartDSL.xcore"
+		registerGeneratedEPackage = "org.eclipse.osbp.xtext.datamartdsl.DatamartDSLPackage"
+
+		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 {
+				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 {
+			// FOUND at
+			// http://20000frames.blogspot.de/2010/09/dealing-with-could-not-even-do-k1-for.html
+			// http://www.antlr3.org/pipermail/antlr-interest/2009-November/036629.html
+    			antlrParam = "-Xconversiontimeout" antlrParam = "20000"
+			// Can increase this to use if statements more often....
+			//  -Xmaxinlinedfastates m  max DFA states before table used rather than inlining      [10]
+    			antlrParam = "-Xmaxinlinedfastates" antlrParam = "200"
+			// Increase this to say 3000...
+			//  -Xmaxswitchcaselabels m don't generate switch() statements for dfas bigger  than m [300]
+    			antlrParam = "-Xmaxswitchcaselabels" antlrParam = "6000"
+			// And reduce this to say 1....
+			//  -Xminswitchalts m       don't generate switch() statements for dfas smaller than m [3]			    			
+    			antlrParam = "-Xminswitchalts" antlrParam = "1"
+			}
+
+			// Xtend-based API for validation
+			fragment = validation.ValidatorFragment auto-inject {
+			//    composedCheck = "org.eclipse.xtext.validation.ImportUriValidator"
+			//    composedCheck = "org.eclipse.xtext.validation.NamesAreUniqueValidator"
+    		    composedCheck = "org.eclipse.osbp.xtext.reportdsl.validation.NamesAreUniqueValidator"
+			}
+
+			// 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 {
+				// @see https://github.com/osbp/osbp-doc/blob/master/org.eclipse.osbp.doc.dsl/src/org.eclipse.osbp/doc/dsl/grammar/GenerateOSBPDocGrammar.mwe2
+    		  	options = {
+    		//      backtrack = true
+    				classSplitting=true
+    				fieldsPerClass="100"
+    				methodsPerClass="100"
+    		  	}
+    		}
+
+			// generates junit test support classes into Generator#pathTestProject
+			fragment = junit.Junit4Fragment auto-inject {}
+
+			// project wizard (optional)
+//			fragment = projectWizard.SimpleProjectWizardFragment auto-inject {
+//				generatorProjectName = "${projectName}"
+//				fileExtension = fileExtensions
+//			}
+
+			// 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.reportdsl/src/org/eclipse/osbp/xtext/reportdsl/ReportDSL.xtext b/org.eclipse.osbp.xtext.reportdsl/src/org/eclipse/osbp/xtext/reportdsl/ReportDSL.xtext
new file mode 100644
index 0000000..c3b1cb7
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl/src/org/eclipse/osbp/xtext/reportdsl/ReportDSL.xtext
@@ -0,0 +1,444 @@
+/**
+ *                                                                            
+ *  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
+ * 
+ */
+
+grammar org.eclipse.osbp.xtext.reportdsl.ReportDSL with org.eclipse.xtext.xbase.annotations.XbaseWithAnnotations
+
+import "http://osbp.eclipse.org/xtext/reportdsl/ReportDSL"
+
+import "http://www.eclipse.org/xtext/xbase/Xbase" as xbase
+import "http://www.eclipse.org/emf/2002/Ecore" as ecore
+import "http://osbp.eclipse.org/dsl/common/types/v1"as types
+import "http://osbp.eclipse.org/dsl/entity/v1" as entity
+//import "http://osbp.eclipse.de/xtext/chart/ChartDSL" as chart
+import "http://osbp.eclipse.org/xtext/datamartdsl/DatamartDSL" as datamart
+//import "http://osbp.eclipse.de/xtext/table/TableDSL" as table
+import "http://osbp.eclipse.org/xtext/action/ActionDSL" as action
+
+ReportModel:
+	pckg+=ReportPackage*;
+
+ReportPackage:
+	{ReportPackage} 'package' name=QualifiedName '{'
+		(imports+=ReportImport)*
+		('layout-data' '{'
+    	 	('externalCssURI' externalCssURI=STRING ('from bundle' externalCssURIBundle=STRING)?)?
+    	 	pagetemplates=PageTemplates
+    	 	formatters=SomeFormats
+    	 	colors=Colors
+    	 	fonts=Fonts
+    	 	medias=Medias
+    	 	styles=Styles
+	 	'}')?
+		(reports+=Report)*
+	'}';
+
+PageTemplates:
+	{PageTemplates} (pagetemplates+=PageTemplate)*;
+	
+SomeFormats:
+	{SomeFormats} 'formatters' '{'
+	 	(formatters+=SomeFormat)*
+	'}';
+
+Colors:
+ 	{Colors} 'colors' '{'
+	 	(colors+=Color)*
+	'}';
+
+Fonts:
+ 	{Fonts} 'fonts' '{'
+ 		(fonts+=Font)*
+	'}';
+	
+Medias:
+ 	{Medias} 'medias' '{'
+	 	(medias+=Media)*
+	'}';
+
+Media:
+	'media' name=ID;
+	
+Styles:
+ 	{Styles} 'styles' '{'
+	 	(styles+=Style)*
+	'}';
+
+PageTemplate:
+	'pagetemplate' name=ID '{'
+		'type' size=PageSizeEnum
+		'orientation' orientation=OrientationEnum
+		'topmargin' topMarginValue=UnsignedNumber topMarginUnit=UnitEnum
+		'leftmargin' leftMarginValue=UnsignedNumber leftMarginUnit=UnitEnum
+		'bottommargin' bottomMarginValue=UnsignedNumber bottomMarginUnit=UnitEnum
+		'rightmargin' rightMarginValue=UnsignedNumber rightMarginUnit=UnitEnum
+	    (header=PageHeader)?
+	    (footer=PageFooter)?
+	'}';
+
+UnsignedNumber returns ecore::EDouble:
+	Number;
+
+enum UnitEnum:
+	MM='mm' | CM='cm' | PT='pt' | IN='inch' | PC='pc' | EM='em' | EX='ex' | PX='px' | PERCENTAGE='%';
+
+enum PageSizeEnum:
+	A4='a4' | A3='a3' | A5='a5' | US_LETTER = "us-letter" | US_LEGAL = "us-legal" | US_LEDGER = "us-ledger" | US_SUPER_B = "us-super-b";
+
+enum OrientationEnum:
+	PORTRAIT='portrait' | LANDSCAPE='landscape';
+
+Color:
+	'color' name=ID (color=STRING | 'darkens' basecolor=[Color] 'by-percent' darkensby=INT | 'lightens' basecolor=[Color] 'by-percent' lightensby=INT | 'transforms' basecolor=[Color] 'by-percent' transformsby=INT 'towards' targetcolor=[Color]);
+	
+Font:
+	'font' name=ID '{' ('extends' extends=[Font])? ('family' family=FontFamily)? & (style=FontStyleEnum)? & (bold?='bold')? & ('size' sizevalue=UnsignedNumber sizeunit=UnitEnum)? '}';
+
+enum FontStyleEnum:
+	NORMAL='normal' | ITALIC='italic' | OBLIQUE='oblique';
+
+FontFamily:
+	BuildInFontFamily | CustomFontFamily;
+
+BuildInFontFamily:
+	custom=BuildInFontFamilyEnum;
+
+enum BuildInFontFamilyEnum:
+	MONOSPACE='monospace' | SANS_SERIF='sans-serif' | SERIF='serif';
+
+CustomFontFamily:
+	custom=STRING;
+
+BorderStyle:
+	type=BorderTypeEnum
+	widthvalue=UnsignedNumber widthunit=UnitEnum
+	color=[Color]
+	;
+
+Style:
+	'style' name=ID '{'
+	('extends' extends=[Style])?
+	(
+	('formatter' format=[SomeFormat])? &
+	('font' font=[Font])? &
+	('backgroundcolor' backgroundcolor=[Color] ('alternate' backgroundcolor_alternate=[Color])?)? &
+	(
+	'textcolor' textcolor=[Color])? &
+	('textalign' textalign=TextAlignEnum)? &
+	('border-top' borderTop=BorderStyle)? &
+	('border-bottom' borderBottom=BorderStyle)? &
+	('border-left' borderLeft=BorderStyle)? &
+	('border-right' borderRight=BorderStyle)? &
+	('padding-top' paddingTopValue=UnsignedNumber paddingTopUnit=UnitEnum)? &
+	('padding-bottom' paddingBottomValue=UnsignedNumber paddingBottomUnit=UnitEnum)? &
+	('padding-left' paddingLeftValue=UnsignedNumber paddingLeftUnit=UnitEnum)? &
+	('padding-right' paddingRightValue=UnsignedNumber paddingRightUnit=UnitEnum)? &
+	('margin-top' marginTopValue=UnsignedNumber marginTopUnit=UnitEnum)? &
+	('margin-bottom' marginBottomValue=UnsignedNumber marginBottomUnit=UnitEnum)? &
+	('margin-left' marginLeftValue=UnsignedNumber marginLeftUnit=UnitEnum)? &
+	('margin-right' marginRightValue=UnsignedNumber marginRightUnit=UnitEnum)?
+	)
+	(mediastyles+=MediaStyle)*
+	'}';
+
+MediaStyle:
+	'media' media=[Media] '{'
+	(
+	('formatter' format=[SomeFormat])? &
+	('font' font=[Font])? &
+	('backgroundcolor' backgroundcolor=[Color] ('alternate' backgroundcolor_alternate=[Color])?)? &
+	(
+	'textcolor' textcolor=[Color])? &
+	('textalign' textalign=TextAlignEnum)? &
+	('border-top' borderTop=BorderStyle)? &
+	('border-bottom' borderBottom=BorderStyle)? &
+	('border-left' borderLeft=BorderStyle)? &
+	('border-right' borderRight=BorderStyle)? &
+	('padding-top' paddingTopValue=UnsignedNumber paddingTopUnit=UnitEnum)? &
+	('padding-bottom' paddingBottomValue=UnsignedNumber paddingBottomUnit=UnitEnum)? &
+	('padding-left' paddingLeftValue=UnsignedNumber paddingLeftUnit=UnitEnum)? &
+	('padding-right' paddingRightValue=UnsignedNumber paddingRightUnit=UnitEnum)? &
+	('margin-top' marginTopValue=UnsignedNumber marginTopUnit=UnitEnum)? &
+	('margin-bottom' marginBottomValue=UnsignedNumber marginBottomUnit=UnitEnum)? &
+	('margin-left' marginLeftValue=UnsignedNumber marginLeftUnit=UnitEnum)? &
+	('margin-right' marginRightValue=UnsignedNumber marginRightUnit=UnitEnum)?
+	)
+	'}';
+
+enum TextAlignEnum:
+	LEFT='left' | CENTER='center' | RIGHT='right';
+
+SomeFormat:
+	UomoFormat | NumberFormat | CurrencyFormat | DateFormat | DateTimeFormat | TimeFormat;
+
+UomoFormat:
+	'uomo' name=ID '{' 'ui' ui_pattern=STRING 'report' report_pattern=STRING 'textalign' textalign=TextAlignEnum '}';
+
+NumberFormat:
+	'number' name=ID '{' 'ui' ui_pattern=STRING 'report' report_category=NumberFormatCategoryEnum report_pattern=STRING 'textalign' textalign=TextAlignEnum '}';
+
+enum NumberFormatCategoryEnum:
+	UNFORMATTED='unformatted' | GENERAL_NUMBER='general-number' | FIXED='fixed' | PERCENT='percent' | SCIENTIFIC='scientific' | CUSTOM='custom';
+
+CurrencyFormat:
+	'currency' name=ID '{' 'ui' ui_pattern=STRING 'report' report_category=CurrencyFormatCategoryEnum report_pattern=STRING 'textalign' textalign=TextAlignEnum '}';
+
+enum CurrencyFormatCategoryEnum:
+	UNFORMATTED='unformatted' | CURRENCY='currency' | CUSTOM='custom';
+
+DateFormat:
+	'date' name=ID '{' 'ui' ui_pattern=STRING 'report' report_category=DateFormatCategoryEnum report_pattern=STRING 'textalign' textalign=TextAlignEnum '}';
+
+enum DateFormatCategoryEnum:
+	CUSTOM='custom';
+
+DateTimeFormat:
+	'date+time' name=ID '{' 'ui' ui_pattern=STRING 'report' report_category=DateTimeFormatCategoryEnum report_pattern=STRING 'textalign' textalign=TextAlignEnum '}';
+
+enum DateTimeFormatCategoryEnum:
+	CUSTOM='custom';
+
+TimeFormat:
+	'time' name=ID '{' 'ui' ui_pattern=STRING 'report' report_category=TimeFormatCategoryEnum report_pattern=STRING 'textalign' textalign=TextAlignEnum '}';
+
+enum TimeFormatCategoryEnum:
+	CUSTOM='custom';
+
+Report:
+	'report' name=ID 
+		(description?='described by' descriptionValue=TRANSLATABLESTRING)? 
+		('toolbar' toolbar=[action::ActionToolbar])? 
+	'{'
+	 'datamart' datamartRef=[datamart::DatamartDefinition]
+	 'rendering' rendering=RenderingEnum
+	 ('externalCssURI' externalCssURI=STRING ('from bundle' externalCssURIBundle=STRING)?)?
+	 'pagetemplate' pageTemplate=[PageTemplate]
+	 'media' media=[Media]
+	 design=ReportDesign
+	'}';
+
+enum RenderingEnum:
+	HTML='html' | PDF='pdf';
+	
+ReportDesign:
+	ReportDesignFile | ReportDesignTemplate;
+
+ReportDesignFile:
+	'file' name=STRING;
+
+ReportDesignTemplate:
+	'template' '{'
+	('described by' description=STRING)?
+    (header=PageHeader)?
+    detail=PageDetail
+    (footer=PageFooter)?
+	'}';
+
+Container:
+    PageHeader | PageDetail | PageFooter | GridCell;
+
+PageHeader:
+	{PageHeader} 'header' '{'
+		(showOnFirst?='showOnFirst')?
+		'height' heightValue=UnsignedNumber heightUnit=UnitEnum
+		elements+=Element
+	'}';
+
+PageDetail:
+	{PageDetail} 'detail' '{' elements+=Element* '}';
+
+PageFooter:
+	{PageFooter} 'footer' '{'
+		(showOnLast?='showOnLast')?
+		'height' heightValue=UnsignedNumber heightUnit=UnitEnum
+		elements+=Element
+	'}';
+
+Element:
+	Title | SubTitle | SubSubTitle | Label | Text | AutoText | Image | DatamartTable | DatamartTableProperty | Grid/* | TableDsl | ChartDsl*/;
+
+Grid:
+	{Grid} 'grid' ('as' name=ID)? '{' rows+=GridRow* '}';
+
+GridRow:
+	{GridRow} 'row' ('as' name=ID)? ('style' style=[Style])? '{' cells+=GridCell* '}';
+
+GridCell:
+	{GridCell} 'cell' ('as' name=ID)? ('columnspan' columnspan=INT)? '{' elements+=Element* '}';
+
+DatamartTable:
+	'table' /*datamartRef=[datamart::DatamartDefinition] ('as' name=ID)?*/ ('style' style=[Style])? '{'
+	(detailheader?='detailheader' ('style' headerstyle=[Style])?)?
+	(detailfooter?='detailfooter' ('style' footerstyle=[Style])?)?
+	(groups+=DatamartTableGroup)*
+	detail=DatamartTableDetail
+	'}';
+
+DatamartTableGroup:
+	'group' name=ID 'by' groupingRef=[datamart::DatamartProperty] '{'
+	(header=DatamartTableGroupHeader)?
+	(detailheader?='detailheader' ('style' headerstyle=[Style])?)?
+	(detailfooter?='detailfooter' ('style' footerstyle=[Style])?)?
+	(footer=DatamartTableGroupFooter)?
+	'}';
+
+DatamartTableGroupHeader:
+	{DatamartTableGroupHeader} 'header' ('style' style=[Style])? '{' rows+=GridRow* '}';
+
+DatamartTableGroupFooter:
+	{DatamartTableGroupFooter} 'footer' ('style' style=[Style])? '{' rows+=GridRow* '}';
+
+DatamartTableDetail:
+	{DatamartTableDetail} 'details' ('style' style=[Style])? ('all' | ('{' columnFormatters+=DatamartTableProperty* '}'));
+
+/* !!! copy from tabledsl ... */
+DatamartTableProperty:
+	column=TableValueElement
+		(
+		('style' style=[Style])? & 
+		(hasImage?='image' image=TableImage)? &
+		('intervals' (hideLabelInterval?='hidelabel')? '{' (intervals+=TableInterval)* '}')? & 
+		('lookups' (hideLabelLookup?='hidelabel')? '{' (lookups+=TableLookup)* '}')?
+		)
+;		
+
+enum PureAggregationTypeEnum:
+	COUNT='count' | RUNNINGCOUNT='running-count';
+
+enum UnaryAggregationTypeEnum:
+	SUM='sum' | AVE='average' | MIN='minimum' | MAX='maximum' | RUNNINGSUM='running-sum';
+
+enum BinaryAggregationTypeEnum:
+	DIV='divide';
+
+enum MultipleAggregationTypeEnum:
+	CONCAT='concat';
+
+TableFormatter:
+	{TableFormatter} 'formatter' format=STRING;
+	
+TableImage:
+	{TableImage} 'path' imagePathPattern=STRING ((hasParameter?='dynamic')? & (hideImageLabel?='hidelabel')? & (resize?='resize' resizeString=STRING)?);
+	
+TableValueElement:
+	TableProperty|TableAggregation;
+	/*|TableBinaryAggregation|TableMultipleAggregation*/
+	/*TableMeasure|TableDerived|TableHierarchy|TableOrdinal|TableColumn|TableTask*/
+
+TableProperty:
+	'property' valueRef=[datamart::DatamartProperty];
+
+TableAggregation:
+	'aggregate' aggregation=TableBaseAggregation (('on-group' onGroup=[DatamartTableGroup])? & ('title' text=TRANSLATABLESTRING)?);
+
+TableBaseAggregation:
+	TablePureAggregation|TableUnaryAggregation|TableMultipleAggregation|TableBinaryAggregation;
+
+TablePureAggregation:
+	aggregation=PureAggregationTypeEnum;
+
+TableUnaryAggregation:
+	aggregation=UnaryAggregationTypeEnum 'of' valueRefs+=[datamart::DatamartProperty];
+
+TableMultipleAggregation:
+	aggregation=MultipleAggregationTypeEnum 'of' '(' (valueRefs+=[datamart::DatamartProperty])* ')';
+
+TableBinaryAggregation:
+	aggregation=BinaryAggregationTypeEnum 'of' '(' valueRefs+=[datamart::DatamartProperty] valueRefs+=[datamart::DatamartProperty] ')';
+
+TableInterval:
+	(TableNumberInterval|TableDateDayInterval);
+	
+TableNumberInterval:
+	{TableNumberInterval} 'up to' numberIntervalValue=SignedNumber numberRange=TableRangeElement;
+	
+TableDateDayInterval:
+	{TableDateDayInterval} 'days in past' dateIntervalValue=SignedNumber dateRange=TableRangeElement;
+
+TableLookup:
+	(TableNumberLookup|TableStringLookup|TableDateDayLookup);
+	
+TableNumberLookup:
+	{TableNumberLookup} 'number' lookupValue=SignedNumber discrete=TableRangeElement;
+
+TableStringLookup:
+	{TableStringLookup} 'string' lookupValue=STRING discrete=TableRangeElement;
+	
+TableDateDayLookup:
+	{TableDateDayLookup} 'days in past' lookupValue=SignedNumber discrete=TableRangeElement;
+	
+TableRangeElement:
+	TableTextColor | TableCellColor | TableIcon | TableTrend;
+	
+SignedNumber returns ecore::EDouble:
+	'-'? Number;
+	
+TableTextColor: 
+	'textcolor' color=[Color];
+	
+TableCellColor: 
+	'cellcolor' color=[Color];
+
+TableIcon:
+	'icon' icon=STRING;
+
+TableTrend:
+	'trend' icon=TrendIconEnum;
+
+enum TrendIconEnum:
+	RISING='rising' | BADRISING='bad-rising' | SLOPING='sloping' | GOODSLOPING='good-sloping'| STAGNATING='stagnating';
+/* ... copy from tabledsl !!! */
+
+//ChartDsl:
+//	'chart' chartRef=[chart::Chart] ('as' name=ID)?;
+//
+Title:
+	{Title} 'title' text=TRANSLATABLESTRING ('style' style=[Style])?;
+
+SubTitle:
+	{SubTitle} 'subtitle' text=TRANSLATABLESTRING ('style' style=[Style])?;
+
+SubSubTitle:
+	{SubSubTitle} 'subsubtitle' text=TRANSLATABLESTRING ('style' style=[Style])?;
+
+Label:
+	{Label} 'label' text=TRANSLATABLESTRING ('style' style=[Style])?;
+
+Text:
+	{Text} 'text' text=TRANSLATABLESTRING ('style' style=[Style])?;
+
+AutoText:
+	'autotext' type=AutoTextEnum ('style' style=[Style])?;
+
+enum BorderTypeEnum:
+	NONE='none' | SOLID='solid' | DOTTED='dotted' | DASHED='dashed' | DOUBLE='double' | GROOVE='groove' | RIDGE='ridge' | INSET='inset' | OUTSET='outset';
+
+enum AutoTextEnum:
+	PAGE_NUMBER="page-number" | TOTAL_PAGE="total-page" | PAGE_NUMBER_UNFILTERED="page-number-unfiltered" | TOTAL_PAGE_UNFILTERED="total-page-unfiltered" | PAGE_VARIABLE="page-variable";
+
+Image:
+	'image' size=ImageSizeEnum ('scale' scale=UnsignedNumber)? sourceType=ImageSourceEnum filename=STRING;
+
+enum ImageSizeEnum:
+	SIZE_TO_IMAGE='size-to-image' | SCALE_TO_ITEM='scale-to-item' | CLIP='clip';
+
+enum ImageSourceEnum:
+	FILE='file' | URL = 'url' | EMBED = 'embed';
+
+ReportImport returns types::LImport:
+	'import' importedNamespace=ReportQualifiedNameWithWildCard;
+
+ReportQualifiedNameWithWildCard:
+	QualifiedName ('.' '*')?;
+
+TRANSLATABLESTRING: STRING;	
diff --git a/org.eclipse.osbp.xtext.reportdsl/src/org/eclipse/osbp/xtext/reportdsl/ReportDSLBundleSpaceRuntimeModule.java b/org.eclipse.osbp.xtext.reportdsl/src/org/eclipse/osbp/xtext/reportdsl/ReportDSLBundleSpaceRuntimeModule.java
new file mode 100644
index 0000000..b3e1716
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl/src/org/eclipse/osbp/xtext/reportdsl/ReportDSLBundleSpaceRuntimeModule.java
@@ -0,0 +1,42 @@
+/**
+ *                                                                            
+ *  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.reportdsl;
+
+import org.eclipse.osbp.dsl.xtext.types.bundles.BundleSpaceTypeProviderFactory;
+import org.eclipse.osbp.dsl.xtext.types.bundles.BundleSpaceTypeScopeProvider;
+import org.eclipse.osbp.xtext.builder.types.loader.api.ITypeLoaderFactory;
+import org.eclipse.osbp.xtext.builder.types.loader.api.ITypeLoaderProvider;
+import org.eclipse.osbp.xtext.builder.types.loader.runtime.TypeLoaderFactory;
+import org.eclipse.osbp.xtext.builder.types.loader.runtime.TypeLoaderProvider;
+
+@SuppressWarnings("restriction")
+public class ReportDSLBundleSpaceRuntimeModule extends ReportDSLRuntimeModule {
+	// contributed by org.eclipse.xtext.generator.types.TypesGeneratorFragment
+	public Class<? extends org.eclipse.xtext.common.types.access.IJvmTypeProvider.Factory> bindIJvmTypeProvider$Factory() {
+		return BundleSpaceTypeProviderFactory.class;
+	}
+
+	// contributed by org.eclipse.xtext.generator.types.TypesGeneratorFragment
+	public Class<? extends org.eclipse.xtext.common.types.xtext.AbstractTypeScopeProvider> bindAbstractTypeScopeProvider() {
+		return BundleSpaceTypeScopeProvider.class;
+	}
+
+	public Class<? extends ITypeLoaderFactory> bindITypeLoaderFactory() {
+		return TypeLoaderFactory.class;
+	}
+
+	public Class<? extends ITypeLoaderProvider> ITypeLoaderProvider() {
+		return TypeLoaderProvider.class;
+	}
+}
diff --git a/org.eclipse.osbp.xtext.reportdsl/src/org/eclipse/osbp/xtext/reportdsl/ReportDSLBundleSpaceStandaloneSetup.java b/org.eclipse.osbp.xtext.reportdsl/src/org/eclipse/osbp/xtext/reportdsl/ReportDSLBundleSpaceStandaloneSetup.java
new file mode 100644
index 0000000..4f535f4
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl/src/org/eclipse/osbp/xtext/reportdsl/ReportDSLBundleSpaceStandaloneSetup.java
@@ -0,0 +1,41 @@
+/**
+ *                                                                            
+ *  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.reportdsl;
+
+import org.eclipse.osbp.xtext.builder.xbase.setups.XbaseBundleSpaceStandaloneSetup;
+
+import com.google.inject.Guice;
+import com.google.inject.Injector;
+
+@SuppressWarnings("restriction")
+public class ReportDSLBundleSpaceStandaloneSetup extends
+		ReportDSLStandaloneSetup {
+	public static void doSetup() {
+		new ReportDSLBundleSpaceStandaloneSetup().createInjectorAndDoEMFRegistration();
+	}
+	
+	@Override
+	public Injector createInjectorAndDoEMFRegistration() {
+		XbaseBundleSpaceStandaloneSetup.doSetup();
+
+		Injector injector = createInjector();
+		register(injector);
+		return injector;
+	}
+
+	@Override
+	public Injector createInjector() {
+		return Guice.createInjector(new ReportDSLBundleSpaceRuntimeModule());
+	}
+}
diff --git a/org.eclipse.osbp.xtext.reportdsl/src/org/eclipse/osbp/xtext/reportdsl/ReportDSLRuntimeModule.java b/org.eclipse.osbp.xtext.reportdsl/src/org/eclipse/osbp/xtext/reportdsl/ReportDSLRuntimeModule.java
new file mode 100644
index 0000000..f4b04a4
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl/src/org/eclipse/osbp/xtext/reportdsl/ReportDSLRuntimeModule.java
@@ -0,0 +1,78 @@
+/**
+ *                                                                            
+ * 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.reportdsl;
+
+import javax.inject.Singleton;
+
+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.osbp.xtext.i18n.DSLOutputConfigurationProvider;
+import org.eclipse.osbp.xtext.reportdsl.jvmmodel.ReportModelGenerator;
+import org.eclipse.osbp.xtext.reportdsl.scoping.ReportDSLScopeProvider;
+import org.eclipse.osbp.xtext.reportdsl.valueconverter.ReportQualifiedNameProvider;
+import org.eclipse.osbp.xtext.reportdsl.valueconverter.ReportValueConverterService;
+import org.eclipse.xtext.conversion.IValueConverterService;
+import org.eclipse.xtext.generator.IGenerator;
+import org.eclipse.xtext.generator.IOutputConfigurationProvider;
+import org.eclipse.xtext.scoping.IScopeProvider;
+
+import com.google.inject.Binder;
+
+/**
+ * Use this class to register components to be used at runtime / without the Equinox extension registry.
+ */
+public class ReportDSLRuntimeModule extends org.eclipse.osbp.xtext.reportdsl.AbstractReportDSLRuntimeModule {
+
+	@Override
+	public Class<? extends IScopeProvider> bindIScopeProvider() {
+		return ReportDSLScopeProvider.class;
+	}
+
+	@Override
+	public Class<? extends IGenerator> bindIGenerator() {
+		return ReportModelGenerator.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 ReportQualifiedNameProvider.class;
+//	}
+//
+	@Override
+	public Class<? extends IValueConverterService> bindIValueConverterService() {
+		return ReportValueConverterService.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 Class<? extends org.eclipse.xtext.serializer.sequencer.ITransientValueService> bindSerializerITransientValueService() {
+		return LazyJvmTypeTransientValueService.class;
+	}
+
+}
diff --git a/org.eclipse.osbp.xtext.reportdsl/src/org/eclipse/osbp/xtext/reportdsl/ReportDSLStandaloneSetup.java b/org.eclipse.osbp.xtext.reportdsl/src/org/eclipse/osbp/xtext/reportdsl/ReportDSLStandaloneSetup.java
new file mode 100644
index 0000000..5d775c5
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl/src/org/eclipse/osbp/xtext/reportdsl/ReportDSLStandaloneSetup.java
@@ -0,0 +1,26 @@
+/**
+ *                                                                            
+ *  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.reportdsl;
+
+/**
+ * Initialization support for running Xtext languages 
+ * without equinox extension registry
+ */
+public class ReportDSLStandaloneSetup extends ReportDSLStandaloneSetupGenerated{
+
+	public static void doSetup() {
+		new ReportDSLStandaloneSetup().createInjectorAndDoEMFRegistration();
+	}
+}
+
diff --git a/org.eclipse.osbp.xtext.reportdsl/src/org/eclipse/osbp/xtext/reportdsl/XcoreResourceFactory.java b/org.eclipse.osbp.xtext.reportdsl/src/org/eclipse/osbp/xtext/reportdsl/XcoreResourceFactory.java
new file mode 100644
index 0000000..cfb216f
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl/src/org/eclipse/osbp/xtext/reportdsl/XcoreResourceFactory.java
@@ -0,0 +1,28 @@
+/**
+ *                                                                            
+ *  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.reportdsl;
+
+import org.eclipse.emf.common.util.URI;
+import org.eclipse.emf.ecore.resource.Resource;
+import org.eclipse.emf.ecore.xcore.resource.XcoreResource;
+
+public class XcoreResourceFactory implements Resource.Factory {
+	@Override
+	public Resource createResource(URI uri) {
+		XcoreResource resource = new XcoreResource();
+		resource.setURI(uri);
+		return resource;
+	}
+
+}
diff --git a/org.eclipse.osbp.xtext.reportdsl/src/org/eclipse/osbp/xtext/reportdsl/common/AbstractReportBean.java b/org.eclipse.osbp.xtext.reportdsl/src/org/eclipse/osbp/xtext/reportdsl/common/AbstractReportBean.java
new file mode 100644
index 0000000..3653500
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl/src/org/eclipse/osbp/xtext/reportdsl/common/AbstractReportBean.java
@@ -0,0 +1,155 @@
+/**
+ *                                                                            
+ * 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.reportdsl.common;
+
+import java.beans.PropertyChangeListener;
+import java.beans.PropertyChangeSupport;
+import java.io.ByteArrayInputStream;
+import java.io.InputStream;
+
+import com.vaadin.data.Container.Filter;
+
+import org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelFactory;
+import org.eclipse.osbp.ecview.core.extension.model.extension.YBrowserStreamInput;
+
+import com.vaadin.server.StreamResource;
+
+public abstract class AbstractReportBean {
+
+	private Filter filter;
+
+	public final void setFilter(Filter filter) {
+		firePropertyChange("query", this.filter, this.filter = filter);
+	}
+
+	@Deprecated
+	public final Filter getFilter() {
+		return filter;
+	}
+
+	private Object dto;
+
+	public final void setDto(Object dto) {
+		firePropertyChange("dto", this.dto, this.dto = dto);
+	}
+
+	@Deprecated
+	public Object getDto() {
+		return dto;
+	}
+
+	private PropertyChangeSupport propertyChangeSupport = new PropertyChangeSupport(
+			this);
+
+	private BaseReport report = null;
+	private YBrowserStreamInput inputStream;
+
+	/**
+	 * @see PropertyChangeSupport#addPropertyChangeListener(PropertyChangeListener)
+	 */
+	public final void addPropertyChangeListener(
+			final PropertyChangeListener listener) {
+		propertyChangeSupport.addPropertyChangeListener(listener);
+	}
+
+	/**
+	 * @see PropertyChangeSupport#addPropertyChangeListener(String,
+	 *      PropertyChangeListener)
+	 */
+	public final void addPropertyChangeListener(final String propertyName,
+			final PropertyChangeListener listener) {
+		propertyChangeSupport.addPropertyChangeListener(propertyName, listener);
+	}
+
+	/**
+	 * @see PropertyChangeSupport#removePropertyChangeListener(PropertyChangeListener)
+	 */
+	public final void removePropertyChangeListener(
+			final PropertyChangeListener listener) {
+		propertyChangeSupport.removePropertyChangeListener(listener);
+	}
+
+	/**
+	 * @see PropertyChangeSupport#removePropertyChangeListener(String,
+	 *      PropertyChangeListener)
+	 */
+	public final void removePropertyChangeListener(final String propertyName,
+			final PropertyChangeListener listener) {
+		propertyChangeSupport.removePropertyChangeListener(propertyName,
+				listener);
+	}
+
+	/**
+	 * @see PropertyChangeSupport#firePropertyChange(String, Object, Object)
+	 */
+	public final void firePropertyChange(final String propertyName,
+			final Object oldValue, final Object newValue) {
+		propertyChangeSupport.firePropertyChange(propertyName, oldValue,
+				newValue);
+	}
+
+	public final void setTrigger(long timestamp) {
+		setInputStream(generateInputStreamForReport());
+	}
+
+	public final long getTrigger() {
+		return 0;
+	}
+
+	public final void setInputStream(YBrowserStreamInput inputStream) {
+		firePropertyChange("inputStream", this.inputStream,
+				this.inputStream = inputStream);
+	}
+
+	public final YBrowserStreamInput getInputStream() {
+		return inputStream;
+	}
+
+	protected abstract BaseReport createReport();
+
+	protected final YBrowserStreamInput generateInputStreamForReport() {
+		// YBrowserStreamInput stream = new YBrowserStreamInput();
+		YBrowserStreamInput stream = ExtensionModelFactory.eINSTANCE
+				.createYBrowserStreamInput();
+		if (report == null) {
+			report = createReport();
+		}
+		if	(dto != null) {
+			report.applyBeanDto(dto);
+		}
+		else if (filter != null) {
+			report.applyBeanFilter(filter);
+		}
+		else {
+			report.resetBean();
+		}
+		StreamResource streamResource = report.getReportStreamResource();
+		String filename = report.getClass().getSimpleName() + "-error.html";
+		InputStream inputStream;
+		String mimeType;
+		if (streamResource == null) {
+			inputStream = new ByteArrayInputStream(("<html><body><h1>"
+					+ filename + "</h1>error</body></html>").getBytes());
+			mimeType = "application/xhtml+xml";
+		} else {
+			filename = streamResource.getFilename();
+			inputStream = report.getStream();
+			mimeType = streamResource.getMIMEType();
+		}
+		stream.setInputStream(inputStream);
+		stream.setFilename(filename);
+		stream.setMimeType(mimeType);
+
+		return stream;
+	}
+}
diff --git a/org.eclipse.osbp.xtext.reportdsl/src/org/eclipse/osbp/xtext/reportdsl/common/Activator.java b/org.eclipse.osbp.xtext.reportdsl/src/org/eclipse/osbp/xtext/reportdsl/common/Activator.java
new file mode 100644
index 0000000..c063c26
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl/src/org/eclipse/osbp/xtext/reportdsl/common/Activator.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 
+ */
+package org.eclipse.osbp.xtext.reportdsl.common;
+
+import org.eclipse.osbp.gitinfo.Loginfo;
+import org.osgi.framework.BundleActivator;
+import org.osgi.framework.BundleContext;
+
+public class Activator implements BundleActivator {
+
+	private static BundleContext context;
+
+	static BundleContext getContext() {
+		return context;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * @see org.osgi.framework.BundleActivator#start(org.osgi.framework.BundleContext)
+	 */
+	public void start(BundleContext bundleContext) throws Exception {
+		Activator.context = bundleContext;
+		BirtEngine.start();
+		Loginfo li = new Loginfo();
+		li.print( Activator.class.getCanonicalName(), Activator.class.getClassLoader());
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * @see org.osgi.framework.BundleActivator#stop(org.osgi.framework.BundleContext)
+	 */
+	public void stop(BundleContext bundleContext) throws Exception {
+		BirtEngine.stop();
+		Activator.context = null;
+	}
+
+}
diff --git a/org.eclipse.osbp.xtext.reportdsl/src/org/eclipse/osbp/xtext/reportdsl/common/BaseReport.java b/org.eclipse.osbp.xtext.reportdsl/src/org/eclipse/osbp/xtext/reportdsl/common/BaseReport.java
new file mode 100644
index 0000000..0023c20
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl/src/org/eclipse/osbp/xtext/reportdsl/common/BaseReport.java
@@ -0,0 +1,538 @@
+/**
+ *                                                                            
+ * 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.reportdsl.common;
+
+import java.io.ByteArrayInputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.net.URL;
+import java.util.Collection;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Locale;
+import java.util.Map;
+
+import javax.annotation.PreDestroy;
+import javax.inject.Inject;
+
+import org.eclipse.birt.report.model.api.DesignElementHandle;
+import org.eclipse.birt.report.model.api.OdaDataSetHandle;
+import org.eclipse.birt.report.model.api.OdaDataSourceHandle;
+import org.eclipse.birt.report.model.api.ReportDesignHandle;
+import org.eclipse.birt.report.model.api.SessionHandle;
+import org.eclipse.birt.report.model.api.activity.SemanticException;
+import org.eclipse.birt.report.model.api.command.ContentException;
+import org.eclipse.birt.report.model.api.command.NameException;
+import org.eclipse.birt.report.model.api.css.CssStyleSheetHandle;
+import org.eclipse.birt.report.model.css.CssStyleSheet;
+import org.eclipse.e4.core.contexts.IEclipseContext;
+import org.eclipse.e4.ui.model.application.MApplication;
+import org.eclipse.e4.ui.model.application.ui.menu.MToolBar;
+import org.eclipse.e4.ui.model.application.ui.menu.MToolBarElement;
+import org.eclipse.osbp.osgi.hybrid.api.AbstractHybridVaaclipseView;
+import org.eclipse.osbp.ui.api.datamart.IDataMart;
+import org.eclipse.osbp.ui.api.datamart.IDatamartFilterGenerator;
+import org.eclipse.osbp.ui.api.layout.IViewLayoutManager;
+import org.eclipse.osbp.ui.api.metadata.IDSLMetadataService;
+import org.eclipse.osbp.ui.api.report.IReportProvider.Rendering;
+import org.eclipse.osbp.ui.api.themes.IThemeResourceService;
+import org.eclipse.osbp.ui.api.user.IUser;
+import org.eclipse.osbp.utils.common.IEntityIdModificationListenerView;
+import org.eclipse.osbp.utils.constants.ExtendedDate;
+import org.eclipse.osbp.utils.vaadin.PropertyLookup;
+import org.eclipse.osbp.utils.vaadin.ViewLayoutManager;
+import org.eclipse.osbp.xtext.action.ReportActionEnum;
+import org.eclipse.osbp.xtext.action.common.IToolbarAction;
+import org.eclipse.osbp.xtext.datamart.common.DatamartFilterGenerator;
+import org.eclipse.osbp.xtext.reportdsl.common.item.BodyItem;
+import org.eclipse.osbp.xtext.reportdsl.jvmmodel.ReportGeneratorWorkSet;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import com.ibm.icu.util.ULocale;
+import com.vaadin.data.Container.Filter;
+import com.vaadin.data.Property.ValueChangeEvent;
+import com.vaadin.data.Property.ValueChangeListener;
+import com.vaadin.server.DownloadStream;
+import com.vaadin.server.FileDownloader;
+import com.vaadin.server.StreamResource;
+import com.vaadin.ui.BrowserFrame;
+import com.vaadin.ui.Button;
+import com.vaadin.ui.Button.ClickEvent;
+import com.vaadin.ui.VerticalLayout;
+
+/**
+ * 
+ * @author mokross, riegel
+ * 
+ */
+@SuppressWarnings("restriction")
+public abstract class BaseReport extends AbstractHybridVaaclipseView implements StreamResource.StreamSource, IUser.UserLocaleListener, IEntityIdModificationListenerView {
+	private static final long serialVersionUID = -2774341697829389431L;
+	private static final Logger LOGGER = LoggerFactory.getLogger(BaseReport.class);
+
+	public final static String CAPTION_I18NKEY_SAVE_PDF = "save PDF";
+	public final static String CAPTION_I18NKEY_PRINT_PDF = "print PDF";
+
+	protected IViewLayoutManager layoutManager;
+	protected BrowserFrame frame;
+	protected IDataMart datamartInstance;
+	protected IDatamartFilterGenerator fFilterGenerator;
+	private ValueChangeListener fFilterChangeListener;
+	protected BodyItem fBody;
+	protected Map<String, PropertyLookup> fPropertyLookupMapMap = new HashMap<>();
+	protected ReportGeneratorWorkSet fWorkset;
+	protected Locale fLocale;
+	protected StreamResource fReportResource;
+
+	/** needs to be equivalent to the datamata ODA bundle symbolic name */
+	public final static String DATASOURCE_EXTENSION_ID = "org.eclipse.osbp.xtext.reportdsl.oda.datamart";
+
+	@Inject
+	protected IThemeResourceService themeResourceService;
+
+	@Inject
+	private IUser user;
+
+	@Inject
+	private IDSLMetadataService dslMetadataService;
+
+	@Inject
+	public BaseReport(final VerticalLayout parent, final IEclipseContext context, final MApplication app) {
+		super(parent, context, app);
+		layoutManager = new ViewLayoutManager();
+		layoutManager.init(parent);
+	}
+
+	public IThemeResourceService getThemeResourceService() {
+		return themeResourceService;
+	}
+
+	protected void preInit() {
+		fWorkset = new ReportGeneratorWorkSet();
+		fLocale = user.getLocale();
+		super.preInit();
+		user.addUserLocaleListener(this);
+	}
+
+	@Override
+	public void refreshViewDueToModifiedEntityId(String entity, Object id) {
+		super.refreshViewDueToModifiedEntityId(entity, id);
+		renderData();
+	}
+
+	public StreamResource getReportStreamResource() {
+		return getReportStreamResource(fLocale);
+	}
+
+	public StreamResource getReportStreamResource(Locale locale) {
+		setLocale(locale);
+		return fReportResource;
+	}
+
+	@Override
+	protected void createView(VerticalLayout parent) {
+	}
+
+	public void addCss(ReportDesignHandle designHandle) {
+		if (getExternalCssURI() != null) {
+			CssStyleSheet css = new CssStyleSheet();
+			css.setFileName(getExternalCssURI());
+			css.setExternalCssURI(getExternalCssURI());
+			CssStyleSheetHandle cssh = new CssStyleSheetHandle(designHandle.getModuleHandle(), css);
+			try {
+				designHandle.addCss(cssh);
+			} catch (SemanticException e) {
+				LOGGER.error(e.getLocalizedMessage());
+				if (e.getCause() != null)
+					LOGGER.error(" " + e.getCause());
+			}
+		}
+	}
+
+	protected final void initReport() {
+		try {
+			fLocale = user.getLocale();
+			LOGGER.debug("CCBaseReport " + getClass().getSimpleName() + " initReport");
+			SessionHandle session = BirtEngine.getDesignEngine().newSessionHandle(ULocale.forLocale(user.getLocale()));
+			SessionHandle.setBirtResourcePath("i18n/I18N");
+			if (getUsedReportDesignFilename() == null) {
+				// Create a new report design.
+				fWorkset.design = session.createDesign();
+				// The element factory creates instances of the various BIRT
+				// elements.
+				fWorkset.factory = fWorkset.design.getElementFactory();
+				// Create a simple master page that describes how the report
+				// will
+				// appear when printed.
+				//
+				// Note: The report will fail to load in the BIRT designer
+				// unless you create a master page.
+				DesignElementHandle element = fWorkset.factory.newSimpleMasterPage("Page Master"); //$NON-NLS-1$
+				//DesignElementHandle element = new CXMasterPage("Page Master").getHandle(null); //$NON-NLS-1$
+				fWorkset.design.getMasterPages().add(element);
+				// add external CSS
+				addCss(fWorkset.design);
+				fBody = new BodyItem(fWorkset);
+			}
+		} catch (Exception e) {
+			LOGGER.error(e.getLocalizedMessage());
+			if (e.getCause() != null)
+				LOGGER.error(" " + e.getCause());
+		}
+	}
+
+	protected final void createFilter() {
+		try {
+			fFilterChangeListener = new ValueChangeListener() {
+				private static final long serialVersionUID = 6098371425859098676L;
+
+				@Override
+				public void valueChange(ValueChangeEvent event) {
+					renderData();
+				}
+			};
+			fFilterGenerator = (IDatamartFilterGenerator) new DatamartFilterGenerator();
+			fFilterGenerator.setDslMetadataService(dslMetadataService);
+			datamartInstance = getDatamartInstance();
+			fFilterGenerator.createFilter(datamartInstance, user, fFilterChangeListener, layoutManager);
+		} catch (Exception e) {
+			LOGGER.error(e.getLocalizedMessage());
+			if (e.getCause() != null)
+				LOGGER.error(" " + e.getCause());
+		}
+	}
+
+	protected abstract IDataMart getDatamartInstance();
+
+	/**
+	 * @return the explicit given file name of the report design file
+	 */
+	protected String getReportDesignFilename() {
+		return null;
+	}
+
+	/**
+	 * @return either the explicit given file name, any automatic generated report design file or null
+	 */
+	protected final String getUsedReportDesignFilename() {
+		// --- either the explicit given file name ---
+		String retcode = getReportDesignFilename();
+		if (retcode == null) {
+			String pathName = getClass().getCanonicalName().replace(".", "/");
+			if (pathName.endsWith("Report")) {
+				pathName = pathName.substring(0, pathName.length() - "Report".length());
+			}
+			// --- or a copy of the automatic generated report file ---
+			retcode = "rptdesign/" + pathName + ".rptdesign";
+			try {
+				getClass().getClassLoader().getResource(retcode).openStream();
+			} catch (Exception e1) {
+				// --- or the automatic generated report file ---
+				Collection<String> roles = getAuthenticatedRoles();
+				// for the moment - take the first role
+				if (roles != null && roles.iterator().hasNext()) {
+					retcode = "rptdesign-gen/" + pathName + roles.iterator().next() + ".rptdesign";
+				} else {
+					retcode = "rptdesign-gen/" + pathName + ".rptdesign";
+				}
+				try {
+					getClass().getClassLoader().getResource(retcode).openStream();
+				} catch (Exception e2) {
+					retcode = null;
+				}
+			}
+		}
+		return retcode;
+	}
+
+	protected String getExternalCssURI() {
+		return null;
+	}
+
+	protected String getExternalCssURIBundle() {
+		return null;
+	}
+
+	protected Rendering getRenderingAs() {
+		return Rendering.PDF_STREAM;
+	}
+
+	abstract protected void buildReport();
+
+	protected String getReportFilename() {
+		return getClass().getSimpleName() + getTimestampPostfix() + "-" + fLocale.toString();
+	}
+
+	protected final String getFileExtension() {
+		return getFileExtension(getRenderingAs());
+	}
+
+	final String getFileExtension(Rendering renderer) {
+		switch (renderer) {
+		case HTML_FILE:
+		case HTML_STREAM:
+			return ".html";
+		case PDF_FILE:
+		case PDF_STREAM:
+		case PDF_PRINT_STREAM:
+			return ".pdf";
+		default:
+			return ".unknown";
+		}
+	}
+
+	protected final String getTimestampPostfix() {
+		return "-" + ExtendedDate.timeStampToString();
+	}
+
+	@Override
+	protected final void createComponents() {
+		initReport();
+		try {
+			buildReport();
+		} catch (Exception e) {
+			LOGGER.error(e.getLocalizedMessage());
+			if (e.getCause() != null)
+				LOGGER.error(" " + e.getCause());
+		}
+		// remove any previous component
+		if (frame != null) {
+			layoutManager.getDataArea().removeComponent(frame);
+			frame = null;
+		}
+		frame = new BrowserFrame(null, null);
+		frame.setAlternateText("unable to display report");
+		frame.setSizeFull();
+		layoutManager.getDataArea().addComponent(frame);
+		layoutManager.getDataArea().setExpandRatio(frame, 1);
+		String filename = getReportFilename() + getFileExtension();
+
+		fReportResource = null;
+		LOGGER.debug("BaseReport " + getClass().getSimpleName() + " (re)buildReport(" + fLocale.toString() + ")" + "...");
+		fReportResource = new StreamResource(this, filename);
+		fReportResource.setCacheTime(0);
+		if (frame != null) {
+			frame.setSource(fReportResource);
+		}
+	}
+	
+	@SuppressWarnings("serial")
+	public void addPDFDownload(IToolbarAction target) {
+		MToolBar toolbar = target.getToolBar();
+		for (MToolBarElement element : toolbar.getChildren()) {
+			Object widget = element.getWidget();
+			if (widget instanceof Button) {
+				List<String> tags = element.getTags();
+				if	(tags.contains(ReportActionEnum.REPORT_ACTION_DOWNLOAD_PDF.getLiteral())) {
+					FileDownloader fileDownloader = new FileDownloader(new StreamResource(this, getReportFilename() + ".pdf") {
+						@Override
+						public DownloadStream getStream() {
+							final DownloadStream ds = new DownloadStream(getPDF(), getMIMEType(), getFilename());
+							ds.setBufferSize(getBufferSize());
+							ds.setCacheTime(getCacheTime());
+							return ds;
+						}
+					});
+					fileDownloader.extend((Button) widget);
+				}
+				if	(tags.contains(ReportActionEnum.REPORT_ACTION_PRINT_ON_SERVER_PDF.getLiteral())) {
+					((Button)widget).addClickListener(new Button.ClickListener() {
+						private static final long serialVersionUID = 3396112960709977314L;
+
+						@Override
+						public void buttonClick(ClickEvent event) {
+							PdfPrintService.printReportAsPdf(BaseReport.this, user.getPrintService());
+						}
+					});
+				}
+			}
+		}
+	}
+
+	public void setLocale(Locale locale) {
+		fLocale = locale;
+		if (fFilterGenerator != null) {
+			fFilterGenerator.setLocale(locale);
+		}
+	}
+
+	public void buildReportDesign(String fullQualifiedFileName) throws IOException {
+		try {
+			URL baseUrl = getClass().getClassLoader().getResource("/rptdesign-gen/.");
+			LOGGER.debug(baseUrl.toString());
+		} catch (Exception e) {
+			LOGGER.error(e.getLocalizedMessage());
+			if (e.getCause() != null)
+				LOGGER.error(" " + e.getCause());
+		}
+		fWorkset.design.saveAs(fullQualifiedFileName);
+	}
+
+	protected final Object getRunnableOrFilename() {
+		if (getUsedReportDesignFilename() != null) {
+			return getUsedReportDesignFilename();
+		} else {
+			return fWorkset.design;
+		}
+	}
+
+	/**
+	 * @return the property lookup map defined inside the report dsl
+	 */
+	public Map<String, PropertyLookup> getPropertyLookupMap() {
+		return fPropertyLookupMapMap;
+	}
+
+	public final IDataMart getDatamartInstance(String odaPropConfigurationId) {
+		return datamartInstance;
+	}
+
+	public final IDatamartFilterGenerator getFilterGenerator() {
+		return fFilterGenerator;
+	}
+
+	protected void add(DesignElementHandle handle) {
+		if (handle instanceof OdaDataSourceHandle) {
+			fWorkset.design.getModule().addElementID(handle.getElement());
+			// design.
+		} else if (handle instanceof OdaDataSetHandle) {
+			fWorkset.design.getModule().addElementID(handle.getElement());
+			// design.getBody().add(handle);
+		} else {
+			try {
+				fWorkset.design.getBody().add(handle);
+				// throw new
+				// UnsupportedOperationException("handle "+handle.getClass().getCanonicalName()+" cannot be added!");
+			} catch (ContentException | NameException e) {
+				LOGGER.error(e.getLocalizedMessage());
+				if (e.getCause() != null)
+					LOGGER.error(" " + e.getCause());
+			}
+		}
+	}
+
+	public final InputStream getPDF(String path) {
+		try {
+			return BirtEngine.get(this, Rendering.PDF_FILE, path);
+		} catch (Exception e) {
+			LOGGER.debug(getClass().getSimpleName() + " PDF_FILE: " + e.getLocalizedMessage() + "</body></html>");
+			return null;
+		}
+	}
+
+	public final InputStream getHTML(String path) {
+		try {
+			return BirtEngine.get(this, Rendering.HTML_FILE, path);
+		} catch (Exception e) {
+			LOGGER.debug(getClass().getSimpleName() + " HTML_FILE: " + e.getLocalizedMessage() + "</body></html>");
+			return new ByteArrayInputStream(("<html><body>" + getClass().getSimpleName() + ": " + e.getLocalizedMessage() + "</body></html>").getBytes());
+		}
+	}
+
+	public InputStream getPDF() {
+		try {
+			return BirtEngine.get(this, Rendering.PDF_STREAM);
+		} catch (Exception e) {
+			LOGGER.debug(getClass().getSimpleName() + " PDF_STREAM: " + e.getLocalizedMessage() + "</body></html>");
+			return new ByteArrayInputStream(("<html><body>" + getClass().getSimpleName() + ": " + e.getLocalizedMessage() + "</body></html>").getBytes());
+		}
+	}
+
+	public InputStream getPDFPrint() {
+		try {
+			return BirtEngine.get(this, Rendering.PDF_PRINT_STREAM);
+		} catch (Exception e) {
+			LOGGER.debug(getClass().getSimpleName() + " PDF_PRINT_STREAM: " + e.getLocalizedMessage() + "</body></html>");
+			return new ByteArrayInputStream(("<html><body>" + getClass().getSimpleName() + ": " + e.getLocalizedMessage() + "</body></html>").getBytes());
+		}
+	}
+
+	public InputStream getHTML() {
+		try {
+			return BirtEngine.get(this, Rendering.HTML_STREAM);
+		} catch (Exception e) {
+			LOGGER.debug(getClass().getSimpleName() + " HTML_STREAM: " + e.getLocalizedMessage() + "</body></html>");
+			return new ByteArrayInputStream(("<html><body>" + getClass().getSimpleName() + ": " + e.getLocalizedMessage() + "</body></html>").getBytes());
+		}
+	}
+
+	public InputStream getStream() {
+		// --- because only at this time, the data will be read, "reset" the
+		// listening entity ids ---
+		resetListeningForEntityIdsModifications();
+		LOGGER.debug("CCBaseReport " + getClass().getSimpleName() + " getStream() ...");
+		LOGGER.debug("   ..." + fReportResource.getCacheTime() + " " + fReportResource.getFilename());
+		return getStream(getRenderingAs());
+	}
+
+	protected InputStream getStream(Rendering renderer) {
+		try {
+			switch (renderer) {
+			case HTML_STREAM:
+				return getHTML();
+			case PDF_STREAM:
+				return getPDF();
+			case PDF_PRINT_STREAM:
+				return getPDFPrint();
+			default:
+				return null;
+			}
+		} catch (Exception t) {
+			t.printStackTrace();
+		}
+		return null;
+	}
+
+	public IDSLMetadataService getDslMetadataService() {
+		return dslMetadataService;
+	}
+
+	public IUser getUser() {
+		return user;
+	}
+
+	public void localeChanged(Locale locale) {
+		setLocale(locale);
+		if(layoutManager != null) {
+			layoutManager.setLabelValue(dslMetadataService.translate(locale.toLanguageTag(), getReportName()));
+		}
+		renderData();
+	}	
+
+	public final void resetBean() {
+		fFilterGenerator = null;
+	}
+
+	protected abstract String getReportName();
+
+	public abstract void applyBeanFilter(Filter filter);
+
+	public abstract void applyBeanDto(Object dto);
+
+	@PreDestroy
+	public void preDestroy() {
+		user.removeUserLocaleListener(this);
+		layoutManager = null;
+		frame = null;
+		datamartInstance = null;
+		fFilterGenerator = null;
+		fFilterChangeListener = null;
+		fBody = null;
+		fPropertyLookupMapMap = null;
+		fWorkset = null;
+		fLocale = null;
+		fReportResource = null;
+		super.preDestroy();
+	}
+}
diff --git a/org.eclipse.osbp.xtext.reportdsl/src/org/eclipse/osbp/xtext/reportdsl/common/BirtEngine.java b/org.eclipse.osbp.xtext.reportdsl/src/org/eclipse/osbp/xtext/reportdsl/common/BirtEngine.java
new file mode 100644
index 0000000..6869c16
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl/src/org/eclipse/osbp/xtext/reportdsl/common/BirtEngine.java
@@ -0,0 +1,305 @@
+/**
+ *                                                                            
+ * 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.reportdsl.common;
+
+import java.io.ByteArrayInputStream;
+import java.io.ByteArrayOutputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.net.URL;
+import java.util.Properties;
+import java.util.logging.Level;
+
+import org.eclipse.birt.core.exception.BirtException;
+import org.eclipse.birt.core.framework.IPlatformContext;
+import org.eclipse.birt.core.framework.Platform;
+import org.eclipse.birt.core.framework.PlatformFileContext;
+import org.eclipse.birt.report.engine.api.EngineConfig;
+import org.eclipse.birt.report.engine.api.EngineException;
+import org.eclipse.birt.report.engine.api.HTMLRenderOption;
+import org.eclipse.birt.report.engine.api.IRenderOption;
+import org.eclipse.birt.report.engine.api.IReportEngine;
+import org.eclipse.birt.report.engine.api.IReportEngineFactory;
+import org.eclipse.birt.report.engine.api.IReportRunnable;
+import org.eclipse.birt.report.engine.api.IRunAndRenderTask;
+import org.eclipse.birt.report.engine.api.PDFRenderOption;
+import org.eclipse.birt.report.model.api.DesignConfig;
+import org.eclipse.birt.report.model.api.IDesignEngine;
+import org.eclipse.birt.report.model.api.IDesignEngineFactory;
+import org.eclipse.birt.report.model.api.ReportDesignHandle;
+import org.eclipse.birt.report.model.api.command.CustomMsgException;
+import org.eclipse.osbp.ui.api.metadata.IDSLMetadataService;
+import org.eclipse.osbp.ui.api.report.IReportProvider;
+import org.eclipse.osbp.ui.api.report.IReportProvider.Rendering;
+import org.eclipse.osbp.utils.session.VaadinSessionAttributes;
+import org.eclipse.osbp.xtext.reportdsl.jvmmodel.ReportModelGenerator;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import com.lowagie.text.DocumentException;
+import com.lowagie.text.pdf.PdfCopyFields;
+import com.lowagie.text.pdf.PdfReader;
+
+public class BirtEngine {
+
+	
+	private static final Logger LOGGER = LoggerFactory.getLogger(BirtEngine.class);
+	private final static String CONFIG_FILE = "BirtConfig.properties";
+	
+	private static Properties configProps = new Properties();
+	private static EngineConfig config = new EngineConfig();
+	private static boolean isStarted = false;
+
+	public static void start() {
+		if	(!isStarted) {
+			LOGGER.debug("CCBirtEngine - start");
+			loadEngineProps();
+			isStarted = true;
+		}
+	}
+
+	public static void stop() {
+		if	(isStarted) {
+			LOGGER.debug("CCBirtEngine - stop");
+			Platform.shutdown();
+			isStarted = false;
+		}
+	}
+
+	/**
+	 * <b>only callable by</b><ul>
+	 * <li>{@link #getReportEngine()}</li>
+	 * <li>{@link ReportModelGenerator#generateReportFile(org.eclipse.osbp.xtext.reportdsl.CCReportPackage, org.eclipse.osbp.xtext.reportdsl.CCReport, org.eclipse.xtext.generator.IFileSystemAccess)}</li>
+	 * </ul>
+	 */
+	public static IReportEngine createReportEngine(BaseReport report) {
+		start();
+		config.setResourcePath("i18n");
+		config.setResourceLocator(new ResourceLocator(report));
+		config.setLogConfig("log/birt.log",Level.FINE);
+		IPlatformContext context = new PlatformFileContext();
+		config.setPlatformContext( context );
+		try {
+			Platform.startup( config );
+		}
+		catch ( BirtException e ) {
+			LOGGER.error(e.getLocalizedMessage());
+			if (e.getCause()!=null) LOGGER.error(" "+e.getCause());
+		}
+		IReportEngineFactory factory = (IReportEngineFactory) Platform.createFactoryObject( IReportEngineFactory.EXTENSION_REPORT_ENGINE_FACTORY );
+		return factory.createReportEngine( config );
+	}
+	
+	public static synchronized IReportEngine getReportEngine(BaseReport report) {
+		IReportEngine result = (IReportEngine) VaadinSessionAttributes.get(IReportEngine.class);
+		if	(result == null) {
+			result = createReportEngine(report);
+			VaadinSessionAttributes.set(IReportEngine.class, result);
+			LOGGER.debug("CCBirtEngine - session-static report engine created");
+		}
+		return result;
+	}
+
+	public static synchronized void destroyReportEngine() {
+		IReportEngine result = (IReportEngine) VaadinSessionAttributes.get(IReportEngine.class);
+		if	(result != null) {
+			result.destroy();
+			VaadinSessionAttributes.remove(IReportEngine.class);
+			LOGGER.debug("CCBirtEngine - session-static report engine destroyed");
+		}
+	}
+	
+	/**
+	 * <b>only callable by</b><ul>
+	 * <li>{@link #getDesignEngine()}</li>
+	 * <li>{@link ReportModelGenerator#generateReportFile(org.eclipse.osbp.xtext.reportdsl.CCReportPackage, org.eclipse.osbp.xtext.reportdsl.CCReport, org.eclipse.xtext.generator.IFileSystemAccess)}</li>
+	 * </ul>
+	 */
+	public static IDesignEngine createDesignEngine() {
+		IDesignEngine result = null;
+		try {
+			start();
+			DesignConfig config = new DesignConfig();
+			IDesignEngineFactory engineFactory = (IDesignEngineFactory) Platform.createFactoryObject(IDesignEngineFactory.EXTENSION_DESIGN_ENGINE_FACTORY);
+			Platform.startup(config);
+			result = engineFactory.createDesignEngine(config);
+		} catch (BirtException e) {
+			LOGGER.error(e.getLocalizedMessage());
+			if (e.getCause()!=null) LOGGER.error(" "+e.getCause());
+		}
+		return result;
+	}
+	
+	public static synchronized IDesignEngine getDesignEngine() {
+		IDesignEngine result = (IDesignEngine) VaadinSessionAttributes.get(IDesignEngine.class);
+		if	(result == null) {
+			result = createDesignEngine();
+			if	(result != null) {
+				VaadinSessionAttributes.set(IDesignEngine.class, result);
+				LOGGER.debug("CCBirtEngine - session-static design engine created");
+			}
+		}
+		return result;
+	}
+
+	public Object clone() throws CloneNotSupportedException {
+		throw new CloneNotSupportedException();
+	}
+
+	private static void loadEngineProps() {
+		try {
+			//Config File must be in classpath
+			ClassLoader cl = Thread.currentThread ().getContextClassLoader();
+			InputStream in = null;
+			in = cl.getResourceAsStream (CONFIG_FILE);
+			if	(in != null) {
+				configProps.load(in);
+				in.close();
+			}
+		} catch (Exception e) {
+			LOGGER.error(e.getLocalizedMessage());
+			if (e.getCause()!=null) LOGGER.error(" "+e.getCause());
+		}
+
+	}
+	
+	public static InputStream get(BaseReport report, Rendering renderer) {
+		return get(report, renderer, null);
+	}
+	
+	@SuppressWarnings("unchecked")
+	public static InputStream get(BaseReport report, Rendering renderer, String path) {
+		IReportEngine reportEngine = getReportEngine(report);
+		IReportRunnable design = null;
+		ByteArrayInputStream bis = null;
+		
+		try {
+			// Open report design
+			Object object = report.getRunnableOrFilename();
+			if	(object instanceof String) {
+				URL url = null;
+				InputStream inputStream = null;
+				try {
+					url = report.getClass().getClassLoader().getResource((String)object);
+					inputStream = url.openStream();
+				}
+				catch (Exception e2) {
+					url = null;
+					inputStream = null;
+				}
+				if	(inputStream != null) {
+					design = reportEngine.openReportDesign(url.toExternalForm(), inputStream);
+					if	(design.getDesignHandle() instanceof ReportDesignHandle) {
+						report.addCss((ReportDesignHandle) design.getDesignHandle());
+						addTranslations((ReportDesignHandle) design.getDesignHandle(), report.getDslMetadataService());
+					}
+				}
+			}
+			else if (object instanceof IReportRunnable) {
+				design = (IReportRunnable)object;
+			}
+			else if (object instanceof ReportDesignHandle) {
+				design = reportEngine.openReportDesign((ReportDesignHandle)object);
+			}
+			// create task to run and render report
+			if	(design != null) {
+				IRunAndRenderTask task = reportEngine.createRunAndRenderTask(design);
+				task.getAppContext().put(IReportProvider.APPCONTEXT_REPORT, report);
+				task.getAppContext().put(IReportProvider.APPCONTEXT_THEMERESOURCESERVICE, report.getThemeResourceService());
+				task.getAppContext().put(IReportProvider.APPCONTEXT_DSLMETADATASERVICE, report.getDslMetadataService());
+				task.getAppContext().put(IReportProvider.APPCONTEXT_USER, report.getUser());
+				task.getAppContext().put(IReportProvider.APPCONTEXT_DATAMARTINSTANCE, report.getDatamartInstance());
+				task.getAppContext().put(IReportProvider.APPCONTEXT_FILTERMAP, report.getFilterGenerator().getFilter(false));
+				task.getAppContext().put(IReportProvider.APPCONTEXT_PROPERTYLOOKUP, report.getPropertyLookupMap());
+				task.setLocale(report.getUser().getLocale());
+	
+				// set output options
+				IRenderOption options = null;
+				ByteArrayOutputStream bos = null;
+				if	(renderer.asHtml()) {
+					options = new HTMLRenderOption();
+					options.setOutputFormat(HTMLRenderOption.OUTPUT_FORMAT_HTML);
+					((HTMLRenderOption)options).setEmbeddable(true);
+				}
+				else if (renderer.asPdf()) {
+					options = new PDFRenderOption();
+					options.setOutputFormat(PDFRenderOption.OUTPUT_FORMAT_PDF);
+				}
+				if	(options != null) {
+					if	(renderer.asFile()) {
+						options.setOutputFileName(path);
+					}
+					else if (renderer.asStream()) {
+						bos = new ByteArrayOutputStream();
+//						try {
+//							bos.toString("ISO-8859-1");
+//						} catch (UnsupportedEncodingException e) {
+//							e.printStackTrace();
+//						}
+						options.setOutputStream(bos);
+					}
+				}
+				task.setRenderOption(options);
+				// run report
+				task.run();
+				
+				if (renderer.asStream()) {
+					if	(renderer.forPrinting() && (bos != null)) {
+						// --- get the generated BIRT PDF document ---
+						PdfReader js1 = new PdfReader(bos.toByteArray());
+						// --- create a new output stream ---
+						bos = new ByteArrayOutputStream();
+						// --- generate a new PDF document ---
+						PdfCopyFields cpy = new PdfCopyFields(bos); // new FileOutputStream("output/resample/printdialog.pdf" ));
+						// --- add the previously generated BIRT PDF document ---
+						cpy.addDocument(js1);
+						// --- add a print-statement into the new PDF document ---
+						cpy.addJavaScript( "this.print({bUI: true,bSilent: false,bShrinkToFit:true});" );
+						cpy.close();
+					}
+					if	(bos != null) {
+						bis = new ByteArrayInputStream(bos.toByteArray());
+					}
+				}
+				task.close();
+			}
+		}
+		catch (EngineException | NullPointerException | IOException | DocumentException e) {
+			bis = null;
+			LOGGER.error(e.getLocalizedMessage());
+			if (e.getCause()!=null) LOGGER.error(" "+e.getCause());
+		}
+		return bis;
+	}
+
+	private static void addTranslations(ReportDesignHandle reportDesignHandle,
+			IDSLMetadataService dslMetadataService) {
+		for (String locale : dslMetadataService.getTranslations().keySet()) {
+			// TODO: birt4.4 cannot handle fallbacks of language variants with
+			// missing keys when locale was added - so don't supply for this
+			// version
+			if (!locale.contains("_")) {
+				for (Object key : dslMetadataService.getTranslations()
+						.get(locale).keySet()) {
+					try {
+						reportDesignHandle.addTranslation((String) key, locale,
+								(String) dslMetadataService.getTranslations()
+										.get(locale).get(key));
+					} catch (CustomMsgException e) {
+						LOGGER.error("{}", e);
+					}
+				}
+			}
+		}
+	}
+}
diff --git a/org.eclipse.osbp.xtext.reportdsl/src/org/eclipse/osbp/xtext/reportdsl/common/ColorUtilities.java b/org.eclipse.osbp.xtext.reportdsl/src/org/eclipse/osbp/xtext/reportdsl/common/ColorUtilities.java
new file mode 100644
index 0000000..e181aa9
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl/src/org/eclipse/osbp/xtext/reportdsl/common/ColorUtilities.java
@@ -0,0 +1,86 @@
+/**
+ *                                                                            
+ * 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.reportdsl.common;
+
+import org.eclipse.osbp.xtext.reportdsl.Color;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+/**
+ *  Utilities to convert different Color types.
+ */
+public class ColorUtilities {
+
+	private final static Logger log = LoggerFactory.getLogger(ColorUtilities.class);
+	
+	/**
+	 * @param   source  a color attribute of the Report DSL Grammar
+	 * @return  a AWT color is the source is parseable or <code>java.awt.Color.BLACK</code> otherwise
+	 */
+	public static java.awt.Color convertToAwtColor(Color source) {
+		return convertToAwtColor(source.getColor());
+	}
+	
+	/**
+	 * @param   source  a color string value
+	 * @return  a AWT color is the source is parseable or <code>java.awt.Color.BLACK</code> otherwise
+	 */
+	public static java.awt.Color convertToAwtColor(String source) {
+		java.awt.Color result = java.awt.Color.BLACK;
+		if	(source != null) {
+			if	(source.charAt(0) == '#') {
+				int r = 0;
+				int g = 0;
+				int b = 0;
+				switch (source.length()) {
+					case 3:
+						r = parseHex(source.substring(1, 3));
+						g = r;
+						b = r;
+						break;
+					case 4:
+						r = parseHex(""+source.charAt(1)+source.charAt(1));
+						g = parseHex(""+source.charAt(2)+source.charAt(2));
+						b = parseHex(""+source.charAt(3)+source.charAt(3));
+						break;
+					case 7:
+						r = parseHex(source.substring(1, 3));
+						g = parseHex(source.substring(3, 5));
+						b = parseHex(source.substring(5, 7));
+						break;
+					default:
+						log.error("convertToAwtColor(): hex '"+source+"' is not parseable due to wrong value length!");
+						break;
+				}
+				result = new java.awt.Color(r, g, b);
+			}
+			else {
+				log.error("convertToAwtColor(): string '"+source+"' is not parseable due to wrong value format! Please use #rrggbb format!");
+			}
+		}
+		else {
+			log.error("convertToAwtColor(): string '<null>' is not parseable!");
+		}
+		return result;
+	}
+	
+	private static int parseHex(String hex) {
+		try {
+			return Integer.decode("0x"+hex);
+		}
+		catch (NumberFormatException nfe) {
+			log.error("convertToAwtColor(): hex '"+hex+"' is not parseable!");
+			return 0;
+		}
+	}
+}
diff --git a/org.eclipse.osbp.xtext.reportdsl/src/org/eclipse/osbp/xtext/reportdsl/common/DataTypes.java b/org.eclipse.osbp.xtext.reportdsl/src/org/eclipse/osbp/xtext/reportdsl/common/DataTypes.java
new file mode 100644
index 0000000..371af0a
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl/src/org/eclipse/osbp/xtext/reportdsl/common/DataTypes.java
@@ -0,0 +1,350 @@
+/**
+ *                                                                            
+ * 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.reportdsl.common;
+
+import java.math.BigDecimal;
+import java.sql.Date;
+import java.sql.Time;
+import java.sql.Timestamp;
+import java.sql.Types;
+
+import org.eclipse.birt.core.data.DataType;
+import org.eclipse.birt.report.model.api.elements.DesignChoiceConstants;
+import org.eclipse.osbp.dsl.semantic.common.types.LDataType;
+import org.eclipse.osbp.dsl.semantic.common.types.LScalarType;
+import org.eclipse.osbp.dsl.semantic.entity.LEntityAttribute;
+
+import org.eclipse.osbp.ui.api.datamart.IDataMart.EType;
+import org.eclipse.osbp.xtext.datamartdsl.DatamartProperty;
+import org.eclipse.osbp.xtext.datamartdsl.jvmmodel.DatamartDSLJvmModelInferrer;
+
+
+
+public enum DataTypes {
+	
+	STRING(DataType.STRING_TYPE, DesignChoiceConstants.COLUMN_DATA_TYPE_STRING, "String", Types.CHAR, String.class),
+	BIGDECIMAL(DataType.DECIMAL_TYPE, DesignChoiceConstants.COLUMN_DATA_TYPE_DECIMAL, "BigDecimal", Types.DECIMAL, BigDecimal.class, Double.class, Float.class),
+	TIMESTAMP(DataType.DATE_TYPE, DesignChoiceConstants.COLUMN_DATA_TYPE_DATETIME, "Timestamp", Types.TIMESTAMP, Timestamp.class),
+	BLOB(DataType.BLOB_TYPE, DesignChoiceConstants.COLUMN_DATA_TYPE_BLOB, "Blob", Types.BLOB /*, .class*/),
+	BLOBMAPPING(DataType.BLOB_TYPE, DesignChoiceConstants.COLUMN_DATA_TYPE_BLOB, "blobMapping", Types.BLOB /*, .class*/),
+// ???	CLOB(DesignChoiceConstants.COLUMN_DATA_TYPE_CLOB, "Clob", Types.CLOB /*, .class*/),
+	INTEGER(DataType.INTEGER_TYPE, DesignChoiceConstants.COLUMN_DATA_TYPE_INTEGER, "Integer", Types.INTEGER, Integer.class),
+	INT(DataType.INTEGER_TYPE, DesignChoiceConstants.COLUMN_DATA_TYPE_INTEGER, "Int", Types.INTEGER, Integer.class),
+// ??? why not this ???	LONG(DataType.DECIMAL_TYPE, DesignChoiceConstants.COLUMN_DATA_TYPE_DECIMAL, "Long", Types.DECIMAL, Long.class),
+	LONG(DataType.INTEGER_TYPE, DesignChoiceConstants.COLUMN_DATA_TYPE_INTEGER, "Long", Types.INTEGER, Long.class, Integer.class, Short.class),
+	SHORT(DataType.INTEGER_TYPE, DesignChoiceConstants.COLUMN_DATA_TYPE_INTEGER, "Short", Types.INTEGER, Short.class),
+	DATE(DataType.SQL_DATE_TYPE, DesignChoiceConstants.COLUMN_DATA_TYPE_DATE, "Date", Types.DATE, Date.class),
+	TIME(DataType.SQL_TIME_TYPE, DesignChoiceConstants.COLUMN_DATA_TYPE_TIME, "Time", Types.TIME, Time.class),
+	BOOLEAN(DataType.BOOLEAN_TYPE, DesignChoiceConstants.COLUMN_DATA_TYPE_BOOLEAN, "Boolean", Types.BOOLEAN, Boolean.class),
+	DOUBLE(DataType.DOUBLE_TYPE, DesignChoiceConstants.COLUMN_DATA_TYPE_FLOAT, "Double", Types.DOUBLE, Double.class, Float.class),
+	FLOAT(DataType.DOUBLE_TYPE, DesignChoiceConstants.COLUMN_DATA_TYPE_FLOAT, "Float", Types.DOUBLE, Float.class),
+	OBJECT(DataType.JAVA_OBJECT_TYPE, DesignChoiceConstants.COLUMN_DATA_TYPE_JAVA_OBJECT, "Object", Types.JAVA_OBJECT /*, .class*/),
+	BINARY(DataType.BINARY_TYPE, DesignChoiceConstants.COLUMN_DATA_TYPE_BLOB, "Binary", Types.BINARY /*, .class*/),
+	@SuppressWarnings("deprecation")
+	ANY(DataType.ANY_TYPE, DesignChoiceConstants.COLUMN_DATA_TYPE_ANY, "any", Types.OTHER);
+	
+	private DataTypes(int birtDataTypeId, String nativeDataTypeName, String odaScalaDataTypeName, int sqlDataTypeId, Class<?>...supportedClasses) {
+		fBirtDataTypeId = birtDataTypeId;
+		fNativeOdaDataTypeName = nativeDataTypeName;
+		fOdaScalaDataTypeName = odaScalaDataTypeName;
+		fNativeOdaDataTypeId = sqlDataTypeId;
+		fSupportedClasses = supportedClasses;
+	}
+	
+	public String getNativeOdaDataTypeName() {
+		return fNativeOdaDataTypeName;
+	}
+	public String getOdaScalaDataTypeName() {
+		return fOdaScalaDataTypeName;
+	}
+	public int getNativeOdaDataTypeId() {
+		return fNativeOdaDataTypeId;
+	}
+	public int getBirtDataTypeId() {
+		return fBirtDataTypeId;
+	}
+	public String getBirtDataTypeName() {
+		return DataType.getName(fBirtDataTypeId);
+	}
+
+	/**
+	 * @see http://docs.oracle.com/cd/E13190_01/liquiddata/docs81/xquery/datatypes.html
+	 * @see http://docs.oracle.com/cd/B19306_01/java.102/b14188/datamap.htm#CHDBJAGH
+	 * @param sqlPlSqlDataType
+	 * @return
+	 */
+	public static DataTypes typeofSqlPlSQLDataType(String sqlPlSqlDataType) {
+		switch (sqlPlSqlDataType.toUpperCase()) {
+			case "CHAR":
+			case "CHARACTER":
+			case "STRING":
+			case "VARCHAR":
+			case "VARCHAR2":
+				return STRING; // oracle.sql.CHAR / java.lang.String
+			case "NCHAR":
+			case "NVARCHAR2":
+				return STRING; // oracle.sql.NCHAR / oracle.sql.NString
+			case "NCLOB":
+				return STRING; // oracle.sql.NCLOB / oracle.sql.NCLOB
+			case "RAW":
+			case "LONG RAW":
+				return BLOB; // oracle.sql.RAW / byte[]
+			case "LONG":
+				return LONG;
+			case "BINARY_INTEGER":
+			case "NATURAL":
+			case "NATURALN":
+			case "PLS_INTEGER":
+			case "POSITIVE":
+			case "POSITIVEN":
+			case "SIGNTYPE":
+			case "INT":
+			case "INTEGER":
+				return INTEGER; // oracle.sql.NUMBER / int
+			case "SHORT":
+				return SHORT; // oracle.sql.NUMBER / int
+			case "DEC":
+			case "DECIMAL":
+			case "NUMBER":
+			case "NUMERIC":
+				return BIGDECIMAL; // oracle.sql.NUMBER / java.math.BigDecimal
+			case "DOUBLE PRECISION":
+			case "FLOAT":
+				return BIGDECIMAL; // oracle.sql.NUMBER / double
+			case "SMALLINT":
+				return INTEGER; // oracle.sql.NUMBER / int
+			case "REAL":
+				return BIGDECIMAL; // oracle.sql.NUMBER / float
+			case "DATE":
+				return DATE; // oracle.sql.DATE / java.sql.Timestamp
+			case "TIMESTAMP":
+			case "TIMESTAMP WITH TZ":
+			case "TIMESTAMP WITH LOCAL TZ":
+				return TIMESTAMP; // oracle.sql.TIMESTAMP / oracle.sql.TIMESTAMPTZ / oracle.sql.TIMESTAMPLTZ / java.sql.Timestamp
+			case "INTERVAL YEAR TO MONTH":
+			case "INTERVAL DAY TO SECOND":
+				return STRING; // String
+//			case "ROWID":
+//			case "UROWID":
+//				// oracle.sql.ROWID / oracle.sql.ROWID
+			case "BOOLEAN":
+				return BOOLEAN; // boolean / boolean
+			case "CLOB":
+				return STRING; // oracle.sql.CLOB / java.sql.Clob
+			case "BLOB":
+				return BLOB; // oracle.sql.BLOB / java.sql.Blob
+			case "BFILE":
+				return BLOB; // oracle.sql.BFILE / oracle.sql.BFILE
+//Object types / Generated class / Generated class
+//SQLJ object types / Java class defined at type creation / Java class defined at type creation
+//OPAQUE types / Generated or predefined class / Generated or predefined class
+//RECORD types / Through mapping to SQL object type / Through mapping to SQL object type
+//Nested table, VARRAY / Generated class implemented using oracle.sql.ARRAY / java.sql.Array
+//Reference to object type / Generated class implemented using oracle.sql.REF / java.sql.Ref
+//REF CURSOR / java.sql.ResultSet / java.sql.ResultSet
+//Index-by tables / Through mapping to SQL collection / Through mapping to SQL collection
+//Scalar (numeric or character) / Index-by tables / Through mapping to Java array / Through mapping to Java array
+//User-defined subtypes / Same as for base type / Same as for base type
+		}
+		return ANY;
+	}
+	
+	public static DataTypes typeOf(String dataType) {
+		if	(dataType != null) {
+		for	(DataTypes step : values()) {
+			if	(dataType.equalsIgnoreCase(step.fNativeOdaDataTypeName)) {
+				return step;
+			}
+			if	(dataType.equalsIgnoreCase(step.fOdaScalaDataTypeName)) {
+				return step;
+			}
+			if	(dataType.equalsIgnoreCase(step.getBirtDataTypeName())) {
+				return step;
+				}
+			}
+		}
+		return ANY;
+	}
+	
+	public static DataTypes typeOfNativeDataType(String nativeDataType) {
+		for	(DataTypes step : values()) {
+			if	(nativeDataType.equalsIgnoreCase(step.fNativeOdaDataTypeName)) {
+				return step;
+			}
+		}
+		return ANY;
+	}
+
+	public static DataTypes typeOfOdaScalaDataType(String odaScalaDataType) {
+		for	(DataTypes step : values()) {
+			if	(odaScalaDataType.equalsIgnoreCase(step.fOdaScalaDataTypeName)) {
+				return step;
+			}
+		}
+		return ANY;
+	}
+
+	public static DataTypes typeOfBirtDataType(String birtDataType) {
+		for	(DataTypes step : values()) {
+			if	(birtDataType.equalsIgnoreCase(step.getBirtDataTypeName())) {
+				return step;
+			}
+		}
+		return ANY;
+	}
+
+	public static DataTypes typeOfNativeOdaDataType(int nativeOdaDataType) {
+		for	(DataTypes step : values()) {
+			if	(nativeOdaDataType == step.fNativeOdaDataTypeId) {
+				return step;
+			}
+		}
+		return ANY;
+	}
+
+	public static DataTypes typeOfBirtDataType(int birtDataType) {
+		for	(DataTypes step : values()) {
+			if	(birtDataType == step.fBirtDataTypeId) {
+				return step;
+			}
+		}
+		return ANY;
+	}
+
+	/**
+	 * @see {@link DatamartDSLJvmModelInferrer#evaluateExpression(org.eclipse.osbp.xtext.datamartdsl.Expression, org.eclipse.osbp.xtext.datamartdsl.DatamartEntity)}
+	 * DatamartEntity.properties == DatamartProperty
+	 * <pre>
+	if (element instanceof DatamartProperty) {
+		evaluation = '''«(element as DatamartProperty).getPropertyName(false, entity)»'''
+		var type = (element as DatamartProperty).propertyRef.type
+		var typeName = ""
+		if (type != null && (type instanceof LDataType) && (type as LDataType).jvmTypeReference!=null){
+			typeName = (type as LDataType).jvmTypeReference.simpleName
+		} else {
+			typeName = type.name
+		}
+		if (!typeName.equals("String")) {
+			evaluation = '''to_char(«evaluation»)'''
+		}   
+	}
+		</pre>
+	 * 
+	 */
+	public static DataTypes typeOfOdaScalaDataType(DatamartProperty datamartProperty) {
+		LEntityAttribute entityAttribute = datamartProperty.getPropertyRef();
+		LScalarType scalarType = null;
+		Class<?> findClass = null;
+		String typeName = null;
+		if	(entityAttribute != null) {
+			scalarType = entityAttribute.getType();
+		}
+		if	(scalarType instanceof LDataType) {
+			findClass = scalarType.getClass();
+			if	(findClass != null) {
+				typeName = findClass.getSimpleName();
+			}
+		}
+		else if	(scalarType != null) {
+			typeName = scalarType.getName();
+		}
+		return typeOfNativeDataType(typeName);
+	}
+
+	public static DataTypes typeFor(LDataType dataType) {
+		if	(dataType == null) {
+			return DataTypes.ANY;
+		}
+		if	(dataType.isDate()) {
+			return DataTypes.DATE;
+		}
+		return typeOf(dataType.getName());
+	}
+
+	public static DataTypes typeFor(EType eType) {
+		switch (eType) {
+			case BOOLEAN:
+				return DataTypes.BOOLEAN;
+			case DATE:
+				return DataTypes.DATE;
+			case FLOAT:
+				return DataTypes.FLOAT;
+			case DOUBLE:
+				return DataTypes.DOUBLE;
+			case INTEGER:
+				return DataTypes.INT;
+			case SHORT:
+				return DataTypes.SHORT;
+			case LONG:
+				return DataTypes.LONG;
+			case STRING:
+				return DataTypes.STRING;
+			case TIME:
+				return DataTypes.TIME;
+			case BLOPMAPPING:
+				return DataTypes.BLOBMAPPING;
+			case LENUM:
+				return DataTypes.INT;
+		}
+		return DataTypes.ANY;
+	}
+
+	public static DataTypes typeFor(Object object) {
+		if	(object instanceof EType) {
+			return typeFor((EType)object);
+		}
+		else if	(object instanceof LDataType) {
+			return typeFor((LDataType)object);
+		}
+		else if	(object == null) {
+			return ANY;
+		}
+		else {
+			DataTypes retcode = typeFor(object.getClass());
+			if	(retcode == null) {
+				return ANY;
+			}
+			else {
+				return retcode;
+			}
+		}
+	}
+
+	public static DataTypes typeFor(Class<?> findClass) {
+		for	(DataTypes step : values()) {
+			if	(findClass.equals(DataType.getClass(step.fBirtDataTypeId))) {
+				return step;
+			}
+			else if	(step.fSupportedClasses != null) {
+				for	(Class<?> supportedClass : step.fSupportedClasses) {
+					if	(findClass.equals(supportedClass)) {
+						return step;
+					}
+				}
+			}
+		}
+		return ANY;
+	}
+	
+	/** see {@link org.eclipse.birt.core.data.DataType} */
+	private final int fBirtDataTypeId;
+	/** see <code>org.eclipse.osbp.xtext.reportdsl.oda.datamart/plugin.xml:dataTypeMapping</code> */
+	private final int fNativeOdaDataTypeId;
+	/** see <code>org.eclipse.osbp.xtext.reportdsl.oda.datamart/plugin.xml:dataTypeMapping</code>
+	 *  see for example {@link org.eclipse.birt.report.model.api.elements.DesignChoiceConstants.COLUMN_DATA_TYPE_STRING}
+	 */
+	private final String fNativeOdaDataTypeName;
+	/** see {@link java.sql.Types} has to be defined in org.eclipse.osbp.xtext.reportdsl.ord.datamart / pugin.xml */
+	private final String fOdaScalaDataTypeName;
+	private final Class<?>[] fSupportedClasses;
+}
diff --git a/org.eclipse.osbp.xtext.reportdsl/src/org/eclipse/osbp/xtext/reportdsl/common/OdaConnProperties.java b/org.eclipse.osbp.xtext.reportdsl/src/org/eclipse/osbp/xtext/reportdsl/common/OdaConnProperties.java
new file mode 100644
index 0000000..bbebd69
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl/src/org/eclipse/osbp/xtext/reportdsl/common/OdaConnProperties.java
@@ -0,0 +1,24 @@
+/**
+ *                                                                            
+ * 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.reportdsl.common;
+
+/**
+ * This is the class which hosts the definitions of package-wide constants.
+ */
+public final class OdaConnProperties {
+	public static final String DATAMART_BUNDLENAME = "bundleSymbolicName"; //$NON_NLS-1$
+	public static final String DATAMART_CLASSNAME = "datamartClass"; //$NON_NLS-1$
+	public static final String DATAMART_DATASOURCE = "dataSource"; //$NON_NLS-1$
+	public static final String DATAMART_DATASOURCENAME = "dataSourceName"; //$NON_NLS-1$
+	public static final String DATAMART_DATASETNAME = "dataSetName"; //$NON_NLS-1$
+}
diff --git a/org.eclipse.osbp.xtext.reportdsl/src/org/eclipse/osbp/xtext/reportdsl/common/PdfPrintService.java b/org.eclipse.osbp.xtext.reportdsl/src/org/eclipse/osbp/xtext/reportdsl/common/PdfPrintService.java
new file mode 100644
index 0000000..ed4f88d
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl/src/org/eclipse/osbp/xtext/reportdsl/common/PdfPrintService.java
@@ -0,0 +1,175 @@
+/**
+ *                                                                            
+ * Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ *                                                                            
+ * All rights reserved. This program and the accompanying materials           
+ * are made available under the terms of the Eclipse Public License 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.reportdsl.common;
+
+import java.awt.print.PrinterJob;
+import java.io.File;
+import java.io.InputStream;
+import java.util.Set;
+import java.util.TreeSet;
+
+import javax.print.DocFlavor;
+import javax.print.PrintService;
+import javax.print.PrintServiceLookup;
+import javax.print.attribute.HashPrintRequestAttributeSet;
+import javax.print.attribute.PrintRequestAttributeSet;
+
+import org.apache.pdfbox.pdmodel.PDDocument;
+import org.apache.pdfbox.printing.PDFPageable;
+import org.eclipse.osbp.ui.api.user.IUser;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+/**
+ * Handle and use print services available on the web server
+ */
+public class PdfPrintService {
+	
+	private static final Logger LOGGER = LoggerFactory.getLogger(PdfPrintService.class);
+	private static PrintService[] printServices;
+	
+	/**
+	 * @return the default print service name after re-looking up available print services
+	 */
+	public static String reLookupDefaultPrintServiceName() {
+		return reLookupDefaultPrintServiceName(true);
+	}
+	
+	/**
+	 * @return the default print service name without re-looking up available print services
+	 */
+	public static String lookupDefaultPrintServiceName() {
+		return reLookupDefaultPrintServiceName(false);
+	}
+	
+	private static String reLookupDefaultPrintServiceName(boolean reLookup) {
+		PrintService[] pss = reLookupPrintServices(reLookup);
+		if	(pss.length > 0) {
+			return pss[0].getName();
+		}
+		return null;
+	}
+	
+	/**
+	 * @return the sorted list of available print service names after re-looking up available print services
+	 */
+	public static Set<String> reLookupPrintServiceNames() {
+		return reLookupDefaultPrintServiceNames(true);
+	}
+	
+	/**
+	 * @return the sorted list of available print service names without re-looking up available print services
+	 */
+	public static Set<String> lookupPrintServiceNames() {
+		return reLookupDefaultPrintServiceNames(false);
+	}
+	
+	private static Set<String> reLookupDefaultPrintServiceNames(boolean reLookup) {
+		Set<String> psn = new TreeSet<>();
+		PrintService[] pss = reLookupPrintServices(reLookup);
+		if	(pss.length > 0) {
+			for	(PrintService ps : pss) {
+				psn.add(ps.getName());
+			}
+		}
+		return psn;
+	}
+	
+	/**
+	 * @return the list of available print services after re-looking up available print services
+	 */
+	public static PrintService[] reLookupPrintServices() {
+		return reLookupPrintServices(true);
+	}
+	
+	/**
+	 * @return the list of available print services without re-looking up available print services
+	 */
+	public static PrintService[] lookupPrintServices() {
+		return reLookupPrintServices(false);
+	}
+	
+	private static PrintService[] reLookupPrintServices(boolean reLookup) {
+		if	(reLookup || (printServices == null)) {
+			DocFlavor flavor = DocFlavor.SERVICE_FORMATTED.PAGEABLE;
+			PrintRequestAttributeSet patts = new HashPrintRequestAttributeSet();
+			//patts.add(Sides.DUPLEX);
+			printServices = PrintServiceLookup.lookupPrintServices(flavor, patts);
+		}
+		return printServices;
+	}
+
+	/**
+	 * @param name the name of the requested print service
+	 * @return the print service instance without re-looking up
+	 */
+	public static PrintService getPrintService(String name) {
+		PrintService[] pss = lookupPrintServices();
+		if	(pss.length > 0) {
+			for	(PrintService ps : pss) {
+				if	(name.equals(ps.getName())) {
+					return ps;
+				}
+			}
+		}
+		return pss[0];
+	}
+	
+	/**
+	 * @param baseReport the report to be printed as pdf
+	 * @param printServiceName the name of the printer service to be used to print, or <code>PdfPrintService.DEFAULT_PRINTER</code>
+	 */
+	public static void printReportAsPdf(BaseReport baseReport, String printServiceName) {
+		printReportAsPdf(baseReport.getPDFPrint(), printServiceName);
+	}
+	
+	/**
+	 * @param pdfInputStream the input stream containing the pdf
+	 * @param printServiceName the name of the printer service to be used to print, or <code>PdfPrintService.DEFAULT_PRINTER</code>
+	 */
+	public static void printReportAsPdf(InputStream pdfInputStream, String printServiceName) {
+		PrintService printService = getPrintService(printServiceName);
+		if	(printService != null) {
+			try {
+		        PDDocument document = PDDocument.load(pdfInputStream);
+		        PrinterJob job = PrinterJob.getPrinterJob();
+		        job.setPageable(new PDFPageable(document));
+		        job.setPrintService(printService);
+		        job.print();
+	        }
+			catch (Exception e) {
+				LOGGER.error("error while printing pdf input stream to "+printServiceName, e);
+			}
+		}
+	}
+	
+	/**
+	 * @param pdfInputStream the input stream containing the pdf
+	 * @param printServiceName the name of the printer service to be used to print, or <code>PdfPrintService.DEFAULT_PRINTER</code>
+	 */
+	public static void printReportAsPdf(File pdfFile, String printServiceName) {
+		PrintService printService = getPrintService(printServiceName);
+		if	(printService != null) {
+			try {
+		        PDDocument document = PDDocument.load(pdfFile);
+		        PrinterJob job = PrinterJob.getPrinterJob();
+		        job.setPageable(new PDFPageable(document));
+		        job.setPrintService(printService);
+		        job.print();
+	        }
+			catch (Exception e) {
+				LOGGER.error("error while printing pdf file to "+printServiceName, e);
+			}
+		}
+	}
+}
diff --git a/org.eclipse.osbp.xtext.reportdsl/src/org/eclipse/osbp/xtext/reportdsl/common/PdfStreamResource.java b/org.eclipse.osbp.xtext.reportdsl/src/org/eclipse/osbp/xtext/reportdsl/common/PdfStreamResource.java
new file mode 100644
index 0000000..e77b758
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl/src/org/eclipse/osbp/xtext/reportdsl/common/PdfStreamResource.java
@@ -0,0 +1,46 @@
+/**
+ *                                                                            
+ * 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.reportdsl.common;
+
+import org.eclipse.osbp.ui.api.report.IReportProvider.Rendering;
+
+import com.vaadin.server.DownloadStream;
+import com.vaadin.server.StreamResource;
+
+public class PdfStreamResource extends StreamResource {
+
+	private static final long serialVersionUID = -4408024445685338237L;
+	private final Rendering fRenderer;
+	
+	public PdfStreamResource(Rendering renderer, BaseReport baseReport, String reportFileame) {
+		super(baseReport, reportFileame);
+		fRenderer = renderer;
+	}
+
+    @Override
+    public DownloadStream getStream() {
+		System.out.println("BaseReport "+getClass().getSimpleName()+" getStream()");
+        final BaseReport ss = (BaseReport) getStreamSource();
+        if (ss == null) {
+            return null;
+        }
+        final DownloadStream ds = new DownloadStream(
+        		ss.getStream(fRenderer),
+                getMIMEType(),
+                getFilename());
+        ds.setBufferSize(getBufferSize());
+        ds.setCacheTime(getCacheTime());
+        return ds;
+    }
+	
+}
diff --git a/org.eclipse.osbp.xtext.reportdsl/src/org/eclipse/osbp/xtext/reportdsl/common/ResourceLocator.java b/org.eclipse.osbp.xtext.reportdsl/src/org/eclipse/osbp/xtext/reportdsl/common/ResourceLocator.java
new file mode 100644
index 0000000..7e494a5
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl/src/org/eclipse/osbp/xtext/reportdsl/common/ResourceLocator.java
@@ -0,0 +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
+ * 
+ */
+ package org.eclipse.osbp.xtext.reportdsl.common;
+
+import java.net.URL;
+import java.util.Map;
+
+import org.eclipse.birt.report.model.api.IResourceLocator;
+import org.eclipse.birt.report.model.api.ModuleHandle;
+
+public class ResourceLocator implements IResourceLocator {
+
+	private BaseReport report = null;
+	
+	public ResourceLocator(BaseReport report) {
+		super();
+		this.report = report;
+	}
+
+	@Override
+	public URL findResource(ModuleHandle moduleHandle, String fileName, int type) {
+		return report.getClass().getClassLoader().getResource(fileName);
+	}
+
+	@Override
+	public URL findResource(ModuleHandle moduleHandle, String fileName,	int type, Map appContext) {
+		return report.getClass().getClassLoader().getResource(fileName);
+	}
+}
diff --git a/org.eclipse.osbp.xtext.reportdsl/src/org/eclipse/osbp/xtext/reportdsl/common/attribute/AltText.java b/org.eclipse.osbp.xtext.reportdsl/src/org/eclipse/osbp/xtext/reportdsl/common/attribute/AltText.java
new file mode 100644
index 0000000..45e1b85
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl/src/org/eclipse/osbp/xtext/reportdsl/common/attribute/AltText.java
@@ -0,0 +1,31 @@
+/**
+ *                                                                            
+ * 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.reportdsl.common.attribute;
+
+import org.eclipse.birt.report.model.api.ReportItemHandle;
+import org.eclipse.birt.report.model.api.activity.SemanticException;
+
+public class AltText extends ItemText {
+	public AltText(String value) {
+		super(value);
+	}
+	
+	@Override
+	public void apply(ReportItemHandle item) {
+		try {
+			item.setAltText((String) fValue);
+		} catch (SemanticException e) {
+			e.printStackTrace();
+		} 
+	}
+}
diff --git a/org.eclipse.osbp.xtext.reportdsl/src/org/eclipse/osbp/xtext/reportdsl/common/attribute/Attribute.java b/org.eclipse.osbp.xtext.reportdsl/src/org/eclipse/osbp/xtext/reportdsl/common/attribute/Attribute.java
new file mode 100644
index 0000000..f9890ff
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl/src/org/eclipse/osbp/xtext/reportdsl/common/attribute/Attribute.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 
+ */
+package org.eclipse.osbp.xtext.reportdsl.common.attribute;
+
+import org.eclipse.birt.report.model.api.ReportItemHandle;
+
+
+public interface Attribute {
+	void apply(ReportItemHandle item);
+}
diff --git a/org.eclipse.osbp.xtext.reportdsl/src/org/eclipse/osbp/xtext/reportdsl/common/attribute/Height.java b/org.eclipse.osbp.xtext.reportdsl/src/org/eclipse/osbp/xtext/reportdsl/common/attribute/Height.java
new file mode 100644
index 0000000..35161b0
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl/src/org/eclipse/osbp/xtext/reportdsl/common/attribute/Height.java
@@ -0,0 +1,39 @@
+/**
+ *                                                                            
+ * 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.reportdsl.common.attribute;
+
+import org.eclipse.birt.report.model.api.ReportItemHandle;
+import org.eclipse.birt.report.model.api.activity.SemanticException;
+
+public class Height extends ItemDimension {
+	public Height(String value) {
+		super(value);
+	}
+	public Height(double value) {
+		super(value);
+	}
+	
+	@Override
+	public void apply(ReportItemHandle item) {
+		try {
+			if	(fValue instanceof String) {
+				item.setHeight((String) fValue);
+			}
+			else if (fValue instanceof Double) {
+				item.setHeight((Double) fValue);
+			}
+		} catch (SemanticException e) {
+			e.printStackTrace();
+		} 
+	}
+}
diff --git a/org.eclipse.osbp.xtext.reportdsl/src/org/eclipse/osbp/xtext/reportdsl/common/attribute/ItemDimension.java b/org.eclipse.osbp.xtext.reportdsl/src/org/eclipse/osbp/xtext/reportdsl/common/attribute/ItemDimension.java
new file mode 100644
index 0000000..023da46
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl/src/org/eclipse/osbp/xtext/reportdsl/common/attribute/ItemDimension.java
@@ -0,0 +1,24 @@
+/**
+ *                                                                            
+ * 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.reportdsl.common.attribute;
+
+
+abstract class ItemDimension implements Attribute {
+	protected final Object fValue;
+	public ItemDimension(String value) {
+		fValue = value;
+	}
+	public ItemDimension(double value) {
+		fValue = value;
+	}
+}
diff --git a/org.eclipse.osbp.xtext.reportdsl/src/org/eclipse/osbp/xtext/reportdsl/common/attribute/ItemProperty.java b/org.eclipse.osbp.xtext.reportdsl/src/org/eclipse/osbp/xtext/reportdsl/common/attribute/ItemProperty.java
new file mode 100644
index 0000000..97ef118
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl/src/org/eclipse/osbp/xtext/reportdsl/common/attribute/ItemProperty.java
@@ -0,0 +1,34 @@
+/**
+ *                                                                            
+ * 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.reportdsl.common.attribute;
+
+import org.eclipse.birt.report.model.api.ReportItemHandle;
+import org.eclipse.birt.report.model.api.activity.SemanticException;
+
+
+abstract class ItemProperty extends ItemText {
+	protected final String fProperty;
+	public ItemProperty(String property, String value) {
+		super(value);
+		fProperty = property;
+	}
+	
+	@Override
+	public final void apply(ReportItemHandle item) {
+		try {
+			item.setProperty(fProperty, fValue);
+		} catch (SemanticException e) {
+			e.printStackTrace();
+		} 
+	}
+}
diff --git a/org.eclipse.osbp.xtext.reportdsl/src/org/eclipse/osbp/xtext/reportdsl/common/attribute/ItemText.java b/org.eclipse.osbp.xtext.reportdsl/src/org/eclipse/osbp/xtext/reportdsl/common/attribute/ItemText.java
new file mode 100644
index 0000000..c6bbf47
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl/src/org/eclipse/osbp/xtext/reportdsl/common/attribute/ItemText.java
@@ -0,0 +1,21 @@
+/**
+ *                                                                            
+ * 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.reportdsl.common.attribute;
+
+
+abstract class ItemText implements Attribute {
+	protected final String fValue;
+	public ItemText(String value) {
+		fValue = value;
+	}
+}
diff --git a/org.eclipse.osbp.xtext.reportdsl/src/org/eclipse/osbp/xtext/reportdsl/common/attribute/Position.java b/org.eclipse.osbp.xtext.reportdsl/src/org/eclipse/osbp/xtext/reportdsl/common/attribute/Position.java
new file mode 100644
index 0000000..6918187
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl/src/org/eclipse/osbp/xtext/reportdsl/common/attribute/Position.java
@@ -0,0 +1,58 @@
+/**
+ *                                                                            
+ * 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.reportdsl.common.attribute;
+
+import org.eclipse.birt.report.model.api.ReportItemHandle;
+import org.eclipse.birt.report.model.api.activity.SemanticException;
+
+public class Position implements Attribute {
+	private Object fX;
+	private Object fY;
+	
+	public Position(String x, String y) {
+		fX = x;
+		fY = y;
+	}
+	public Position(double x, String y) {
+		fX = x;
+		fY = y;
+	}
+	public Position(String x, double y) {
+		fX = x;
+		fY = y;
+	}
+	public Position(double x, double y) {
+		fX = x;
+		fY = y;
+	}
+	
+	@Override
+	public void apply(ReportItemHandle item) {
+		try {
+			if	(fX instanceof String) {
+				item.setX((String) fX);
+			}
+			else if (fX instanceof Double) {
+				item.setX((Double) fX);
+			}
+			if	(fY instanceof String) {
+				item.setY((String) fY);
+			}
+			else if (fY instanceof Double) {
+				item.setY((Double) fY);
+			}
+		} catch (SemanticException e) {
+			e.printStackTrace();
+		} 
+	}
+}
diff --git a/org.eclipse.osbp.xtext.reportdsl/src/org/eclipse/osbp/xtext/reportdsl/common/attribute/StyleName.java b/org.eclipse.osbp.xtext.reportdsl/src/org/eclipse/osbp/xtext/reportdsl/common/attribute/StyleName.java
new file mode 100644
index 0000000..53d55b3
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl/src/org/eclipse/osbp/xtext/reportdsl/common/attribute/StyleName.java
@@ -0,0 +1,36 @@
+/**
+ *                                                                            
+ * 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.reportdsl.common.attribute;
+
+import org.eclipse.birt.report.model.api.ReportItemHandle;
+import org.eclipse.birt.report.model.api.activity.SemanticException;
+import org.eclipse.birt.report.model.api.command.StyleException;
+
+public class StyleName extends ItemText {
+	public StyleName(String value) {
+		super(value);
+	}
+	
+	@Override
+	public void apply(ReportItemHandle item) {
+		try {
+			item.setStyleName((String) fValue);
+		}
+		catch (StyleException se) {
+			System.err.println(se.getClass().getSimpleName()+": "+se.getLocalizedMessage());
+		}
+		catch (SemanticException e) {
+			e.printStackTrace();
+		} 
+	}
+}
diff --git a/org.eclipse.osbp.xtext.reportdsl/src/org/eclipse/osbp/xtext/reportdsl/common/attribute/TextAlign.java b/org.eclipse.osbp.xtext.reportdsl/src/org/eclipse/osbp/xtext/reportdsl/common/attribute/TextAlign.java
new file mode 100644
index 0000000..16d1065
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl/src/org/eclipse/osbp/xtext/reportdsl/common/attribute/TextAlign.java
@@ -0,0 +1,28 @@
+/**
+ *                                                                            
+ * 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.reportdsl.common.attribute;
+
+
+public class TextAlign extends ItemProperty {
+	
+	public enum Align {
+		left, center, right;
+	}
+	
+	public TextAlign(Align value) {
+		super("textAlign", value.toString());
+	}
+	public TextAlign(String value) {
+		super("textAlign", value);
+	}
+}
diff --git a/org.eclipse.osbp.xtext.reportdsl/src/org/eclipse/osbp/xtext/reportdsl/common/attribute/VerticalAlign.java b/org.eclipse.osbp.xtext.reportdsl/src/org/eclipse/osbp/xtext/reportdsl/common/attribute/VerticalAlign.java
new file mode 100644
index 0000000..776b647
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl/src/org/eclipse/osbp/xtext/reportdsl/common/attribute/VerticalAlign.java
@@ -0,0 +1,28 @@
+/**
+ *                                                                            
+ * 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.reportdsl.common.attribute;
+
+
+public class VerticalAlign extends ItemProperty {
+	
+	public enum Align {
+		top, middle, bottom;
+	}
+	
+	public VerticalAlign(Align value) {
+		super("verticalAlign", value.toString());
+	}
+	public VerticalAlign(String value) {
+		super("verticalAlign", value);
+	}
+}
diff --git a/org.eclipse.osbp.xtext.reportdsl/src/org/eclipse/osbp/xtext/reportdsl/common/attribute/Width.java b/org.eclipse.osbp.xtext.reportdsl/src/org/eclipse/osbp/xtext/reportdsl/common/attribute/Width.java
new file mode 100644
index 0000000..bedb756
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl/src/org/eclipse/osbp/xtext/reportdsl/common/attribute/Width.java
@@ -0,0 +1,39 @@
+/**
+ *                                                                            
+ * 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.reportdsl.common.attribute;
+
+import org.eclipse.birt.report.model.api.ReportItemHandle;
+import org.eclipse.birt.report.model.api.activity.SemanticException;
+
+public class Width extends ItemDimension {
+	public Width(String value) {
+		super(value);
+	}
+	public Width(double value) {
+		super(value);
+	}
+	
+	@Override
+	public void apply(ReportItemHandle item) {
+		try {
+			if	(fValue instanceof String) {
+				item.setWidth((String) fValue);
+			}
+			else if (fValue instanceof Double) {
+				item.setWidth((Double) fValue);
+			}
+		} catch (SemanticException e) {
+			e.printStackTrace();
+		} 
+	}
+}
diff --git a/org.eclipse.osbp.xtext.reportdsl/src/org/eclipse/osbp/xtext/reportdsl/common/item/AContainerItem.java b/org.eclipse.osbp.xtext.reportdsl/src/org/eclipse/osbp/xtext/reportdsl/common/item/AContainerItem.java
new file mode 100644
index 0000000..b92d21a
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl/src/org/eclipse/osbp/xtext/reportdsl/common/item/AContainerItem.java
@@ -0,0 +1,565 @@
+/**
+ *                                                                            
+ * 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.reportdsl.common.item;
+
+import java.util.ArrayList;
+
+import org.eclipse.birt.report.model.api.DesignElementHandle;
+import org.eclipse.birt.report.model.api.ReportItemHandle;
+import org.eclipse.birt.report.model.api.ReportItemThemeHandle;
+import org.eclipse.birt.report.model.api.SharedStyleHandle;
+import org.eclipse.birt.report.model.api.SlotHandle;
+import org.eclipse.birt.report.model.api.StyleHandle;
+import org.eclipse.birt.report.model.api.activity.SemanticException;
+import org.eclipse.birt.report.model.api.command.ContentException;
+import org.eclipse.birt.report.model.api.command.NameException;
+import org.eclipse.birt.report.model.api.command.StyleException;
+import org.eclipse.birt.report.model.api.elements.DesignChoiceConstants;
+import org.eclipse.birt.report.model.api.elements.structures.HighlightRule;
+import org.eclipse.birt.report.model.api.metadata.DimensionValue;
+import org.eclipse.birt.report.model.elements.interfaces.IStyleModel;
+import org.eclipse.osbp.xtext.reportdsl.BaseStyle;
+import org.eclipse.osbp.xtext.reportdsl.BorderStyle;
+import org.eclipse.osbp.xtext.reportdsl.Color;
+import org.eclipse.osbp.xtext.reportdsl.CurrencyFormat;
+import org.eclipse.osbp.xtext.reportdsl.CustomFontFamily;
+import org.eclipse.osbp.xtext.reportdsl.DateFormat;
+import org.eclipse.osbp.xtext.reportdsl.DateTimeFormat;
+import org.eclipse.osbp.xtext.reportdsl.Font;
+import org.eclipse.osbp.xtext.reportdsl.FontFamily;
+import org.eclipse.osbp.xtext.reportdsl.MediaStyle;
+import org.eclipse.osbp.xtext.reportdsl.NumberFormat;
+import org.eclipse.osbp.xtext.reportdsl.BuildInFontFamily;
+import org.eclipse.osbp.xtext.reportdsl.Style;
+import org.eclipse.osbp.xtext.reportdsl.TimeFormat;
+import org.eclipse.osbp.xtext.reportdsl.UomoFormat;
+import org.eclipse.osbp.xtext.reportdsl.common.ColorUtilities;
+import org.eclipse.osbp.xtext.reportdsl.common.attribute.Attribute;
+import org.eclipse.osbp.xtext.reportdsl.jvmmodel.ReportGeneratorWorkSet;
+
+public abstract class AContainerItem implements BaseItem {
+
+	protected final ReportGeneratorWorkSet fWorkset;
+	
+	public AContainerItem(ReportGeneratorWorkSet workset) {
+		fWorkset = workset;
+	}
+	
+	abstract SlotHandle getSlotHandle();
+	
+	public void add(BaseItem item, Style style, Attribute... attributes) throws SemanticException {
+		SlotHandle contentHandle = getSlotHandle();
+		ReportItemHandle itemHandle = item.getHandle();
+		add(contentHandle, itemHandle, style, attributes);
+	}
+	
+	protected void add(SlotHandle contentHandle, ReportItemHandle itemHandle, Style style, Attribute... attributes) {
+		if	(attributes != null) {
+			for	(Attribute attribute : attributes) {
+				attribute.apply(itemHandle);
+			}
+		}
+		try {
+			contentHandle.add(itemHandle);
+			if	(style != null) {
+				applyStyle(contentHandle.getElementHandle(), itemHandle, style);
+			}
+		}
+		catch (ContentException | NameException e) {
+			e.printStackTrace();
+		}
+	}
+
+	protected void applyStyle(DesignElementHandle designHandle, DesignElementHandle itemHandle, Style elementStyle, Style forceExtends) {
+		// --- if no extends style forcing is given ---
+		if	(forceExtends == null) {
+			applyStyle(designHandle, itemHandle, elementStyle);
+		}
+		// --- no special style is given ---
+		else if	(elementStyle == null) {
+			applyStyle(designHandle, itemHandle, forceExtends);
+		}
+		else {
+			// --- save the previous extended style and the previous name ---
+			Style saveExtends = elementStyle.getExtends();
+			String saveName = elementStyle.getName();
+
+			try {
+				// --- set the forced extends ---
+				elementStyle.setExtends(forceExtends);
+				elementStyle.setName(forceExtends.getName()+"__"+saveName);
+				// --- now apply with the temporarily modified style ---
+				applyStyle(designHandle, itemHandle, elementStyle);
+			}
+			finally {
+				// --- restore to the previous extended style and the previous name ---
+				elementStyle.setExtends(saveExtends);
+				elementStyle.setName(saveName);
+			}
+		}
+	}
+
+	protected void applyStyle(DesignElementHandle designHandle, DesignElementHandle itemHandle, Style style) {
+		try {
+			SharedStyleHandle styleHandle = fWorkset.getStyleHandleByName(style);
+			if	(styleHandle == null) {
+				styleHandle = fWorkset.factory.newStyle(style.getName());
+				applyStyle(styleHandle, style);
+				fWorkset.design.getSlot(ReportItemThemeHandle.STYLES_SLOT).add(styleHandle);
+				fWorkset.putStyleHandleByName(style, styleHandle);
+			}
+			itemHandle.setStyle(styleHandle);
+		}
+		catch (ContentException | NameException | StyleException e) {
+			e.printStackTrace();
+		}
+	}
+	
+	protected void applyStyle(StyleHandle styleHandle, BaseStyle style) {
+		// --- if this style has media specific attributes, add these attributes first ---
+		if	(style instanceof Style) {
+			for	(MediaStyle mediaStyle : ((Style) style).getMediastyles()) {
+				if	(fWorkset.isRequestedMedia(mediaStyle)) {
+					applyStyle(styleHandle, mediaStyle);
+				}
+			}
+		}
+		
+		if	(styleHandle.getBackgroundColor() == null || !styleHandle.getBackgroundColor().isSet()) {
+			if	(style.getBackgroundcolor() != null) {
+				try {
+					styleHandle.setProperty(IStyleModel.BACKGROUND_COLOR_PROP, applyColor(style.getBackgroundcolor()));
+					if	(style.getBackgroundcolor_alternate() != null) {
+						ArrayList<HighlightRule> highlightRules = new ArrayList<>();
+						HighlightRule rule = new HighlightRule(
+								"eq", //op, 
+								null, // v1, 
+								null, 
+								"row[0]%2" //testExpre
+							);
+						rule.setValue1("1");
+						rule.setProperty(HighlightRule.BACKGROUND_COLOR_MEMBER, applyColor(style.getBackgroundcolor_alternate()));
+						highlightRules.add(rule);
+						styleHandle.getElement().setProperty(IStyleModel.HIGHLIGHT_RULES_PROP, highlightRules);
+						
+						/** TODO generate block for alternate background color
+	                    <list-property name="highlightRules">
+                        <structure>
+                            <property name="operator">eq</property>
+                            <property name="backgroundColor"></property>
+                            <expression name="testExpr">row[0]%2</expression>
+                            <expression name="value1">1</expression>
+                        </structure>
+	                    </list-property>
+						*/
+					}
+				} catch (SemanticException e) {
+					e.printStackTrace();
+				}
+			}
+		}
+		if	(styleHandle.getColor() == null || !styleHandle.getColor().isSet()) {
+			if	(style.getTextcolor() != null) {
+				try {
+					styleHandle.setProperty(IStyleModel.COLOR_PROP, applyColor(style.getTextcolor()));
+				} catch (SemanticException e) {
+					e.printStackTrace();
+				}
+			}
+		}
+		if	(style.getFormat() instanceof UomoFormat) {
+			if	(styleHandle.getNumberFormatCategory() == null) {
+				try {
+					styleHandle.setNumberFormatCategory(DesignChoiceConstants.NUMBER_FORMAT_TYPE_CUSTOM);
+				} catch (SemanticException e) {
+					e.printStackTrace();
+				}
+			}
+			if	(styleHandle.getNumberFormat() == null) {
+				try {
+					styleHandle.setNumberFormat(((UomoFormat)style.getFormat()).getReport_pattern());
+				} catch (SemanticException e) {
+					e.printStackTrace();
+				}
+			}
+		}
+		if	(style.getFormat() instanceof NumberFormat) {
+			if	(styleHandle.getNumberFormatCategory() == null) {
+				try {
+					styleHandle.setNumberFormatCategory(((NumberFormat)style.getFormat()).getReport_category().getLiteral());
+				} catch (SemanticException e) {
+					e.printStackTrace();
+				}
+			}
+			if	(styleHandle.getNumberFormat() == null) {
+				try {
+					styleHandle.setNumberFormat(((NumberFormat)style.getFormat()).getReport_pattern());
+				} catch (SemanticException e) {
+					e.printStackTrace();
+				}
+			}
+		}
+		if	(style.getFormat() instanceof CurrencyFormat) {
+			if	(styleHandle.getNumberFormatCategory() == null) {
+				try {
+					styleHandle.setNumberFormatCategory(((CurrencyFormat)style.getFormat()).getReport_category().getLiteral());
+				} catch (SemanticException e) {
+					e.printStackTrace();
+				}
+			}
+			if	(styleHandle.getNumberFormat() == null) {
+				try {
+					styleHandle.setNumberFormat(((CurrencyFormat)style.getFormat()).getReport_pattern());
+				} catch (SemanticException e) {
+					e.printStackTrace();
+				}
+			}
+		}
+		if	(style.getFormat() instanceof DateTimeFormat) {
+			if	(styleHandle.getDateTimeFormatCategory() == null) {
+				try {
+					styleHandle.setDateTimeFormatCategory(((DateTimeFormat)style.getFormat()).getReport_category().getLiteral());
+				} catch (SemanticException e) {
+					e.printStackTrace();
+				}
+			}
+			if	(styleHandle.getDateTimeFormat() == null) {
+				try {
+					styleHandle.setDateTimeFormat(((DateTimeFormat)style.getFormat()).getReport_pattern());
+				} catch (SemanticException e) {
+					e.printStackTrace();
+				}
+			}
+		}
+		if	(style.getFormat() instanceof DateFormat) {
+			if	(styleHandle.getDateFormatCategory() == null) {
+				try {
+					styleHandle.setDateFormatCategory(((DateFormat)style.getFormat()).getReport_category().getLiteral());
+				} catch (SemanticException e) {
+					e.printStackTrace();
+				}
+			}
+			if	(styleHandle.getDateFormat() == null) {
+				try {
+					styleHandle.setDateFormat(((DateFormat)style.getFormat()).getReport_pattern());
+				} catch (SemanticException e) {
+					e.printStackTrace();
+				}
+			}
+		}
+		if	(style.getFormat() instanceof TimeFormat) {
+			if	(styleHandle.getTimeFormatCategory() == null) {
+				try {
+					styleHandle.setTimeFormatCategory(((TimeFormat)style.getFormat()).getReport_category().getLiteral());
+				} catch (SemanticException e) {
+					e.printStackTrace();
+				}
+			}
+			if	(styleHandle.getTimeFormat() == null) {
+				try {
+					styleHandle.setTimeFormat(((TimeFormat)style.getFormat()).getReport_pattern());
+				} catch (SemanticException e) {
+					e.printStackTrace();
+				}
+			}
+		}
+		if	(styleHandle.getTextAlign() == null) {
+			if	(!style.getTextalign().getLiteral().isEmpty()) {
+				try {
+					styleHandle.setTextAlign(style.getTextalign().getLiteral());
+				} catch (SemanticException e) {
+					e.printStackTrace();
+				}
+			}
+			else if ((style.getFormat() != null) && (!style.getFormat().getTextalign().getLiteral().isEmpty())) {
+				try {
+					styleHandle.setTextAlign(style.getFormat().getTextalign().getLiteral());
+				} catch (SemanticException e) {
+					e.printStackTrace();
+				}
+			}
+		}
+//		sshHeader.setFontStyle(DesignChoiceConstants.FONT_STYLE_ITALIC);
+//		sshHeader.setFontWeight(DesignChoiceConstants.FONT_WEIGHT_BOLD);
+//		sshHeader.getBackgroundColor().setStringValue("yellow");
+
+		if	(style.getFont() != null) {
+			applyFont(styleHandle, style.getFont());
+		}
+		
+		if	(style.getBorderTop() != null) {
+			applyBorderTop(styleHandle, style.getBorderTop());
+		}
+		if	(style.getBorderBottom() != null) {
+			applyBorderBottom(styleHandle, style.getBorderBottom());
+		}
+		if	(style.getBorderLeft() != null) {
+			applyBorderLeft(styleHandle, style.getBorderLeft());
+		}
+		if	(style.getBorderRight() != null) {
+			applyBorderRight(styleHandle, style.getBorderRight());
+		}
+		
+		applyPadding(styleHandle, style);
+		applyMargin(styleHandle, style);
+
+		// --- if this style was extended, add these attributes at last ---
+		if	(style instanceof Style) {
+			if	(((Style)style).getExtends() != null) {
+				applyStyle(styleHandle, ((Style)style).getExtends());
+			}
+		}
+	}
+	
+	public static String applyColor(Color color) {
+		if	(color == null) {
+			return (String)null;
+		}
+		else if (color.getColor() == null) {
+			String result = applyColor(color.getBasecolor());
+			String targetstring = null;
+			double targetfactor = 0;
+			try {
+				if	(color.getDarkensby() != null) {
+					targetfactor = Math.min(100, Math.max(0, color.getDarkensby()));
+					targetstring = "#000000";
+				}
+				else if	(color.getLightensby() != null) {
+					targetfactor = Math.min(100, Math.max(0, color.getLightensby()));
+					targetstring = "#ffffff";
+				}
+				else if (color.getTransformsby() != null) {
+					targetfactor = Math.min(100, Math.max(0, color.getTransformsby()));
+					targetstring = applyColor(color.getTargetcolor());
+				}
+				else {
+					targetfactor = 0;
+				}
+				if	(targetfactor != 0) {
+					java.awt.Color source = ColorUtilities.convertToAwtColor(result);
+					java.awt.Color target = ColorUtilities.convertToAwtColor(targetstring);
+					double sourcefactor = 100-targetfactor; 
+					int r = ((int)(((double)target.getRed())*targetfactor + ((double)source.getRed()*sourcefactor))) / 100;
+					int g = ((int)(((double)target.getGreen())*targetfactor + ((double)source.getGreen()*sourcefactor))) / 100;
+					int b = ((int)(((double)target.getBlue())*targetfactor + ((double)source.getBlue()*sourcefactor))) / 100;
+					int a = ((int)(((double)target.getAlpha())*targetfactor + ((double)source.getAlpha()*sourcefactor))) / 100;
+					if	(a < 255) {
+						result = String.format("rgba(%d,%d,%d,%f)", r, g, b, ((double)a)/256.0);
+					}
+					else {
+						result = String.format("#%02X%02X%02X", r, g, b);
+					}
+				}
+			}
+			catch (Exception e) {
+				e.printStackTrace();
+			}
+			return result;
+		}
+		else {
+			return color.getColor();
+		}
+	}
+
+	private void applyPadding(StyleHandle styleHandle, BaseStyle style) {
+		if	(!styleHandle.getPaddingTop().isSet() && !"NULL".equals(style.getPaddingTopUnit().name())) {
+			try {
+				DimensionValue dim = new DimensionValue(style.getPaddingTopValue(), style.getPaddingTopUnit().name().toLowerCase());
+				styleHandle.setProperty(IStyleModel.PADDING_TOP_PROP, dim.toString());
+			} catch (SemanticException e) {
+				e.printStackTrace();
+			}
+		}
+		if	(!styleHandle.getPaddingBottom().isSet() && !"NULL".equals(style.getPaddingBottomUnit().name())) {
+			try {
+				DimensionValue dim = new DimensionValue(style.getPaddingBottomValue(), style.getPaddingBottomUnit().name().toLowerCase());
+				styleHandle.setProperty(IStyleModel.PADDING_BOTTOM_PROP, dim.toString());
+			} catch (SemanticException e) {
+				e.printStackTrace();
+			}
+		}
+		if	(!styleHandle.getPaddingLeft().isSet() && !"NULL".equals(style.getPaddingLeftUnit().name())) {
+			try {
+				DimensionValue dim = new DimensionValue(style.getPaddingLeftValue(), style.getPaddingLeftUnit().name().toLowerCase());
+				styleHandle.setProperty(IStyleModel.PADDING_LEFT_PROP, dim.toString());
+			} catch (SemanticException e) {
+				e.printStackTrace();
+			}
+		}
+		if	(!styleHandle.getPaddingRight().isSet() && !"NULL".equals(style.getPaddingRightUnit().name())) {
+			try {
+				DimensionValue dim = new DimensionValue(style.getPaddingRightValue(), style.getPaddingRightUnit().name().toLowerCase());
+				styleHandle.setProperty(IStyleModel.PADDING_RIGHT_PROP, dim.toString());
+			} catch (SemanticException e) {
+				e.printStackTrace();
+			}
+		}
+	}
+
+	private void applyMargin(StyleHandle styleHandle, BaseStyle style) {
+		if	(!styleHandle.getMarginTop().isSet() && !"NULL".equals(style.getMarginTopUnit().name())) {
+			try {
+				DimensionValue dim = new DimensionValue(style.getMarginTopValue(), style.getMarginTopUnit().name().toLowerCase());
+				styleHandle.setProperty(IStyleModel.MARGIN_TOP_PROP, dim.toString());
+			} catch (SemanticException e) {
+				e.printStackTrace();
+			}
+		}
+		if	(!styleHandle.getMarginBottom().isSet() && !"NULL".equals(style.getMarginBottomUnit().name())) {
+			try {
+				DimensionValue dim = new DimensionValue(style.getMarginBottomValue(), style.getMarginBottomUnit().name().toLowerCase());
+				styleHandle.setProperty(IStyleModel.MARGIN_BOTTOM_PROP, dim.toString());
+			} catch (SemanticException e) {
+				e.printStackTrace();
+			}
+		}
+		if	(!styleHandle.getMarginLeft().isSet() && !"NULL".equals(style.getMarginLeftUnit().name())) {
+			try {
+				DimensionValue dim = new DimensionValue(style.getMarginLeftValue(), style.getMarginLeftUnit().name().toLowerCase());
+				styleHandle.setProperty(IStyleModel.MARGIN_LEFT_PROP, dim.toString());
+			} catch (SemanticException e) {
+				e.printStackTrace();
+			}
+		}
+		if	(!styleHandle.getMarginRight().isSet() && !"NULL".equals(style.getMarginRightUnit().name())) {
+			try {
+				DimensionValue dim = new DimensionValue(style.getMarginRightValue(), style.getMarginRightUnit().name().toLowerCase());
+				styleHandle.setProperty(IStyleModel.MARGIN_RIGHT_PROP, dim.toString());
+			} catch (SemanticException e) {
+				e.printStackTrace();
+			}
+		}
+	}
+	
+	private void applyBorderTop(StyleHandle styleHandle, BorderStyle border) {
+		if	(!styleHandle.getBorderTopWidth().isSet() && border != null) {
+			try {
+				styleHandle.setBorderTopStyle(border.getType().getName());
+			} catch (SemanticException e) {
+				e.printStackTrace();
+			}
+			try {
+				DimensionValue dim = new DimensionValue(border.getWidthvalue(), border.getWidthunit().name().toLowerCase());
+				styleHandle.setProperty(IStyleModel.BORDER_TOP_WIDTH_PROP, dim.toString());
+			} catch (SemanticException e) {
+				e.printStackTrace();
+			}
+			try {
+				styleHandle.setProperty(IStyleModel.BORDER_TOP_COLOR_PROP, applyColor(border.getColor()));
+			} catch (SemanticException e) {
+				e.printStackTrace();
+			}
+		}
+	}
+	
+	private void applyBorderLeft(StyleHandle styleHandle, BorderStyle border) {
+		if	(!styleHandle.getBorderLeftWidth().isSet() && border != null) {
+			try {
+				styleHandle.setBorderLeftStyle(border.getType().getName());
+			} catch (SemanticException e) {
+				e.printStackTrace();
+			}
+			try {
+				DimensionValue dim = new DimensionValue(border.getWidthvalue(), border.getWidthunit().name().toLowerCase());
+				styleHandle.setProperty(IStyleModel.BORDER_LEFT_WIDTH_PROP, dim.toString());
+			} catch (SemanticException e) {
+				e.printStackTrace();
+			}
+			try {
+				styleHandle.setProperty(IStyleModel.BORDER_LEFT_COLOR_PROP, applyColor(border.getColor()));
+			} catch (SemanticException e) {
+				e.printStackTrace();
+			}
+		}			
+	}
+	
+	private void applyBorderRight(StyleHandle styleHandle, BorderStyle border) {
+		if	(!styleHandle.getBorderRightWidth().isSet() && border != null) {
+			try {
+				styleHandle.setBorderRightStyle(border.getType().getName());
+			} catch (SemanticException e) {
+				e.printStackTrace();
+			}
+			try {
+				DimensionValue dim = new DimensionValue(border.getWidthvalue(), border.getWidthunit().name().toLowerCase());
+				styleHandle.setProperty(IStyleModel.BORDER_RIGHT_WIDTH_PROP, dim.toString());
+			} catch (SemanticException e) {
+				e.printStackTrace();
+			}
+			try {
+				styleHandle.setProperty(IStyleModel.BORDER_RIGHT_COLOR_PROP, applyColor(border.getColor()));
+			} catch (SemanticException e) {
+				e.printStackTrace();
+			}
+		}			
+	}
+	
+	private void applyBorderBottom(StyleHandle styleHandle, BorderStyle border) {
+		if	(!styleHandle.getBorderBottomWidth().isSet() && border != null) {
+			try {
+				styleHandle.setBorderBottomStyle(border.getType().getName());
+			} catch (SemanticException e) {
+				e.printStackTrace();
+			}
+			try {
+				DimensionValue dim = new DimensionValue(border.getWidthvalue(), border.getWidthunit().name().toLowerCase());
+				styleHandle.setProperty(IStyleModel.BORDER_BOTTOM_WIDTH_PROP, dim.toString());
+			} catch (SemanticException e) {
+				e.printStackTrace();
+			}
+			try {
+				styleHandle.setProperty(IStyleModel.BORDER_BOTTOM_COLOR_PROP, applyColor(border.getColor()));
+			} catch (SemanticException e) {
+				e.printStackTrace();
+			}
+		}			
+	}
+	
+	private void applyFont(StyleHandle styleHandle, Font font) {
+		if	(styleHandle.getFontFamilyHandle() == null || !styleHandle.getFontFamilyHandle().isSet()) {
+			if	(font.getFamily() != null) {
+				try {
+					FontFamily family = font.getFamily();
+					if	(family instanceof BuildInFontFamily) {
+						styleHandle.setProperty(IStyleModel.FONT_FAMILY_PROP, ((BuildInFontFamily) family).getCustom().getLiteral());
+					}
+					else if (family instanceof CustomFontFamily) {
+						styleHandle.setProperty(IStyleModel.FONT_FAMILY_PROP, "\""+((CustomFontFamily) family).getCustom()+"\"");
+					}
+				} catch (SemanticException e) {
+					e.printStackTrace();
+				}
+			}
+		}
+		if	(styleHandle.getFontSize() == null || !styleHandle.getFontSize().isSet()) {
+			if	(font.getSizeunit() != null && font.getSizevalue() > 0) {
+				try {
+					DimensionValue dim = new DimensionValue(font.getSizevalue(), font.getSizeunit().name().toLowerCase());
+					styleHandle.setProperty(IStyleModel.FONT_SIZE_PROP, dim.toString());
+				} catch (SemanticException e) {
+					e.printStackTrace();
+				}
+			}
+		}
+		if	(font.getExtends() != null) {
+			applyFont(styleHandle, font.getExtends());
+		}
+		if	(font.getStyle() != null) {
+			try {
+				styleHandle.setFontStyle(font.getStyle().getLiteral());
+			} catch (SemanticException e) {
+				e.printStackTrace();
+			}
+		}
+	}
+}
diff --git a/org.eclipse.osbp.xtext.reportdsl/src/org/eclipse/osbp/xtext/reportdsl/common/item/AutoTextItem.java b/org.eclipse.osbp.xtext.reportdsl/src/org/eclipse/osbp/xtext/reportdsl/common/item/AutoTextItem.java
new file mode 100644
index 0000000..15b9412
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl/src/org/eclipse/osbp/xtext/reportdsl/common/item/AutoTextItem.java
@@ -0,0 +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 
+ */
+package org.eclipse.osbp.xtext.reportdsl.common.item;
+
+import org.eclipse.birt.report.model.api.AutoTextHandle;
+import org.eclipse.birt.report.model.api.ElementFactory;
+import org.eclipse.birt.report.model.api.ReportItemHandle;
+import org.eclipse.birt.report.model.api.activity.SemanticException;
+
+import org.eclipse.osbp.xtext.reportdsl.jvmmodel.ReportGeneratorWorkSet;
+
+public class AutoTextItem implements BaseItem {
+
+	private final AutoTextHandle fItem;
+	
+	public AutoTextItem(ReportGeneratorWorkSet workset, String autoText) {
+		fItem = workset.factory.newAutoText(null);
+		try {
+			fItem.setAutoTextType(autoText);
+		} catch (SemanticException e) {
+			e.printStackTrace();
+		}
+	}
+	
+	@Override
+	public ReportItemHandle getHandle() {
+		return fItem;
+	}
+
+}
diff --git a/org.eclipse.osbp.xtext.reportdsl/src/org/eclipse/osbp/xtext/reportdsl/common/item/BaseItem.java b/org.eclipse.osbp.xtext.reportdsl/src/org/eclipse/osbp/xtext/reportdsl/common/item/BaseItem.java
new file mode 100644
index 0000000..dd880e2
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl/src/org/eclipse/osbp/xtext/reportdsl/common/item/BaseItem.java
@@ -0,0 +1,25 @@
+/**
+ *                                                                            
+ * 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.reportdsl.common.item;
+
+import org.eclipse.birt.report.model.api.ReportItemHandle;
+import org.eclipse.birt.report.model.api.elements.DesignChoiceConstants;
+
+public interface BaseItem {
+	public final static String CONTENT_TYPE_AUTO = DesignChoiceConstants.TEXT_DATA_CONTENT_TYPE_AUTO;
+	public final static String CONTENT_TYPE_PLAIN = DesignChoiceConstants.TEXT_DATA_CONTENT_TYPE_PLAIN;
+	public final static String CONTENT_TYPE_HTML = DesignChoiceConstants.TEXT_DATA_CONTENT_TYPE_HTML;
+	public final static String CONTENT_TYPE_RTF = DesignChoiceConstants.TEXT_DATA_CONTENT_TYPE_RTF;
+	
+	ReportItemHandle getHandle();
+}
diff --git a/org.eclipse.osbp.xtext.reportdsl/src/org/eclipse/osbp/xtext/reportdsl/common/item/BodyItem.java b/org.eclipse.osbp.xtext.reportdsl/src/org/eclipse/osbp/xtext/reportdsl/common/item/BodyItem.java
new file mode 100644
index 0000000..a49ff4f
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl/src/org/eclipse/osbp/xtext/reportdsl/common/item/BodyItem.java
@@ -0,0 +1,39 @@
+/**
+ *                                                                            
+ * 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.reportdsl.common.item;
+
+import org.eclipse.birt.report.model.api.ReportDesignHandle;
+import org.eclipse.birt.report.model.api.ReportItemHandle;
+import org.eclipse.birt.report.model.api.SlotHandle;
+import org.eclipse.osbp.xtext.reportdsl.jvmmodel.ReportGeneratorWorkSet;
+
+public class BodyItem extends ContainerItem {
+
+	private final ReportDesignHandle fDesign;
+
+	public BodyItem(ReportGeneratorWorkSet workset) {
+		super(workset);
+		fDesign = workset.design;
+	}
+	
+	@Override
+	public ReportItemHandle getHandle() {
+		return null;
+	}
+
+	@Override
+	SlotHandle getSlotHandle() {
+		return fDesign.getBody();
+	}
+
+}
diff --git a/org.eclipse.osbp.xtext.reportdsl/src/org/eclipse/osbp/xtext/reportdsl/common/item/CellItem.java b/org.eclipse.osbp.xtext.reportdsl/src/org/eclipse/osbp/xtext/reportdsl/common/item/CellItem.java
new file mode 100644
index 0000000..c4e07eb
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl/src/org/eclipse/osbp/xtext/reportdsl/common/item/CellItem.java
@@ -0,0 +1,54 @@
+/**
+ *                                                                            
+ * 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.reportdsl.common.item;
+
+import org.eclipse.birt.report.model.api.CellHandle;
+import org.eclipse.birt.report.model.api.ReportItemHandle;
+import org.eclipse.birt.report.model.api.SlotHandle;
+import org.eclipse.birt.report.model.api.activity.SemanticException;
+
+import org.eclipse.osbp.xtext.reportdsl.jvmmodel.ReportGeneratorWorkSet;
+
+public class CellItem extends ContainerItem {
+
+	private final CellHandle fItem;
+
+	protected CellItem(ReportGeneratorWorkSet workset, CellHandle cell) {
+		super(workset);
+		fItem = cell;
+	}
+	
+	public CellItem setColumnSpan(int columnspan) {
+		try {
+			columnspan = Math.max(1, columnspan);
+			if	(columnspan != fItem.getColumnSpan()) {
+				fItem.setColumnSpan(columnspan);
+			}
+		}
+		catch (SemanticException e) {
+			e.printStackTrace();
+		}
+		return this;
+	}
+	
+	@Override
+	public ReportItemHandle getHandle() {
+		return null;
+	}
+
+	@Override
+	SlotHandle getSlotHandle() {
+		return fItem.getContent();
+	}
+
+}
diff --git a/org.eclipse.osbp.xtext.reportdsl/src/org/eclipse/osbp/xtext/reportdsl/common/item/ContainerItem.java b/org.eclipse.osbp.xtext.reportdsl/src/org/eclipse/osbp/xtext/reportdsl/common/item/ContainerItem.java
new file mode 100644
index 0000000..e123521
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl/src/org/eclipse/osbp/xtext/reportdsl/common/item/ContainerItem.java
@@ -0,0 +1,91 @@
+/**
+ *                                                                            
+ * 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.reportdsl.common.item;
+
+import java.util.ArrayList;
+
+import org.eclipse.birt.report.model.api.DataSetHandle;
+import org.eclipse.birt.report.model.api.activity.SemanticException;
+import org.eclipse.birt.report.model.api.elements.structures.ComputedColumn;
+
+import org.eclipse.osbp.xtext.reportdsl.DatamartTableGroup;
+import org.eclipse.osbp.xtext.reportdsl.DatamartTableProperty;
+import org.eclipse.osbp.xtext.reportdsl.Style;
+import org.eclipse.osbp.xtext.reportdsl.WithHeaderFooter;
+import org.eclipse.osbp.xtext.reportdsl.common.attribute.Attribute;
+import org.eclipse.osbp.xtext.reportdsl.common.attribute.StyleName;
+import org.eclipse.osbp.xtext.reportdsl.common.attribute.TextAlign;
+import org.eclipse.osbp.xtext.reportdsl.common.attribute.TextAlign.Align;
+import org.eclipse.osbp.xtext.reportdsl.common.attribute.Width;
+import org.eclipse.osbp.xtext.reportdsl.jvmmodel.ReportGeneratorWorkSet;
+
+public abstract class ContainerItem extends AContainerItem {
+
+	public ContainerItem(ReportGeneratorWorkSet workset) {
+		super(workset);
+	}
+	
+	public void addHeader(int level, String i18nKey, String title, Style style) throws SemanticException {
+		add(
+			new TextItem(fWorkset, i18nKey, "<h"+level+">"+title+"</h"+level+">", BaseItem.CONTENT_TYPE_HTML),
+			style,
+			new Width("100%"),
+			new TextAlign(Align.center),
+			new StyleName("h"+level)
+		);
+	}
+
+	public void addLabel(String i18nKey, String text, Style style) throws SemanticException {
+		add(
+			new LabelItem(fWorkset, i18nKey, text),
+			style
+		);
+	}
+
+	public void addText(String i18nKey, String text, Style style) throws SemanticException {
+		add(
+			new TextItem(fWorkset, i18nKey, text, BaseItem.CONTENT_TYPE_PLAIN),
+			style
+		);
+	}
+
+	public void addAutoText(String type, Style style) throws SemanticException {
+		add(
+			new AutoTextItem(fWorkset, type),
+			style
+		);
+	}
+
+	public TableItem createTable() {
+		return new TableItem(fWorkset);
+	}
+
+	public TableItem createTable(int columns) {
+		return new TableItem(fWorkset, columns);
+	}
+	
+	public void addTable(DataSetHandle dataSet, WithHeaderFooter withHeaderFooter, ArrayList<ComputedColumn> boundColumns, DatamartTableGroup[] groups, Style propertiesStyle, DatamartTableProperty[] tableProperties, Style style, Attribute[] attributes) throws SemanticException {
+		add(
+			new TableItem(fWorkset, dataSet, withHeaderFooter, boundColumns, groups, propertiesStyle, tableProperties),
+			style,
+			attributes
+		);
+	}
+
+	public void addData(DatamartTableProperty tableProperty, Style style) throws SemanticException {
+		add(
+			new DataItem(fWorkset, tableProperty),
+			style
+		);
+	}
+}
diff --git a/org.eclipse.osbp.xtext.reportdsl/src/org/eclipse/osbp/xtext/reportdsl/common/item/DataItem.java b/org.eclipse.osbp.xtext.reportdsl/src/org/eclipse/osbp/xtext/reportdsl/common/item/DataItem.java
new file mode 100644
index 0000000..dc7d341
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl/src/org/eclipse/osbp/xtext/reportdsl/common/item/DataItem.java
@@ -0,0 +1,183 @@
+/**
+ *                                                                            
+ * 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.reportdsl.common.item;
+
+import org.eclipse.birt.report.model.api.DataItemHandle;
+import org.eclipse.birt.report.model.api.Expression;
+import org.eclipse.birt.report.model.api.ExpressionType;
+import org.eclipse.birt.report.model.api.ReportItemHandle;
+import org.eclipse.birt.report.model.api.StructureFactory;
+import org.eclipse.birt.report.model.api.activity.SemanticException;
+import org.eclipse.birt.report.model.api.elements.structures.AggregationArgument;
+import org.eclipse.birt.report.model.api.elements.structures.ComputedColumn;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.osbp.dsl.semantic.entity.LEntityAttribute;
+
+import org.eclipse.osbp.xtext.datamartdsl.DatamartProperty;
+import org.eclipse.osbp.xtext.reportdsl.DatamartTableGroup;
+import org.eclipse.osbp.xtext.reportdsl.DatamartTableProperty;
+import org.eclipse.osbp.xtext.reportdsl.PureAggregationTypeEnum;
+import org.eclipse.osbp.xtext.reportdsl.TableAggregation;
+import org.eclipse.osbp.xtext.reportdsl.TableBaseAggregation;
+import org.eclipse.osbp.xtext.reportdsl.TableBinaryAggregation;
+import org.eclipse.osbp.xtext.reportdsl.TableMultipleAggregation;
+import org.eclipse.osbp.xtext.reportdsl.TableProperty;
+import org.eclipse.osbp.xtext.reportdsl.TablePureAggregation;
+import org.eclipse.osbp.xtext.reportdsl.TableUnaryAggregation;
+import org.eclipse.osbp.xtext.reportdsl.TableValueElement;
+import org.eclipse.osbp.xtext.reportdsl.common.DataTypes;
+import org.eclipse.osbp.xtext.reportdsl.jvmmodel.ReportGeneratorWorkSet;
+
+public class DataItem implements BaseItem {
+
+	public final static String DISPLAYNAME_AGGREGATION_PREFIX = "AGGREGATION_";
+	private final DataItemHandle fItem;
+
+	public static ComputedColumn createComputedColumn(TableAggregation aggregation) {
+		EList<DatamartProperty> valueRefs = aggregation.getAggregation().getValueRefs();
+		Enum<?> function = DataItem.getAggregateFunctionEnum(aggregation);
+		DataTypes dataType = DataTypes.STRING;
+		String prefix = "";
+		if	(!valueRefs.isEmpty()) {
+			DatamartProperty reference = valueRefs.get(0);
+			// --- general information about the column ---
+			if	(reference != null) {
+				LEntityAttribute attribute = reference.getPropertyRef();
+				dataType = DataTypes.typeFor(attribute.getType());
+			}
+		}
+		else if	(function.equals(PureAggregationTypeEnum.COUNT)) {
+			dataType = DataTypes.INTEGER;
+			prefix = DISPLAYNAME_AGGREGATION_PREFIX;
+		}
+		else if	(function.equals(PureAggregationTypeEnum.RUNNINGCOUNT)) {
+			dataType = DataTypes.INTEGER;
+			prefix = DISPLAYNAME_AGGREGATION_PREFIX;
+		}
+		String name = DataItem.getResultSetColumn(aggregation);
+		String displayName = name;
+//		if	(I18NKeyGenerator.key(aggregation.getText()) == null) {
+			if	(aggregation.getText() != null) {
+				displayName = aggregation.getText().replaceAll("\"", "");
+		}
+//		}
+		// --- information needed to access via table ---
+		ComputedColumn aggregationColumn = StructureFactory.createComputedColumn();
+		aggregationColumn.setName(name);
+		aggregationColumn.setDisplayName(prefix+displayName);
+		aggregationColumn.setDataType(dataType.getNativeOdaDataTypeName());
+		String groupOn = DataItem.getGroupOn(aggregation);
+		if	(groupOn != null) {
+			aggregationColumn.setAggregateOn(groupOn);
+		}
+		aggregationColumn.setAggregateFunction(DataItem.getAggregateFunctionName(aggregation));
+		for	(DatamartProperty property : valueRefs) {
+			AggregationArgument argument = StructureFactory.createAggregationArgument();
+			argument.setName("Expression");
+			Expression expression = new Expression("dataSetRow[\"" + property.getPropertyRef().getName() + "\"]", ExpressionType.JAVASCRIPT);
+			argument.setExpressionProperty("value", expression);
+			aggregationColumn.addArgument(argument);
+		}
+		aggregationColumn.setAllowExport(true);
+		return aggregationColumn;
+	}
+	
+	public static String getResultSetColumn(TableValueElement element) {
+		if	(element instanceof TableAggregation) {
+			TableBaseAggregation aggregation = ((TableAggregation) element).getAggregation();
+			String groupOn = getGroupOn(element);
+			String function = getAggregateFunctionName(element);
+			String resultSetColumn = (groupOn == null ? "" : groupOn+"_")+function;
+			for	(DatamartProperty valueRef : aggregation.getValueRefs()) {
+				resultSetColumn += "_"+valueRef.getPropertyRef().getName();
+			}
+			return resultSetColumn;
+		}
+		else if	(element instanceof TableProperty) {
+			return ((TableProperty) element).getValueRef().getPropertyRef().getName();
+		}
+		return null;
+	}
+
+	public static Enum<?> getAggregateFunctionEnum(TableValueElement element) {
+		if	(element instanceof TableAggregation) {
+			TableBaseAggregation aggregation = ((TableAggregation) element).getAggregation();
+			if	(aggregation instanceof TablePureAggregation) {
+				return ((TablePureAggregation)aggregation).getAggregation();
+			}
+			else if	(aggregation instanceof TableUnaryAggregation) {
+				return ((TableUnaryAggregation)aggregation).getAggregation();
+			}
+			else if (aggregation instanceof TableBinaryAggregation) {
+				return ((TableBinaryAggregation)aggregation).getAggregation();
+			}
+			else if (aggregation instanceof TableMultipleAggregation) {
+				return ((TableMultipleAggregation)aggregation).getAggregation();
+			}
+		}
+		return null;
+	}
+
+	public static String getAggregateFunctionName(TableValueElement element) {
+		if	(element instanceof TableAggregation) {
+			TableBaseAggregation aggregation = ((TableAggregation) element).getAggregation();
+			if	(aggregation instanceof TablePureAggregation) {
+				return ((TablePureAggregation)aggregation).getAggregation().getName();
+			}
+			else if	(aggregation instanceof TableUnaryAggregation) {
+				return ((TableUnaryAggregation)aggregation).getAggregation().getName();
+			}
+			else if (aggregation instanceof TableBinaryAggregation) {
+				return ((TableBinaryAggregation)aggregation).getAggregation().getName();
+			}
+			else if (aggregation instanceof TableMultipleAggregation) {
+				return ((TableMultipleAggregation)aggregation).getAggregation().getName();
+			}
+		}
+		return null;
+	}
+
+	public static String getGroupOn(TableValueElement element) {
+		if	(element instanceof TableAggregation) {
+			if	(((TableAggregation)element).getOnGroup() == null) {
+				EObject container = element;
+				while	(container.eContainer() != null) {
+					container = container.eContainer();
+					if	(container instanceof DatamartTableGroup) {
+						return ((DatamartTableGroup) container).getName();
+					}
+				}
+			}
+			else {
+				return ((TableAggregation)element).getOnGroup().getName();
+			}
+		}
+		return null;
+	}
+	
+	public DataItem(ReportGeneratorWorkSet workset, DatamartTableProperty tableProperty) {
+		fItem = workset.newDataItem("");
+		try {
+			TableValueElement element = tableProperty.getColumn();
+			fItem.setResultSetColumn(getResultSetColumn(element));
+		} catch (SemanticException e) {
+			e.printStackTrace();
+		}
+	}
+	
+	@Override
+	public ReportItemHandle getHandle() {
+		return fItem;
+	}
+}
diff --git a/org.eclipse.osbp.xtext.reportdsl/src/org/eclipse/osbp/xtext/reportdsl/common/item/GridItem.java b/org.eclipse.osbp.xtext.reportdsl/src/org/eclipse/osbp/xtext/reportdsl/common/item/GridItem.java
new file mode 100644
index 0000000..8f7452e
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl/src/org/eclipse/osbp/xtext/reportdsl/common/item/GridItem.java
@@ -0,0 +1,78 @@
+/**
+ *                                                                            
+ * 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.reportdsl.common.item;
+
+import org.eclipse.birt.report.model.api.CellHandle;
+import org.eclipse.birt.report.model.api.GridHandle;
+import org.eclipse.birt.report.model.api.ReportItemHandle;
+import org.eclipse.birt.report.model.api.RowHandle;
+import org.eclipse.birt.report.model.api.SlotHandle;
+import org.eclipse.birt.report.model.api.activity.SemanticException;
+
+import org.eclipse.osbp.xtext.reportdsl.Style;
+import org.eclipse.osbp.xtext.reportdsl.common.attribute.Attribute;
+import org.eclipse.osbp.xtext.reportdsl.jvmmodel.ReportGeneratorWorkSet;
+
+public class GridItem extends AContainerItem {
+
+	private final GridHandle fItem;
+
+	public GridItem(ReportGeneratorWorkSet workset, int columnCount, int rowCount) {
+		super(workset);
+		fItem = workset.factory.newGridItem(null, columnCount, rowCount);
+	}
+
+	@Override
+	public ReportItemHandle getHandle() {
+		return fItem;
+	}
+
+	@Override
+	SlotHandle getSlotHandle() {
+		return null;
+	}
+
+	@Override
+	@Deprecated
+	public void add(BaseItem item, Style style, Attribute... attributes) throws SemanticException {
+		throw new SemanticException(fItem.getElement(), "can't add item directly to grid, use add(column,row,item,attributes) instead");
+	}
+
+	public void applyStyle(int rowNo, Style style) {
+		applyStyle(fWorkset.design, fItem.getRows().get(rowNo), style);
+	}
+	
+	public CellItem getCell(int columnNo, int rowNo) throws SemanticException {
+		RowHandle row = null;
+		CellHandle cell = null;
+		try {
+			row = (RowHandle) fItem.getRows().get(rowNo);
+			if	(row == null) {
+				throw new SemanticException(fItem.getElement(), "can't resolve rowNo "+rowNo);
+			}
+		}
+		catch (Exception e) {
+			throw new SemanticException(fItem.getElement(), "can't resolve rowNo "+rowNo, e);
+		}
+		try {
+			cell = (CellHandle)row.getCells().get(columnNo);
+			if	(cell == null) {
+				throw new SemanticException(fItem.getElement(), "can't resolve columnNo "+columnNo);
+			}
+		}
+		catch (Exception e) {
+			throw new SemanticException(fItem.getElement(), "can't resolve columnNo "+columnNo, e);
+		}
+		return new CellItem(fWorkset, cell);
+	}
+}
diff --git a/org.eclipse.osbp.xtext.reportdsl/src/org/eclipse/osbp/xtext/reportdsl/common/item/ImageItem.java b/org.eclipse.osbp.xtext.reportdsl/src/org/eclipse/osbp/xtext/reportdsl/common/item/ImageItem.java
new file mode 100644
index 0000000..efe369b
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl/src/org/eclipse/osbp/xtext/reportdsl/common/item/ImageItem.java
@@ -0,0 +1,119 @@
+/**
+ *                                                                            
+ * 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.reportdsl.common.item;
+
+import java.awt.image.BufferedImage;
+import java.io.ByteArrayOutputStream;
+import java.io.InputStream;
+
+import javax.imageio.ImageIO;
+import javax.inject.Inject;
+
+import org.eclipse.birt.report.model.api.ExpressionHandle;
+import org.eclipse.birt.report.model.api.ExpressionType;
+import org.eclipse.birt.report.model.api.ImageHandle;
+import org.eclipse.birt.report.model.api.ReportItemHandle;
+import org.eclipse.birt.report.model.api.StructureFactory;
+import org.eclipse.birt.report.model.api.elements.DesignChoiceConstants;
+import org.eclipse.birt.report.model.api.elements.structures.EmbeddedImage;
+import org.eclipse.birt.report.model.elements.interfaces.IImageItemModel;
+import org.eclipse.osbp.ui.api.themes.IThemeResourceService;
+import org.eclipse.osbp.ui.api.themes.IThemeResourceService.ThemeResourceType;
+import org.eclipse.osbp.xtext.reportdsl.jvmmodel.ReportGeneratorWorkSet;
+
+public class ImageItem implements BaseItem {
+
+	private final ImageHandle fItem;
+
+    @Inject
+    private IThemeResourceService themeResourceService; 
+	
+	public ImageItem(ReportGeneratorWorkSet workset, String name, String size, double scale, String source, String filename) {
+		fItem = workset.factory.newImage(name);
+		try {
+			fItem.setSize(size);
+			if	(scale <= 0.0) {
+				scale = 1.0;
+			}
+			fItem.setScale(scale);
+			fItem.setSource(source);
+			switch (source) {
+				case DesignChoiceConstants.IMAGE_REF_TYPE_URL:
+					fItem.setURL(filename);
+					ExpressionHandle eh1 = fItem.getExpressionProperty(IImageItemModel.URI_PROP);
+					eh1.setType(ExpressionType.CONSTANT);
+					break;
+				case DesignChoiceConstants.IMAGE_REF_TYPE_FILE:
+					fItem.setFile(filename);
+					ExpressionHandle eh2 = fItem.getExpressionProperty(IImageItemModel.URI_PROP);
+					eh2.setType(ExpressionType.CONSTANT);
+					break;
+				case DesignChoiceConstants.IMAGE_REF_TYPE_EMBED:
+					String imageId = filename.replaceAll("\\W", "");
+					EmbeddedImage ei = workset.getEmbeddedImage(imageId);
+					if	(ei == null) {
+						try {
+							if	(themeResourceService != null) {
+								String uri = themeResourceService.getThemeURI(filename, ThemeResourceType.ICON);
+								InputStream stream = themeResourceService.getThemeResourceInputStream(uri);
+								String[] tokens = uri.split("\\.");
+								String fileextension = tokens[tokens.length-1];
+								BufferedImage originalImage = ImageIO.read(stream);
+								ByteArrayOutputStream baos = new ByteArrayOutputStream();
+								ImageIO.write(originalImage, fileextension, baos);
+								baos.flush();
+								byte[] imageInByte = baos.toByteArray();
+								baos.close();
+								ei = StructureFactory.createEmbeddedImage();
+								ei.setType(getImageType(fileextension));
+								ei.setData(imageInByte);
+								ei.setName(imageId);
+								workset.putEmbeddedImage(imageId, ei);
+							}
+						}
+						catch (Exception e) {
+						}
+					}
+					workset.design.addImage(ei);
+					fItem.setImageName(imageId);
+	//				ei.getHandle(image)
+	//				image.addElement(ei.getHandle(image), 1)
+					break;
+			}
+		}
+		catch (Exception e) {
+			e.printStackTrace();
+		}
+	}
+	
+	@Override
+	public ReportItemHandle getHandle() {
+		return fItem;
+	}
+
+	private String getImageType(String fileextension) {
+		switch (fileextension.toLowerCase()) {
+			case "bmp": 	return DesignChoiceConstants.IMAGE_TYPE_IMAGE_BMP;
+			case "gif": 	return DesignChoiceConstants.IMAGE_TYPE_IMAGE_GIF;
+			case "png": 	return DesignChoiceConstants.IMAGE_TYPE_IMAGE_PNG;
+			// public static final String IMAGE_TYPE_IMAGE_X_PNG = "image/x-png"; //$NON-NLS-1$
+			case "jpg":	
+			case "jpeg":	return DesignChoiceConstants.IMAGE_TYPE_IMAGE_JPEG;
+			case "ico": 	return DesignChoiceConstants.IMAGE_TYPE_IMAGE_ICO;
+			case "tiff":	return DesignChoiceConstants.IMAGE_TYPE_IMAGE_TIFF;
+			case "svg":		return DesignChoiceConstants.IMAGE_TYPE_IMAGE_SVG;
+			// public static final String IMAGE_TYPE_IMAGE_X_ICON = "image/x-icon"; //$NON-NLS-1$
+		}
+		return null;
+	}
+}
diff --git a/org.eclipse.osbp.xtext.reportdsl/src/org/eclipse/osbp/xtext/reportdsl/common/item/LabelItem.java b/org.eclipse.osbp.xtext.reportdsl/src/org/eclipse/osbp/xtext/reportdsl/common/item/LabelItem.java
new file mode 100644
index 0000000..4b63f0b
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl/src/org/eclipse/osbp/xtext/reportdsl/common/item/LabelItem.java
@@ -0,0 +1,41 @@
+/**
+ *                                                                            
+ * 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.reportdsl.common.item;
+
+import org.eclipse.birt.report.model.api.LabelHandle;
+import org.eclipse.birt.report.model.api.ReportItemHandle;
+import org.eclipse.birt.report.model.api.activity.SemanticException;
+
+import org.eclipse.osbp.xtext.reportdsl.jvmmodel.ReportGeneratorWorkSet;
+
+public class LabelItem implements BaseItem {
+
+	private final LabelHandle fItem;
+	
+	public LabelItem(ReportGeneratorWorkSet workset, String i18nKey, String defaultText) {
+		fItem = workset.factory.newLabel(null);
+		try {
+			fItem.setText(defaultText);
+			fItem.setTextKey(i18nKey);
+//			System.out.println("key:"+i18nKey+" default:"+defaultText);
+		} catch (SemanticException e) {
+			e.printStackTrace();
+		}
+	}
+	
+	@Override
+	public ReportItemHandle getHandle() {
+		return fItem;
+	}
+
+}
diff --git a/org.eclipse.osbp.xtext.reportdsl/src/org/eclipse/osbp/xtext/reportdsl/common/item/PageFooterItem.java b/org.eclipse.osbp.xtext.reportdsl/src/org/eclipse/osbp/xtext/reportdsl/common/item/PageFooterItem.java
new file mode 100644
index 0000000..25fbdeb
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl/src/org/eclipse/osbp/xtext/reportdsl/common/item/PageFooterItem.java
@@ -0,0 +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 
+ */
+package org.eclipse.osbp.xtext.reportdsl.common.item;
+
+import org.eclipse.birt.report.model.api.ReportItemHandle;
+import org.eclipse.birt.report.model.api.SimpleMasterPageHandle;
+import org.eclipse.birt.report.model.api.SlotHandle;
+
+import org.eclipse.osbp.xtext.reportdsl.jvmmodel.ReportGeneratorWorkSet;
+
+public class PageFooterItem extends ContainerItem {
+
+	private final SimpleMasterPageHandle fMasterPage;
+
+	public PageFooterItem(ReportGeneratorWorkSet workset, SimpleMasterPageHandle masterPage) {
+		super(workset);
+		fMasterPage = masterPage;
+	}
+	
+	@Override
+	public ReportItemHandle getHandle() {
+		return null;
+	}
+
+	@Override
+	SlotHandle getSlotHandle() {
+		return fMasterPage.getPageFooter();
+	}
+
+}
diff --git a/org.eclipse.osbp.xtext.reportdsl/src/org/eclipse/osbp/xtext/reportdsl/common/item/PageHeaderItem.java b/org.eclipse.osbp.xtext.reportdsl/src/org/eclipse/osbp/xtext/reportdsl/common/item/PageHeaderItem.java
new file mode 100644
index 0000000..062ef14
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl/src/org/eclipse/osbp/xtext/reportdsl/common/item/PageHeaderItem.java
@@ -0,0 +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 
+ */
+package org.eclipse.osbp.xtext.reportdsl.common.item;
+
+import org.eclipse.birt.report.model.api.ReportItemHandle;
+import org.eclipse.birt.report.model.api.SimpleMasterPageHandle;
+import org.eclipse.birt.report.model.api.SlotHandle;
+
+import org.eclipse.osbp.xtext.reportdsl.jvmmodel.ReportGeneratorWorkSet;
+
+public class PageHeaderItem extends ContainerItem {
+
+	private final SimpleMasterPageHandle fMasterPage;
+
+	public PageHeaderItem(ReportGeneratorWorkSet workset, SimpleMasterPageHandle masterPage) {
+		super(workset);
+		fMasterPage = masterPage;
+	}
+	
+	@Override
+	public ReportItemHandle getHandle() {
+		return null;
+	}
+
+	@Override
+	SlotHandle getSlotHandle() {
+		return fMasterPage.getPageHeader();
+	}
+
+}
diff --git a/org.eclipse.osbp.xtext.reportdsl/src/org/eclipse/osbp/xtext/reportdsl/common/item/TableItem.java b/org.eclipse.osbp.xtext.reportdsl/src/org/eclipse/osbp/xtext/reportdsl/common/item/TableItem.java
new file mode 100644
index 0000000..09bc40d
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl/src/org/eclipse/osbp/xtext/reportdsl/common/item/TableItem.java
@@ -0,0 +1,337 @@
+/**
+ *                                                                            
+ * 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.reportdsl.common.item;
+
+import java.util.ArrayList;
+
+import org.eclipse.birt.report.model.api.CellHandle;
+import org.eclipse.birt.report.model.api.DataItemHandle;
+import org.eclipse.birt.report.model.api.DataSetHandle;
+import org.eclipse.birt.report.model.api.DesignElementHandle;
+import org.eclipse.birt.report.model.api.LabelHandle;
+import org.eclipse.birt.report.model.api.ReportItemHandle;
+import org.eclipse.birt.report.model.api.RowHandle;
+import org.eclipse.birt.report.model.api.SlotHandle;
+import org.eclipse.birt.report.model.api.TableGroupHandle;
+import org.eclipse.birt.report.model.api.TableHandle;
+import org.eclipse.birt.report.model.api.activity.SemanticException;
+import org.eclipse.birt.report.model.api.command.ContentException;
+import org.eclipse.birt.report.model.api.command.NameException;
+import org.eclipse.birt.report.model.api.elements.structures.ComputedColumn;
+import org.eclipse.birt.report.model.elements.interfaces.IListingElementModel;
+import org.eclipse.birt.report.model.elements.interfaces.IReportItemModel;
+
+import org.eclipse.osbp.xtext.datamartdsl.DatamartDefinition;
+import org.eclipse.osbp.xtext.datamartdsl.DatamartProperty;
+import org.eclipse.osbp.xtext.i18n.I18NKeyGenerator;
+import org.eclipse.osbp.xtext.reportdsl.Container;
+import org.eclipse.osbp.xtext.reportdsl.DatamartTableGroup;
+import org.eclipse.osbp.xtext.reportdsl.DatamartTableGroupFooter;
+import org.eclipse.osbp.xtext.reportdsl.DatamartTableGroupHeader;
+import org.eclipse.osbp.xtext.reportdsl.DatamartTableProperty;
+import org.eclipse.osbp.xtext.reportdsl.Element;
+import org.eclipse.osbp.xtext.reportdsl.GridCell;
+import org.eclipse.osbp.xtext.reportdsl.GridRow;
+import org.eclipse.osbp.xtext.reportdsl.SomeGrid;
+import org.eclipse.osbp.xtext.reportdsl.Style;
+import org.eclipse.osbp.xtext.reportdsl.TableAggregation;
+import org.eclipse.osbp.xtext.reportdsl.TableProperty;
+import org.eclipse.osbp.xtext.reportdsl.TableValueElement;
+import org.eclipse.osbp.xtext.reportdsl.WithHeaderFooter;
+import org.eclipse.osbp.xtext.reportdsl.WithStyle;
+import org.eclipse.osbp.xtext.reportdsl.jvmmodel.ReportGeneratorWorkSet;
+
+public class TableItem extends AContainerItem {
+
+	private final TableHandle fItem;
+	
+	public TableItem(ReportGeneratorWorkSet workset) {
+		super(workset);
+		fItem = workset.factory.newTableItem(null);
+	}
+	
+	public TableItem(ReportGeneratorWorkSet workset, int columns) {
+		super(workset);
+		fItem = workset.factory.newTableItem(null, columns);
+	}
+	
+	public TableItem(ReportGeneratorWorkSet workset, DataSetHandle dataSet, WithHeaderFooter withHeaderFooter, ArrayList<ComputedColumn> boundColumns, DatamartTableGroup[] groups, Style propertiesStyle, DatamartTableProperty[] tableProperties) {
+		super(workset);
+		if	((boundColumns != null) && !boundColumns.isEmpty()) {
+			fItem = workset.factory.newTableItem(null, tableProperties.length == 0 ? boundColumns.size() : tableProperties.length);
+		}
+		else {
+			fItem = workset.factory.newTableItem(null);
+		}
+		setDataSet(dataSet);
+		try {
+			fItem.setRepeatHeader(true);
+		}
+		catch (SemanticException e) {
+			e.printStackTrace();
+		}
+		setBoundColumns(workset.report.getDatamartRef(), withHeaderFooter, boundColumns, groups, propertiesStyle, tableProperties);
+	}
+
+	@Override
+	public ReportItemHandle getHandle() {
+		return fItem;
+	}
+
+	public void setDataSet(DataSetHandle dataSet) {
+		try {
+			fItem.setDataSet(dataSet);
+		} catch (SemanticException e) {
+			e.printStackTrace();
+		}
+	}
+	
+	public void setBoundColumns(DatamartDefinition datamart, WithHeaderFooter withHeaderFooter, ArrayList<ComputedColumn> boundColumns, DatamartTableGroup[] groups, Style propertiesStyle, DatamartTableProperty[] tableProperties) {
+		if	((boundColumns != null) && !boundColumns.isEmpty()) {
+			ArrayList<ComputedColumn> shownColumns;
+			int columnCount = 0;
+
+			// --- table details information: shown columns and maximum columns ---
+			if	(tableProperties.length == 0) {
+				shownColumns = boundColumns;
+			}
+			else {
+				shownColumns = new ArrayList<ComputedColumn>();
+				for	(DatamartTableProperty tableProperty : tableProperties) {
+					if	(tableProperty.getColumn() instanceof TableAggregation) {
+						shownColumns.add(DataItem.createComputedColumn((TableAggregation) tableProperty.getColumn()));
+					}
+					else if	(tableProperty.getColumn() instanceof TableProperty) {
+						for	(int columnNo=0; columnNo < boundColumns.size(); columnNo++) {
+							DatamartProperty datamartProperty = ((TableProperty)tableProperty.getColumn()).getValueRef();
+							if	(boundColumns.get(columnNo).getName().equalsIgnoreCase(datamartProperty.getPropertyRef().getName())) {
+								shownColumns.add(boundColumns.get(columnNo));
+								break;
+							}
+						}
+					}
+				}
+			}
+			columnCount = shownColumns.size();
+
+			// --- each group ---
+			for	(DatamartTableGroup group : groups) {
+				try {
+					TableGroupHandle groupHandle = fWorkset.factory.newTableGroup();
+					groupHandle.setName(group.getName());
+					groupHandle.setHideDetail(false);
+					groupHandle.setKeyExpr("row[\""+group.getGroupingRef().getPropertyRef().getName()+"\"]");
+					
+					if	(group.getHeader() != null || group.isDetailheader()) {
+						groupHandle.setRepeatHeader(true);
+						DatamartTableGroupHeader header = group.getHeader();
+						SlotHandle headerHandle = groupHandle.getHeader();
+						if	(header != null) {
+							addGroupHeaderFooter(datamart, headerHandle, header, columnCount);
+						}
+						if	(group.isDetailheader()) {
+							headerHandle.add(
+									addColumnHeaders(
+										fWorkset.factory.newTableRow(columnCount),
+										group.getHeaderstyle(),
+										shownColumns,
+										tableProperties));
+						}
+					}
+					
+					if	(group.getFooter() != null || group.isDetailfooter()) {
+						DatamartTableGroupFooter footer = group.getFooter();
+						SlotHandle footerHandle = groupHandle.getFooter();
+						if	(group.isDetailfooter()) {
+							footerHandle.add(
+								addColumnHeaders(
+									fWorkset.factory.newTableRow(columnCount),
+									group.getFooterstyle(),
+									shownColumns,
+									tableProperties));
+						}
+						if	(footer != null) {
+							addGroupHeaderFooter(datamart, footerHandle, footer, columnCount);
+						}
+					}
+					
+					fItem.addElement(groupHandle, IListingElementModel.GROUP_SLOT);
+				}
+				catch (SemanticException e) {
+					e.printStackTrace();
+				}
+			}
+			
+			// --- table details ---
+			// --- header ---
+			try {
+				if	(withHeaderFooter.isDetailheader()) {
+					addColumnHeaders(
+						(RowHandle)fItem.getHeader().get(0),
+						withHeaderFooter.getHeaderstyle(),
+						shownColumns,
+						tableProperties);
+				}
+				
+				// --- detail by data ---
+				RowHandle tabledetail = (RowHandle)fItem.getDetail ().get(0);
+				if	(propertiesStyle != null) {
+					applyStyle(null, tabledetail, propertiesStyle);
+				}
+				for (int columnNo=0; columnNo < shownColumns.size(); columnNo++ ) { 
+					CellHandle cell = (CellHandle) tabledetail.getCells().get(columnNo);
+					DataItemHandle data = fWorkset.newDataItem(""); //"data_"+cxCellTable.getHeaderName(columnNo));
+					data.setResultSetColumn(/*"dataSetRow[\"" + */shownColumns.get(columnNo).getName()/* + "\"]"*/);
+					cell.getContent( ).add( data );
+					applyTablePropertyStyle(data, shownColumns.get(columnNo).getName(), tableProperties, propertiesStyle);
+				}
+				
+				if	(withHeaderFooter.isDetailfooter()) {
+					addColumnHeaders(
+						(RowHandle)fItem.getFooter().get(0),
+						withHeaderFooter.getHeaderstyle(),
+						shownColumns,
+						tableProperties);
+					}
+
+				// --- add any aggregation columns ---
+				for	(DatamartTableGroup group : groups) {
+					if	(group.getHeader() != null) {
+						if	(group.getHeader() != null) {
+							for	(GridRow row : group.getHeader().getRows()) {
+								for	(GridCell cell : row.getCells()) {
+									addResultSetColumn(shownColumns, cell);
+								}
+							}
+						}
+					}
+					if	(group.getFooter() != null) {
+						if	(group.getFooter() != null) {
+							for	(GridRow row : group.getFooter().getRows()) {
+								for	(GridCell cell : row.getCells()) {
+									addResultSetColumn(shownColumns, cell);
+								}
+							}
+						}
+					}
+				}
+				
+				// --- set all bound elements ---
+				fItem.getElement().setProperty(IReportItemModel.BOUND_DATA_COLUMNS_PROP, shownColumns);
+			}
+			catch (SemanticException e) {
+				e.printStackTrace();
+			}
+		}
+	}
+
+	private void addGroupHeaderFooter(DatamartDefinition datamart, SlotHandle headerFooterHandle, Object headerFooter, int columnCount) {
+		for	(GridRow row : ((SomeGrid)headerFooter).getRows()) {
+			Style rowStyle = null;
+			int rowColumns = columnCount;
+			for	(GridCell cell : row.getCells()) {
+				if	(cell.getColumnspan() > 1) {
+					rowColumns = Math.max(1, rowColumns - (cell.getColumnspan()-1));
+				}
+			}
+			RowHandle rowHandle = fWorkset.factory.newTableRow(rowColumns);
+			if	(row.getStyle() != null) {
+				rowStyle = row.getStyle();
+			}
+			else if	(((WithStyle)headerFooter).getStyle() != null) {
+				rowStyle = ((WithStyle)headerFooter).getStyle();
+			}
+			if	(rowStyle != null) {
+				applyStyle(fItem.getDesignHandle(), rowHandle, rowStyle);
+			}
+			int columnNo = 0;
+			for	(GridCell cell : row.getCells()) {
+				CellItem cellItem = new CellItem(fWorkset, (CellHandle) rowHandle.getCells().get(columnNo));
+				fWorkset.generator.generateItems(datamart, fWorkset, cellItem.setColumnSpan(cell.getColumnspan()), cell.getElements().toArray(new Element[0]));
+				columnNo++;
+				if	(columnNo >= rowColumns) {
+					break;
+				}
+			}
+			try {
+				headerFooterHandle.add(rowHandle);
+			} catch (ContentException | NameException e) {
+				e.printStackTrace();
+			}
+		}
+	}
+	
+	private void applyTablePropertyStyle(DesignElementHandle elementHandle, String columnName, DatamartTableProperty[] tableProperties, Style forceExtends) {
+		Style elementStyle = null;
+		if	(tableProperties != null) {
+			for	(DatamartTableProperty tableProperty : tableProperties) {
+				if	(tableProperty.getColumn() instanceof TableProperty) {
+					if	(tableProperty.getStyle() != null) {
+						DatamartProperty datamartProperty = ((TableProperty)tableProperty.getColumn()).getValueRef();
+						try {
+							if	(columnName.equalsIgnoreCase(datamartProperty.getPropertyRef().getName())) {
+								elementStyle = tableProperty.getStyle();
+							}
+						}
+						catch (NullPointerException e) {
+							System.err.println(e.getLocalizedMessage());
+						}
+					}
+				}
+			}
+		}
+		applyStyle(fItem.getDesignHandle(), elementHandle, elementStyle, forceExtends);
+	}
+	
+	private RowHandle addColumnHeaders(RowHandle rowHandle, Style style, ArrayList<ComputedColumn> shownColumns, DatamartTableProperty[] tableProperties) throws SemanticException {
+		if	(style != null) {
+			applyStyle(fItem.getDesignHandle(), rowHandle, style);
+		}
+		for (int columnNo=0; columnNo < shownColumns.size(); columnNo++) {
+			ComputedColumn column = shownColumns.get(columnNo);
+			LabelHandle label = fWorkset.factory.newLabel("");
+			String displayName = column.getDisplayName();
+			if	(displayName.startsWith(DataItem.DISPLAYNAME_AGGREGATION_PREFIX)) {
+				displayName = displayName.substring(DataItem.DISPLAYNAME_AGGREGATION_PREFIX.length());
+				label.setTextKey(I18NKeyGenerator.key(displayName));
+			}
+			else {
+				label.setTextKey(I18NKeyGenerator.key(column.getDisplayName()));
+			}
+			label.setDisplayName(displayName);
+			applyTablePropertyStyle(label, column.getName(), tableProperties, style);
+			CellHandle cell = (CellHandle) rowHandle.getCells().get(columnNo);
+			cell.getContent().add(label);
+		}
+		return rowHandle;
+	}
+	
+	private void addResultSetColumn(ArrayList<ComputedColumn> list, Container container) {
+		for	(Element element : container.getElements()) {
+			if	(element instanceof Container) {
+				addResultSetColumn(list, (Container) element);
+			}
+			else if (element instanceof DatamartTableProperty) {
+				TableValueElement value = ((DatamartTableProperty)element).getColumn();
+				if	(value instanceof TableAggregation) {
+					list.add(DataItem.createComputedColumn((TableAggregation) value));
+				}
+			}
+		}
+	}
+	
+	@Override
+	SlotHandle getSlotHandle() {
+		return null;
+	}
+}
diff --git a/org.eclipse.osbp.xtext.reportdsl/src/org/eclipse/osbp/xtext/reportdsl/common/item/TextItem.java b/org.eclipse.osbp.xtext.reportdsl/src/org/eclipse/osbp/xtext/reportdsl/common/item/TextItem.java
new file mode 100644
index 0000000..31da8ba
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl/src/org/eclipse/osbp/xtext/reportdsl/common/item/TextItem.java
@@ -0,0 +1,41 @@
+/**
+ *                                                                            
+ * 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.reportdsl.common.item;
+
+import org.eclipse.birt.report.model.api.ReportItemHandle;
+import org.eclipse.birt.report.model.api.TextItemHandle;
+import org.eclipse.birt.report.model.api.activity.SemanticException;
+
+import org.eclipse.osbp.xtext.reportdsl.jvmmodel.ReportGeneratorWorkSet;
+
+public class TextItem implements BaseItem {
+
+	private final TextItemHandle fItem;
+	
+	public TextItem(ReportGeneratorWorkSet workset, String i18nKey, String content, String contentType) {
+		fItem = workset.factory.newTextItem(null);
+		try {
+			fItem.setContentKey(i18nKey);
+			fItem.setContentType(contentType);
+			fItem.setContent(content);
+		} catch (SemanticException e) {
+			e.printStackTrace();
+		}
+	}
+	
+	@Override
+	public ReportItemHandle getHandle() {
+		return fItem;
+	}
+
+}
diff --git a/org.eclipse.osbp.xtext.reportdsl/src/org/eclipse/osbp/xtext/reportdsl/formatting/ReportDSLFormatter.xtend b/org.eclipse.osbp.xtext.reportdsl/src/org/eclipse/osbp/xtext/reportdsl/formatting/ReportDSLFormatter.xtend
new file mode 100644
index 0000000..9231364
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl/src/org/eclipse/osbp/xtext/reportdsl/formatting/ReportDSLFormatter.xtend
@@ -0,0 +1,63 @@
+/**
+ *                                                                            
+ *  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.reportdsl.formatting
+
+import com.google.inject.Inject
+import org.eclipse.xtext.formatting.impl.AbstractDeclarativeFormatter
+import org.eclipse.xtext.formatting.impl.FormattingConfig
+//import org.eclipse.osbp.xtext.reportdsl.services.ReportDSLGrammarAccess
+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.
+ * 
+ * see : http://www.eclipse.org/Xtext/documentation.html#formatting
+ * on how and when to use it 
+ * 
+ * Also see {@link org.eclipse.xtext.xtext.XtextFormattingTokenSerializer} as an example
+ */
+class ReportDSLFormatter extends AbstractDeclarativeFormatter {
+
+//	@Inject extension ReportDSLGrammarAccess
+	@Inject XtypeGrammarAccess grammarAccess
+
+	override protected void configureFormatting(FormattingConfig c) {
+		val genericFormatter = new GenericFormatter()
+		var ParserRule importDef  =  GrammarUtil.findRuleForName( grammar.grammar, "ReportImport" ) as ParserRule
+		var ParserRule fontDef    =  GrammarUtil.findRuleForName( grammar.grammar, "FontFamily"   ) as ParserRule
+		var ParserRule aggDef     =  GrammarUtil.findRuleForName( grammar.grammar, "TableBaseAggregation" ) as ParserRule
+
+		//	dsl-specific formatting:
+		config.setLinewrap( 1, 1, 2 ).after( importDef )
+		genericFormatter.formatFirstLevelBlocks( c, grammar.grammar, "PageTemplate" )
+		genericFormatter.formatFirstLevelBlocks( c, grammar.grammar, "SomeFormats"   )
+		genericFormatter.formatFirstLevelBlocks( c, grammar.grammar, "Colors"        )
+		genericFormatter.formatFirstLevelBlocks( c, grammar.grammar, "Fonts"         )
+		genericFormatter.formatFirstLevelBlocks( c, grammar.grammar, "Medias"        )
+		genericFormatter.formatFirstLevelBlocks( c, grammar.grammar, "Styles"        )
+		genericFormatter.formatFirstLevelBlocks( c, grammar.grammar, "Report"        )
+		config.setNoLinewrap().before( fontDef )
+		config.setNoLinewrap().before( aggDef  )
+
+		//	common formatting:
+		genericFormatter.genericFormatting( c, grammar, grammarAccess )
+	}
+}
diff --git a/org.eclipse.osbp.xtext.reportdsl/src/org/eclipse/osbp/xtext/reportdsl/jvmmodel/ReportDSLJvmModelInferrer.xtend b/org.eclipse.osbp.xtext.reportdsl/src/org/eclipse/osbp/xtext/reportdsl/jvmmodel/ReportDSLJvmModelInferrer.xtend
new file mode 100644
index 0000000..cde47f0
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl/src/org/eclipse/osbp/xtext/reportdsl/jvmmodel/ReportDSLJvmModelInferrer.xtend
@@ -0,0 +1,290 @@
+/**
+ *                                                                            
+ * 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.reportdsl.jvmmodel
+
+import com.vaadin.data.Container.Filter
+import com.vaadin.ui.Label
+import com.vaadin.ui.VerticalLayout
+import java.util.HashSet
+import java.util.Set
+import javax.annotation.PostConstruct
+import javax.annotation.PreDestroy
+import javax.inject.Inject
+import org.eclipse.e4.core.contexts.IEclipseContext
+import org.eclipse.e4.core.services.events.IEventBroker
+import org.eclipse.e4.ui.model.application.MApplication
+import org.eclipse.e4.ui.workbench.IPresentationEngine
+import org.eclipse.osbp.dsl.semantic.common.types.LTypedPackage
+import org.eclipse.osbp.dsl.semantic.entity.LEntity
+import org.eclipse.osbp.eventbroker.EventBrokerMsg
+import org.eclipse.osbp.ui.api.datamart.IDataMart
+import org.eclipse.osbp.ui.api.report.IReportProvider
+import org.eclipse.osbp.ui.api.themes.IThemeResourceService
+import org.eclipse.osbp.ui.api.user.IUser
+import org.eclipse.osbp.utils.constants.GeneratorConstants
+import org.eclipse.osbp.xtext.action.ActionPackage
+import org.eclipse.osbp.xtext.datamartdsl.jvmmodel.DatamartDSLJvmModelInferrer
+import org.eclipse.osbp.xtext.reportdsl.RenderingEnum
+import org.eclipse.osbp.xtext.reportdsl.Report
+import org.eclipse.osbp.xtext.reportdsl.ReportDesignFile
+import org.eclipse.osbp.xtext.reportdsl.ReportDesignTemplate
+import org.eclipse.osbp.xtext.reportdsl.ReportPackage
+import org.eclipse.osbp.xtext.reportdsl.common.AbstractReportBean
+import org.eclipse.osbp.xtext.reportdsl.common.BaseReport
+import org.eclipse.xtext.common.types.JvmDeclaredType
+import org.eclipse.xtext.common.types.JvmVisibility
+import org.eclipse.xtext.naming.IQualifiedNameProvider
+import org.eclipse.xtext.xbase.jvmmodel.AbstractModelInferrer
+import org.eclipse.xtext.xbase.jvmmodel.IJvmDeclaredTypeAcceptor
+import org.eclipse.xtext.xbase.jvmmodel.JvmTypesBuilder
+
+/**
+ * <p>Infers a JVM model from the source model.</p> 
+ *
+ * <p>The JVM model should contain all elements that would appear in the Java code 
+ * which is generated from the source model. Other models link against the JVM model rather than the source model.</p>     
+ */
+class ReportDSLJvmModelInferrer extends AbstractModelInferrer {
+
+    /**
+     * convenience API to build and initialize JVM types and their members.
+     */
+	@Inject extension JvmTypesBuilder
+	@Inject extension IQualifiedNameProvider
+	@Inject extension DatamartDSLJvmModelInferrer
+
+	def dispatch void infer(ReportPackage pckg, IJvmDeclaredTypeAcceptor acceptor, boolean isPreIndexingPhase) {
+		pckg.reports.forEach[ report |
+			var cls = report.toClass(report.fullyQualifiedName+"Report")
+	   		acceptor.accept(cls, [
+		        getSuperTypes().add(_typeReferenceBuilder.typeRef(BaseReport))
+			 	documentation = GeneratorConstants.GENERATED_CLASSES_DOCUMENTATION
+   				it.toConstructor(report)
+   				it.toOperations(pckg, report)
+   			])
+			cls.addReportBean(pckg, report, acceptor)
+		]
+	}
+	
+	def void addReportBean(JvmDeclaredType type, ReportPackage pckg, Report report, IJvmDeclaredTypeAcceptor acceptor) {
+		var beanCls = report.toClass("Bean")
+        type.members += beanCls
+   		acceptor.accept(beanCls, [
+	        getSuperTypes().add(_typeReferenceBuilder.typeRef(AbstractReportBean))
+		 	documentation = GeneratorConstants.GENERATED_CLASSES_DOCUMENTATION
+			static = true
+			it.members += report.toMethod("createReport", _typeReferenceBuilder.typeRef(BaseReport), [
+				visibility = JvmVisibility.PROTECTED
+				annotations += _annotationTypesBuilder.annotationRef(Override)
+				body = [
+					append('''return new «report.fullyQualifiedName»Report(null,null,null);''')
+				]
+			])
+		])
+	}
+	
+	def void toConstructor(JvmDeclaredType type, Report report) {
+		type.members += report.toConstructor([
+			documentation = report.documentation
+			annotations += _annotationTypesBuilder.annotationRef(Inject)
+   			parameters += report.toParameter("parent", _typeReferenceBuilder.typeRef(VerticalLayout))
+   			parameters += report.toParameter("context", _typeReferenceBuilder.typeRef(IEclipseContext))
+   			parameters += report.toParameter("app", _typeReferenceBuilder.typeRef(MApplication))
+			body = [ append('''super(parent,context,app);''')]
+		])
+	}
+	
+	def void toOperations(JvmDeclaredType type, ReportPackage pckg, Report report) {
+		type.members += report.toField("eventBroker", _typeReferenceBuilder.typeRef(IEventBroker)) [annotations += _annotationTypesBuilder.annotationRef(Inject)]
+		type.members += report.toField("renderingEngine", _typeReferenceBuilder.typeRef(IPresentationEngine))[
+			annotations += _annotationTypesBuilder.annotationRef(Inject)]
+		type.members += report.toField("themeResourceService", _typeReferenceBuilder.typeRef(IThemeResourceService))[
+			annotations += _annotationTypesBuilder.annotationRef(Inject)]
+		if(report.toolbar != null) {
+			var packageName = (report.toolbar.eContainer as ActionPackage).fullyQualifiedName.toString
+			type.members += report.toField("toolbarClass", _typeReferenceBuilder.typeRef('''«packageName».«report.toolbar.name.toString.toFirstUpper»Action'''))
+		}
+		
+   		// create view
+   		type.members += report.toMethod("createView", _typeReferenceBuilder.typeRef(Void::TYPE), [
+   			parameters += report.toParameter("parent", _typeReferenceBuilder.typeRef(VerticalLayout))
+   			body = [ append('''«report.createView»''')]
+   		])
+		// subscribe to eventBroker
+		type.members += report.toMethod("subscribe", _typeReferenceBuilder.typeRef(Void::TYPE), [
+			visibility = JvmVisibility.PROTECTED
+			annotations += _annotationTypesBuilder.annotationRef(PostConstruct)
+			body = [
+		   		// get all entities requested in this report
+		   		var entites = findRequestedEntities(report)
+				for (LEntity entity : entites) {
+					append('''
+						eventBroker.subscribe(EventBrokerMsg.REFRESH_VIEW+"«EventBrokerMsg.getEntityIdModifiedCategory((entity.eContainer as LTypedPackage).name, entity.name)»", fModifiedEntityIdsListener);
+					''')
+				}
+			]
+		])
+		// unsubscribe from eventBroker
+		type.members += report.toMethod("unsubscribe", _typeReferenceBuilder.typeRef(Void::TYPE), [
+			visibility = JvmVisibility.PROTECTED
+			annotations += _annotationTypesBuilder.annotationRef(PreDestroy)
+			body = [
+				append('''
+					eventBroker.unsubscribe(fModifiedEntityIdsListener);
+				''')
+			]
+		])
+		type.members += report.toMethod("getRenderingAs", _typeReferenceBuilder.typeRef(IReportProvider.Rendering), [
+			visibility = JvmVisibility.PROTECTED
+			annotations += _annotationTypesBuilder.annotationRef(Override)
+			body = [
+				switch (report.rendering) {
+					case RenderingEnum.HTML:
+						append('''return Rendering.HTML_STREAM;''')
+					case RenderingEnum.PDF:
+						append('''return Rendering.PDF_STREAM;''')
+				}
+			]
+		])
+		type.members += report.toMethod("getReportName", _typeReferenceBuilder.typeRef(String), [
+			visibility = JvmVisibility.PROTECTED
+			annotations += _annotationTypesBuilder.annotationRef(Override)
+			body = [append('''return "«report.name»";''')]
+		])
+		if	(pckg.externalCssURIBundle != null || report.externalCssURIBundle != null) {
+			type.members += report.toMethod("getExternalCssURIBundle", _typeReferenceBuilder.typeRef(String), [
+				visibility = JvmVisibility.PROTECTED
+				annotations += _annotationTypesBuilder.annotationRef(Override)
+				body = [
+					if	(report.externalCssURIBundle != null) {
+						append('''return "«report.externalCssURIBundle»";''')
+					}
+					else {
+						append('''return "«pckg.externalCssURIBundle»";''')
+					}
+				]
+			])
+		}
+		if	(pckg.externalCssURI != null || report.externalCssURI != null) {
+			type.members += report.toMethod("getExternalCssURI", _typeReferenceBuilder.typeRef(String), [
+				visibility = JvmVisibility.PROTECTED
+				annotations += _annotationTypesBuilder.annotationRef(Override)
+				body = [
+					if	(report.externalCssURI != null) {
+						append('''return "«report.externalCssURI»";''')
+					}
+					else {
+						append('''return "«pckg.externalCssURI»";''')
+					}
+				]
+			])
+		}
+		type.members += report.toMethod("getDatamartInstance", _typeReferenceBuilder.typeRef(IDataMart), [
+			documentation = report.datamartRef.documentation
+			visibility = JvmVisibility.PROTECTED
+			annotations += _annotationTypesBuilder.annotationRef(Override)
+			body = [
+				append('''return new «report.datamartRef.fullyQualifiedName»Datamart();''')
+			]
+		])
+		if	(report.design instanceof ReportDesignFile) {
+			type.members += report.toMethod("getReportDesignFilename", _typeReferenceBuilder.typeRef(String), [
+				documentation = report.design.documentation
+				visibility = JvmVisibility.PROTECTED
+				annotations += _annotationTypesBuilder.annotationRef(Override)
+				body = [
+					append('''return "«(report.design as ReportDesignFile).name»";''')
+				]
+			])
+			type.members += report.toMethod("buildReport", _typeReferenceBuilder.typeRef(void), [
+				visibility = JvmVisibility.PROTECTED
+				annotations += _annotationTypesBuilder.annotationRef(Override)
+				body = []])
+		}
+		else if (report.design instanceof ReportDesignTemplate) {
+			type.members += report.toMethod("getReportDesignFilename", _typeReferenceBuilder.typeRef(String), [
+				visibility = JvmVisibility.PROTECTED
+				annotations += _annotationTypesBuilder.annotationRef(Override)
+				body = [
+					append('''return null;''')
+				]
+			])
+			type.members += report.toMethod("buildReport", _typeReferenceBuilder.typeRef(void), [
+				documentation = report.design.documentation
+				visibility = JvmVisibility.PROTECTED
+				annotations += _annotationTypesBuilder.annotationRef(Override)
+				body = [
+				]
+			])
+		}
+   		type.members += report.toMethod("applyBeanFilter", _typeReferenceBuilder.typeRef(Void::TYPE), [
+   			parameters += report.toParameter("filter", _typeReferenceBuilder.typeRef(Filter))
+   			body = [
+//				if	(dtoQualifiedName == null) {
+	   				append('''
+	   					// !!! no datamart, entity and DTO found for the report --> nothing can be done in here !!!
+		   			''')
+//				}
+//				else {
+//	   				append('''
+//		   				if	(filter != null) {
+//		   					fFilterGenerator = ReportBeanFilterGenerator.filter("«entity.fullyQualifiedName.toString»", filter);
+//		   				}
+//		   			''')
+//	   			}
+	   		]
+   		])
+   		type.members += report.toMethod("applyBeanDto", _typeReferenceBuilder.typeRef(Void::TYPE), [
+   			parameters += report.toParameter("dto", _typeReferenceBuilder.typeRef(Object))
+   			body = [
+//				if	(dtoQualifiedName == null) {
+	   				append('''
+	   					// !!! no datamart, entity and DTO found for the report --> nothing can be done in here !!!
+		   			''')
+//				}
+//				else {
+//	   				append('''
+//		   				if	(dto != null) {
+//		   					fFilterGenerator = ReportBeanFilterGenerator.dto(dto, ((«dtoQualifiedName»)dto).getId());
+//		   				}
+//		   			''')
+//				}
+	   		]
+   		])
+	}
+	
+	/**
+	 * get a set of all entities used in the given report
+	 */
+	def Set<LEntity> findRequestedEntities(Report report) {
+		var entities = new HashSet<LEntity>()
+		entities.addAll(report.datamartRef.findAllEntities())
+		return entities
+	}
+
+	def createView(Report report) 
+		'''
+		fWorkset	= new ReportGeneratorWorkSet();
+		«IF report.toolbar != null»
+		toolbarClass = new «report.toolbar.name.toString.toFirstUpper»Action(UUID.randomUUID().toString());
+		toolbarClass.createToolbar(getContext(), renderingEngine, themeResourceService);
+		addPDFDownload(toolbarClass);
+		«ENDIF»
+		createFilter();
+		'''
+}
diff --git a/org.eclipse.osbp.xtext.reportdsl/src/org/eclipse/osbp/xtext/reportdsl/jvmmodel/ReportGeneratorWorkSet.java b/org.eclipse.osbp.xtext.reportdsl/src/org/eclipse/osbp/xtext/reportdsl/jvmmodel/ReportGeneratorWorkSet.java
new file mode 100644
index 0000000..853d0c3
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl/src/org/eclipse/osbp/xtext/reportdsl/jvmmodel/ReportGeneratorWorkSet.java
@@ -0,0 +1,136 @@
+/**
+ *                                                                            
+ * 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.reportdsl.jvmmodel;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.Map;
+
+import org.eclipse.birt.report.model.api.DataItemHandle;
+import org.eclipse.birt.report.model.api.ElementFactory;
+import org.eclipse.birt.report.model.api.OdaDataSetHandle;
+import org.eclipse.birt.report.model.api.ReportDesignHandle;
+import org.eclipse.birt.report.model.api.SharedStyleHandle;
+import org.eclipse.birt.report.model.api.elements.structures.ComputedColumn;
+import org.eclipse.birt.report.model.api.elements.structures.EmbeddedImage;
+import org.eclipse.birt.report.model.api.elements.structures.OdaResultSetColumn;
+import org.eclipse.core.runtime.QualifiedName;
+import org.eclipse.birt.report.model.elements.DataItem;
+import org.eclipse.birt.report.model.elements.interfaces.IDataItemModel;
+import org.eclipse.birt.report.model.metadata.ElementPropertyDefn;
+
+import org.eclipse.osbp.xtext.datamartdsl.DatamartRole;
+import org.eclipse.osbp.xtext.reportdsl.Media;
+import org.eclipse.osbp.xtext.reportdsl.MediaStyle;
+import org.eclipse.osbp.xtext.reportdsl.Report;
+import org.eclipse.osbp.xtext.reportdsl.Style;
+
+/**
+ * only use inside {@link ReportModelGenerator}
+ */
+public class ReportGeneratorWorkSet {
+	public ReportModelGenerator generator;
+	public Report report;
+	public ReportDesignHandle design;
+	public ElementFactory factory;
+	public Map<String,OdaDataSetHandle> dataSets = new HashMap<>();
+	private Map<String,ArrayList<OdaResultSetColumn>> fResultSetColumns = new HashMap<>();
+	private Map<String,ArrayList<ComputedColumn>> fComputedColumns = new HashMap<>();
+	public int fPosition = 0;
+	private Map<String,SharedStyleHandle> fStyles = new HashMap<String, SharedStyleHandle>();
+	private Map<String,EmbeddedImage> fEmbeddedImages = new HashMap<>();
+	private String translatorPackageName;
+	private String resultSetTranslatorPackageName;
+	private Media fRequestedMedia;
+	public DatamartRole role;
+	
+	public class DataItemForDsl extends DataItem {
+		private String fResultSetColumn = null;
+		public DataItemForDsl(String name) {
+			super(name);
+		}
+
+		@Override
+		public void setProperty(ElementPropertyDefn prop, Object value) {
+			if	(IDataItemModel.RESULT_SET_COLUMN_PROP.equals(prop.getName())) {
+				if	((fResultSetColumn == null) && (value instanceof String)) {
+					fResultSetColumn = (String) value;
+					super.setProperty(prop, value);
+				}
+				else if ((fResultSetColumn != null) && !fResultSetColumn.equals(value)) {
+					System.err.println("re-set? "+IDataItemModel.RESULT_SET_COLUMN_PROP+" "+fResultSetColumn+" --> "+value);
+				}
+			}
+			else {
+				super.setProperty(prop, value);
+			}
+		}
+	}
+	
+	public void setRequestedMedia(Media requestedMedia) {
+		fRequestedMedia = requestedMedia;
+	}
+	
+	public boolean isRequestedMedia(Media checkMedia) {
+		if	(fRequestedMedia == null) {
+			return false;
+		}
+		return fRequestedMedia.equals(checkMedia);
+	}
+	
+	public boolean isRequestedMedia(MediaStyle checkMediaStyle) {
+		if	(checkMediaStyle == null) {
+			return false;
+		}
+		return isRequestedMedia(checkMediaStyle.getMedia());
+	}
+	
+	public DataItemHandle newDataItem (String name) {
+		DataItemForDsl element = new DataItemForDsl(name);
+		design.getModule().makeUniqueName( element );
+		return element.handle(design.getModule());
+	}
+	
+	
+	public void putResultSetColumns(String dataSetName, ArrayList<OdaResultSetColumn> resultSetColumns) {
+		fResultSetColumns.put(dataSetName, resultSetColumns);
+	}
+	
+	public ArrayList<OdaResultSetColumn> getResultSetColumns(String dataSetName) {
+		return fResultSetColumns.get(dataSetName);
+	}
+	
+	public void putComputedColumns(String dataSetName, ArrayList<ComputedColumn> computedColumns) {
+		fComputedColumns.put(dataSetName, computedColumns);
+	}
+	
+	public ArrayList<ComputedColumn> getComputedColumns(String dataSetName) {
+		return fComputedColumns.get(dataSetName);
+	}
+	
+	public void putStyleHandleByName(Style style, SharedStyleHandle styleHandle) {
+		fStyles.put(style.getName(), styleHandle);
+	}
+	
+	public SharedStyleHandle getStyleHandleByName(Style style) {
+		return fStyles.get(style.getName());
+	}
+	
+	public void putEmbeddedImage(String imageId, EmbeddedImage embeddedImage) {
+		fEmbeddedImages.put(imageId, embeddedImage);
+	}
+	
+	public EmbeddedImage getEmbeddedImage(String imageId) {
+		return fEmbeddedImages.get(imageId);
+	}
+}
diff --git a/org.eclipse.osbp.xtext.reportdsl/src/org/eclipse/osbp/xtext/reportdsl/jvmmodel/ReportModelGenerator.xtend b/org.eclipse.osbp.xtext.reportdsl/src/org/eclipse/osbp/xtext/reportdsl/jvmmodel/ReportModelGenerator.xtend
new file mode 100644
index 0000000..55c02fa
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl/src/org/eclipse/osbp/xtext/reportdsl/jvmmodel/ReportModelGenerator.xtend
@@ -0,0 +1,553 @@
+/**
+ *                                                                            
+ * 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.reportdsl.jvmmodel
+
+import com.google.inject.Inject
+import com.ibm.icu.util.ULocale
+import com.vaadin.data.Container.Filter
+import com.vaadin.server.Sizeable.Unit
+import com.vaadin.server.StreamResource
+import com.vaadin.ui.AbstractComponent
+import com.vaadin.ui.BrowserFrame
+import com.vaadin.ui.Button
+import com.vaadin.ui.HorizontalLayout
+import java.io.ByteArrayOutputStream
+import java.io.PrintStream
+import java.util.ArrayList
+import java.util.Locale
+import java.util.UUID
+import org.eclipse.birt.report.model.api.IDesignEngine
+import org.eclipse.birt.report.model.api.OdaDataSetHandle
+import org.eclipse.birt.report.model.api.StructureFactory
+import org.eclipse.birt.report.model.api.command.ContentException
+import org.eclipse.birt.report.model.api.command.CustomMsgException
+import org.eclipse.birt.report.model.api.core.IModuleModel
+import org.eclipse.birt.report.model.api.elements.structures.CachedMetaData
+import org.eclipse.birt.report.model.api.elements.structures.ComputedColumn
+import org.eclipse.birt.report.model.api.elements.structures.OdaResultSetColumn
+import org.eclipse.birt.report.model.api.metadata.DimensionValue
+import org.eclipse.birt.report.model.elements.interfaces.IDataSetModel
+import org.eclipse.e4.core.di.extensions.EventUtils
+import org.eclipse.e4.core.services.events.IEventBroker
+import org.eclipse.emf.ecore.EObject
+import org.eclipse.emf.ecore.resource.Resource
+import org.eclipse.osbp.dsl.entity.xtext.extensions.NamingExtensions
+import org.eclipse.osbp.dsl.semantic.common.types.LPackage
+import org.eclipse.osbp.dsl.semantic.entity.LEntityAttribute
+import org.eclipse.osbp.eventbroker.EventBrokerMsg
+import org.eclipse.osbp.ui.api.report.IReportProvider
+import org.eclipse.osbp.utils.entityhelper.DataType
+import org.eclipse.osbp.utils.vaadin.ViewLayoutManager
+import org.eclipse.osbp.xtext.action.common.IToolbarAction
+import org.eclipse.osbp.xtext.basic.generator.BasicDslGeneratorUtils
+import org.eclipse.osbp.xtext.datamartdsl.DatamartCube
+import org.eclipse.osbp.xtext.datamartdsl.DatamartDefinition
+import org.eclipse.osbp.xtext.datamartdsl.DatamartEntity
+import org.eclipse.osbp.xtext.datamartdsl.DatamartProperty
+import org.eclipse.osbp.xtext.datamartdsl.DatamartRole
+import org.eclipse.osbp.xtext.datamartdsl.DatamartTask
+import org.eclipse.osbp.xtext.datamartdsl.jvmmodel.DatamartDSLJvmModelInferrer
+import org.eclipse.osbp.xtext.i18n.DSLOutputConfigurationProvider
+import org.eclipse.osbp.xtext.i18n.I18NKeyGenerator
+import org.eclipse.osbp.xtext.i18n.I18NModelGenerator
+import org.eclipse.osbp.xtext.reportdsl.AutoText
+import org.eclipse.osbp.xtext.reportdsl.DatamartTable
+import org.eclipse.osbp.xtext.reportdsl.DatamartTableProperty
+import org.eclipse.osbp.xtext.reportdsl.Element
+import org.eclipse.osbp.xtext.reportdsl.Grid
+import org.eclipse.osbp.xtext.reportdsl.Image
+import org.eclipse.osbp.xtext.reportdsl.Label
+import org.eclipse.osbp.xtext.reportdsl.PageFooter
+import org.eclipse.osbp.xtext.reportdsl.PageHeader
+import org.eclipse.osbp.xtext.reportdsl.PageTemplate
+import org.eclipse.osbp.xtext.reportdsl.Report
+import org.eclipse.osbp.xtext.reportdsl.ReportDesignTemplate
+import org.eclipse.osbp.xtext.reportdsl.ReportModel
+import org.eclipse.osbp.xtext.reportdsl.ReportPackage
+import org.eclipse.osbp.xtext.reportdsl.Style
+import org.eclipse.osbp.xtext.reportdsl.SubSubTitle
+import org.eclipse.osbp.xtext.reportdsl.SubTitle
+import org.eclipse.osbp.xtext.reportdsl.Text
+import org.eclipse.osbp.xtext.reportdsl.Title
+import org.eclipse.osbp.xtext.reportdsl.common.BaseReport
+import org.eclipse.osbp.xtext.reportdsl.common.BirtEngine
+import org.eclipse.osbp.xtext.reportdsl.common.DataTypes
+import org.eclipse.osbp.xtext.reportdsl.common.OdaConnProperties
+import org.eclipse.osbp.xtext.reportdsl.common.attribute.Attribute
+import org.eclipse.osbp.xtext.reportdsl.common.attribute.Width
+import org.eclipse.osbp.xtext.reportdsl.common.item.BodyItem
+import org.eclipse.osbp.xtext.reportdsl.common.item.ContainerItem
+import org.eclipse.osbp.xtext.reportdsl.common.item.GridItem
+import org.eclipse.osbp.xtext.reportdsl.common.item.ImageItem
+import org.eclipse.osbp.xtext.reportdsl.common.item.PageFooterItem
+import org.eclipse.osbp.xtext.reportdsl.common.item.PageHeaderItem
+import org.eclipse.xtext.generator.IFileSystemAccess
+import org.eclipse.xtext.naming.IQualifiedNameProvider
+import org.eclipse.xtext.xbase.compiler.GeneratorConfig
+import org.eclipse.xtext.xbase.compiler.ImportManager
+import org.osgi.service.event.Event
+import org.osgi.service.event.EventHandler
+
+class ReportModelGenerator extends I18NModelGenerator {
+	@Inject extension IQualifiedNameProvider
+	@Inject extension DatamartDSLJvmModelInferrer datamartInferrer
+	@Inject extension NamingExtensions
+	@Inject extension BasicDslGeneratorUtils
+    
+	@Inject
+	@Extension
+	private DataType dtType;
+	
+	static var designEngine = null
+	
+	override void doGenerate(Resource input, IFileSystemAccess fsa) {
+		addTranslatables('''«BaseReport.CAPTION_I18NKEY_SAVE_PDF»,«BaseReport.CAPTION_I18NKEY_PRINT_PDF»''')
+		super.doGenerate(input, fsa)
+	}
+	
+	def dispatch void internalDoGenerate(ReportModel orgModel, IFileSystemAccess fsa) {
+		designEngine = BirtEngine.createDesignEngine()
+		for (pkg:orgModel.pckg) {
+			for	(report : pkg.reports) {
+				try {
+					generateReportFile(pkg, report, fsa)
+				}
+				catch (Exception e) {
+					e.printStackTrace
+				}
+			}
+		}
+   	}
+   	
+   	private def void generateReportFile(ReportPackage pckg, Report report, IFileSystemAccess fsa) {
+   		if	(report.design instanceof ReportDesignTemplate) {
+			generateReportRoleFile(pckg, report, null, fsa)
+			for(role : report.datamartRef.roles) {
+   				generateReportRoleFile(pckg, report, role, fsa)
+			}
+		}
+	}
+		
+   	private def void generateReportRoleFile(ReportPackage pckg, Report report, DatamartRole role, IFileSystemAccess fsa) {
+		var workSet = new ReportGeneratorWorkSet()
+		workSet.generator = this
+		workSet.report = report
+		workSet.role = role
+		// --- generate full path name to the report design file to be generated ---
+		var template = report.design as ReportDesignTemplate
+		var pckgName = pckg.fullyQualifiedName.toString
+		var pckgNamePath = pckgName.replaceAll("\\.","/")
+		var filename = '''«report.name»«IF role!=null»«role.assignedRole.name»«ENDIF».rptdesign'''
+		var fullpath = '''«pckgNamePath»/«filename»'''
+
+		// --- get managing BIRT instances ---
+		var session = (designEngine as IDesignEngine).newSessionHandle(ULocale.forLocale(Locale.getDefault()))
+		// --- Create a new report design ---
+		workSet.design = session.createDesign()
+		// --- The element factory creates instances of the various BIRT elements ---
+		workSet.factory = workSet.design.getElementFactory()
+		// set the i18n property resources
+		workSet.design.setIncludeResource("i18n/I18N")
+		// set the requested media for this report
+		workSet.requestedMedia = report.media
+
+		// --- generate a master page ---
+		generateMasterPage(report.datamartRef, workSet, report.pageTemplate, template.header, template.footer)
+		// --- add the master datamart ---
+//		if	(report.datamartRef != null) {
+		addDatamartSourceAndSet(report.datamartRef, workSet, null, null)
+//		}
+		
+		var body = new BodyItem(workSet)
+		generateItems(report.datamartRef, workSet, body, template.detail.elements)
+		
+		// --- generate an output stream to receive the BIRT generated report design ---			
+		var baos = new ByteArrayOutputStream()
+		try {
+			workSet.design.getModule().prepareToSave();
+			workSet.design.getModule().getWriter().write(baos);
+			workSet.design.getModule().onSave();
+		}
+		catch (Exception e) {
+			baos = new ByteArrayOutputStream()
+			e.printStackTrace(new PrintStream(baos))
+		}
+		
+		// --- generated output stream to the file --- 
+		fsa.generateFile(fullpath, DSLOutputConfigurationProvider.DEFAULT_REPORT_OUTPUT, baos.toString())
+   	}
+	
+//	def SessionHandle newSessionHandle(IDesignEngine engine, ULocale locale) {
+//		return engine.newSessionHandle(locale)
+//	}
+	
+	private def generateMasterPage(DatamartDefinition datamart, ReportGeneratorWorkSet workSet, PageTemplate pageTemplate, PageHeader pageHeader, PageFooter pageFooter) {
+		// Note: The report will fail to load in the BIRT designer unless you create a master page.
+		var header = pageHeader
+		var footer = pageFooter
+		if	(header == null) {
+			header = pageTemplate.header
+		}
+		if	(footer == null) {
+			footer = pageTemplate.footer
+		}
+		var masterPage = workSet.factory.newSimpleMasterPage(pageTemplate.name); //$NON-NLS-1$
+		masterPage.setPageType(pageTemplate.size.name().toLowerCase);
+		masterPage.setOrientation(pageTemplate.orientation.name().toLowerCase)
+		masterPage.topMargin.setValue(new DimensionValue(pageTemplate.topMarginValue, pageTemplate.topMarginUnit.name().toLowerCase))
+		masterPage.leftMargin.setValue(new DimensionValue(pageTemplate.leftMarginValue, pageTemplate.leftMarginUnit.name().toLowerCase))
+		masterPage.bottomMargin.setValue(new DimensionValue(pageTemplate.bottomMarginValue, pageTemplate.bottomMarginUnit.name().toLowerCase))
+		masterPage.rightMargin.setValue(new DimensionValue(pageTemplate.rightMarginValue, pageTemplate.rightMarginUnit.name().toLowerCase))
+		if	(header != null) {
+			masterPage.setShowHeaderOnFirst(header.showOnFirst)
+			masterPage.headerHeight.setValue(new DimensionValue(header.heightValue, header.heightUnit.name().toLowerCase))
+			generateItems(datamart, workSet, new PageHeaderItem(workSet, masterPage), header.elements)
+		}
+		if	(footer != null) {
+			masterPage.setShowFooterOnLast(footer.showOnLast)
+			masterPage.footerHeight.setValue(new DimensionValue(footer.heightValue, footer.heightUnit.name().toLowerCase))
+			generateItems(datamart, workSet, new PageFooterItem(workSet, masterPage), footer.elements)
+		}
+		workSet.design.getMasterPages().add(masterPage);
+	}
+	
+	private def addDatamartSourceAndSet(DatamartDefinition datamart, ReportGeneratorWorkSet workSet, String alias, DatamartProperty[] hiddens) {
+		// --- generate the Data Source ---
+		var dataSourceName = Utilities.getDataSourceName(alias, datamart).toString
+		var odsourceh = workSet.factory.newOdaDataSource(dataSourceName, BaseReport.DATASOURCE_EXTENSION_ID);
+		odsourceh.getElement().setID(workSet.design.getModule().getNextID());
+		workSet.design.getModule().addElementID(odsourceh.getElement());
+		workSet.design.getModule().add(odsourceh.getElement(), IModuleModel.DATA_SOURCE_SLOT);
+		
+		// --- generate the Data Set connected to the Data Source ---
+		var dataSetName = Utilities.getDataSetName(alias, datamart).toString
+		var odseth = workSet.factory.newOdaDataSet(dataSetName, BaseReport.DATASOURCE_EXTENSION_ID.concat(".dataSet"));
+		workSet.dataSets.put(dataSetName, odseth)
+		odseth.getElement().setID(workSet.design.getModule().getNextID());
+		odseth.setProperty(OdaConnProperties.DATAMART_BUNDLENAME, Utilities.getBundleName(datamart));
+		odseth.setProperty(OdaConnProperties.DATAMART_CLASSNAME, getDatamartClassName(alias, datamart));
+		odseth.setProperty(OdaConnProperties.DATAMART_DATASOURCE, odsourceh.getElement().getName());
+		odseth.setProperty(OdaConnProperties.DATAMART_DATASOURCENAME, dataSourceName);
+		odseth.setProperty(OdaConnProperties.DATAMART_DATASETNAME, dataSetName);
+		// --- add additional informations to the Data Set ---
+		switch (datamart.source) {
+			DatamartCube:
+				addDatamartCubeResultSet(workSet, odseth, dataSetName, datamart)
+			DatamartEntity:
+				addDatamartEntityResultSet(workSet, odseth, dataSetName, datamart)
+			DatamartTask:
+				System.err.println("DatamartTask ... todo")
+		}
+		workSet.design.getModule().addElementID(odseth.getElement());
+		workSet.design.getModule().add(odseth.getElement(), IModuleModel.DATA_SET_SLOT);
+	}
+	
+	private def addDatamartCubeResultSet(ReportGeneratorWorkSet workSet, OdaDataSetHandle odseth, String dataSetName, DatamartDefinition datamart) {
+		System.err.println("DatamartCube ... todo")
+		
+		var cube = datamart.source as DatamartCube;
+		var selectColumns = ""
+		var cmd = new CachedMetaData()
+		var sd = new ArrayList<OdaResultSetColumn>()
+		var cc = new ArrayList<ComputedColumn>()
+
+//		var position = 0
+//		// --- at first all navigations ---
+//		for (navigation : entity.navigations) {
+//			for	(property : navigation.datamartEntity.properties) {
+//				if	((hiddens == null) || !hiddens.contains(property)) {
+//					position = position+1
+//					addDatamartProperty(sd, cc, property, position)
+//				}				
+//			}
+//		}
+//		// --- at last the "pure" data properties ---
+//		for	(property : entity.properties) {
+//			if	((hiddens == null) || !hiddens.contains(property)) {
+//				position = position+1
+//				addDatamartProperty(sd, cc, property, position)
+//			}				
+//		}
+//		workSet.putResultSetColumns(dataSetName, sd)
+//		workSet.putComputedColumns(dataSetName, cc)
+//		for	(cc1 : cc) {
+//			if	(selectColumns.empty) {
+//				selectColumns = cc1.getName();
+//			}
+//			else {
+//				selectColumns = selectColumns+","+cc1.getName();
+//			}
+//		}
+
+		odseth.setProperty("queryText", ('''select «selectColumns» from «datamart.name»''').toString())
+		cmd.setProperty(IDataSetModel.RESULT_SET_PROP, sd)
+		odseth.setProperty(IDataSetModel.CACHED_METADATA_PROP, cmd)
+		odseth.getElement().setProperty(IDataSetModel.RESULT_SET_PROP, sd)
+	}	
+	
+	private def addAllDatamartProperties(ReportGeneratorWorkSet workSet, ArrayList<OdaResultSetColumn> sd, ArrayList<ComputedColumn> cc, EObject container) {
+		switch container {
+			DatamartEntity: {
+				// --- at first all navigations ---
+				for (navigation : container.navigations) {
+					navigation.eAllContents.forEach[element |
+						addAllDatamartProperties(workSet, sd, cc, element)
+					]
+				}
+				// --- if no explicit properties are set ---
+				if	(container.properties.isEmpty) {
+					for	(attribute : container.entityRef.allAttributes) {
+						if	(!attribute.isId && !attribute.isUuid) {
+							if (datamartInferrer.isAuthorized(workSet.role, container.entityRef, attribute.name)) {
+								addDatamartProperty(workSet, sd, cc, attribute)
+							}
+						}
+					}
+				}
+				// --- at last the "pure" data properties ---
+				else {
+					for	(property : container.properties) {
+						if (datamartInferrer.isAuthorized(workSet.role, container.entityRef, property.propertyRef.name)) {
+							addDatamartProperty(workSet, sd, cc, property)
+						}
+					}
+				}
+			}
+		}
+	}
+	
+	private def addDatamartEntityResultSet(ReportGeneratorWorkSet workSet, OdaDataSetHandle odseth, String dataSetName, DatamartDefinition datamart) {
+		var selectColumns = ""
+		var cmd = new CachedMetaData()
+		var sd = new ArrayList<OdaResultSetColumn>()
+		var cc = new ArrayList<ComputedColumn>()
+
+		workSet.fPosition = 0
+		addAllDatamartProperties(workSet, sd, cc, datamart.source)
+		workSet.putResultSetColumns(dataSetName, sd)
+		workSet.putComputedColumns(dataSetName, cc)
+		for	(cc1 : cc) {
+			if	(selectColumns.empty) {
+				selectColumns = cc1.getName();
+			}
+			else {
+				selectColumns = selectColumns.concat(",").concat(cc1.getName());
+			}
+		}
+		odseth.setProperty("queryText", ('''select «selectColumns» from «datamart.name»''').toString())
+		cmd.setProperty(IDataSetModel.RESULT_SET_PROP, sd)
+		odseth.setProperty(IDataSetModel.CACHED_METADATA_PROP, cmd)
+		odseth.getElement().setProperty(IDataSetModel.RESULT_SET_PROP, sd)
+	}	
+
+	private def addDatamartProperty(ReportGeneratorWorkSet workSet, ArrayList<OdaResultSetColumn> sd, ArrayList<ComputedColumn> cc, DatamartProperty property) {
+		addDatamartProperty(workSet, sd, cc, property.propertyRef)
+	}
+		
+	private def addDatamartProperty(ReportGeneratorWorkSet workSet, ArrayList<OdaResultSetColumn> sd, ArrayList<ComputedColumn> cc, LEntityAttribute attribute) {
+		// --- general information about the column ---
+		var etype = dtType.getBasicType(attribute)
+		var dataType = DataTypes.typeFor(etype)
+		if	(dataType == DataTypes.ANY) {
+			dataType = DataTypes.typeFor(attribute.type) // ??? warum ANY ???
+		}
+		// see also DatamartDSLJvmInferrer
+		var name = attribute.toColumnName.toLowerCase
+		// --- check for already found column ---
+		for	(column : sd) {
+			if	(column.columnName.equalsIgnoreCase(name)) {
+				return
+			}
+		}
+		// --- information needed to access via oda ---
+		var st = new OdaResultSetColumn()
+		st.setColumnName(name)
+		st.setProperty("name", name)
+		st.setNativeDataType(dataType.getNativeOdaDataTypeId())
+		st.setNativeName(name)
+		workSet.fPosition = workSet.fPosition+1
+		st.setPosition(workSet.fPosition)
+		st.setDataType(dataType.getNativeOdaDataTypeName())
+		sd.add(st)
+		// --- information needed to access via table ---
+		var cs1 = StructureFactory.createComputedColumn()
+		cs1.setName(name)
+		cs1.setDisplayName(name);
+		cs1.setExpression("dataSetRow[\"".concat(name).concat("\"]"))
+		cs1.setDataType(dataType.getNativeOdaDataTypeName())
+		cc.add(cs1)
+	}
+	
+	private def getDatamartClassName(String alias, DatamartDefinition datamart) {
+		'''«(datamart.eContainer as LPackage).fullyQualifiedName».«datamart.name»Class'''
+	}
+	
+	public def generateItems(DatamartDefinition datamart, ReportGeneratorWorkSet workSet, ContainerItem container, Element[] elements) {
+		if	(elements != null) {
+			for	(element : elements) {
+				try {
+					switch (element) {
+						Title:
+							container.addHeader(1, I18NKeyGenerator.key(element.text), element.text.replace("\"",""), element.style)
+						SubTitle:
+							container.addHeader(2, I18NKeyGenerator.key(element.text), element.text.replace("\"",""), element.style)
+						SubSubTitle:
+							container.addHeader(3, I18NKeyGenerator.key(element.text), element.text.replace("\"",""), element.style) 
+						Label:
+							container.addLabel(I18NKeyGenerator.key(element.text), element.text.replace("\"",""), element.style)
+						Text:
+							container.addText (I18NKeyGenerator.key(element.text), element.text.replace("\"",""), element.style)
+						AutoText:
+							container.addAutoText (element.type.toString, element.style)
+						DatamartTableProperty:
+							container.addData (element, element.style)
+						Image:
+							addImage(
+								workSet, container, element, null
+							)
+						DatamartTable:
+							addDatamartTable(datamart, 
+								workSet, container, element,
+								new Width("100%")
+							)
+						Grid:
+							addGrid(datamart, 
+								workSet, container, element, null,
+								new Width("100%")
+							)
+//						TableDsl:
+//							addTable(
+//								workSet, container, element,
+//								new Width("100%")
+//							)
+//						ChartDsl:
+//							System.err.println("ChartDsl ... todo")
+					}
+				}
+				catch (ContentException ce) {
+					System.err.println('''«ce.class.simpleName»: «ce.localizedMessage»''')
+				}
+				catch (Exception e) {
+					e.printStackTrace
+				}
+			}
+		}
+	}
+	
+	private def addDatamartTable(DatamartDefinition datamart, ReportGeneratorWorkSet workSet, ContainerItem container, DatamartTable datamartTable, Attribute... attributes) {
+//		var datamart = datamartTable.datamartRef
+		var hiddens = new ArrayList<DatamartProperty>
+		for	(columnFormatter : datamartTable.detail.columnFormatters) {
+//			if	(columnFormatter.hiddens) {
+//				var column = columnFormatter.column 
+//				switch	(column) {
+//					TableProperty: hiddens.add(column.valueRef)
+//				}
+//			}
+		}
+		var alias = datamartTable.name
+		var dataSetName = Utilities.getDataSetName(alias, datamart).toString
+		var dataSet = workSet.dataSets.get(dataSetName)
+		if	(dataSet == null) {
+			addDatamartSourceAndSet(datamart, workSet, alias, hiddens)
+			dataSet = workSet.dataSets.get(dataSetName)
+		}
+		container.addTable(dataSet, datamartTable, workSet.getComputedColumns(dataSetName), datamartTable.groups, datamartTable.detail.style, datamartTable.detail.columnFormatters, datamartTable.style, attributes)
+	}
+	
+//	def addTable(ReportGeneratorWorkSet workSet, Container container, TableDsl tableDsl, Attribute... attributes) {
+//		var datamart = tableDsl.tableRef.source.datamartRef
+//		var hiddens = null as DatamartProperty[]//tableItem.hiddens
+//		var alias = tableDsl.name
+//		var dataSetName = Utilities.getDataSetName(alias, datamart).toString
+//		var dataSet = workSet.dataSets.get(dataSetName)
+//		if	(dataSet == null) {
+//			addDatamart(workSet, alias, datamart, hiddens)
+//			dataSet = workSet.dataSets.get(dataSetName)
+//		}
+//		var propertyLookups = new PropertyLookups
+//		var tableInferrer = new TableDSLJvmModelInferrer
+//		tableInferrer.extractPropertyLookups(tableDsl.tableRef, propertyLookups)
+//		container.addTable(dataSet, workSet.getComputedColumns(dataSetName), propertyLookups, attributes)
+//	}
+	
+	private def addImage(ReportGeneratorWorkSet workSet, ContainerItem container, Image imageData, Style style, Attribute... attributes) {
+		var image = new ImageItem(
+			workSet,
+			null,
+			imageData.size.literal, 
+			imageData.scale, 
+			imageData.sourceType.literal, 
+			imageData.filename
+		)
+		container.add(image, style, attributes)
+	}
+	
+	private def addGrid(DatamartDefinition datamart, ReportGeneratorWorkSet workSet, ContainerItem container, Grid grid, Style style, Attribute... attributes) {
+		var rowCount = grid.rows.length
+		var columnCount = 0
+		for	(row : grid.rows) {
+			columnCount = Math.max(columnCount, row.cells.length)
+		}
+		var gridItem = new GridItem(
+			workSet, 
+			columnCount,
+			rowCount
+		);
+		var rowNo = 0
+		for	(row : grid.rows) {
+			var columnNo = 0
+			for	(cell : row.cells) {
+				generateItems(datamart, workSet, gridItem.getCell(columnNo, rowNo).setColumnSpan(cell.columnspan), cell.elements)
+				columnNo = columnNo+1
+			}
+			if	(row.style != null) {
+				gridItem.applyStyle(rowNo, row.style)
+			}
+			rowNo = rowNo+1
+		}
+		container.add(gridItem, style, attributes)
+	}
+
+	override createAppendable(EObject context, ImportManager importManager, GeneratorConfig config) {
+  		// required to initialize the needed builder to avoid deprecated methods
+		builder = context.eResource
+		// ---------
+       addImportFor(importManager, _typeReferenceBuilder
+	        , ReportGeneratorWorkSet
+			, HorizontalLayout
+			, ViewLayoutManager
+			, BrowserFrame
+			, StreamResource
+			, Unit
+			, Button
+			, com.vaadin.ui.Label
+			, IEventBroker
+			, EventHandler
+			, Event
+			, EventUtils
+			, EventBrokerMsg
+			, CustomMsgException
+			, IReportProvider.Rendering
+			, AbstractComponent
+			, UUID
+			, Filter
+			, IToolbarAction)
+    	super.createAppendable(context, importManager, config)
+	}
+}
diff --git a/org.eclipse.osbp.xtext.reportdsl/src/org/eclipse/osbp/xtext/reportdsl/jvmmodel/Utilities.java b/org.eclipse.osbp.xtext.reportdsl/src/org/eclipse/osbp/xtext/reportdsl/jvmmodel/Utilities.java
new file mode 100644
index 0000000..ab59d99
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl/src/org/eclipse/osbp/xtext/reportdsl/jvmmodel/Utilities.java
@@ -0,0 +1,101 @@
+/**
+ *                                                                            
+ * 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.reportdsl.jvmmodel;
+
+import org.eclipse.birt.core.data.Constants;
+import org.eclipse.emf.common.util.URI;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.osbp.dsl.semantic.common.types.LPackage;
+
+import com.google.common.base.CaseFormat;
+
+import org.eclipse.osbp.ui.api.datamart.IDataMart;
+import org.eclipse.osbp.utils.common.BundleUtilities;
+import org.eclipse.osbp.xtext.datamartdsl.DatamartDefinition;
+import org.eclipse.osbp.xtext.reportdsl.common.BaseReport;
+
+public class Utilities {
+	
+	public static String getOdaPropConfigurationId(String alias, DatamartDefinition datamart) {
+		return
+			 BaseReport.DATASOURCE_EXTENSION_ID
+			+Constants.ODA_PROP_CONFIG_KEY_SEPARATOR
+			+getDataSourceName(alias, datamart);
+	}
+	
+	public static String getDataSourceNameFromOdaPropConfigurationId(String id) {
+		String[] tokens = id.split(Constants.ODA_PROP_CONFIG_KEY_SEPARATOR, 2);
+		return tokens[1];
+	}
+	
+	public static String getBundleSymbolicNameFromOdaPropConfigurationId(String id) {
+		String[] tokens = id.split(Constants.ODA_PROP_CONFIG_KEY_SEPARATOR, 4);
+		return tokens[3];
+	}
+	
+	public static String getDatamartClassNameFromOdaPropConfigurationId(String id) {
+		String[] tokens = id.split(Constants.ODA_PROP_CONFIG_KEY_SEPARATOR, 5);
+		return tokens[4].replaceAll("_", ".");
+	}
+	
+	public static String getBundleName(DatamartDefinition datamart) {
+		LPackage pckg = (LPackage) datamart.eContainer();
+		String bundleName = "@";
+		try {
+			EObject top = pckg;
+			while (top.eContainer() != null) {
+				top = top.eContainer();
+			}
+			URI uri = top.eResource().getURI();
+			if	(uri.isPlatform()) {
+				bundleName = uri.segment(1);
+			}
+		}
+		catch (Exception e) {} // NOP
+		return BundleUtilities.generateSymbolicNameForPackage(bundleName);
+	}
+	
+	public static String getDataSourceName(String alias, DatamartDefinition datamart) {
+		LPackage pckg = (LPackage) datamart.eContainer();
+		String bundleName = getBundleName(datamart);
+		if	(alias == null) {
+			alias = "DEFAULT";
+		}
+		if 	(alias.contains(Constants.ODA_PROP_CONFIG_KEY_SEPARATOR)) {
+			throw new IllegalArgumentException("DataSource Alias '"+alias+"' is not allowed to contain underscore '"+Constants.ODA_PROP_CONFIG_KEY_SEPARATOR+"'");
+		}
+		if 	(alias.contains(".")) {
+			throw new IllegalArgumentException("DataSource Alias '"+alias+"' is not allowed to contain dots '.'");
+		}
+		if 	(bundleName.contains(Constants.ODA_PROP_CONFIG_KEY_SEPARATOR)) {
+			throw new IllegalArgumentException("DataSource BundleName '"+bundleName+"' is not allowed to contain underscore '"+Constants.ODA_PROP_CONFIG_KEY_SEPARATOR+"'");
+		}
+		if 	(bundleName.contains(".")) {
+			throw new IllegalArgumentException("DataSource BundleName '"+bundleName+"' is not allowed to contain dots '.'");
+		}
+		return 
+				 "DataSource"+Constants.ODA_PROP_CONFIG_KEY_SEPARATOR
+				+alias+Constants.ODA_PROP_CONFIG_KEY_SEPARATOR
+				+bundleName+Constants.ODA_PROP_CONFIG_KEY_SEPARATOR
+				+pckg.getName().replaceAll("\\.", Constants.ODA_PROP_CONFIG_KEY_SEPARATOR)+Constants.ODA_PROP_CONFIG_KEY_SEPARATOR
+				+datamart.getName()+IDataMart.DATAMART_CLASS_POSTFIX;
+	}
+	
+	public static String getDataSetName(String alias, DatamartDefinition datamart) {
+		if	(alias == null)
+			return "DataSet_"+datamart.getName();
+		else
+			return "DataSet_"+alias;
+	}
+
+}
diff --git a/org.eclipse.osbp.xtext.reportdsl/src/org/eclipse/osbp/xtext/reportdsl/scoping/ReportDSLScopeProvider.xtend b/org.eclipse.osbp.xtext.reportdsl/src/org/eclipse/osbp/xtext/reportdsl/scoping/ReportDSLScopeProvider.xtend
new file mode 100644
index 0000000..58febc3
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl/src/org/eclipse/osbp/xtext/reportdsl/scoping/ReportDSLScopeProvider.xtend
@@ -0,0 +1,57 @@
+/**
+ *                                                                            
+ *  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.reportdsl.scoping
+
+import org.eclipse.osbp.xtext.reportdsl.ReportDSLPackage
+import org.eclipse.emf.ecore.EObject
+import org.eclipse.emf.ecore.EReference
+import org.eclipse.xtext.scoping.IScope
+import org.eclipse.xtext.xbase.annotations.typesystem.XbaseWithAnnotationsBatchScopeProvider
+
+/**
+ * This class contains custom scoping description.
+ * 
+ * see : http://www.eclipse.org/Xtext/documentation.html#scoping
+ * on how and when to use it 
+ *
+ */
+class ReportDSLScopeProvider extends XbaseWithAnnotationsBatchScopeProvider {
+	override IScope getScope(EObject context, EReference reference) {
+//		if (reference == ReportDSLPackage.Literals.CC_DATAMART_TABLE__DATAMART_REF) {
+//			return getScope_Datamart_DatamartRef(super.getScope(context, reference))			
+//		}
+		super.getScope(context, reference)
+	}
+	
+	def IScope getScope_Datamart_DatamartRef(IScope scope) {
+		return scope
+//		var result = <EObject>newArrayList
+//		for	(element : scope.allElements) {
+//			if	(element.EObjectOrProxy instanceof CCDatamartDefinition) {
+//				var definition = element.EObjectOrProxy as CCDatamartDefinition
+//				if	(definition.eIsProxy) {
+//					definition = EcoreUtil.resolve(definition, definition.eResource) as CCDatamartDefinition
+//	}
+//				if	(CCDatamartDefinitionUtil.getNumAxes(definition) >= 2) {
+//					result.add(element.EObjectOrProxy)
+//				}
+//			}
+//		}
+//		return Scopes.scopeFor(result)
+	}
+}
diff --git a/org.eclipse.osbp.xtext.reportdsl/src/org/eclipse/osbp/xtext/reportdsl/validation/NamesAreUniqueValidator.java b/org.eclipse.osbp.xtext.reportdsl/src/org/eclipse/osbp/xtext/reportdsl/validation/NamesAreUniqueValidator.java
new file mode 100644
index 0000000..f3403b9
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl/src/org/eclipse/osbp/xtext/reportdsl/validation/NamesAreUniqueValidator.java
@@ -0,0 +1,37 @@
+/**
+ *                                                                            
+ * 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.reportdsl.validation;
+
+import java.util.Arrays;
+import java.util.List;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.osbp.xtext.reportdsl.ReportBase;
+import org.eclipse.osbp.xtext.reportdsl.ReportLazyResolver;
+
+public class NamesAreUniqueValidator extends org.eclipse.osbp.xtext.basic.validation.NamesAreUniqueValidator {
+
+	private final static List<Class<?>> ingoreClasses = Arrays.asList(
+		ReportBase.class,
+		ReportLazyResolver.class
+	);
+	
+	@Override
+	protected boolean ignoreClass(EClass eclass) {
+		Class<?> tClass = eclass.getInstanceClass();
+		if	(ingoreClasses.contains(tClass)) {
+			return true;
+		}
+		return super.ignoreClass(eclass);
+	}
+}
diff --git a/org.eclipse.osbp.xtext.reportdsl/src/org/eclipse/osbp/xtext/reportdsl/validation/ReportDSLValidator.xtend b/org.eclipse.osbp.xtext.reportdsl/src/org/eclipse/osbp/xtext/reportdsl/validation/ReportDSLValidator.xtend
new file mode 100644
index 0000000..2d22f82
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl/src/org/eclipse/osbp/xtext/reportdsl/validation/ReportDSLValidator.xtend
@@ -0,0 +1,38 @@
+/**
+ *                                                                            
+ *  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.reportdsl.validation
+//import org.eclipse.xtext.validation.Check
+
+/**
+ * Custom validation rules. 
+ *
+ * see http://www.eclipse.org/Xtext/documentation.html#validation
+ */
+class ReportDSLValidator extends AbstractReportDSLValidator {
+
+//  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)
+//		}
+//	}
+}
diff --git a/org.eclipse.osbp.xtext.reportdsl/src/org/eclipse/osbp/xtext/reportdsl/valueconverter/ReportQualifiedNameProvider.java b/org.eclipse.osbp.xtext.reportdsl/src/org/eclipse/osbp/xtext/reportdsl/valueconverter/ReportQualifiedNameProvider.java
new file mode 100644
index 0000000..9b99436
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl/src/org/eclipse/osbp/xtext/reportdsl/valueconverter/ReportQualifiedNameProvider.java
@@ -0,0 +1,68 @@
+/**
+ *                                                                            
+ *  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.reportdsl.valueconverter;
+
+import java.util.List;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.osbp.xtext.reportdsl.Report;
+import org.eclipse.osbp.xtext.reportdsl.ReportPackage;
+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;
+
+
+@SuppressWarnings("restriction")
+public class ReportQualifiedNameProvider extends XbaseQualifiedNameProvider {
+
+	@Inject
+	private IQualifiedNameConverter qualifiedNameConverter;
+
+	@Override
+	public QualifiedName getFullyQualifiedName(EObject obj) {
+		if (obj == null) {
+			return QualifiedName.create("");
+		}
+		if (obj instanceof Report) {
+			Report report = (Report) obj;
+            if (report.getName() == null) {
+            	return null;
+            }
+            return qualifiedNameConverter.toQualifiedName(report.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 ReportPackage)) {
+			o = o.eContainer();
+		}
+		return ((ReportPackage)o).getName();
+	}
+}
diff --git a/org.eclipse.osbp.xtext.reportdsl/src/org/eclipse/osbp/xtext/reportdsl/valueconverter/ReportValueConverterService.java b/org.eclipse.osbp.xtext.reportdsl/src/org/eclipse/osbp/xtext/reportdsl/valueconverter/ReportValueConverterService.java
new file mode 100644
index 0000000..10384a3
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl/src/org/eclipse/osbp/xtext/reportdsl/valueconverter/ReportValueConverterService.java
@@ -0,0 +1,45 @@
+/**
+ *                                                                            
+ * 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.reportdsl.valueconverter;
+
+import org.eclipse.osbp.xtext.basic.valueconverter.TRANSLATABLESTRINGValueConverter;
+import org.eclipse.xtext.conversion.IValueConverter;
+import org.eclipse.xtext.conversion.ValueConverter;
+import org.eclipse.xtext.xbase.conversion.XbaseValueConverterService;
+
+import com.google.inject.Inject;
+import com.google.inject.Singleton;
+
+/**
+ * Adds a value conversion for the QualifiedNameWithWildCard rule.
+ * 
+ * @author Jose Dominguez
+ */
+@SuppressWarnings("restriction")
+@Singleton
+public class ReportValueConverterService extends XbaseValueConverterService {
+
+	@Inject
+	private TRANSLATABLESTRINGValueConverter converter;
+
+	@ValueConverter(rule = "QualifiedNameWithWildCard")
+	public IValueConverter<String> getQualifiedNameWithWildCard() {
+		return getQualifiedNameValueConverter();
+	}
+
+	@ValueConverter(rule = "TRANSLATABLESTRING")
+	public IValueConverter<String> getTranslatableStringValueConverter() {
+		return converter;
+	}
+
+}
diff --git a/org.eclipse.osbp.xtext.reportdsl/test/de/compex/xtext/reportdsl/common/BirtDemo.java b/org.eclipse.osbp.xtext.reportdsl/test/de/compex/xtext/reportdsl/common/BirtDemo.java
new file mode 100644
index 0000000..7a7fe21
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl/test/de/compex/xtext/reportdsl/common/BirtDemo.java
@@ -0,0 +1,434 @@
+package org.eclipse.osbp.xtext.reportdsl.common;
+
+/*******************************************************************************
+ * Copyright (c) 2005 Actuate Corporation.
+ * 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:
+ *  Actuate Corporation  - created
+ *******************************************************************************/
+
+import java.io.ByteArrayOutputStream;
+import java.io.IOException;
+import java.io.UnsupportedEncodingException;
+import java.util.ArrayList;
+import java.util.List;
+
+import org.eclipse.birt.core.framework.Platform;
+import org.eclipse.birt.report.engine.api.EngineException;
+import org.eclipse.birt.report.engine.api.HTMLRenderOption;
+import org.eclipse.birt.report.engine.api.IReportEngine;
+import org.eclipse.birt.report.engine.api.IReportRunnable;
+import org.eclipse.birt.report.engine.api.IRunAndRenderTask;
+import org.eclipse.birt.report.engine.api.PDFRenderOption;
+import org.eclipse.birt.report.model.api.CellHandle;
+import org.eclipse.birt.report.model.api.DataItemHandle;
+import org.eclipse.birt.report.model.api.DesignConfig;
+import org.eclipse.birt.report.model.api.DesignElementHandle;
+import org.eclipse.birt.report.model.api.ElementFactory;
+import org.eclipse.birt.report.model.api.GridHandle;
+import org.eclipse.birt.report.model.api.IDesignEngine;
+import org.eclipse.birt.report.model.api.IDesignEngineFactory;
+import org.eclipse.birt.report.model.api.ImageHandle;
+import org.eclipse.birt.report.model.api.LabelHandle;
+import org.eclipse.birt.report.model.api.PropertyHandle;
+import org.eclipse.birt.report.model.api.ReportDesignHandle;
+import org.eclipse.birt.report.model.api.RowHandle;
+import org.eclipse.birt.report.model.api.RowOperationParameters;
+import org.eclipse.birt.report.model.api.SessionHandle;
+import org.eclipse.birt.report.model.api.SharedStyleHandle;
+import org.eclipse.birt.report.model.api.StructureFactory;
+import org.eclipse.birt.report.model.api.TableHandle;
+import org.eclipse.birt.report.model.api.TextItemHandle;
+import org.eclipse.birt.report.model.api.activity.SemanticException;
+import org.eclipse.birt.report.model.api.elements.DesignChoiceConstants;
+import org.eclipse.birt.report.model.api.elements.structures.ComputedColumn;
+import org.olap4j.Cell;
+import org.olap4j.metadata.Member;
+
+import com.ibm.icu.util.ULocale;
+
+/**
+ * Simple BIRT Design Engine API (DEAPI) demo.
+ */
+
+public class BirtDemo {
+	
+	public class MyCell {
+		Member member;
+		Cell cell;
+
+		public MyCell() {
+		}
+
+		public MyCell(Member m) {
+			this.member = m;
+			System.out.println("Member: " + m.getCaption());
+		}
+
+		public MyCell(Cell c) {
+			this.cell = c;
+			System.out.println("Cell: " + c.getFormattedValue());
+		}
+
+		public String getValue() {
+			if (member != null) {
+				return member.getCaption();
+			}
+			if (cell != null) {
+				return cell.getFormattedValue();
+			}
+			return "";
+		}
+
+	}
+
+	private static IReportEngine birtReportEngine = null;
+
+	private static ReportDesignHandle design;
+
+	private static final int HEADER_ROW = 0;
+
+	public static void main(String[] args) {
+		try {
+			buildReport();
+		} catch (IOException e) {
+			// TODO Auto-generated catch block
+			e.printStackTrace();
+		} catch (SemanticException e) {
+			// TODO Auto-generated catch block
+			e.printStackTrace();
+		}
+	}
+
+	private static void buildReport() throws IOException, SemanticException {
+		List<List<MyCell>> result = null;
+		buildReport("Hello, world!", result);
+	}
+
+	// This function shows how to build a very simple BIRT report with a
+	// minimal set of content: a simple grid with an image and a label.
+	static void buildReport(String header, List<List<MyCell>> result)
+			throws IOException, SemanticException {
+		// Create a session handle. This is used to manage all open designs.
+		// Your app need create the session only once.
+
+		// Configure the Engine and start the Platform
+		DesignConfig config = new DesignConfig();
+
+		config.setProperty("BIRT_HOME",
+				"C:/birt-runtime-2_1_1/birt-runtime-2_1_1/ReportEngine");
+		IDesignEngine engine = null;
+		try {
+
+			Platform.startup(config);
+			IDesignEngineFactory factory = (IDesignEngineFactory) Platform
+					.createFactoryObject(IDesignEngineFactory.EXTENSION_DESIGN_ENGINE_FACTORY);
+			engine = factory.createDesignEngine(config);
+
+		} catch (Exception ex) {
+			ex.printStackTrace();
+		}
+
+		SessionHandle session = engine.newSessionHandle(ULocale.ENGLISH);
+
+		// Create a new report design.
+
+		design = session.createDesign();
+
+		// The element factory creates instances of the various BIRT elements.
+
+		ElementFactory factory = design.getElementFactory();
+
+		// Create a simple master page that describes how the report will
+		// appear when printed.
+		//
+		// Note: The report will fail to load in the BIRT designer
+		// unless you create a master page.
+
+		DesignElementHandle element = factory
+				.newSimpleMasterPage("Page Master"); //$NON-NLS-1$
+		design.getMasterPages().add(element);
+
+		// Create a grid and add it to the "body" slot of the report
+		// design.
+
+		GridHandle grid = factory.newGridItem(null, 3 /* cols */, 2 /* row */);
+		design.getBody().add(grid);
+
+		// Note: Set the table width to 100% to prevent the label
+		// from appearing too narrow in the layout view.
+
+		grid.setWidth("100%"); //$NON-NLS-1$
+
+		// Get the first row.
+		RowHandle row = (RowHandle) grid.getRows().get(0);
+
+		// Create an image and add it to the first cell.
+
+		ImageHandle image = factory.newImage(null);
+		CellHandle cell = (CellHandle) row.getCells().get(0);
+		cell.getContent().add(image);
+		// image.setURL("\"http://www.eclipse.org/birt/phoenix/tutorial/basic/multichip-4.jpg\"");
+		image.setSource(DesignChoiceConstants.IMAGE_REF_TYPE_FILE);
+		image.setSize(DesignChoiceConstants.IMAGE_SIZE_SCALE_TO_ITEM);
+		image.setScale(0.5);
+		image.setFile("\"osbp/cx.jpg\"");
+
+		// Create a label and add it to the second cell.
+		cell = (CellHandle) row.getCells().get(1);
+		TextItemHandle text = factory.newTextItem("text");
+		text.setContentType(DesignChoiceConstants.TEXT_DATA_CONTENT_TYPE_HTML);
+		text.setContent("<center style='font-size:20px; font-weight:bold;'>"
+				+ header + "</center><br>");
+		cell.getContent().add(text);
+
+		// // Get the second row.
+		// RowHandle row2 = (RowHandle) grid.getRows().get(1);
+		// cell = (CellHandle) row2.getCells().get(2);
+
+		if (result != null) {
+			buildTableReport(result, design);
+		}
+
+		// HTML output
+		getHTML(design);
+
+		// HTML pdf
+		getPDF(design);
+
+		// Save the design and close it.
+		design.saveAs("f:/Birt/sample.rptdesign"); //$NON-NLS-1$
+		design.close();
+		System.out.println("Finished");
+
+		// We're done!
+	}
+
+	static void getHTML(ReportDesignHandle designHandle) {
+		birtReportEngine = CCBirtEngine.getReportEngine();
+		IReportRunnable design;
+		// buildReport( cols, designHandle );
+
+		try {
+			// Open report design
+			design = birtReportEngine.openReportDesign(designHandle);
+			// create task to run and render report
+			IRunAndRenderTask task = birtReportEngine
+					.createRunAndRenderTask(design);
+
+			// set output options
+			HTMLRenderOption options = new HTMLRenderOption();
+			ByteArrayOutputStream bos = new ByteArrayOutputStream();
+			bos.toString("ISO-8859-1");
+			options.setOutputStream(bos);
+			options.setOutputFormat(HTMLRenderOption.OUTPUT_FORMAT_HTML);
+			options.setEmbeddable(true);
+			options.setOutputFileName("f:/Birt/sample.html");
+			task.setRenderOption(options);
+
+			// run report
+			task.run();
+			System.out.println(bos);
+			task.close();
+		} catch (UnsupportedEncodingException e) {
+			// TODO Auto-generated catch block
+			e.printStackTrace();
+		} catch (EngineException e) {
+			// TODO Auto-generated catch block
+			e.printStackTrace();
+		}
+	}
+
+	static void getPDF(ReportDesignHandle designHandle) {
+		birtReportEngine = CCBirtEngine.getReportEngine();
+		IReportRunnable design;
+		// buildReport( cols, designHandle );
+
+		try {
+			// Open report design
+			design = birtReportEngine.openReportDesign(designHandle);
+			// create task to run and render report
+			IRunAndRenderTask task = birtReportEngine
+					.createRunAndRenderTask(design);
+
+			// set output options
+			PDFRenderOption options = new PDFRenderOption();
+			ByteArrayOutputStream bos = new ByteArrayOutputStream();
+			bos.toString("ISO-8859-1");
+			options.setOutputStream(bos);
+			options.setOutputFormat(PDFRenderOption.OUTPUT_FORMAT_PDF);
+			options.setOutputFileName("f:/Birt/sample.pdf");
+			options.setOutputStream(bos);
+			task.setRenderOption(options);
+			// task.setLocale(new Locale("en", "US"));
+
+			// run report
+			task.run();
+			System.out.println(bos);
+			task.close();
+		} catch (UnsupportedEncodingException e) {
+			// TODO Auto-generated catch block
+			// e.printStackTrace();
+		} catch (EngineException e) {
+			// TODO Auto-generated catch block
+			e.printStackTrace();
+			// } catch (FileNotFoundException e) {
+			// // TODO Auto-generated catch block
+			// e.printStackTrace();
+		}
+	}
+
+	public void buildReport(String[] cols, ReportDesignHandle designHandle) {
+
+		try {
+			ElementFactory designFactory = designHandle.getElementFactory();
+
+			TableHandle table = designFactory
+					.newTableItem("table", cols.length);
+			table.setWidth("100%");
+			table.setDataSet(designHandle.findDataSet("ds"));
+
+			PropertyHandle computedSet = table.getColumnBindings();
+			ComputedColumn cs1 = null;
+
+			for (int i = 0; i < cols.length; i++) {
+				cs1 = StructureFactory.createComputedColumn();
+				cs1.setName((String) cols[i]);
+				cs1.setExpression("dataSetRow[\"" + (String) cols[i] + "\"]");
+				computedSet.addItem(cs1);
+			}
+
+			// table header
+			RowHandle tableheader = (RowHandle) table.getHeader().get(0);
+
+			for (int i = 0; i < cols.length; i++) {
+				LabelHandle label1 = designFactory.newLabel((String) cols[i]);
+				label1.setText((String) cols[i]);
+				CellHandle cell = (CellHandle) tableheader.getCells().get(i);
+				cell.getContent().add(label1);
+			}
+
+			// table detail
+			RowHandle tabledetail = (RowHandle) table.getDetail().get(0);
+			for (int i = 0; i < cols.length; i++) {
+				CellHandle cell = (CellHandle) tabledetail.getCells().get(i);
+				DataItemHandle data = designFactory.newDataItem("data_"
+						+ (String) cols[i]);
+				data.setResultSetColumn((String) cols[i]);
+				cell.getContent().add(data);
+			}
+
+			designHandle.getBody().add(table);
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+	}
+
+	private static int getColSize(List<List<MyCell>> myCellList) {
+		if (myCellList.size() > 0) {
+			return myCellList.get(0).size();
+		}
+		return 0;
+	}
+
+	private static String[] getCols(List<List<MyCell>> myCellList) {
+		if (myCellList.size() > 0) {
+			List<String> cols = new ArrayList<String>(getColSize(myCellList));
+			for (MyCell myCell : myCellList.get(0)) {
+				cols.add(myCell.getValue());
+			}
+			return cols.toArray(new String[0]);
+		}
+		return new String[0];
+	}
+
+	private static void buildTableReport(List<List<MyCell>> result,
+			ReportDesignHandle designHandle) {
+
+		try {
+			ElementFactory designFactory = designHandle.getElementFactory();
+
+			int colsLength = getColSize(result);
+			String[] cols = getCols(result);
+
+			TableHandle table = designFactory.newTableItem("table", colsLength);
+			// Table styling
+			table.setWidth("100%");
+			// SharedStyleHandle tableStyle =
+			// designFactory.newStyle("tableStyle");
+			// designHandle.getStyles().add(tableStyle);
+			// tableStyle.setBorderTopStyle(DesignChoiceConstants.LINE_STYLE_SOLID);
+			// tableStyle.setBorderLeftStyle(DesignChoiceConstants.LINE_STYLE_SOLID);
+			// tableStyle.setBorderRightStyle(DesignChoiceConstants.LINE_STYLE_SOLID);
+			// tableStyle.setBorderBottomStyle(DesignChoiceConstants.LINE_STYLE_SOLID);
+			// table.setStyle(tableStyle);
+			// -----
+
+			// table header
+			RowHandle tableheader = (RowHandle) table.getHeader().get(0);
+			// table detail
+			RowHandle tabledetail = (RowHandle) table.getDetail().get(0);
+			for (int col = 0; col < cols.length; col++) {
+				// cellstyling header
+				SharedStyleHandle cellHeaderStyle = designFactory
+						.newStyle("cellHeaderStyle");
+				designHandle.getStyles().add(cellHeaderStyle);
+				cellHeaderStyle
+						.setBorderTopStyle(DesignChoiceConstants.LINE_STYLE_GROOVE);
+				cellHeaderStyle
+						.setBorderLeftStyle(DesignChoiceConstants.LINE_STYLE_GROOVE);
+				cellHeaderStyle
+						.setBorderRightStyle(DesignChoiceConstants.LINE_STYLE_GROOVE);
+				cellHeaderStyle
+						.setBorderBottomStyle(DesignChoiceConstants.LINE_STYLE_GROOVE);
+				
+				// cellstyling detail
+				SharedStyleHandle cellDetailStyle = designFactory
+						.newStyle("cellDetailStyle");
+				designHandle.getStyles().add(cellDetailStyle);
+				cellDetailStyle
+				.setBorderTopStyle(DesignChoiceConstants.LINE_STYLE_GROOVE);
+				cellDetailStyle
+				.setBorderLeftStyle(DesignChoiceConstants.LINE_STYLE_GROOVE);
+				cellDetailStyle
+				.setBorderRightStyle(DesignChoiceConstants.LINE_STYLE_GROOVE);
+				cellDetailStyle
+				.setBorderBottomStyle(DesignChoiceConstants.LINE_STYLE_GROOVE);
+				cellDetailStyle.setFontWeight(DesignChoiceConstants.FONT_WEIGHT_BOLD);
+				cellDetailStyle.setFontStyle(DesignChoiceConstants.FONT_STYLE_ITALIC);
+				// ----
+
+				LabelHandle label;
+				CellHandle cell;
+				for (int row = 0; row < result.size(); row++) {
+					// tableHeader content
+					if (row == HEADER_ROW) {
+						label = designFactory.newLabel("tblHeader_" + col);
+						cell = (CellHandle) tableheader.getCells().get(col);
+						cell.setStyle(cellHeaderStyle);
+					} else {
+						// tableDetail content
+						cell = (CellHandle) tabledetail.getCells().get(col);
+						RowOperationParameters rowParm = new RowOperationParameters(
+								2, -1, row);
+						table.insertRow(rowParm);
+						label = designFactory.newLabel("tblCell_" + col + "_"
+								+ row);
+						cell.setStyle(cellDetailStyle);
+//						designFactory.new
+					}
+					MyCell resultCell = result.get(row).get(col);
+					label.setText(resultCell.getValue());
+					cell.getContent().add(label);
+				}
+			}
+			designHandle.getBody().add(table);
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+	}
+}
diff --git a/org.eclipse.osbp.xtext.reportdsl/xtend-gen/org/eclipse/osbp/xtext/reportdsl/formatting/ReportDSLFormatter.java b/org.eclipse.osbp.xtext.reportdsl/xtend-gen/org/eclipse/osbp/xtext/reportdsl/formatting/ReportDSLFormatter.java
new file mode 100644
index 0000000..5c5aeff
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl/xtend-gen/org/eclipse/osbp/xtext/reportdsl/formatting/ReportDSLFormatter.java
@@ -0,0 +1,76 @@
+/**
+ * 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.reportdsl.formatting;
+
+import com.google.inject.Inject;
+import org.eclipse.osbp.utils.xtext.GenericFormatter;
+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.
+ * 
+ * see : http://www.eclipse.org/Xtext/documentation.html#formatting
+ * on how and when to use it
+ * 
+ * Also see {@link org.eclipse.xtext.xtext.XtextFormattingTokenSerializer} as an example
+ */
+@SuppressWarnings("all")
+public class ReportDSLFormatter extends AbstractDeclarativeFormatter {
+  @Inject
+  private XtypeGrammarAccess grammarAccess;
+  
+  protected void configureFormatting(final FormattingConfig c) {
+    final GenericFormatter genericFormatter = new GenericFormatter();
+    Grammar _grammar = this.grammar.getGrammar();
+    AbstractRule _findRuleForName = GrammarUtil.findRuleForName(_grammar, "ReportImport");
+    ParserRule importDef = ((ParserRule) _findRuleForName);
+    Grammar _grammar_1 = this.grammar.getGrammar();
+    AbstractRule _findRuleForName_1 = GrammarUtil.findRuleForName(_grammar_1, "FontFamily");
+    ParserRule fontDef = ((ParserRule) _findRuleForName_1);
+    Grammar _grammar_2 = this.grammar.getGrammar();
+    AbstractRule _findRuleForName_2 = GrammarUtil.findRuleForName(_grammar_2, "TableBaseAggregation");
+    ParserRule aggDef = ((ParserRule) _findRuleForName_2);
+    FormattingConfig _config = this.getConfig();
+    FormattingConfig.LinewrapLocator _setLinewrap = _config.setLinewrap(1, 1, 2);
+    _setLinewrap.after(importDef);
+    Grammar _grammar_3 = this.grammar.getGrammar();
+    genericFormatter.formatFirstLevelBlocks(c, _grammar_3, "PageTemplate");
+    Grammar _grammar_4 = this.grammar.getGrammar();
+    genericFormatter.formatFirstLevelBlocks(c, _grammar_4, "SomeFormats");
+    Grammar _grammar_5 = this.grammar.getGrammar();
+    genericFormatter.formatFirstLevelBlocks(c, _grammar_5, "Colors");
+    Grammar _grammar_6 = this.grammar.getGrammar();
+    genericFormatter.formatFirstLevelBlocks(c, _grammar_6, "Fonts");
+    Grammar _grammar_7 = this.grammar.getGrammar();
+    genericFormatter.formatFirstLevelBlocks(c, _grammar_7, "Medias");
+    Grammar _grammar_8 = this.grammar.getGrammar();
+    genericFormatter.formatFirstLevelBlocks(c, _grammar_8, "Styles");
+    Grammar _grammar_9 = this.grammar.getGrammar();
+    genericFormatter.formatFirstLevelBlocks(c, _grammar_9, "Report");
+    FormattingConfig _config_1 = this.getConfig();
+    FormattingConfig.NoLinewrapLocator _setNoLinewrap = _config_1.setNoLinewrap();
+    _setNoLinewrap.before(fontDef);
+    FormattingConfig _config_2 = this.getConfig();
+    FormattingConfig.NoLinewrapLocator _setNoLinewrap_1 = _config_2.setNoLinewrap();
+    _setNoLinewrap_1.before(aggDef);
+    genericFormatter.genericFormatting(c, this.grammar, this.grammarAccess);
+  }
+}
diff --git a/org.eclipse.osbp.xtext.reportdsl/xtend-gen/org/eclipse/osbp/xtext/reportdsl/jvmmodel/ReportDSLJvmModelInferrer.java b/org.eclipse.osbp.xtext.reportdsl/xtend-gen/org/eclipse/osbp/xtext/reportdsl/jvmmodel/ReportDSLJvmModelInferrer.java
new file mode 100644
index 0000000..f3cc861
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl/xtend-gen/org/eclipse/osbp/xtext/reportdsl/jvmmodel/ReportDSLJvmModelInferrer.java
@@ -0,0 +1,682 @@
+/**
+ * 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.reportdsl.jvmmodel;
+
+import com.google.common.base.Objects;
+import com.vaadin.data.Container;
+import com.vaadin.ui.VerticalLayout;
+import java.util.Arrays;
+import java.util.HashSet;
+import java.util.Set;
+import java.util.function.Consumer;
+import javax.annotation.PostConstruct;
+import javax.annotation.PreDestroy;
+import javax.inject.Inject;
+import org.eclipse.e4.core.contexts.IEclipseContext;
+import org.eclipse.e4.core.services.events.IEventBroker;
+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.osbp.dsl.semantic.common.types.LTypedPackage;
+import org.eclipse.osbp.dsl.semantic.entity.LEntity;
+import org.eclipse.osbp.eventbroker.EventBrokerMsg;
+import org.eclipse.osbp.ui.api.datamart.IDataMart;
+import org.eclipse.osbp.ui.api.report.IReportProvider;
+import org.eclipse.osbp.ui.api.themes.IThemeResourceService;
+import org.eclipse.osbp.utils.constants.GeneratorConstants;
+import org.eclipse.osbp.xtext.action.ActionPackage;
+import org.eclipse.osbp.xtext.action.ActionToolbar;
+import org.eclipse.osbp.xtext.datamartdsl.DatamartDefinition;
+import org.eclipse.osbp.xtext.datamartdsl.jvmmodel.DatamartDSLJvmModelInferrer;
+import org.eclipse.osbp.xtext.reportdsl.RenderingEnum;
+import org.eclipse.osbp.xtext.reportdsl.Report;
+import org.eclipse.osbp.xtext.reportdsl.ReportDesign;
+import org.eclipse.osbp.xtext.reportdsl.ReportDesignFile;
+import org.eclipse.osbp.xtext.reportdsl.ReportDesignTemplate;
+import org.eclipse.osbp.xtext.reportdsl.ReportPackage;
+import org.eclipse.osbp.xtext.reportdsl.common.AbstractReportBean;
+import org.eclipse.osbp.xtext.reportdsl.common.BaseReport;
+import org.eclipse.xtend2.lib.StringConcatenation;
+import org.eclipse.xtext.common.types.JvmAnnotationReference;
+import org.eclipse.xtext.common.types.JvmConstructor;
+import org.eclipse.xtext.common.types.JvmDeclaredType;
+import org.eclipse.xtext.common.types.JvmField;
+import org.eclipse.xtext.common.types.JvmFormalParameter;
+import org.eclipse.xtext.common.types.JvmGenericType;
+import org.eclipse.xtext.common.types.JvmMember;
+import org.eclipse.xtext.common.types.JvmOperation;
+import org.eclipse.xtext.common.types.JvmTypeReference;
+import org.eclipse.xtext.common.types.JvmVisibility;
+import org.eclipse.xtext.naming.IQualifiedNameProvider;
+import org.eclipse.xtext.naming.QualifiedName;
+import org.eclipse.xtext.xbase.compiler.output.ITreeAppendable;
+import org.eclipse.xtext.xbase.jvmmodel.AbstractModelInferrer;
+import org.eclipse.xtext.xbase.jvmmodel.IJvmDeclaredTypeAcceptor;
+import org.eclipse.xtext.xbase.jvmmodel.JvmTypesBuilder;
+import org.eclipse.xtext.xbase.lib.Extension;
+import org.eclipse.xtext.xbase.lib.Procedures.Procedure1;
+import org.eclipse.xtext.xbase.lib.StringExtensions;
+
+/**
+ * <p>Infers a JVM model from the source model.</p>
+ * 
+ * <p>The JVM model should contain all elements that would appear in the Java code
+ * which is generated from the source model. Other models link against the JVM model rather than the source model.</p>
+ */
+@SuppressWarnings("all")
+public class ReportDSLJvmModelInferrer extends AbstractModelInferrer {
+  /**
+   * convenience API to build and initialize JVM types and their members.
+   */
+  @Inject
+  @Extension
+  private JvmTypesBuilder _jvmTypesBuilder;
+  
+  @Inject
+  @Extension
+  private IQualifiedNameProvider _iQualifiedNameProvider;
+  
+  @Inject
+  @Extension
+  private DatamartDSLJvmModelInferrer _datamartDSLJvmModelInferrer;
+  
+  protected void _infer(final ReportPackage pckg, final IJvmDeclaredTypeAcceptor acceptor, final boolean isPreIndexingPhase) {
+    EList<Report> _reports = pckg.getReports();
+    final Consumer<Report> _function = new Consumer<Report>() {
+      public void accept(final Report report) {
+        QualifiedName _fullyQualifiedName = ReportDSLJvmModelInferrer.this._iQualifiedNameProvider.getFullyQualifiedName(report);
+        String _plus = (_fullyQualifiedName + "Report");
+        JvmGenericType cls = ReportDSLJvmModelInferrer.this._jvmTypesBuilder.toClass(report, _plus);
+        final Procedure1<JvmGenericType> _function = new Procedure1<JvmGenericType>() {
+          public void apply(final JvmGenericType it) {
+            EList<JvmTypeReference> _superTypes = it.getSuperTypes();
+            JvmTypeReference _typeRef = ReportDSLJvmModelInferrer.this._typeReferenceBuilder.typeRef(BaseReport.class);
+            _superTypes.add(_typeRef);
+            ReportDSLJvmModelInferrer.this._jvmTypesBuilder.setDocumentation(it, GeneratorConstants.GENERATED_CLASSES_DOCUMENTATION);
+            ReportDSLJvmModelInferrer.this.toConstructor(it, report);
+            ReportDSLJvmModelInferrer.this.toOperations(it, pckg, report);
+          }
+        };
+        acceptor.<JvmGenericType>accept(cls, _function);
+        ReportDSLJvmModelInferrer.this.addReportBean(cls, pckg, report, acceptor);
+      }
+    };
+    _reports.forEach(_function);
+  }
+  
+  public void addReportBean(final JvmDeclaredType type, final ReportPackage pckg, final Report report, final IJvmDeclaredTypeAcceptor acceptor) {
+    JvmGenericType beanCls = this._jvmTypesBuilder.toClass(report, "Bean");
+    EList<JvmMember> _members = type.getMembers();
+    this._jvmTypesBuilder.<JvmGenericType>operator_add(_members, beanCls);
+    final Procedure1<JvmGenericType> _function = new Procedure1<JvmGenericType>() {
+      public void apply(final JvmGenericType it) {
+        EList<JvmTypeReference> _superTypes = it.getSuperTypes();
+        JvmTypeReference _typeRef = ReportDSLJvmModelInferrer.this._typeReferenceBuilder.typeRef(AbstractReportBean.class);
+        _superTypes.add(_typeRef);
+        ReportDSLJvmModelInferrer.this._jvmTypesBuilder.setDocumentation(it, GeneratorConstants.GENERATED_CLASSES_DOCUMENTATION);
+        it.setStatic(true);
+        EList<JvmMember> _members = it.getMembers();
+        JvmTypeReference _typeRef_1 = ReportDSLJvmModelInferrer.this._typeReferenceBuilder.typeRef(BaseReport.class);
+        final Procedure1<JvmOperation> _function = new Procedure1<JvmOperation>() {
+          public void apply(final JvmOperation it) {
+            it.setVisibility(JvmVisibility.PROTECTED);
+            EList<JvmAnnotationReference> _annotations = it.getAnnotations();
+            JvmAnnotationReference _annotationRef = ReportDSLJvmModelInferrer.this._annotationTypesBuilder.annotationRef(Override.class);
+            ReportDSLJvmModelInferrer.this._jvmTypesBuilder.<JvmAnnotationReference>operator_add(_annotations, _annotationRef);
+            final Procedure1<ITreeAppendable> _function = new Procedure1<ITreeAppendable>() {
+              public void apply(final ITreeAppendable it) {
+                StringConcatenation _builder = new StringConcatenation();
+                _builder.append("return new ");
+                QualifiedName _fullyQualifiedName = ReportDSLJvmModelInferrer.this._iQualifiedNameProvider.getFullyQualifiedName(report);
+                _builder.append(_fullyQualifiedName, "");
+                _builder.append("Report(null,null,null);");
+                it.append(_builder);
+              }
+            };
+            ReportDSLJvmModelInferrer.this._jvmTypesBuilder.setBody(it, _function);
+          }
+        };
+        JvmOperation _method = ReportDSLJvmModelInferrer.this._jvmTypesBuilder.toMethod(report, "createReport", _typeRef_1, _function);
+        ReportDSLJvmModelInferrer.this._jvmTypesBuilder.<JvmOperation>operator_add(_members, _method);
+      }
+    };
+    acceptor.<JvmGenericType>accept(beanCls, _function);
+  }
+  
+  public void toConstructor(final JvmDeclaredType type, final Report report) {
+    EList<JvmMember> _members = type.getMembers();
+    final Procedure1<JvmConstructor> _function = new Procedure1<JvmConstructor>() {
+      public void apply(final JvmConstructor it) {
+        String _documentation = ReportDSLJvmModelInferrer.this._jvmTypesBuilder.getDocumentation(report);
+        ReportDSLJvmModelInferrer.this._jvmTypesBuilder.setDocumentation(it, _documentation);
+        EList<JvmAnnotationReference> _annotations = it.getAnnotations();
+        JvmAnnotationReference _annotationRef = ReportDSLJvmModelInferrer.this._annotationTypesBuilder.annotationRef(Inject.class);
+        ReportDSLJvmModelInferrer.this._jvmTypesBuilder.<JvmAnnotationReference>operator_add(_annotations, _annotationRef);
+        EList<JvmFormalParameter> _parameters = it.getParameters();
+        JvmTypeReference _typeRef = ReportDSLJvmModelInferrer.this._typeReferenceBuilder.typeRef(VerticalLayout.class);
+        JvmFormalParameter _parameter = ReportDSLJvmModelInferrer.this._jvmTypesBuilder.toParameter(report, "parent", _typeRef);
+        ReportDSLJvmModelInferrer.this._jvmTypesBuilder.<JvmFormalParameter>operator_add(_parameters, _parameter);
+        EList<JvmFormalParameter> _parameters_1 = it.getParameters();
+        JvmTypeReference _typeRef_1 = ReportDSLJvmModelInferrer.this._typeReferenceBuilder.typeRef(IEclipseContext.class);
+        JvmFormalParameter _parameter_1 = ReportDSLJvmModelInferrer.this._jvmTypesBuilder.toParameter(report, "context", _typeRef_1);
+        ReportDSLJvmModelInferrer.this._jvmTypesBuilder.<JvmFormalParameter>operator_add(_parameters_1, _parameter_1);
+        EList<JvmFormalParameter> _parameters_2 = it.getParameters();
+        JvmTypeReference _typeRef_2 = ReportDSLJvmModelInferrer.this._typeReferenceBuilder.typeRef(MApplication.class);
+        JvmFormalParameter _parameter_2 = ReportDSLJvmModelInferrer.this._jvmTypesBuilder.toParameter(report, "app", _typeRef_2);
+        ReportDSLJvmModelInferrer.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);
+          }
+        };
+        ReportDSLJvmModelInferrer.this._jvmTypesBuilder.setBody(it, _function);
+      }
+    };
+    JvmConstructor _constructor = this._jvmTypesBuilder.toConstructor(report, _function);
+    this._jvmTypesBuilder.<JvmConstructor>operator_add(_members, _constructor);
+  }
+  
+  public void toOperations(final JvmDeclaredType type, final ReportPackage pckg, final Report report) {
+    EList<JvmMember> _members = type.getMembers();
+    JvmTypeReference _typeRef = this._typeReferenceBuilder.typeRef(IEventBroker.class);
+    final Procedure1<JvmField> _function = new Procedure1<JvmField>() {
+      public void apply(final JvmField it) {
+        EList<JvmAnnotationReference> _annotations = it.getAnnotations();
+        JvmAnnotationReference _annotationRef = ReportDSLJvmModelInferrer.this._annotationTypesBuilder.annotationRef(Inject.class);
+        ReportDSLJvmModelInferrer.this._jvmTypesBuilder.<JvmAnnotationReference>operator_add(_annotations, _annotationRef);
+      }
+    };
+    JvmField _field = this._jvmTypesBuilder.toField(report, "eventBroker", _typeRef, _function);
+    this._jvmTypesBuilder.<JvmField>operator_add(_members, _field);
+    EList<JvmMember> _members_1 = type.getMembers();
+    JvmTypeReference _typeRef_1 = this._typeReferenceBuilder.typeRef(IPresentationEngine.class);
+    final Procedure1<JvmField> _function_1 = new Procedure1<JvmField>() {
+      public void apply(final JvmField it) {
+        EList<JvmAnnotationReference> _annotations = it.getAnnotations();
+        JvmAnnotationReference _annotationRef = ReportDSLJvmModelInferrer.this._annotationTypesBuilder.annotationRef(Inject.class);
+        ReportDSLJvmModelInferrer.this._jvmTypesBuilder.<JvmAnnotationReference>operator_add(_annotations, _annotationRef);
+      }
+    };
+    JvmField _field_1 = this._jvmTypesBuilder.toField(report, "renderingEngine", _typeRef_1, _function_1);
+    this._jvmTypesBuilder.<JvmField>operator_add(_members_1, _field_1);
+    EList<JvmMember> _members_2 = type.getMembers();
+    JvmTypeReference _typeRef_2 = this._typeReferenceBuilder.typeRef(IThemeResourceService.class);
+    final Procedure1<JvmField> _function_2 = new Procedure1<JvmField>() {
+      public void apply(final JvmField it) {
+        EList<JvmAnnotationReference> _annotations = it.getAnnotations();
+        JvmAnnotationReference _annotationRef = ReportDSLJvmModelInferrer.this._annotationTypesBuilder.annotationRef(Inject.class);
+        ReportDSLJvmModelInferrer.this._jvmTypesBuilder.<JvmAnnotationReference>operator_add(_annotations, _annotationRef);
+      }
+    };
+    JvmField _field_2 = this._jvmTypesBuilder.toField(report, "themeResourceService", _typeRef_2, _function_2);
+    this._jvmTypesBuilder.<JvmField>operator_add(_members_2, _field_2);
+    ActionToolbar _toolbar = report.getToolbar();
+    boolean _notEquals = (!Objects.equal(_toolbar, null));
+    if (_notEquals) {
+      ActionToolbar _toolbar_1 = report.getToolbar();
+      EObject _eContainer = _toolbar_1.eContainer();
+      QualifiedName _fullyQualifiedName = this._iQualifiedNameProvider.getFullyQualifiedName(((ActionPackage) _eContainer));
+      String packageName = _fullyQualifiedName.toString();
+      EList<JvmMember> _members_3 = type.getMembers();
+      StringConcatenation _builder = new StringConcatenation();
+      _builder.append(packageName, "");
+      _builder.append(".");
+      ActionToolbar _toolbar_2 = report.getToolbar();
+      String _name = _toolbar_2.getName();
+      String _string = _name.toString();
+      String _firstUpper = StringExtensions.toFirstUpper(_string);
+      _builder.append(_firstUpper, "");
+      _builder.append("Action");
+      JvmTypeReference _typeRef_3 = this._typeReferenceBuilder.typeRef(_builder.toString());
+      JvmField _field_3 = this._jvmTypesBuilder.toField(report, "toolbarClass", _typeRef_3);
+      this._jvmTypesBuilder.<JvmField>operator_add(_members_3, _field_3);
+    }
+    EList<JvmMember> _members_4 = type.getMembers();
+    JvmTypeReference _typeRef_4 = this._typeReferenceBuilder.typeRef(Void.TYPE);
+    final Procedure1<JvmOperation> _function_3 = new Procedure1<JvmOperation>() {
+      public void apply(final JvmOperation it) {
+        EList<JvmFormalParameter> _parameters = it.getParameters();
+        JvmTypeReference _typeRef = ReportDSLJvmModelInferrer.this._typeReferenceBuilder.typeRef(VerticalLayout.class);
+        JvmFormalParameter _parameter = ReportDSLJvmModelInferrer.this._jvmTypesBuilder.toParameter(report, "parent", _typeRef);
+        ReportDSLJvmModelInferrer.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 _createView = ReportDSLJvmModelInferrer.this.createView(report);
+            _builder.append(_createView, "");
+            it.append(_builder);
+          }
+        };
+        ReportDSLJvmModelInferrer.this._jvmTypesBuilder.setBody(it, _function);
+      }
+    };
+    JvmOperation _method = this._jvmTypesBuilder.toMethod(report, "createView", _typeRef_4, _function_3);
+    this._jvmTypesBuilder.<JvmOperation>operator_add(_members_4, _method);
+    EList<JvmMember> _members_5 = type.getMembers();
+    JvmTypeReference _typeRef_5 = this._typeReferenceBuilder.typeRef(Void.TYPE);
+    final Procedure1<JvmOperation> _function_4 = new Procedure1<JvmOperation>() {
+      public void apply(final JvmOperation it) {
+        it.setVisibility(JvmVisibility.PROTECTED);
+        EList<JvmAnnotationReference> _annotations = it.getAnnotations();
+        JvmAnnotationReference _annotationRef = ReportDSLJvmModelInferrer.this._annotationTypesBuilder.annotationRef(PostConstruct.class);
+        ReportDSLJvmModelInferrer.this._jvmTypesBuilder.<JvmAnnotationReference>operator_add(_annotations, _annotationRef);
+        final Procedure1<ITreeAppendable> _function = new Procedure1<ITreeAppendable>() {
+          public void apply(final ITreeAppendable it) {
+            Set<LEntity> entites = ReportDSLJvmModelInferrer.this.findRequestedEntities(report);
+            for (final LEntity entity : entites) {
+              StringConcatenation _builder = new StringConcatenation();
+              _builder.append("eventBroker.subscribe(EventBrokerMsg.REFRESH_VIEW+\"");
+              EObject _eContainer = entity.eContainer();
+              String _name = ((LTypedPackage) _eContainer).getName();
+              String _name_1 = entity.getName();
+              String _entityIdModifiedCategory = EventBrokerMsg.getEntityIdModifiedCategory(_name, _name_1);
+              _builder.append(_entityIdModifiedCategory, "");
+              _builder.append("\", fModifiedEntityIdsListener);");
+              _builder.newLineIfNotEmpty();
+              it.append(_builder);
+            }
+          }
+        };
+        ReportDSLJvmModelInferrer.this._jvmTypesBuilder.setBody(it, _function);
+      }
+    };
+    JvmOperation _method_1 = this._jvmTypesBuilder.toMethod(report, "subscribe", _typeRef_5, _function_4);
+    this._jvmTypesBuilder.<JvmOperation>operator_add(_members_5, _method_1);
+    EList<JvmMember> _members_6 = type.getMembers();
+    JvmTypeReference _typeRef_6 = 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 = ReportDSLJvmModelInferrer.this._annotationTypesBuilder.annotationRef(PreDestroy.class);
+        ReportDSLJvmModelInferrer.this._jvmTypesBuilder.<JvmAnnotationReference>operator_add(_annotations, _annotationRef);
+        final Procedure1<ITreeAppendable> _function = new Procedure1<ITreeAppendable>() {
+          public void apply(final ITreeAppendable it) {
+            StringConcatenation _builder = new StringConcatenation();
+            _builder.append("eventBroker.unsubscribe(fModifiedEntityIdsListener);");
+            _builder.newLine();
+            it.append(_builder);
+          }
+        };
+        ReportDSLJvmModelInferrer.this._jvmTypesBuilder.setBody(it, _function);
+      }
+    };
+    JvmOperation _method_2 = this._jvmTypesBuilder.toMethod(report, "unsubscribe", _typeRef_6, _function_5);
+    this._jvmTypesBuilder.<JvmOperation>operator_add(_members_6, _method_2);
+    EList<JvmMember> _members_7 = type.getMembers();
+    JvmTypeReference _typeRef_7 = this._typeReferenceBuilder.typeRef(IReportProvider.Rendering.class);
+    final Procedure1<JvmOperation> _function_6 = new Procedure1<JvmOperation>() {
+      public void apply(final JvmOperation it) {
+        it.setVisibility(JvmVisibility.PROTECTED);
+        EList<JvmAnnotationReference> _annotations = it.getAnnotations();
+        JvmAnnotationReference _annotationRef = ReportDSLJvmModelInferrer.this._annotationTypesBuilder.annotationRef(Override.class);
+        ReportDSLJvmModelInferrer.this._jvmTypesBuilder.<JvmAnnotationReference>operator_add(_annotations, _annotationRef);
+        final Procedure1<ITreeAppendable> _function = new Procedure1<ITreeAppendable>() {
+          public void apply(final ITreeAppendable it) {
+            RenderingEnum _rendering = report.getRendering();
+            if (_rendering != null) {
+              switch (_rendering) {
+                case HTML:
+                  StringConcatenation _builder = new StringConcatenation();
+                  _builder.append("return Rendering.HTML_STREAM;");
+                  it.append(_builder);
+                  break;
+                case PDF:
+                  StringConcatenation _builder_1 = new StringConcatenation();
+                  _builder_1.append("return Rendering.PDF_STREAM;");
+                  it.append(_builder_1);
+                  break;
+                default:
+                  break;
+              }
+            }
+          }
+        };
+        ReportDSLJvmModelInferrer.this._jvmTypesBuilder.setBody(it, _function);
+      }
+    };
+    JvmOperation _method_3 = this._jvmTypesBuilder.toMethod(report, "getRenderingAs", _typeRef_7, _function_6);
+    this._jvmTypesBuilder.<JvmOperation>operator_add(_members_7, _method_3);
+    EList<JvmMember> _members_8 = type.getMembers();
+    JvmTypeReference _typeRef_8 = this._typeReferenceBuilder.typeRef(String.class);
+    final Procedure1<JvmOperation> _function_7 = new Procedure1<JvmOperation>() {
+      public void apply(final JvmOperation it) {
+        it.setVisibility(JvmVisibility.PROTECTED);
+        EList<JvmAnnotationReference> _annotations = it.getAnnotations();
+        JvmAnnotationReference _annotationRef = ReportDSLJvmModelInferrer.this._annotationTypesBuilder.annotationRef(Override.class);
+        ReportDSLJvmModelInferrer.this._jvmTypesBuilder.<JvmAnnotationReference>operator_add(_annotations, _annotationRef);
+        final Procedure1<ITreeAppendable> _function = new Procedure1<ITreeAppendable>() {
+          public void apply(final ITreeAppendable it) {
+            StringConcatenation _builder = new StringConcatenation();
+            _builder.append("return \"");
+            String _name = report.getName();
+            _builder.append(_name, "");
+            _builder.append("\";");
+            it.append(_builder);
+          }
+        };
+        ReportDSLJvmModelInferrer.this._jvmTypesBuilder.setBody(it, _function);
+      }
+    };
+    JvmOperation _method_4 = this._jvmTypesBuilder.toMethod(report, "getReportName", _typeRef_8, _function_7);
+    this._jvmTypesBuilder.<JvmOperation>operator_add(_members_8, _method_4);
+    boolean _or = false;
+    String _externalCssURIBundle = pckg.getExternalCssURIBundle();
+    boolean _notEquals_1 = (!Objects.equal(_externalCssURIBundle, null));
+    if (_notEquals_1) {
+      _or = true;
+    } else {
+      String _externalCssURIBundle_1 = report.getExternalCssURIBundle();
+      boolean _notEquals_2 = (!Objects.equal(_externalCssURIBundle_1, null));
+      _or = _notEquals_2;
+    }
+    if (_or) {
+      EList<JvmMember> _members_9 = type.getMembers();
+      JvmTypeReference _typeRef_9 = this._typeReferenceBuilder.typeRef(String.class);
+      final Procedure1<JvmOperation> _function_8 = new Procedure1<JvmOperation>() {
+        public void apply(final JvmOperation it) {
+          it.setVisibility(JvmVisibility.PROTECTED);
+          EList<JvmAnnotationReference> _annotations = it.getAnnotations();
+          JvmAnnotationReference _annotationRef = ReportDSLJvmModelInferrer.this._annotationTypesBuilder.annotationRef(Override.class);
+          ReportDSLJvmModelInferrer.this._jvmTypesBuilder.<JvmAnnotationReference>operator_add(_annotations, _annotationRef);
+          final Procedure1<ITreeAppendable> _function = new Procedure1<ITreeAppendable>() {
+            public void apply(final ITreeAppendable it) {
+              String _externalCssURIBundle = report.getExternalCssURIBundle();
+              boolean _notEquals = (!Objects.equal(_externalCssURIBundle, null));
+              if (_notEquals) {
+                StringConcatenation _builder = new StringConcatenation();
+                _builder.append("return \"");
+                String _externalCssURIBundle_1 = report.getExternalCssURIBundle();
+                _builder.append(_externalCssURIBundle_1, "");
+                _builder.append("\";");
+                it.append(_builder);
+              } else {
+                StringConcatenation _builder_1 = new StringConcatenation();
+                _builder_1.append("return \"");
+                String _externalCssURIBundle_2 = pckg.getExternalCssURIBundle();
+                _builder_1.append(_externalCssURIBundle_2, "");
+                _builder_1.append("\";");
+                it.append(_builder_1);
+              }
+            }
+          };
+          ReportDSLJvmModelInferrer.this._jvmTypesBuilder.setBody(it, _function);
+        }
+      };
+      JvmOperation _method_5 = this._jvmTypesBuilder.toMethod(report, "getExternalCssURIBundle", _typeRef_9, _function_8);
+      this._jvmTypesBuilder.<JvmOperation>operator_add(_members_9, _method_5);
+    }
+    boolean _or_1 = false;
+    String _externalCssURI = pckg.getExternalCssURI();
+    boolean _notEquals_3 = (!Objects.equal(_externalCssURI, null));
+    if (_notEquals_3) {
+      _or_1 = true;
+    } else {
+      String _externalCssURI_1 = report.getExternalCssURI();
+      boolean _notEquals_4 = (!Objects.equal(_externalCssURI_1, null));
+      _or_1 = _notEquals_4;
+    }
+    if (_or_1) {
+      EList<JvmMember> _members_10 = type.getMembers();
+      JvmTypeReference _typeRef_10 = this._typeReferenceBuilder.typeRef(String.class);
+      final Procedure1<JvmOperation> _function_9 = new Procedure1<JvmOperation>() {
+        public void apply(final JvmOperation it) {
+          it.setVisibility(JvmVisibility.PROTECTED);
+          EList<JvmAnnotationReference> _annotations = it.getAnnotations();
+          JvmAnnotationReference _annotationRef = ReportDSLJvmModelInferrer.this._annotationTypesBuilder.annotationRef(Override.class);
+          ReportDSLJvmModelInferrer.this._jvmTypesBuilder.<JvmAnnotationReference>operator_add(_annotations, _annotationRef);
+          final Procedure1<ITreeAppendable> _function = new Procedure1<ITreeAppendable>() {
+            public void apply(final ITreeAppendable it) {
+              String _externalCssURI = report.getExternalCssURI();
+              boolean _notEquals = (!Objects.equal(_externalCssURI, null));
+              if (_notEquals) {
+                StringConcatenation _builder = new StringConcatenation();
+                _builder.append("return \"");
+                String _externalCssURI_1 = report.getExternalCssURI();
+                _builder.append(_externalCssURI_1, "");
+                _builder.append("\";");
+                it.append(_builder);
+              } else {
+                StringConcatenation _builder_1 = new StringConcatenation();
+                _builder_1.append("return \"");
+                String _externalCssURI_2 = pckg.getExternalCssURI();
+                _builder_1.append(_externalCssURI_2, "");
+                _builder_1.append("\";");
+                it.append(_builder_1);
+              }
+            }
+          };
+          ReportDSLJvmModelInferrer.this._jvmTypesBuilder.setBody(it, _function);
+        }
+      };
+      JvmOperation _method_6 = this._jvmTypesBuilder.toMethod(report, "getExternalCssURI", _typeRef_10, _function_9);
+      this._jvmTypesBuilder.<JvmOperation>operator_add(_members_10, _method_6);
+    }
+    EList<JvmMember> _members_11 = type.getMembers();
+    JvmTypeReference _typeRef_11 = this._typeReferenceBuilder.typeRef(IDataMart.class);
+    final Procedure1<JvmOperation> _function_10 = new Procedure1<JvmOperation>() {
+      public void apply(final JvmOperation it) {
+        DatamartDefinition _datamartRef = report.getDatamartRef();
+        String _documentation = ReportDSLJvmModelInferrer.this._jvmTypesBuilder.getDocumentation(_datamartRef);
+        ReportDSLJvmModelInferrer.this._jvmTypesBuilder.setDocumentation(it, _documentation);
+        it.setVisibility(JvmVisibility.PROTECTED);
+        EList<JvmAnnotationReference> _annotations = it.getAnnotations();
+        JvmAnnotationReference _annotationRef = ReportDSLJvmModelInferrer.this._annotationTypesBuilder.annotationRef(Override.class);
+        ReportDSLJvmModelInferrer.this._jvmTypesBuilder.<JvmAnnotationReference>operator_add(_annotations, _annotationRef);
+        final Procedure1<ITreeAppendable> _function = new Procedure1<ITreeAppendable>() {
+          public void apply(final ITreeAppendable it) {
+            StringConcatenation _builder = new StringConcatenation();
+            _builder.append("return new ");
+            DatamartDefinition _datamartRef = report.getDatamartRef();
+            QualifiedName _fullyQualifiedName = ReportDSLJvmModelInferrer.this._iQualifiedNameProvider.getFullyQualifiedName(_datamartRef);
+            _builder.append(_fullyQualifiedName, "");
+            _builder.append("Datamart();");
+            it.append(_builder);
+          }
+        };
+        ReportDSLJvmModelInferrer.this._jvmTypesBuilder.setBody(it, _function);
+      }
+    };
+    JvmOperation _method_7 = this._jvmTypesBuilder.toMethod(report, "getDatamartInstance", _typeRef_11, _function_10);
+    this._jvmTypesBuilder.<JvmOperation>operator_add(_members_11, _method_7);
+    ReportDesign _design = report.getDesign();
+    if ((_design instanceof ReportDesignFile)) {
+      EList<JvmMember> _members_12 = type.getMembers();
+      JvmTypeReference _typeRef_12 = this._typeReferenceBuilder.typeRef(String.class);
+      final Procedure1<JvmOperation> _function_11 = new Procedure1<JvmOperation>() {
+        public void apply(final JvmOperation it) {
+          ReportDesign _design = report.getDesign();
+          String _documentation = ReportDSLJvmModelInferrer.this._jvmTypesBuilder.getDocumentation(_design);
+          ReportDSLJvmModelInferrer.this._jvmTypesBuilder.setDocumentation(it, _documentation);
+          it.setVisibility(JvmVisibility.PROTECTED);
+          EList<JvmAnnotationReference> _annotations = it.getAnnotations();
+          JvmAnnotationReference _annotationRef = ReportDSLJvmModelInferrer.this._annotationTypesBuilder.annotationRef(Override.class);
+          ReportDSLJvmModelInferrer.this._jvmTypesBuilder.<JvmAnnotationReference>operator_add(_annotations, _annotationRef);
+          final Procedure1<ITreeAppendable> _function = new Procedure1<ITreeAppendable>() {
+            public void apply(final ITreeAppendable it) {
+              StringConcatenation _builder = new StringConcatenation();
+              _builder.append("return \"");
+              ReportDesign _design = report.getDesign();
+              String _name = ((ReportDesignFile) _design).getName();
+              _builder.append(_name, "");
+              _builder.append("\";");
+              it.append(_builder);
+            }
+          };
+          ReportDSLJvmModelInferrer.this._jvmTypesBuilder.setBody(it, _function);
+        }
+      };
+      JvmOperation _method_8 = this._jvmTypesBuilder.toMethod(report, "getReportDesignFilename", _typeRef_12, _function_11);
+      this._jvmTypesBuilder.<JvmOperation>operator_add(_members_12, _method_8);
+      EList<JvmMember> _members_13 = type.getMembers();
+      JvmTypeReference _typeRef_13 = this._typeReferenceBuilder.typeRef(void.class);
+      final Procedure1<JvmOperation> _function_12 = new Procedure1<JvmOperation>() {
+        public void apply(final JvmOperation it) {
+          it.setVisibility(JvmVisibility.PROTECTED);
+          EList<JvmAnnotationReference> _annotations = it.getAnnotations();
+          JvmAnnotationReference _annotationRef = ReportDSLJvmModelInferrer.this._annotationTypesBuilder.annotationRef(Override.class);
+          ReportDSLJvmModelInferrer.this._jvmTypesBuilder.<JvmAnnotationReference>operator_add(_annotations, _annotationRef);
+          final Procedure1<ITreeAppendable> _function = new Procedure1<ITreeAppendable>() {
+            public void apply(final ITreeAppendable it) {
+            }
+          };
+          ReportDSLJvmModelInferrer.this._jvmTypesBuilder.setBody(it, _function);
+        }
+      };
+      JvmOperation _method_9 = this._jvmTypesBuilder.toMethod(report, "buildReport", _typeRef_13, _function_12);
+      this._jvmTypesBuilder.<JvmOperation>operator_add(_members_13, _method_9);
+    } else {
+      ReportDesign _design_1 = report.getDesign();
+      if ((_design_1 instanceof ReportDesignTemplate)) {
+        EList<JvmMember> _members_14 = type.getMembers();
+        JvmTypeReference _typeRef_14 = this._typeReferenceBuilder.typeRef(String.class);
+        final Procedure1<JvmOperation> _function_13 = new Procedure1<JvmOperation>() {
+          public void apply(final JvmOperation it) {
+            it.setVisibility(JvmVisibility.PROTECTED);
+            EList<JvmAnnotationReference> _annotations = it.getAnnotations();
+            JvmAnnotationReference _annotationRef = ReportDSLJvmModelInferrer.this._annotationTypesBuilder.annotationRef(Override.class);
+            ReportDSLJvmModelInferrer.this._jvmTypesBuilder.<JvmAnnotationReference>operator_add(_annotations, _annotationRef);
+            final Procedure1<ITreeAppendable> _function = new Procedure1<ITreeAppendable>() {
+              public void apply(final ITreeAppendable it) {
+                StringConcatenation _builder = new StringConcatenation();
+                _builder.append("return null;");
+                it.append(_builder);
+              }
+            };
+            ReportDSLJvmModelInferrer.this._jvmTypesBuilder.setBody(it, _function);
+          }
+        };
+        JvmOperation _method_10 = this._jvmTypesBuilder.toMethod(report, "getReportDesignFilename", _typeRef_14, _function_13);
+        this._jvmTypesBuilder.<JvmOperation>operator_add(_members_14, _method_10);
+        EList<JvmMember> _members_15 = type.getMembers();
+        JvmTypeReference _typeRef_15 = this._typeReferenceBuilder.typeRef(void.class);
+        final Procedure1<JvmOperation> _function_14 = new Procedure1<JvmOperation>() {
+          public void apply(final JvmOperation it) {
+            ReportDesign _design = report.getDesign();
+            String _documentation = ReportDSLJvmModelInferrer.this._jvmTypesBuilder.getDocumentation(_design);
+            ReportDSLJvmModelInferrer.this._jvmTypesBuilder.setDocumentation(it, _documentation);
+            it.setVisibility(JvmVisibility.PROTECTED);
+            EList<JvmAnnotationReference> _annotations = it.getAnnotations();
+            JvmAnnotationReference _annotationRef = ReportDSLJvmModelInferrer.this._annotationTypesBuilder.annotationRef(Override.class);
+            ReportDSLJvmModelInferrer.this._jvmTypesBuilder.<JvmAnnotationReference>operator_add(_annotations, _annotationRef);
+            final Procedure1<ITreeAppendable> _function = new Procedure1<ITreeAppendable>() {
+              public void apply(final ITreeAppendable it) {
+              }
+            };
+            ReportDSLJvmModelInferrer.this._jvmTypesBuilder.setBody(it, _function);
+          }
+        };
+        JvmOperation _method_11 = this._jvmTypesBuilder.toMethod(report, "buildReport", _typeRef_15, _function_14);
+        this._jvmTypesBuilder.<JvmOperation>operator_add(_members_15, _method_11);
+      }
+    }
+    EList<JvmMember> _members_16 = type.getMembers();
+    JvmTypeReference _typeRef_16 = this._typeReferenceBuilder.typeRef(Void.TYPE);
+    final Procedure1<JvmOperation> _function_15 = new Procedure1<JvmOperation>() {
+      public void apply(final JvmOperation it) {
+        EList<JvmFormalParameter> _parameters = it.getParameters();
+        JvmTypeReference _typeRef = ReportDSLJvmModelInferrer.this._typeReferenceBuilder.typeRef(Container.Filter.class);
+        JvmFormalParameter _parameter = ReportDSLJvmModelInferrer.this._jvmTypesBuilder.toParameter(report, "filter", _typeRef);
+        ReportDSLJvmModelInferrer.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("// !!! no datamart, entity and DTO found for the report --> nothing can be done in here !!!");
+            _builder.newLine();
+            it.append(_builder);
+          }
+        };
+        ReportDSLJvmModelInferrer.this._jvmTypesBuilder.setBody(it, _function);
+      }
+    };
+    JvmOperation _method_12 = this._jvmTypesBuilder.toMethod(report, "applyBeanFilter", _typeRef_16, _function_15);
+    this._jvmTypesBuilder.<JvmOperation>operator_add(_members_16, _method_12);
+    EList<JvmMember> _members_17 = type.getMembers();
+    JvmTypeReference _typeRef_17 = this._typeReferenceBuilder.typeRef(Void.TYPE);
+    final Procedure1<JvmOperation> _function_16 = new Procedure1<JvmOperation>() {
+      public void apply(final JvmOperation it) {
+        EList<JvmFormalParameter> _parameters = it.getParameters();
+        JvmTypeReference _typeRef = ReportDSLJvmModelInferrer.this._typeReferenceBuilder.typeRef(Object.class);
+        JvmFormalParameter _parameter = ReportDSLJvmModelInferrer.this._jvmTypesBuilder.toParameter(report, "dto", _typeRef);
+        ReportDSLJvmModelInferrer.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("// !!! no datamart, entity and DTO found for the report --> nothing can be done in here !!!");
+            _builder.newLine();
+            it.append(_builder);
+          }
+        };
+        ReportDSLJvmModelInferrer.this._jvmTypesBuilder.setBody(it, _function);
+      }
+    };
+    JvmOperation _method_13 = this._jvmTypesBuilder.toMethod(report, "applyBeanDto", _typeRef_17, _function_16);
+    this._jvmTypesBuilder.<JvmOperation>operator_add(_members_17, _method_13);
+  }
+  
+  /**
+   * get a set of all entities used in the given report
+   */
+  public Set<LEntity> findRequestedEntities(final Report report) {
+    HashSet<LEntity> entities = new HashSet<LEntity>();
+    DatamartDefinition _datamartRef = report.getDatamartRef();
+    Set<LEntity> _findAllEntities = this._datamartDSLJvmModelInferrer.findAllEntities(_datamartRef);
+    entities.addAll(_findAllEntities);
+    return entities;
+  }
+  
+  public CharSequence createView(final Report report) {
+    StringConcatenation _builder = new StringConcatenation();
+    _builder.append("fWorkset\t= new ReportGeneratorWorkSet();");
+    _builder.newLine();
+    {
+      ActionToolbar _toolbar = report.getToolbar();
+      boolean _notEquals = (!Objects.equal(_toolbar, null));
+      if (_notEquals) {
+        _builder.append("toolbarClass = new ");
+        ActionToolbar _toolbar_1 = report.getToolbar();
+        String _name = _toolbar_1.getName();
+        String _string = _name.toString();
+        String _firstUpper = StringExtensions.toFirstUpper(_string);
+        _builder.append(_firstUpper, "");
+        _builder.append("Action(UUID.randomUUID().toString());");
+        _builder.newLineIfNotEmpty();
+        _builder.append("toolbarClass.createToolbar(getContext(), renderingEngine, themeResourceService);");
+        _builder.newLine();
+        _builder.append("addPDFDownload(toolbarClass);");
+        _builder.newLine();
+      }
+    }
+    _builder.append("createFilter();");
+    _builder.newLine();
+    return _builder;
+  }
+  
+  public void infer(final EObject pckg, final IJvmDeclaredTypeAcceptor acceptor, final boolean isPreIndexingPhase) {
+    if (pckg instanceof ReportPackage) {
+      _infer((ReportPackage)pckg, acceptor, isPreIndexingPhase);
+      return;
+    } else if (pckg != null) {
+      _infer(pckg, acceptor, isPreIndexingPhase);
+      return;
+    } else {
+      throw new IllegalArgumentException("Unhandled parameter types: " +
+        Arrays.<Object>asList(pckg, acceptor, isPreIndexingPhase).toString());
+    }
+  }
+}
diff --git a/org.eclipse.osbp.xtext.reportdsl/xtend-gen/org/eclipse/osbp/xtext/reportdsl/jvmmodel/ReportModelGenerator.java b/org.eclipse.osbp.xtext.reportdsl/xtend-gen/org/eclipse/osbp/xtext/reportdsl/jvmmodel/ReportModelGenerator.java
new file mode 100644
index 0000000..092fc09
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl/xtend-gen/org/eclipse/osbp/xtext/reportdsl/jvmmodel/ReportModelGenerator.java
@@ -0,0 +1,857 @@
+/**
+ * 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.reportdsl.jvmmodel;
+
+import com.google.common.base.Objects;
+import com.google.inject.Inject;
+import com.ibm.icu.util.ULocale;
+import com.vaadin.data.Container;
+import com.vaadin.server.Sizeable;
+import com.vaadin.server.StreamResource;
+import com.vaadin.ui.AbstractComponent;
+import com.vaadin.ui.BrowserFrame;
+import com.vaadin.ui.Button;
+import com.vaadin.ui.HorizontalLayout;
+import java.io.ByteArrayOutputStream;
+import java.io.PrintStream;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+import java.util.Locale;
+import java.util.UUID;
+import org.eclipse.birt.report.model.api.DimensionHandle;
+import org.eclipse.birt.report.model.api.ElementFactory;
+import org.eclipse.birt.report.model.api.IDesignEngine;
+import org.eclipse.birt.report.model.api.OdaDataSetHandle;
+import org.eclipse.birt.report.model.api.OdaDataSourceHandle;
+import org.eclipse.birt.report.model.api.ReportDesignHandle;
+import org.eclipse.birt.report.model.api.SessionHandle;
+import org.eclipse.birt.report.model.api.SimpleMasterPageHandle;
+import org.eclipse.birt.report.model.api.SlotHandle;
+import org.eclipse.birt.report.model.api.StructureFactory;
+import org.eclipse.birt.report.model.api.command.ContentException;
+import org.eclipse.birt.report.model.api.command.CustomMsgException;
+import org.eclipse.birt.report.model.api.core.IModuleModel;
+import org.eclipse.birt.report.model.api.elements.structures.CachedMetaData;
+import org.eclipse.birt.report.model.api.elements.structures.ComputedColumn;
+import org.eclipse.birt.report.model.api.elements.structures.OdaResultSetColumn;
+import org.eclipse.birt.report.model.api.metadata.DimensionValue;
+import org.eclipse.birt.report.model.core.DesignElement;
+import org.eclipse.birt.report.model.core.Module;
+import org.eclipse.birt.report.model.elements.interfaces.IDataSetModel;
+import org.eclipse.birt.report.model.writer.ModuleWriter;
+import org.eclipse.e4.core.di.extensions.EventUtils;
+import org.eclipse.e4.core.services.events.IEventBroker;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.common.util.TreeIterator;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.resource.Resource;
+import org.eclipse.osbp.dsl.entity.xtext.extensions.NamingExtensions;
+import org.eclipse.osbp.dsl.semantic.common.types.LPackage;
+import org.eclipse.osbp.dsl.semantic.common.types.LScalarType;
+import org.eclipse.osbp.dsl.semantic.entity.LEntity;
+import org.eclipse.osbp.dsl.semantic.entity.LEntityAttribute;
+import org.eclipse.osbp.eventbroker.EventBrokerMsg;
+import org.eclipse.osbp.ui.api.datamart.IDataMart;
+import org.eclipse.osbp.ui.api.report.IReportProvider;
+import org.eclipse.osbp.utils.entityhelper.DataType;
+import org.eclipse.osbp.utils.vaadin.ViewLayoutManager;
+import org.eclipse.osbp.xtext.action.common.IToolbarAction;
+import org.eclipse.osbp.xtext.authorizationdsl.Role;
+import org.eclipse.osbp.xtext.basic.generator.BasicDslGeneratorUtils;
+import org.eclipse.osbp.xtext.datamartdsl.DatamartCube;
+import org.eclipse.osbp.xtext.datamartdsl.DatamartDefinition;
+import org.eclipse.osbp.xtext.datamartdsl.DatamartEntity;
+import org.eclipse.osbp.xtext.datamartdsl.DatamartNavigation;
+import org.eclipse.osbp.xtext.datamartdsl.DatamartProperty;
+import org.eclipse.osbp.xtext.datamartdsl.DatamartRole;
+import org.eclipse.osbp.xtext.datamartdsl.DatamartSource;
+import org.eclipse.osbp.xtext.datamartdsl.DatamartTask;
+import org.eclipse.osbp.xtext.datamartdsl.jvmmodel.DatamartDSLJvmModelInferrer;
+import org.eclipse.osbp.xtext.i18n.DSLOutputConfigurationProvider;
+import org.eclipse.osbp.xtext.i18n.I18NKeyGenerator;
+import org.eclipse.osbp.xtext.i18n.I18NModelGenerator;
+import org.eclipse.osbp.xtext.reportdsl.AutoText;
+import org.eclipse.osbp.xtext.reportdsl.AutoTextEnum;
+import org.eclipse.osbp.xtext.reportdsl.DatamartTable;
+import org.eclipse.osbp.xtext.reportdsl.DatamartTableDetail;
+import org.eclipse.osbp.xtext.reportdsl.DatamartTableGroup;
+import org.eclipse.osbp.xtext.reportdsl.DatamartTableProperty;
+import org.eclipse.osbp.xtext.reportdsl.Element;
+import org.eclipse.osbp.xtext.reportdsl.Grid;
+import org.eclipse.osbp.xtext.reportdsl.GridCell;
+import org.eclipse.osbp.xtext.reportdsl.GridRow;
+import org.eclipse.osbp.xtext.reportdsl.Image;
+import org.eclipse.osbp.xtext.reportdsl.ImageSizeEnum;
+import org.eclipse.osbp.xtext.reportdsl.ImageSourceEnum;
+import org.eclipse.osbp.xtext.reportdsl.Label;
+import org.eclipse.osbp.xtext.reportdsl.Media;
+import org.eclipse.osbp.xtext.reportdsl.OrientationEnum;
+import org.eclipse.osbp.xtext.reportdsl.PageDetail;
+import org.eclipse.osbp.xtext.reportdsl.PageFooter;
+import org.eclipse.osbp.xtext.reportdsl.PageHeader;
+import org.eclipse.osbp.xtext.reportdsl.PageSizeEnum;
+import org.eclipse.osbp.xtext.reportdsl.PageTemplate;
+import org.eclipse.osbp.xtext.reportdsl.Report;
+import org.eclipse.osbp.xtext.reportdsl.ReportDesign;
+import org.eclipse.osbp.xtext.reportdsl.ReportDesignTemplate;
+import org.eclipse.osbp.xtext.reportdsl.ReportModel;
+import org.eclipse.osbp.xtext.reportdsl.ReportPackage;
+import org.eclipse.osbp.xtext.reportdsl.Style;
+import org.eclipse.osbp.xtext.reportdsl.SubSubTitle;
+import org.eclipse.osbp.xtext.reportdsl.SubTitle;
+import org.eclipse.osbp.xtext.reportdsl.Text;
+import org.eclipse.osbp.xtext.reportdsl.Title;
+import org.eclipse.osbp.xtext.reportdsl.UnitEnum;
+import org.eclipse.osbp.xtext.reportdsl.common.BaseReport;
+import org.eclipse.osbp.xtext.reportdsl.common.BirtEngine;
+import org.eclipse.osbp.xtext.reportdsl.common.DataTypes;
+import org.eclipse.osbp.xtext.reportdsl.common.OdaConnProperties;
+import org.eclipse.osbp.xtext.reportdsl.common.attribute.Attribute;
+import org.eclipse.osbp.xtext.reportdsl.common.attribute.Width;
+import org.eclipse.osbp.xtext.reportdsl.common.item.BodyItem;
+import org.eclipse.osbp.xtext.reportdsl.common.item.CellItem;
+import org.eclipse.osbp.xtext.reportdsl.common.item.ContainerItem;
+import org.eclipse.osbp.xtext.reportdsl.common.item.GridItem;
+import org.eclipse.osbp.xtext.reportdsl.common.item.ImageItem;
+import org.eclipse.osbp.xtext.reportdsl.common.item.PageFooterItem;
+import org.eclipse.osbp.xtext.reportdsl.common.item.PageHeaderItem;
+import org.eclipse.osbp.xtext.reportdsl.jvmmodel.ReportGeneratorWorkSet;
+import org.eclipse.osbp.xtext.reportdsl.jvmmodel.Utilities;
+import org.eclipse.xtend2.lib.StringConcatenation;
+import org.eclipse.xtext.common.types.JvmDeclaredType;
+import org.eclipse.xtext.generator.IFileSystemAccess;
+import org.eclipse.xtext.naming.IQualifiedNameProvider;
+import org.eclipse.xtext.naming.QualifiedName;
+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.Conversions;
+import org.eclipse.xtext.xbase.lib.Exceptions;
+import org.eclipse.xtext.xbase.lib.Extension;
+import org.eclipse.xtext.xbase.lib.IteratorExtensions;
+import org.eclipse.xtext.xbase.lib.Procedures.Procedure1;
+import org.osgi.service.event.Event;
+import org.osgi.service.event.EventHandler;
+
+@SuppressWarnings("all")
+public class ReportModelGenerator extends I18NModelGenerator {
+  @Inject
+  @Extension
+  private IQualifiedNameProvider _iQualifiedNameProvider;
+  
+  @Inject
+  @Extension
+  private DatamartDSLJvmModelInferrer datamartInferrer;
+  
+  @Inject
+  @Extension
+  private NamingExtensions _namingExtensions;
+  
+  @Inject
+  @Extension
+  private BasicDslGeneratorUtils _basicDslGeneratorUtils;
+  
+  @Inject
+  @Extension
+  private DataType dtType;
+  
+  private static Object designEngine = null;
+  
+  public void doGenerate(final Resource input, final IFileSystemAccess fsa) {
+    StringConcatenation _builder = new StringConcatenation();
+    _builder.append(BaseReport.CAPTION_I18NKEY_SAVE_PDF, "");
+    _builder.append(",");
+    _builder.append(BaseReport.CAPTION_I18NKEY_PRINT_PDF, "");
+    this.addTranslatables(_builder.toString());
+    super.doGenerate(input, fsa);
+  }
+  
+  protected void _internalDoGenerate(final ReportModel orgModel, final IFileSystemAccess fsa) {
+    IDesignEngine _createDesignEngine = BirtEngine.createDesignEngine();
+    ReportModelGenerator.designEngine = _createDesignEngine;
+    EList<ReportPackage> _pckg = orgModel.getPckg();
+    for (final ReportPackage pkg : _pckg) {
+      EList<Report> _reports = pkg.getReports();
+      for (final Report report : _reports) {
+        try {
+          this.generateReportFile(pkg, report, fsa);
+        } catch (final Throwable _t) {
+          if (_t instanceof Exception) {
+            final Exception e = (Exception)_t;
+            e.printStackTrace();
+          } else {
+            throw Exceptions.sneakyThrow(_t);
+          }
+        }
+      }
+    }
+  }
+  
+  private void generateReportFile(final ReportPackage pckg, final Report report, final IFileSystemAccess fsa) {
+    ReportDesign _design = report.getDesign();
+    if ((_design instanceof ReportDesignTemplate)) {
+      this.generateReportRoleFile(pckg, report, null, fsa);
+      DatamartDefinition _datamartRef = report.getDatamartRef();
+      EList<DatamartRole> _roles = _datamartRef.getRoles();
+      for (final DatamartRole role : _roles) {
+        this.generateReportRoleFile(pckg, report, role, fsa);
+      }
+    }
+  }
+  
+  private void generateReportRoleFile(final ReportPackage pckg, final Report report, final DatamartRole role, final IFileSystemAccess fsa) {
+    ReportGeneratorWorkSet workSet = new ReportGeneratorWorkSet();
+    workSet.generator = this;
+    workSet.report = report;
+    workSet.role = role;
+    ReportDesign _design = report.getDesign();
+    ReportDesignTemplate template = ((ReportDesignTemplate) _design);
+    QualifiedName _fullyQualifiedName = this._iQualifiedNameProvider.getFullyQualifiedName(pckg);
+    String pckgName = _fullyQualifiedName.toString();
+    String pckgNamePath = pckgName.replaceAll("\\.", "/");
+    StringConcatenation _builder = new StringConcatenation();
+    String _name = report.getName();
+    _builder.append(_name, "");
+    {
+      boolean _notEquals = (!Objects.equal(role, null));
+      if (_notEquals) {
+        Role _assignedRole = role.getAssignedRole();
+        String _name_1 = _assignedRole.getName();
+        _builder.append(_name_1, "");
+      }
+    }
+    _builder.append(".rptdesign");
+    String filename = _builder.toString();
+    StringConcatenation _builder_1 = new StringConcatenation();
+    _builder_1.append(pckgNamePath, "");
+    _builder_1.append("/");
+    _builder_1.append(filename, "");
+    String fullpath = _builder_1.toString();
+    Locale _default = Locale.getDefault();
+    ULocale _forLocale = ULocale.forLocale(_default);
+    SessionHandle session = ((IDesignEngine) ReportModelGenerator.designEngine).newSessionHandle(_forLocale);
+    ReportDesignHandle _createDesign = session.createDesign();
+    workSet.design = _createDesign;
+    ElementFactory _elementFactory = workSet.design.getElementFactory();
+    workSet.factory = _elementFactory;
+    workSet.design.setIncludeResource("i18n/I18N");
+    Media _media = report.getMedia();
+    workSet.setRequestedMedia(_media);
+    DatamartDefinition _datamartRef = report.getDatamartRef();
+    PageTemplate _pageTemplate = report.getPageTemplate();
+    PageHeader _header = template.getHeader();
+    PageFooter _footer = template.getFooter();
+    this.generateMasterPage(_datamartRef, workSet, _pageTemplate, _header, _footer);
+    DatamartDefinition _datamartRef_1 = report.getDatamartRef();
+    this.addDatamartSourceAndSet(_datamartRef_1, workSet, null, null);
+    BodyItem body = new BodyItem(workSet);
+    DatamartDefinition _datamartRef_2 = report.getDatamartRef();
+    PageDetail _detail = template.getDetail();
+    EList<Element> _elements = _detail.getElements();
+    this.generateItems(_datamartRef_2, workSet, body, ((Element[])Conversions.unwrapArray(_elements, Element.class)));
+    ByteArrayOutputStream baos = new ByteArrayOutputStream();
+    try {
+      Module _module = workSet.design.getModule();
+      _module.prepareToSave();
+      Module _module_1 = workSet.design.getModule();
+      ModuleWriter _writer = _module_1.getWriter();
+      _writer.write(baos);
+      Module _module_2 = workSet.design.getModule();
+      _module_2.onSave();
+    } catch (final Throwable _t) {
+      if (_t instanceof Exception) {
+        final Exception e = (Exception)_t;
+        ByteArrayOutputStream _byteArrayOutputStream = new ByteArrayOutputStream();
+        baos = _byteArrayOutputStream;
+        PrintStream _printStream = new PrintStream(baos);
+        e.printStackTrace(_printStream);
+      } else {
+        throw Exceptions.sneakyThrow(_t);
+      }
+    }
+    String _string = baos.toString();
+    fsa.generateFile(fullpath, DSLOutputConfigurationProvider.DEFAULT_REPORT_OUTPUT, _string);
+  }
+  
+  private void generateMasterPage(final DatamartDefinition datamart, final ReportGeneratorWorkSet workSet, final PageTemplate pageTemplate, final PageHeader pageHeader, final PageFooter pageFooter) {
+    try {
+      PageHeader header = pageHeader;
+      PageFooter footer = pageFooter;
+      boolean _equals = Objects.equal(header, null);
+      if (_equals) {
+        PageHeader _header = pageTemplate.getHeader();
+        header = _header;
+      }
+      boolean _equals_1 = Objects.equal(footer, null);
+      if (_equals_1) {
+        PageFooter _footer = pageTemplate.getFooter();
+        footer = _footer;
+      }
+      String _name = pageTemplate.getName();
+      SimpleMasterPageHandle masterPage = workSet.factory.newSimpleMasterPage(_name);
+      PageSizeEnum _size = pageTemplate.getSize();
+      String _name_1 = _size.name();
+      String _lowerCase = _name_1.toLowerCase();
+      masterPage.setPageType(_lowerCase);
+      OrientationEnum _orientation = pageTemplate.getOrientation();
+      String _name_2 = _orientation.name();
+      String _lowerCase_1 = _name_2.toLowerCase();
+      masterPage.setOrientation(_lowerCase_1);
+      DimensionHandle _topMargin = masterPage.getTopMargin();
+      double _topMarginValue = pageTemplate.getTopMarginValue();
+      UnitEnum _topMarginUnit = pageTemplate.getTopMarginUnit();
+      String _name_3 = _topMarginUnit.name();
+      String _lowerCase_2 = _name_3.toLowerCase();
+      DimensionValue _dimensionValue = new DimensionValue(_topMarginValue, _lowerCase_2);
+      _topMargin.setValue(_dimensionValue);
+      DimensionHandle _leftMargin = masterPage.getLeftMargin();
+      double _leftMarginValue = pageTemplate.getLeftMarginValue();
+      UnitEnum _leftMarginUnit = pageTemplate.getLeftMarginUnit();
+      String _name_4 = _leftMarginUnit.name();
+      String _lowerCase_3 = _name_4.toLowerCase();
+      DimensionValue _dimensionValue_1 = new DimensionValue(_leftMarginValue, _lowerCase_3);
+      _leftMargin.setValue(_dimensionValue_1);
+      DimensionHandle _bottomMargin = masterPage.getBottomMargin();
+      double _bottomMarginValue = pageTemplate.getBottomMarginValue();
+      UnitEnum _bottomMarginUnit = pageTemplate.getBottomMarginUnit();
+      String _name_5 = _bottomMarginUnit.name();
+      String _lowerCase_4 = _name_5.toLowerCase();
+      DimensionValue _dimensionValue_2 = new DimensionValue(_bottomMarginValue, _lowerCase_4);
+      _bottomMargin.setValue(_dimensionValue_2);
+      DimensionHandle _rightMargin = masterPage.getRightMargin();
+      double _rightMarginValue = pageTemplate.getRightMarginValue();
+      UnitEnum _rightMarginUnit = pageTemplate.getRightMarginUnit();
+      String _name_6 = _rightMarginUnit.name();
+      String _lowerCase_5 = _name_6.toLowerCase();
+      DimensionValue _dimensionValue_3 = new DimensionValue(_rightMarginValue, _lowerCase_5);
+      _rightMargin.setValue(_dimensionValue_3);
+      boolean _notEquals = (!Objects.equal(header, null));
+      if (_notEquals) {
+        boolean _isShowOnFirst = header.isShowOnFirst();
+        masterPage.setShowHeaderOnFirst(_isShowOnFirst);
+        DimensionHandle _headerHeight = masterPage.getHeaderHeight();
+        double _heightValue = header.getHeightValue();
+        UnitEnum _heightUnit = header.getHeightUnit();
+        String _name_7 = _heightUnit.name();
+        String _lowerCase_6 = _name_7.toLowerCase();
+        DimensionValue _dimensionValue_4 = new DimensionValue(_heightValue, _lowerCase_6);
+        _headerHeight.setValue(_dimensionValue_4);
+        PageHeaderItem _pageHeaderItem = new PageHeaderItem(workSet, masterPage);
+        EList<Element> _elements = header.getElements();
+        this.generateItems(datamart, workSet, _pageHeaderItem, ((Element[])Conversions.unwrapArray(_elements, Element.class)));
+      }
+      boolean _notEquals_1 = (!Objects.equal(footer, null));
+      if (_notEquals_1) {
+        boolean _isShowOnLast = footer.isShowOnLast();
+        masterPage.setShowFooterOnLast(_isShowOnLast);
+        DimensionHandle _footerHeight = masterPage.getFooterHeight();
+        double _heightValue_1 = footer.getHeightValue();
+        UnitEnum _heightUnit_1 = footer.getHeightUnit();
+        String _name_8 = _heightUnit_1.name();
+        String _lowerCase_7 = _name_8.toLowerCase();
+        DimensionValue _dimensionValue_5 = new DimensionValue(_heightValue_1, _lowerCase_7);
+        _footerHeight.setValue(_dimensionValue_5);
+        PageFooterItem _pageFooterItem = new PageFooterItem(workSet, masterPage);
+        EList<Element> _elements_1 = footer.getElements();
+        this.generateItems(datamart, workSet, _pageFooterItem, ((Element[])Conversions.unwrapArray(_elements_1, Element.class)));
+      }
+      SlotHandle _masterPages = workSet.design.getMasterPages();
+      _masterPages.add(masterPage);
+    } catch (Throwable _e) {
+      throw Exceptions.sneakyThrow(_e);
+    }
+  }
+  
+  private void addDatamartSourceAndSet(final DatamartDefinition datamart, final ReportGeneratorWorkSet workSet, final String alias, final DatamartProperty[] hiddens) {
+    try {
+      String _dataSourceName = Utilities.getDataSourceName(alias, datamart);
+      String dataSourceName = _dataSourceName.toString();
+      OdaDataSourceHandle odsourceh = workSet.factory.newOdaDataSource(dataSourceName, BaseReport.DATASOURCE_EXTENSION_ID);
+      DesignElement _element = odsourceh.getElement();
+      Module _module = workSet.design.getModule();
+      long _nextID = _module.getNextID();
+      _element.setID(_nextID);
+      Module _module_1 = workSet.design.getModule();
+      DesignElement _element_1 = odsourceh.getElement();
+      _module_1.addElementID(_element_1);
+      Module _module_2 = workSet.design.getModule();
+      DesignElement _element_2 = odsourceh.getElement();
+      _module_2.add(_element_2, IModuleModel.DATA_SOURCE_SLOT);
+      String _dataSetName = Utilities.getDataSetName(alias, datamart);
+      String dataSetName = _dataSetName.toString();
+      String _concat = BaseReport.DATASOURCE_EXTENSION_ID.concat(".dataSet");
+      OdaDataSetHandle odseth = workSet.factory.newOdaDataSet(dataSetName, _concat);
+      workSet.dataSets.put(dataSetName, odseth);
+      DesignElement _element_3 = odseth.getElement();
+      Module _module_3 = workSet.design.getModule();
+      long _nextID_1 = _module_3.getNextID();
+      _element_3.setID(_nextID_1);
+      String _bundleName = Utilities.getBundleName(datamart);
+      odseth.setProperty(OdaConnProperties.DATAMART_BUNDLENAME, _bundleName);
+      CharSequence _datamartClassName = this.getDatamartClassName(alias, datamart);
+      odseth.setProperty(OdaConnProperties.DATAMART_CLASSNAME, _datamartClassName);
+      DesignElement _element_4 = odsourceh.getElement();
+      String _name = _element_4.getName();
+      odseth.setProperty(OdaConnProperties.DATAMART_DATASOURCE, _name);
+      odseth.setProperty(OdaConnProperties.DATAMART_DATASOURCENAME, dataSourceName);
+      odseth.setProperty(OdaConnProperties.DATAMART_DATASETNAME, dataSetName);
+      DatamartSource _source = datamart.getSource();
+      boolean _matched = false;
+      if (!_matched) {
+        if (_source instanceof DatamartCube) {
+          _matched=true;
+          this.addDatamartCubeResultSet(workSet, odseth, dataSetName, datamart);
+        }
+      }
+      if (!_matched) {
+        if (_source instanceof DatamartEntity) {
+          _matched=true;
+          this.addDatamartEntityResultSet(workSet, odseth, dataSetName, datamart);
+        }
+      }
+      if (!_matched) {
+        if (_source instanceof DatamartTask) {
+          _matched=true;
+          System.err.println("DatamartTask ... todo");
+        }
+      }
+      Module _module_4 = workSet.design.getModule();
+      DesignElement _element_5 = odseth.getElement();
+      _module_4.addElementID(_element_5);
+      Module _module_5 = workSet.design.getModule();
+      DesignElement _element_6 = odseth.getElement();
+      _module_5.add(_element_6, IModuleModel.DATA_SET_SLOT);
+    } catch (Throwable _e) {
+      throw Exceptions.sneakyThrow(_e);
+    }
+  }
+  
+  private void addDatamartCubeResultSet(final ReportGeneratorWorkSet workSet, final OdaDataSetHandle odseth, final String dataSetName, final DatamartDefinition datamart) {
+    try {
+      System.err.println("DatamartCube ... todo");
+      DatamartSource _source = datamart.getSource();
+      DatamartCube cube = ((DatamartCube) _source);
+      String selectColumns = "";
+      CachedMetaData cmd = new CachedMetaData();
+      ArrayList<OdaResultSetColumn> sd = new ArrayList<OdaResultSetColumn>();
+      ArrayList<ComputedColumn> cc = new ArrayList<ComputedColumn>();
+      StringConcatenation _builder = new StringConcatenation();
+      _builder.append("select ");
+      _builder.append(selectColumns, "");
+      _builder.append(" from ");
+      String _name = datamart.getName();
+      _builder.append(_name, "");
+      String _string = _builder.toString();
+      odseth.setProperty("queryText", _string);
+      cmd.setProperty(IDataSetModel.RESULT_SET_PROP, sd);
+      odseth.setProperty(IDataSetModel.CACHED_METADATA_PROP, cmd);
+      DesignElement _element = odseth.getElement();
+      _element.setProperty(IDataSetModel.RESULT_SET_PROP, sd);
+    } catch (Throwable _e) {
+      throw Exceptions.sneakyThrow(_e);
+    }
+  }
+  
+  private void addAllDatamartProperties(final ReportGeneratorWorkSet workSet, final ArrayList<OdaResultSetColumn> sd, final ArrayList<ComputedColumn> cc, final EObject container) {
+    boolean _matched = false;
+    if (!_matched) {
+      if (container instanceof DatamartEntity) {
+        _matched=true;
+        EList<DatamartNavigation> _navigations = ((DatamartEntity)container).getNavigations();
+        for (final DatamartNavigation navigation : _navigations) {
+          TreeIterator<EObject> _eAllContents = navigation.eAllContents();
+          final Procedure1<EObject> _function = new Procedure1<EObject>() {
+            public void apply(final EObject element) {
+              ReportModelGenerator.this.addAllDatamartProperties(workSet, sd, cc, element);
+            }
+          };
+          IteratorExtensions.<EObject>forEach(_eAllContents, _function);
+        }
+        EList<DatamartProperty> _properties = ((DatamartEntity)container).getProperties();
+        boolean _isEmpty = _properties.isEmpty();
+        if (_isEmpty) {
+          LEntity _entityRef = ((DatamartEntity)container).getEntityRef();
+          List<LEntityAttribute> _allAttributes = _entityRef.getAllAttributes();
+          for (final LEntityAttribute attribute : _allAttributes) {
+            boolean _and = false;
+            boolean _isId = attribute.isId();
+            boolean _not = (!_isId);
+            if (!_not) {
+              _and = false;
+            } else {
+              boolean _isUuid = attribute.isUuid();
+              boolean _not_1 = (!_isUuid);
+              _and = _not_1;
+            }
+            if (_and) {
+              LEntity _entityRef_1 = ((DatamartEntity)container).getEntityRef();
+              String _name = attribute.getName();
+              boolean _isAuthorized = this.datamartInferrer.isAuthorized(workSet.role, _entityRef_1, _name);
+              if (_isAuthorized) {
+                this.addDatamartProperty(workSet, sd, cc, attribute);
+              }
+            }
+          }
+        } else {
+          EList<DatamartProperty> _properties_1 = ((DatamartEntity)container).getProperties();
+          for (final DatamartProperty property : _properties_1) {
+            LEntity _entityRef_2 = ((DatamartEntity)container).getEntityRef();
+            LEntityAttribute _propertyRef = property.getPropertyRef();
+            String _name_1 = _propertyRef.getName();
+            boolean _isAuthorized_1 = this.datamartInferrer.isAuthorized(workSet.role, _entityRef_2, _name_1);
+            if (_isAuthorized_1) {
+              this.addDatamartProperty(workSet, sd, cc, property);
+            }
+          }
+        }
+      }
+    }
+  }
+  
+  private void addDatamartEntityResultSet(final ReportGeneratorWorkSet workSet, final OdaDataSetHandle odseth, final String dataSetName, final DatamartDefinition datamart) {
+    try {
+      String selectColumns = "";
+      CachedMetaData cmd = new CachedMetaData();
+      ArrayList<OdaResultSetColumn> sd = new ArrayList<OdaResultSetColumn>();
+      ArrayList<ComputedColumn> cc = new ArrayList<ComputedColumn>();
+      workSet.fPosition = 0;
+      DatamartSource _source = datamart.getSource();
+      this.addAllDatamartProperties(workSet, sd, cc, _source);
+      workSet.putResultSetColumns(dataSetName, sd);
+      workSet.putComputedColumns(dataSetName, cc);
+      for (final ComputedColumn cc1 : cc) {
+        boolean _isEmpty = selectColumns.isEmpty();
+        if (_isEmpty) {
+          String _name = cc1.getName();
+          selectColumns = _name;
+        } else {
+          String _concat = selectColumns.concat(",");
+          String _name_1 = cc1.getName();
+          String _concat_1 = _concat.concat(_name_1);
+          selectColumns = _concat_1;
+        }
+      }
+      StringConcatenation _builder = new StringConcatenation();
+      _builder.append("select ");
+      _builder.append(selectColumns, "");
+      _builder.append(" from ");
+      String _name_2 = datamart.getName();
+      _builder.append(_name_2, "");
+      String _string = _builder.toString();
+      odseth.setProperty("queryText", _string);
+      cmd.setProperty(IDataSetModel.RESULT_SET_PROP, sd);
+      odseth.setProperty(IDataSetModel.CACHED_METADATA_PROP, cmd);
+      DesignElement _element = odseth.getElement();
+      _element.setProperty(IDataSetModel.RESULT_SET_PROP, sd);
+    } catch (Throwable _e) {
+      throw Exceptions.sneakyThrow(_e);
+    }
+  }
+  
+  private void addDatamartProperty(final ReportGeneratorWorkSet workSet, final ArrayList<OdaResultSetColumn> sd, final ArrayList<ComputedColumn> cc, final DatamartProperty property) {
+    LEntityAttribute _propertyRef = property.getPropertyRef();
+    this.addDatamartProperty(workSet, sd, cc, _propertyRef);
+  }
+  
+  private void addDatamartProperty(final ReportGeneratorWorkSet workSet, final ArrayList<OdaResultSetColumn> sd, final ArrayList<ComputedColumn> cc, final LEntityAttribute attribute) {
+    IDataMart.EType etype = this.dtType.getBasicType(attribute);
+    DataTypes dataType = DataTypes.typeFor(etype);
+    boolean _equals = Objects.equal(dataType, DataTypes.ANY);
+    if (_equals) {
+      LScalarType _type = attribute.getType();
+      DataTypes _typeFor = DataTypes.typeFor(_type);
+      dataType = _typeFor;
+    }
+    String _columnName = this._namingExtensions.toColumnName(attribute);
+    String name = _columnName.toLowerCase();
+    for (final OdaResultSetColumn column : sd) {
+      String _columnName_1 = column.getColumnName();
+      boolean _equalsIgnoreCase = _columnName_1.equalsIgnoreCase(name);
+      if (_equalsIgnoreCase) {
+        return;
+      }
+    }
+    OdaResultSetColumn st = new OdaResultSetColumn();
+    st.setColumnName(name);
+    st.setProperty("name", name);
+    int _nativeOdaDataTypeId = dataType.getNativeOdaDataTypeId();
+    st.setNativeDataType(Integer.valueOf(_nativeOdaDataTypeId));
+    st.setNativeName(name);
+    workSet.fPosition = (workSet.fPosition + 1);
+    st.setPosition(Integer.valueOf(workSet.fPosition));
+    String _nativeOdaDataTypeName = dataType.getNativeOdaDataTypeName();
+    st.setDataType(_nativeOdaDataTypeName);
+    sd.add(st);
+    ComputedColumn cs1 = StructureFactory.createComputedColumn();
+    cs1.setName(name);
+    cs1.setDisplayName(name);
+    String _concat = "dataSetRow[\"".concat(name);
+    String _concat_1 = _concat.concat("\"]");
+    cs1.setExpression(_concat_1);
+    String _nativeOdaDataTypeName_1 = dataType.getNativeOdaDataTypeName();
+    cs1.setDataType(_nativeOdaDataTypeName_1);
+    cc.add(cs1);
+  }
+  
+  private CharSequence getDatamartClassName(final String alias, final DatamartDefinition datamart) {
+    StringConcatenation _builder = new StringConcatenation();
+    EObject _eContainer = datamart.eContainer();
+    QualifiedName _fullyQualifiedName = this._iQualifiedNameProvider.getFullyQualifiedName(((LPackage) _eContainer));
+    _builder.append(_fullyQualifiedName, "");
+    _builder.append(".");
+    String _name = datamart.getName();
+    _builder.append(_name, "");
+    _builder.append("Class");
+    return _builder;
+  }
+  
+  public void generateItems(final DatamartDefinition datamart, final ReportGeneratorWorkSet workSet, final ContainerItem container, final Element[] elements) {
+    boolean _notEquals = (!Objects.equal(elements, null));
+    if (_notEquals) {
+      for (final Element element : elements) {
+        try {
+          boolean _matched = false;
+          if (!_matched) {
+            if (element instanceof Title) {
+              _matched=true;
+              String _text = ((Title)element).getText();
+              String _key = I18NKeyGenerator.key(_text);
+              String _text_1 = ((Title)element).getText();
+              String _replace = _text_1.replace("\"", "");
+              Style _style = ((Title)element).getStyle();
+              container.addHeader(1, _key, _replace, _style);
+            }
+          }
+          if (!_matched) {
+            if (element instanceof SubTitle) {
+              _matched=true;
+              String _text = ((SubTitle)element).getText();
+              String _key = I18NKeyGenerator.key(_text);
+              String _text_1 = ((SubTitle)element).getText();
+              String _replace = _text_1.replace("\"", "");
+              Style _style = ((SubTitle)element).getStyle();
+              container.addHeader(2, _key, _replace, _style);
+            }
+          }
+          if (!_matched) {
+            if (element instanceof SubSubTitle) {
+              _matched=true;
+              String _text = ((SubSubTitle)element).getText();
+              String _key = I18NKeyGenerator.key(_text);
+              String _text_1 = ((SubSubTitle)element).getText();
+              String _replace = _text_1.replace("\"", "");
+              Style _style = ((SubSubTitle)element).getStyle();
+              container.addHeader(3, _key, _replace, _style);
+            }
+          }
+          if (!_matched) {
+            if (element instanceof Label) {
+              _matched=true;
+              String _text = ((Label)element).getText();
+              String _key = I18NKeyGenerator.key(_text);
+              String _text_1 = ((Label)element).getText();
+              String _replace = _text_1.replace("\"", "");
+              Style _style = ((Label)element).getStyle();
+              container.addLabel(_key, _replace, _style);
+            }
+          }
+          if (!_matched) {
+            if (element instanceof Text) {
+              _matched=true;
+              String _text = ((Text)element).getText();
+              String _key = I18NKeyGenerator.key(_text);
+              String _text_1 = ((Text)element).getText();
+              String _replace = _text_1.replace("\"", "");
+              Style _style = ((Text)element).getStyle();
+              container.addText(_key, _replace, _style);
+            }
+          }
+          if (!_matched) {
+            if (element instanceof AutoText) {
+              _matched=true;
+              AutoTextEnum _type = ((AutoText)element).getType();
+              String _string = _type.toString();
+              Style _style = ((AutoText)element).getStyle();
+              container.addAutoText(_string, _style);
+            }
+          }
+          if (!_matched) {
+            if (element instanceof DatamartTableProperty) {
+              _matched=true;
+              Style _style = ((DatamartTableProperty)element).getStyle();
+              container.addData(((DatamartTableProperty)element), _style);
+            }
+          }
+          if (!_matched) {
+            if (element instanceof Image) {
+              _matched=true;
+              this.addImage(workSet, container, ((Image)element), null);
+            }
+          }
+          if (!_matched) {
+            if (element instanceof DatamartTable) {
+              _matched=true;
+              Width _width = new Width("100%");
+              this.addDatamartTable(datamart, workSet, container, ((DatamartTable)element), _width);
+            }
+          }
+          if (!_matched) {
+            if (element instanceof Grid) {
+              _matched=true;
+              Width _width = new Width("100%");
+              this.addGrid(datamart, workSet, container, ((Grid)element), null, _width);
+            }
+          }
+        } catch (final Throwable _t) {
+          if (_t instanceof ContentException) {
+            final ContentException ce = (ContentException)_t;
+            StringConcatenation _builder = new StringConcatenation();
+            Class<? extends ContentException> _class = ce.getClass();
+            String _simpleName = _class.getSimpleName();
+            _builder.append(_simpleName, "");
+            _builder.append(": ");
+            String _localizedMessage = ce.getLocalizedMessage();
+            _builder.append(_localizedMessage, "");
+            System.err.println(_builder);
+          } else if (_t instanceof Exception) {
+            final Exception e = (Exception)_t;
+            e.printStackTrace();
+          } else {
+            throw Exceptions.sneakyThrow(_t);
+          }
+        }
+      }
+    }
+  }
+  
+  private void addDatamartTable(final DatamartDefinition datamart, final ReportGeneratorWorkSet workSet, final ContainerItem container, final DatamartTable datamartTable, final Attribute... attributes) {
+    try {
+      ArrayList<DatamartProperty> hiddens = new ArrayList<DatamartProperty>();
+      DatamartTableDetail _detail = datamartTable.getDetail();
+      EList<DatamartTableProperty> _columnFormatters = _detail.getColumnFormatters();
+      for (final DatamartTableProperty columnFormatter : _columnFormatters) {
+      }
+      String alias = datamartTable.getName();
+      String _dataSetName = Utilities.getDataSetName(alias, datamart);
+      String dataSetName = _dataSetName.toString();
+      OdaDataSetHandle dataSet = workSet.dataSets.get(dataSetName);
+      boolean _equals = Objects.equal(dataSet, null);
+      if (_equals) {
+        final ArrayList<DatamartProperty> _converted_hiddens = (ArrayList<DatamartProperty>)hiddens;
+        this.addDatamartSourceAndSet(datamart, workSet, alias, ((DatamartProperty[])Conversions.unwrapArray(_converted_hiddens, DatamartProperty.class)));
+        OdaDataSetHandle _get = workSet.dataSets.get(dataSetName);
+        dataSet = _get;
+      }
+      ArrayList<ComputedColumn> _computedColumns = workSet.getComputedColumns(dataSetName);
+      EList<DatamartTableGroup> _groups = datamartTable.getGroups();
+      DatamartTableDetail _detail_1 = datamartTable.getDetail();
+      Style _style = _detail_1.getStyle();
+      DatamartTableDetail _detail_2 = datamartTable.getDetail();
+      EList<DatamartTableProperty> _columnFormatters_1 = _detail_2.getColumnFormatters();
+      Style _style_1 = datamartTable.getStyle();
+      container.addTable(dataSet, datamartTable, _computedColumns, ((DatamartTableGroup[])Conversions.unwrapArray(_groups, DatamartTableGroup.class)), _style, ((DatamartTableProperty[])Conversions.unwrapArray(_columnFormatters_1, DatamartTableProperty.class)), _style_1, attributes);
+    } catch (Throwable _e) {
+      throw Exceptions.sneakyThrow(_e);
+    }
+  }
+  
+  private void addImage(final ReportGeneratorWorkSet workSet, final ContainerItem container, final Image imageData, final Style style, final Attribute... attributes) {
+    try {
+      ImageSizeEnum _size = imageData.getSize();
+      String _literal = _size.getLiteral();
+      double _scale = imageData.getScale();
+      ImageSourceEnum _sourceType = imageData.getSourceType();
+      String _literal_1 = _sourceType.getLiteral();
+      String _filename = imageData.getFilename();
+      ImageItem image = new ImageItem(workSet, 
+        null, _literal, _scale, _literal_1, _filename);
+      container.add(image, style, attributes);
+    } catch (Throwable _e) {
+      throw Exceptions.sneakyThrow(_e);
+    }
+  }
+  
+  private void addGrid(final DatamartDefinition datamart, final ReportGeneratorWorkSet workSet, final ContainerItem container, final Grid grid, final Style style, final Attribute... attributes) {
+    try {
+      EList<GridRow> _rows = grid.getRows();
+      int rowCount = ((Object[])Conversions.unwrapArray(_rows, Object.class)).length;
+      int columnCount = 0;
+      EList<GridRow> _rows_1 = grid.getRows();
+      for (final GridRow row : _rows_1) {
+        EList<GridCell> _cells = row.getCells();
+        int _length = ((Object[])Conversions.unwrapArray(_cells, Object.class)).length;
+        int _max = Math.max(columnCount, _length);
+        columnCount = _max;
+      }
+      GridItem gridItem = new GridItem(workSet, columnCount, rowCount);
+      int rowNo = 0;
+      EList<GridRow> _rows_2 = grid.getRows();
+      for (final GridRow row_1 : _rows_2) {
+        {
+          int columnNo = 0;
+          EList<GridCell> _cells_1 = row_1.getCells();
+          for (final GridCell cell : _cells_1) {
+            {
+              CellItem _cell = gridItem.getCell(columnNo, rowNo);
+              int _columnspan = cell.getColumnspan();
+              CellItem _setColumnSpan = _cell.setColumnSpan(_columnspan);
+              EList<Element> _elements = cell.getElements();
+              this.generateItems(datamart, workSet, _setColumnSpan, ((Element[])Conversions.unwrapArray(_elements, Element.class)));
+              columnNo = (columnNo + 1);
+            }
+          }
+          Style _style = row_1.getStyle();
+          boolean _notEquals = (!Objects.equal(_style, null));
+          if (_notEquals) {
+            Style _style_1 = row_1.getStyle();
+            gridItem.applyStyle(rowNo, _style_1);
+          }
+          rowNo = (rowNo + 1);
+        }
+      }
+      container.add(gridItem, style, attributes);
+    } catch (Throwable _e) {
+      throw Exceptions.sneakyThrow(_e);
+    }
+  }
+  
+  public TreeAppendable createAppendable(final EObject context, final ImportManager importManager, final GeneratorConfig config) {
+    TreeAppendable _xblockexpression = null;
+    {
+      Resource _eResource = context.eResource();
+      this.setBuilder(_eResource);
+      this._basicDslGeneratorUtils.addImportFor(this, importManager, this._typeReferenceBuilder, ReportGeneratorWorkSet.class, HorizontalLayout.class, ViewLayoutManager.class, BrowserFrame.class, StreamResource.class, Sizeable.Unit.class, Button.class, com.vaadin.ui.Label.class, IEventBroker.class, EventHandler.class, Event.class, EventUtils.class, EventBrokerMsg.class, CustomMsgException.class, IReportProvider.Rendering.class, AbstractComponent.class, UUID.class, Container.Filter.class, IToolbarAction.class);
+      _xblockexpression = super.createAppendable(context, importManager, config);
+    }
+    return _xblockexpression;
+  }
+  
+  public void internalDoGenerate(final EObject orgModel, final IFileSystemAccess fsa) {
+    if (orgModel instanceof JvmDeclaredType) {
+      _internalDoGenerate((JvmDeclaredType)orgModel, fsa);
+      return;
+    } else if (orgModel instanceof ReportModel) {
+      _internalDoGenerate((ReportModel)orgModel, fsa);
+      return;
+    } else if (orgModel != null) {
+      _internalDoGenerate(orgModel, fsa);
+      return;
+    } else {
+      throw new IllegalArgumentException("Unhandled parameter types: " +
+        Arrays.<Object>asList(orgModel, fsa).toString());
+    }
+  }
+}
diff --git a/org.eclipse.osbp.xtext.reportdsl/xtend-gen/org/eclipse/osbp/xtext/reportdsl/scoping/ReportDSLScopeProvider.java b/org.eclipse.osbp.xtext.reportdsl/xtend-gen/org/eclipse/osbp/xtext/reportdsl/scoping/ReportDSLScopeProvider.java
new file mode 100644
index 0000000..d8b20e9
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl/xtend-gen/org/eclipse/osbp/xtext/reportdsl/scoping/ReportDSLScopeProvider.java
@@ -0,0 +1,37 @@
+/**
+ * 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.reportdsl.scoping;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EReference;
+import org.eclipse.xtext.scoping.IScope;
+import org.eclipse.xtext.xbase.annotations.typesystem.XbaseWithAnnotationsBatchScopeProvider;
+
+/**
+ * This class contains custom scoping description.
+ * 
+ * see : http://www.eclipse.org/Xtext/documentation.html#scoping
+ * on how and when to use it
+ */
+@SuppressWarnings("all")
+public class ReportDSLScopeProvider extends XbaseWithAnnotationsBatchScopeProvider {
+  public IScope getScope(final EObject context, final EReference reference) {
+    return super.getScope(context, reference);
+  }
+  
+  public IScope getScope_Datamart_DatamartRef(final IScope scope) {
+    return scope;
+  }
+}
diff --git a/org.eclipse.osbp.xtext.reportdsl/xtend-gen/org/eclipse/osbp/xtext/reportdsl/validation/ReportDSLValidator.java b/org.eclipse.osbp.xtext.reportdsl/xtend-gen/org/eclipse/osbp/xtext/reportdsl/validation/ReportDSLValidator.java
new file mode 100644
index 0000000..5ad23cc
--- /dev/null
+++ b/org.eclipse.osbp.xtext.reportdsl/xtend-gen/org/eclipse/osbp/xtext/reportdsl/validation/ReportDSLValidator.java
@@ -0,0 +1,26 @@
+/**
+ * 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.reportdsl.validation;
+
+import org.eclipse.osbp.xtext.reportdsl.validation.AbstractReportDSLValidator;
+
+/**
+ * Custom validation rules.
+ * 
+ * see http://www.eclipse.org/Xtext/documentation.html#validation
+ */
+@SuppressWarnings("all")
+public class ReportDSLValidator extends AbstractReportDSLValidator {
+}
diff --git a/pom.xml b/pom.xml
new file mode 100644
index 0000000..98ec0bc
--- /dev/null
+++ b/pom.xml
@@ -0,0 +1,112 @@
+<?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 implementation API and implementation -->
+<!--#======================================================================= -->
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+
+    <parent>
+        <groupId>org.eclipse.osbp.releng.maven</groupId>
+        <artifactId>org.eclipse.osbp.releng.maven.parent.tycho</artifactId>
+        <version>0.9.0-SNAPSHOT</version>
+        <relativePath/>
+    </parent>
+
+    <groupId>org.eclipse.osbp.xtext.reportdsl</groupId>
+    <artifactId>org.eclipse.osbp.xtext.reportdsl.aggregator</artifactId>
+    <version>0.9.0-SNAPSHOT</version>
+    <packaging>pom</packaging>
+
+    <url>${osbp.site.repository.url}</url>
+    <scm>
+        <url>${osbp.scm.url}</url>
+        <connection>${osbp.scm.connection}</connection>
+        <developerConnection>${osbp.scm.connection.dev}</developerConnection>
+        <tag>HEAD</tag>
+    </scm>
+    <distributionManagement>
+        <site>
+            <id>gh-pages</id>
+            <name>OSBP GitHub Pages</name>
+            <url>${distribution.site.url}</url>
+        </site>
+    </distributionManagement>
+
+	<properties>
+		<osbp.gitrepo.name>${project.groupId}</osbp.gitrepo.name>
+	</properties>
+
+    <modules>
+        <module>org.eclipse.osbp.xtext.reportdsl</module>
+        <module>org.eclipse.osbp.xtext.reportdsl.oda.datamart</module>
+        <module>org.eclipse.osbp.xtext.reportdsl.tests</module>
+        <module>org.eclipse.osbp.xtext.reportdsl.ui</module>
+        <module>org.eclipse.osbp.xtext.reportdsl.feature</module>
+        <!--<module>org.eclipse.osbp.xtext.reportdsl.p2</module>-->
+    </modules>
+
+    <profiles>
+        <!--<profile>
+			<id>build.p2</id>
+			<activation>
+				<property>
+					<name>osbp.build.p2</name>
+				</property>
+			</activation>
+			<modules>
+				<module>org.eclipse.osbp.xtext.reportdsl.p2</module>
+			</modules>
+		</profile>-->
+    </profiles>
+    <build>
+        <pluginManagement>
+            <plugins>
+                <plugin>
+                    <groupId>org.apache.maven.plugins</groupId>
+                    <artifactId>maven-javadoc-plugin</artifactId>
+                    <configuration>
+                        <skip>true</skip>
+                    </configuration>
+                </plugin>
+                <plugin>
+                    <groupId>org.eclipse.tycho</groupId>
+                    <artifactId>target-platform-configuration</artifactId>
+                    <version>${tycho-version}</version>
+                    <configuration>
+                        <resolver>p2</resolver>
+                        <pomDependencies>consider</pomDependencies>
+                        <environments>
+                            <environment>
+                                <os>win32</os>
+                                <ws>win32</ws>
+                                <arch>x86_64</arch>
+                            </environment>
+                            <environment>
+                                <os>linux</os>
+                                <ws>gtk</ws>
+                                <arch>x86</arch>
+                            </environment>
+                            <environment>
+                                <os>linux</os>
+                                <ws>gtk</ws>
+                                <arch>x86_64</arch>
+                            </environment>
+                            <environment>
+                                <os>macosx</os>
+                                <ws>cocoa</ws>
+                                <arch>x86_64</arch>
+                            </environment>
+                        </environments>
+                    </configuration>
+                </plugin>
+            </plugins>
+        </pluginManagement>
+    </build>
+</project>