initial checkin
diff --git a/.project b/.project
new file mode 100644
index 0000000..5924ac7
--- /dev/null
+++ b/.project
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>org.eclipse.osbp.xtext.action.aggregator</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+		<buildCommand>
+			<name>org.eclipse.m2e.core.maven2Builder</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..b4ef38b
--- /dev/null
+++ b/jenkins.build.config.xml
@@ -0,0 +1,33 @@
+<?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.bpm.api</jenkins.build.dependency>
+                <jenkins.build.dependency>org.eclipse.osbp.dsl</jenkins.build.dependency>
+                <jenkins.build.dependency>org.eclipse.osbp.eventbroker</jenkins.build.dependency>
+                <jenkins.build.dependency>org.eclipse.osbp.fork.mihalis.opal.imageSelector.osgi</jenkins.build.dependency>
+                <jenkins.build.dependency>org.eclipse.osbp.persistence</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.xtext.addons</jenkins.build.dependency>
+                <jenkins.build.dependency>org.eclipse.osbp.xtext.datainterchange</jenkins.build.dependency>
+                <jenkins.build.dependency>org.eclipse.osbp.xtext.functionlibrary</jenkins.build.dependency>
+                <jenkins.build.dependency>org.eclipse.osbp.xtext.i18n</jenkins.build.dependency>
+                <jenkins.build.dependency>org.eclipse.osbp.xtext.message</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.action.feature/.project b/org.eclipse.osbp.xtext.action.feature/.project
new file mode 100644
index 0000000..1087be5
--- /dev/null
+++ b/org.eclipse.osbp.xtext.action.feature/.project
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>org.eclipse.osbp.xtext.action.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.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.action.feature/LICENSE.txt b/org.eclipse.osbp.xtext.action.feature/LICENSE.txt
new file mode 100644
index 0000000..ff42ad4
--- /dev/null
+++ b/org.eclipse.osbp.xtext.action.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.action.feature/build.properties b/org.eclipse.osbp.xtext.action.feature/build.properties
new file mode 100644
index 0000000..72ef22d
--- /dev/null
+++ b/org.eclipse.osbp.xtext.action.feature/build.properties
@@ -0,0 +1,6 @@
+bin.includes = epl-v10.html,  feature.xml,\
+               feature.properties,\
+               license.html,\
+               LICENSE.txt
+src.includes = epl-v10.html,  LICENSE.txt,\
+               license.html
diff --git a/org.eclipse.osbp.xtext.action.feature/epl-v10.html b/org.eclipse.osbp.xtext.action.feature/epl-v10.html
new file mode 100644
index 0000000..b398acc
--- /dev/null
+++ b/org.eclipse.osbp.xtext.action.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.action.feature/feature.properties b/org.eclipse.osbp.xtext.action.feature/feature.properties
new file mode 100644
index 0000000..712aa0f
--- /dev/null
+++ b/org.eclipse.osbp.xtext.action.feature/feature.properties
Binary files differ
diff --git a/org.eclipse.osbp.xtext.action.feature/feature.xml b/org.eclipse.osbp.xtext.action.feature/feature.xml
new file mode 100644
index 0000000..791b482
--- /dev/null
+++ b/org.eclipse.osbp.xtext.action.feature/feature.xml
@@ -0,0 +1,52 @@
+<?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.action.feature"
+        label="%featureName"
+        version="0.9.0.qualifier"
+        provider-name="%providerName">
+        
+    <description>
+        %description
+    </description>
+        
+    <copyright>
+        %copyright
+    </copyright>
+        
+    <license url="%licenseURL">
+        %license
+    </license>
+        
+    <plugin
+        id="org.eclipse.osbp.xtext.action"
+        download-size="0"
+        install-size="0"
+        version="0.0.0"
+        unpack="false"/>
+        
+    <plugin
+        id="org.eclipse.osbp.xtext.action.tests"
+        download-size="0"
+        install-size="0"
+        version="0.0.0"
+        unpack="false"/>
+        
+    <plugin
+        id="org.eclipse.osbp.xtext.action.ui"
+        download-size="0"
+        install-size="0"
+        version="0.0.0"
+        unpack="false"/>
+        
+</feature>
diff --git a/org.eclipse.osbp.xtext.action.feature/license.html b/org.eclipse.osbp.xtext.action.feature/license.html
new file mode 100644
index 0000000..6e579a5
--- /dev/null
+++ b/org.eclipse.osbp.xtext.action.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.action.feature/pom.xml b/org.eclipse.osbp.xtext.action.feature/pom.xml
new file mode 100644
index 0000000..238c50f
--- /dev/null
+++ b/org.eclipse.osbp.xtext.action.feature/pom.xml
@@ -0,0 +1,92 @@
+<?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/maven-v4_0_0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+
+    <parent>
+        <groupId>org.eclipse.osbp.xtext.action</groupId>
+        <artifactId>org.eclipse.osbp.xtext.action.aggregator</artifactId>
+        <version>0.9.0-SNAPSHOT</version>
+    </parent>
+
+    <artifactId>org.eclipse.osbp.xtext.action.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>
+
+    <dependencies>
+        <dependency>
+            <groupId>org.eclipse.osbp.xtext.action</groupId>
+            <artifactId>org.eclipse.osbp.xtext.action</artifactId>
+            <version>0.9.0-SNAPSHOT</version>
+        </dependency>
+        <dependency>
+            <groupId>org.eclipse.osbp.xtext.action</groupId>
+            <artifactId>org.eclipse.osbp.xtext.action.tests</artifactId>
+            <version>0.9.0-SNAPSHOT</version>
+        </dependency>
+        <dependency>
+            <groupId>org.eclipse.osbp.xtext.action</groupId>
+            <artifactId>org.eclipse.osbp.xtext.action.ui</artifactId>
+            <version>0.9.0-SNAPSHOT</version>
+        </dependency>
+    </dependencies>
+
+</project>
diff --git a/org.eclipse.osbp.xtext.action.feature/src/main/javadoc/README.txt b/org.eclipse.osbp.xtext.action.feature/src/main/javadoc/README.txt
new file mode 100644
index 0000000..831da7e
--- /dev/null
+++ b/org.eclipse.osbp.xtext.action.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.action.feature/src/overview.html b/org.eclipse.osbp.xtext.action.feature/src/overview.html
new file mode 100644
index 0000000..befa487
--- /dev/null
+++ b/org.eclipse.osbp.xtext.action.feature/src/overview.html
@@ -0,0 +1,22 @@
+<!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;Action DSL</strong> defines action buttons and toolbars.</p>
+
+<p><br />
+Each action button provides a <em>canExecute</em> method which evaluates its own state. For evaluation purposes, a cross reference to a function of the FunctionLibraryDSL is established.<br />
+These functions can take sessionwide context information or queries against datasources into account and build up calculations resulting in a boolean expression.</p>
+
+<p>Each button implements an execute method to call an external routine from the consumer of this DSL.<br />
+Consumers have to subscribe to the emitted targetID of the execute method to be notified of such a trigger.</p>
+
+<p>Toolbars have a unique ID to be referenced by different consumers of this DSL.<br />
+Potential consumers are: DialogDSL, PerspectiveDSL, TableDSL, ChartDSL, ReportDSL.<br />
+Consumers have to implement a cross reference to this DSL.</p>
+
+<p>&nbsp;</p>
+</body>
+</html>
diff --git a/org.eclipse.osbp.xtext.action.tests/.project b/org.eclipse.osbp.xtext.action.tests/.project
new file mode 100644
index 0000000..bc5e02c
--- /dev/null
+++ b/org.eclipse.osbp.xtext.action.tests/.project
@@ -0,0 +1,46 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>org.eclipse.osbp.xtext.action.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.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.action.tests/LICENSE.txt b/org.eclipse.osbp.xtext.action.tests/LICENSE.txt
new file mode 100644
index 0000000..ff42ad4
--- /dev/null
+++ b/org.eclipse.osbp.xtext.action.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.action.tests/META-INF/MANIFEST.MF b/org.eclipse.osbp.xtext.action.tests/META-INF/MANIFEST.MF
new file mode 100644
index 0000000..699f113
--- /dev/null
+++ b/org.eclipse.osbp.xtext.action.tests/META-INF/MANIFEST.MF
@@ -0,0 +1,25 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: org.eclipse.osbp.xtext.action.tests
+Bundle-Vendor: Eclipse OSBP
+Bundle-Version: 0.9.0.qualifier
+Bundle-SymbolicName: org.eclipse.osbp.xtext.action.tests;singleton:=true
+Bundle-ActivationPolicy: lazy
+Require-Bundle: org.eclipse.core.runtime,
+ org.eclipse.xtext.junit4,
+ org.eclipse.ui.workbench;resolution:=optional,
+ 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.action;bundle-version="[0.9.0,0.10.0)",
+ org.eclipse.osbp.xtext.action.ui;bundle-version="[0.9.0,0.10.0)"
+Import-Package: org.eclipse.osbp.xtext.action;version="0.9.0",
+ org.apache.log4j,
+ org.hamcrest.core,
+ org.junit;version="4.5.0",
+ 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"
+Bundle-RequiredExecutionEnvironment: JavaSE-1.8
+Export-Package: org.eclipse.osbp.xtext.action;version="0.9.0"
diff --git a/org.eclipse.osbp.xtext.action.tests/about.html b/org.eclipse.osbp.xtext.action.tests/about.html
new file mode 100644
index 0000000..64c0598
--- /dev/null
+++ b/org.eclipse.osbp.xtext.action.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.action.tests/about.ini b/org.eclipse.osbp.xtext.action.tests/about.ini
new file mode 100644
index 0000000..7df671f
--- /dev/null
+++ b/org.eclipse.osbp.xtext.action.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.action.tests/about.mappings b/org.eclipse.osbp.xtext.action.tests/about.mappings
new file mode 100644
index 0000000..4511a0a
--- /dev/null
+++ b/org.eclipse.osbp.xtext.action.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.action.tests/about.properties b/org.eclipse.osbp.xtext.action.tests/about.properties
new file mode 100644
index 0000000..5e70c89
--- /dev/null
+++ b/org.eclipse.osbp.xtext.action.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.action.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.action.tests/build.properties b/org.eclipse.osbp.xtext.action.tests/build.properties
new file mode 100644
index 0000000..3e615ce
--- /dev/null
+++ b/org.eclipse.osbp.xtext.action.tests/build.properties
@@ -0,0 +1,11 @@
+source.. = src/,\
+          src-gen/,\
+          xtend-gen/
+bin.includes = about.properties,  about.mappings,  about.ini,  about.html,  META-INF/,\
+			   .,\
+               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.action.tests/epl-v10.html b/org.eclipse.osbp.xtext.action.tests/epl-v10.html
new file mode 100644
index 0000000..b398acc
--- /dev/null
+++ b/org.eclipse.osbp.xtext.action.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.action.tests/license.html b/org.eclipse.osbp.xtext.action.tests/license.html
new file mode 100644
index 0000000..6e579a5
--- /dev/null
+++ b/org.eclipse.osbp.xtext.action.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.action.tests/org.eclipse.osbp.xtext.action.tests.launch b/org.eclipse.osbp.xtext.action.tests/org.eclipse.osbp.xtext.action.tests.launch
new file mode 100644
index 0000000..16c2c89
--- /dev/null
+++ b/org.eclipse.osbp.xtext.action.tests/org.eclipse.osbp.xtext.action.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.action.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.action.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.action.tests"/>
+<stringAttribute key="org.eclipse.jdt.launching.SOURCE_PATH_PROVIDER" value="org.eclipse.m2e.launchconfig.sourcepathProvider"/>
+</launchConfiguration>
diff --git a/org.eclipse.osbp.xtext.action.tests/pom.xml b/org.eclipse.osbp.xtext.action.tests/pom.xml
new file mode 100644
index 0000000..3123338
--- /dev/null
+++ b/org.eclipse.osbp.xtext.action.tests/pom.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--#======================================================================= -->
+<!--# Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) -->
+<!--# All rights reserved. This program and the accompanying materials -->
+<!--# are made available under the terms of the Eclipse Public License v1.0 -->
+<!--# which accompanies this distribution, and is available at -->
+<!--# http://www.eclipse.org/legal/epl-v10.html -->
+<!--# -->
+<!--# Contributors: -->
+<!--#     Christophe Loetz (Loetz GmbH&Co.KG) - initial API and implementation -->
+<!--#======================================================================= -->
+
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+    <artifactId>org.eclipse.osbp.xtext.action.tests</artifactId>
+    <packaging>eclipse-plugin</packaging>
+    <parent>
+        <groupId>org.eclipse.osbp.xtext.action</groupId>
+        <artifactId>org.eclipse.osbp.xtext.action.aggregator</artifactId>
+        <version>0.9.0-SNAPSHOT</version>
+        <relativePath>..</relativePath>
+    </parent>
+</project>
diff --git a/org.eclipse.osbp.xtext.action.tests/src-gen/org/eclipse/osbp/xtext/action/ActionDSLInjectorProvider.java b/org.eclipse.osbp.xtext.action.tests/src-gen/org/eclipse/osbp/xtext/action/ActionDSLInjectorProvider.java
new file mode 100644
index 0000000..3365b06
--- /dev/null
+++ b/org.eclipse.osbp.xtext.action.tests/src-gen/org/eclipse/osbp/xtext/action/ActionDSLInjectorProvider.java
@@ -0,0 +1,55 @@
+/**
+ *                                                                            
+ *  Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) 
+ *                                                                            
+ *  All rights reserved. This program and the accompanying materials           
+ *  are made available under the 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.action;
+
+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 ActionDSLInjectorProvider 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 ActionDSLStandaloneSetup().createInjectorAndDoEMFRegistration();
+	}
+
+	public void restoreRegistry() {
+		stateBeforeInjectorCreation.restoreGlobalState();
+	}
+
+	public void setupRegistry() {
+		getInjector();
+		stateAfterInjectorCreation.restoreGlobalState();
+	}
+}
diff --git a/org.eclipse.osbp.xtext.action.tests/src-gen/org/eclipse/osbp/xtext/action/ActionDSLUiInjectorProvider.java b/org.eclipse.osbp.xtext.action.tests/src-gen/org/eclipse/osbp/xtext/action/ActionDSLUiInjectorProvider.java
new file mode 100644
index 0000000..4a12953
--- /dev/null
+++ b/org.eclipse.osbp.xtext.action.tests/src-gen/org/eclipse/osbp/xtext/action/ActionDSLUiInjectorProvider.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.action;
+
+import org.eclipse.xtext.junit4.IInjectorProvider;
+
+import com.google.inject.Injector;
+
+public class ActionDSLUiInjectorProvider implements IInjectorProvider {
+	
+	public Injector getInjector() {
+		return org.eclipse.osbp.xtext.action.ui.internal.ActionDSLActivator.getInstance().getInjector("org.eclipse.osbp.xtext.action.ActionDSL");
+	}
+	
+}
diff --git a/org.eclipse.osbp.xtext.action.tests/src/README.txt b/org.eclipse.osbp.xtext.action.tests/src/README.txt
new file mode 100644
index 0000000..7b4d68d
--- /dev/null
+++ b/org.eclipse.osbp.xtext.action.tests/src/README.txt
@@ -0,0 +1 @@
+empty
\ No newline at end of file
diff --git a/org.eclipse.osbp.xtext.action.tests/xtend-gen/README.txt b/org.eclipse.osbp.xtext.action.tests/xtend-gen/README.txt
new file mode 100644
index 0000000..7b4d68d
--- /dev/null
+++ b/org.eclipse.osbp.xtext.action.tests/xtend-gen/README.txt
@@ -0,0 +1 @@
+empty
\ No newline at end of file
diff --git a/org.eclipse.osbp.xtext.action.ui/.project b/org.eclipse.osbp.xtext.action.ui/.project
new file mode 100644
index 0000000..7600098
--- /dev/null
+++ b/org.eclipse.osbp.xtext.action.ui/.project
@@ -0,0 +1,46 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>org.eclipse.osbp.xtext.action.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.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.action.ui/LICENSE.txt b/org.eclipse.osbp.xtext.action.ui/LICENSE.txt
new file mode 100644
index 0000000..ff42ad4
--- /dev/null
+++ b/org.eclipse.osbp.xtext.action.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.action.ui/META-INF/MANIFEST.MF b/org.eclipse.osbp.xtext.action.ui/META-INF/MANIFEST.MF
new file mode 100644
index 0000000..12b9ef4
--- /dev/null
+++ b/org.eclipse.osbp.xtext.action.ui/META-INF/MANIFEST.MF
@@ -0,0 +1,34 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: org.eclipse.osbp.xtext.action.ui
+Bundle-Vendor: Eclipse OSBP
+Bundle-Version: 0.9.0.qualifier
+Bundle-SymbolicName: org.eclipse.osbp.xtext.action.ui;singleton:=true
+Bundle-ActivationPolicy: lazy
+Require-Bundle: org.slf4j.api;bundle-version="1.7.2",
+ javax.annotation;bundle-version="[1.1.0,1.2.0)",
+ com.google.inject;bundle-version="3.0.0",
+ org.eclipse.xtext.ui,
+ org.eclipse.ui.editors;bundle-version="3.5.0",
+ org.eclipse.xtext.ui.shared,
+ org.eclipse.xtext.xbase.ui,
+ org.eclipse.ui,
+ org.eclipse.xtext.builder,
+ org.eclipse.xtext.xbase.lib,
+ org.antlr.runtime,
+ org.eclipse.xtext.common.types.ui,
+ org.eclipse.jdt.debug.ui,
+ org.eclipse.xtext.ui.codetemplates.ui,
+ org.eclipse.compare,
+ org.eclipse.osbp.xtext.functionlibrarydsl;bundle-version="[0.9.0,0.10.0)",
+ org.eclipse.osbp.utils;bundle-version="[0.9.0,0.10.0)",
+ org.eclipse.osbp.xtext.action;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.fork.mihalis.opal.imageSelector.osgi;bundle-version="[0.9.0,0.10.0)"
+Import-Package: org.apache.log4j
+Bundle-RequiredExecutionEnvironment: JavaSE-1.8
+Export-Package: org.eclipse.osbp.xtext.action.ui.contentassist;version="0.9.0",
+ org.eclipse.osbp.xtext.action.ui.contentassist.antlr;version="0.9.0",
+ org.eclipse.osbp.xtext.action.ui.internal;version="0.9.0",
+ org.eclipse.osbp.xtext.action.ui.quickfix;version="0.9.0"
+Bundle-Activator: org.eclipse.osbp.xtext.action.ui.internal.ActionDSLActivator
diff --git a/org.eclipse.osbp.xtext.action.ui/about.html b/org.eclipse.osbp.xtext.action.ui/about.html
new file mode 100644
index 0000000..64c0598
--- /dev/null
+++ b/org.eclipse.osbp.xtext.action.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.action.ui/about.ini b/org.eclipse.osbp.xtext.action.ui/about.ini
new file mode 100644
index 0000000..7df671f
--- /dev/null
+++ b/org.eclipse.osbp.xtext.action.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.action.ui/about.mappings b/org.eclipse.osbp.xtext.action.ui/about.mappings
new file mode 100644
index 0000000..4511a0a
--- /dev/null
+++ b/org.eclipse.osbp.xtext.action.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.action.ui/about.properties b/org.eclipse.osbp.xtext.action.ui/about.properties
new file mode 100644
index 0000000..a24da67
--- /dev/null
+++ b/org.eclipse.osbp.xtext.action.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.action.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.action.ui/build.properties b/org.eclipse.osbp.xtext.action.ui/build.properties
new file mode 100644
index 0000000..89cb2eb
--- /dev/null
+++ b/org.eclipse.osbp.xtext.action.ui/build.properties
@@ -0,0 +1,18 @@
+source.. = src/,\
+          src-gen/,\
+          xtend-gen/
+bin.includes = about.properties,  about.mappings,  about.ini,  about.html,  META-INF/,\
+               .,\
+               .settings/,\
+               plugin.xml,\
+               templates/,\
+               i18n/,\
+               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.action.ui/epl-v10.html b/org.eclipse.osbp.xtext.action.ui/epl-v10.html
new file mode 100644
index 0000000..b398acc
--- /dev/null
+++ b/org.eclipse.osbp.xtext.action.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.action.ui/i18n/I18N.properties b/org.eclipse.osbp.xtext.action.ui/i18n/I18N.properties
new file mode 100644
index 0000000..994e277
--- /dev/null
+++ b/org.eclipse.osbp.xtext.action.ui/i18n/I18N.properties
@@ -0,0 +1,114 @@
+#
+#Mon Jan 16 16:10:56 CET 2017
+org.eclipse.osbp.xtext.action.ActionButton=
+org.eclipse.osbp.xtext.action.ActionButton.canExecute=
+org.eclipse.osbp.xtext.action.ActionButton.described\ by=
+org.eclipse.osbp.xtext.action.ActionButton.executeParameter=
+org.eclipse.osbp.xtext.action.ActionButton.group=
+org.eclipse.osbp.xtext.action.ActionButton.icon=
+org.eclipse.osbp.xtext.action.ActionButton.item=
+org.eclipse.osbp.xtext.action.ActionButton.message=
+org.eclipse.osbp.xtext.action.ActionChart=
+org.eclipse.osbp.xtext.action.ActionChart.chartAction=
+org.eclipse.osbp.xtext.action.ActionDatainterchange=
+org.eclipse.osbp.xtext.action.ActionDatainterchange.datainterchangeAction=
+org.eclipse.osbp.xtext.action.ActionDialog=
+org.eclipse.osbp.xtext.action.ActionDialog.dialogAction=
+org.eclipse.osbp.xtext.action.ActionGeneric=
+org.eclipse.osbp.xtext.action.ActionGeneric.genericAction=
+org.eclipse.osbp.xtext.action.ActionImport=
+org.eclipse.osbp.xtext.action.ActionImport.import=
+org.eclipse.osbp.xtext.action.ActionModel=
+org.eclipse.osbp.xtext.action.ActionPackage=
+org.eclipse.osbp.xtext.action.ActionPackage.package=
+org.eclipse.osbp.xtext.action.ActionParameter=
+org.eclipse.osbp.xtext.action.ActionParameter.parameter=
+org.eclipse.osbp.xtext.action.ActionQualifiedNameWithWildCard=
+org.eclipse.osbp.xtext.action.ActionReport=
+org.eclipse.osbp.xtext.action.ActionReport.reportAction=
+org.eclipse.osbp.xtext.action.ActionSelectWorkload=
+org.eclipse.osbp.xtext.action.ActionSelectWorkload.selectWorkloadAction=
+org.eclipse.osbp.xtext.action.ActionTask=
+org.eclipse.osbp.xtext.action.ActionTask.taskAction=
+org.eclipse.osbp.xtext.action.ActionToolbar=
+org.eclipse.osbp.xtext.action.ActionToolbar.described\ by=
+org.eclipse.osbp.xtext.action.ActionToolbar.items=
+org.eclipse.osbp.xtext.action.ActionToolbar.items\ {=
+org.eclipse.osbp.xtext.action.ActionToolbar.toolbar=
+org.eclipse.osbp.xtext.action.ActionType=
+org.eclipse.osbp.xtext.action.ActionWorkflow=
+org.eclipse.osbp.xtext.action.ActionWorkflow.workflowAction=
+org.eclipse.osbp.xtext.action.ChartActionEnum=
+org.eclipse.osbp.xtext.action.ChartActionEnum.Download=
+org.eclipse.osbp.xtext.action.DatainterchangeActionEnum=
+org.eclipse.osbp.xtext.action.DatainterchangeActionEnum.Export=
+org.eclipse.osbp.xtext.action.DatainterchangeActionEnum.Import=
+org.eclipse.osbp.xtext.action.DialogActionEnum=
+org.eclipse.osbp.xtext.action.DialogActionEnum.Cancel=
+org.eclipse.osbp.xtext.action.DialogActionEnum.Delete=
+org.eclipse.osbp.xtext.action.DialogActionEnum.New=
+org.eclipse.osbp.xtext.action.DialogActionEnum.Save=
+org.eclipse.osbp.xtext.action.OSActionButton=
+org.eclipse.osbp.xtext.action.OSActionButton.canExecute=
+org.eclipse.osbp.xtext.action.OSActionButton.described\ by=
+org.eclipse.osbp.xtext.action.OSActionButton.executeParameter=
+org.eclipse.osbp.xtext.action.OSActionButton.group=
+org.eclipse.osbp.xtext.action.OSActionButton.icon=
+org.eclipse.osbp.xtext.action.OSActionButton.item=
+org.eclipse.osbp.xtext.action.OSActionButton.message=
+org.eclipse.osbp.xtext.action.OSActionChart=
+org.eclipse.osbp.xtext.action.OSActionChart.chartAction=
+org.eclipse.osbp.xtext.action.OSActionDialog=
+org.eclipse.osbp.xtext.action.OSActionDialog.dialogAction=
+org.eclipse.osbp.xtext.action.OSActionGeneric=
+org.eclipse.osbp.xtext.action.OSActionGeneric.genericAction=
+org.eclipse.osbp.xtext.action.OSActionImport=
+org.eclipse.osbp.xtext.action.OSActionImport.import=
+org.eclipse.osbp.xtext.action.OSActionModel=
+org.eclipse.osbp.xtext.action.OSActionPackage=
+org.eclipse.osbp.xtext.action.OSActionPackage.package=
+org.eclipse.osbp.xtext.action.OSActionParameter=
+org.eclipse.osbp.xtext.action.OSActionParameter.parameter=
+org.eclipse.osbp.xtext.action.OSActionQualifiedNameWithWildCard=
+org.eclipse.osbp.xtext.action.OSActionReport=
+org.eclipse.osbp.xtext.action.OSActionReport.reportAction=
+org.eclipse.osbp.xtext.action.OSActionTask=
+org.eclipse.osbp.xtext.action.OSActionTask.taskAction=
+org.eclipse.osbp.xtext.action.OSActionToolbar=
+org.eclipse.osbp.xtext.action.OSActionToolbar.described\ by=
+org.eclipse.osbp.xtext.action.OSActionToolbar.items\ {=
+org.eclipse.osbp.xtext.action.OSActionToolbar.toolbar=
+org.eclipse.osbp.xtext.action.OSActionType=
+org.eclipse.osbp.xtext.action.OSActionWorkflow=
+org.eclipse.osbp.xtext.action.OSActionWorkflow.workflowAction=
+org.eclipse.osbp.xtext.action.QualifiedName=
+org.eclipse.osbp.xtext.action.ReportActionEnum=
+org.eclipse.osbp.xtext.action.ReportActionEnum.Download=
+org.eclipse.osbp.xtext.action.ReportActionEnum.Print=
+org.eclipse.osbp.xtext.action.ReportActionEnum.PrintOnServer=
+org.eclipse.osbp.xtext.action.ReportActionEnum.Save=
+org.eclipse.osbp.xtext.action.SelectWorkloadActionEnum=
+org.eclipse.osbp.xtext.action.SelectWorkloadActionEnum.AddAll=
+org.eclipse.osbp.xtext.action.SelectWorkloadActionEnum.RemoveAll=
+org.eclipse.osbp.xtext.action.SignedNumber=
+org.eclipse.osbp.xtext.action.TRANSLATABLEID=
+org.eclipse.osbp.xtext.action.TRANSLATABLESTRING=
+org.eclipse.osbp.xtext.action.TaskActionEnum=
+org.eclipse.osbp.xtext.action.TaskActionEnum.Activate=
+org.eclipse.osbp.xtext.action.TaskActionEnum.Claim=
+org.eclipse.osbp.xtext.action.TaskActionEnum.Complete=
+org.eclipse.osbp.xtext.action.TaskActionEnum.Delegate=
+org.eclipse.osbp.xtext.action.TaskActionEnum.Exit=
+org.eclipse.osbp.xtext.action.TaskActionEnum.Fail=
+org.eclipse.osbp.xtext.action.TaskActionEnum.Forward=
+org.eclipse.osbp.xtext.action.TaskActionEnum.Register=
+org.eclipse.osbp.xtext.action.TaskActionEnum.Release=
+org.eclipse.osbp.xtext.action.TaskActionEnum.Remove=
+org.eclipse.osbp.xtext.action.TaskActionEnum.Resume=
+org.eclipse.osbp.xtext.action.TaskActionEnum.Skip=
+org.eclipse.osbp.xtext.action.TaskActionEnum.Start=
+org.eclipse.osbp.xtext.action.TaskActionEnum.Stop=
+org.eclipse.osbp.xtext.action.TaskActionEnum.Suspend=
+org.eclipse.osbp.xtext.action.ValidID=
+org.eclipse.osbp.xtext.action.WorkflowActionEnum=
+org.eclipse.osbp.xtext.action.WorkflowActionEnum.Start=
diff --git a/org.eclipse.osbp.xtext.action.ui/icons/dsl_action.png b/org.eclipse.osbp.xtext.action.ui/icons/dsl_action.png
new file mode 100644
index 0000000..58ea4de
--- /dev/null
+++ b/org.eclipse.osbp.xtext.action.ui/icons/dsl_action.png
Binary files differ
diff --git a/org.eclipse.osbp.xtext.action.ui/license.html b/org.eclipse.osbp.xtext.action.ui/license.html
new file mode 100644
index 0000000..6e579a5
--- /dev/null
+++ b/org.eclipse.osbp.xtext.action.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.action.ui/plugin.xml b/org.eclipse.osbp.xtext.action.ui/plugin.xml
new file mode 100644
index 0000000..db88ee9
--- /dev/null
+++ b/org.eclipse.osbp.xtext.action.ui/plugin.xml
@@ -0,0 +1,569 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.0"?>
+
+<plugin>
+
+    <extension
+            point="org.eclipse.ui.editors">
+        <editor
+              class="org.eclipse.osbp.xtext.action.ui.ActionDSLExecutableExtensionFactory:org.eclipse.xtext.ui.editor.XtextEditor"
+              contributorClass="org.eclipse.ui.editors.text.TextEditorActionContributor"
+              default="true"
+              extensions="action"
+              icon="icons/dsl_action.png"
+              id="org.eclipse.osbp.xtext.action.ActionDSL"
+              matchingStrategy="org.eclipse.osbp.xtext.action.ui.ActionDSLExecutableExtensionFactory:org.eclipse.xtext.xbase.ui.editor.JavaEditorInputMatcher"
+              name="OSBP ActionDSL Editor">
+        </editor>
+    </extension>
+    <extension
+        point="org.eclipse.ui.handlers">
+        <handler
+            class="org.eclipse.osbp.xtext.action.ui.ActionDSLExecutableExtensionFactory:org.eclipse.xtext.ui.editor.hyperlinking.OpenDeclarationHandler"
+            commandId="org.eclipse.xtext.ui.editor.hyperlinking.OpenDeclaration">
+            <activeWhen>
+                <reference
+                    definitionId="org.eclipse.osbp.xtext.action.ActionDSL.Editor.opened">
+                </reference>
+            </activeWhen>
+        </handler>
+        <handler
+            class="org.eclipse.osbp.xtext.action.ui.ActionDSLExecutableExtensionFactory:org.eclipse.xtext.ui.editor.handler.ValidateActionHandler"
+            commandId="org.eclipse.osbp.xtext.action.ActionDSL.validate">
+         <activeWhen>
+            <reference
+                    definitionId="org.eclipse.osbp.xtext.action.ActionDSL.Editor.opened">
+            </reference>
+         </activeWhen>
+      	</handler>
+      	<!-- copy qualified name -->
+        <handler
+            class="org.eclipse.osbp.xtext.action.ui.ActionDSLExecutableExtensionFactory:org.eclipse.xtext.ui.editor.copyqualifiedname.EditorCopyQualifiedNameHandler"
+            commandId="org.eclipse.xtext.ui.editor.copyqualifiedname.EditorCopyQualifiedName">
+            <activeWhen>
+				<reference definitionId="org.eclipse.osbp.xtext.action.ActionDSL.Editor.opened" />
+            </activeWhen>
+        </handler>
+        <handler
+            class="org.eclipse.osbp.xtext.action.ui.ActionDSLExecutableExtensionFactory:org.eclipse.xtext.ui.editor.copyqualifiedname.OutlineCopyQualifiedNameHandler"
+            commandId="org.eclipse.xtext.ui.editor.copyqualifiedname.OutlineCopyQualifiedName">
+            <activeWhen>
+            	<and>
+            		<reference definitionId="org.eclipse.osbp.xtext.action.ActionDSL.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.action.ActionDSL.Editor.opened">
+            <and>
+                <reference definitionId="isActiveEditorAnInstanceOfXtextEditor"/>
+                <with variable="activeEditor">
+                    <test property="org.eclipse.xtext.ui.editor.XtextEditor.languageName" 
+                        value="org.eclipse.osbp.xtext.action.ActionDSL" 
+                        forcePluginActivation="true"/>
+                </with>        
+            </and>
+        </definition>
+        <definition id="org.eclipse.osbp.xtext.action.ActionDSL.XtextEditor.opened">
+            <and>
+                <reference definitionId="isXtextEditorActive"/>
+                <with variable="activeEditor">
+                    <test property="org.eclipse.xtext.ui.editor.XtextEditor.languageName" 
+                        value="org.eclipse.osbp.xtext.action.ActionDSL" 
+                        forcePluginActivation="true"/>
+                </with>        
+            </and>
+        </definition>
+    </extension>
+    <extension
+            point="org.eclipse.ui.preferencePages">
+        <page
+            class="org.eclipse.osbp.xtext.action.ui.ActionDSLExecutableExtensionFactory:org.eclipse.xtext.ui.editor.preferences.LanguageRootPreferencePage"
+            id="org.eclipse.osbp.xtext.action.ActionDSL"
+ 		    icon="icons/dsl_action.png"
+            name="OSBP ActionDSL">
+            <keywordReference id="org.eclipse.osbp.xtext.action.ui.keyword_ActionDSL"/>
+        </page>
+        <page
+            category="org.eclipse.osbp.xtext.action.ActionDSL"
+            class="org.eclipse.osbp.xtext.action.ui.ActionDSLExecutableExtensionFactory:org.eclipse.xtext.ui.editor.syntaxcoloring.SyntaxColoringPreferencePage"
+            id="org.eclipse.osbp.xtext.action.ActionDSL.coloring"
+ 		    icon="icons/dsl_action.png"
+            name="Syntax Coloring">
+            <keywordReference id="org.eclipse.osbp.xtext.action.ui.keyword_ActionDSL"/>
+        </page>
+        <page
+            category="org.eclipse.osbp.xtext.action.ActionDSL"
+            class="org.eclipse.osbp.xtext.action.ui.ActionDSLExecutableExtensionFactory:org.eclipse.xtext.ui.editor.templates.XtextTemplatePreferencePage"
+            id="org.eclipse.osbp.xtext.action.ActionDSL.templates"
+ 		    icon="icons/dsl_action.png"
+            name="Templates">
+            <keywordReference id="org.eclipse.osbp.xtext.action.ui.keyword_ActionDSL"/>
+        </page>
+    </extension>
+    <extension
+            point="org.eclipse.ui.propertyPages">
+        <page
+              class="org.eclipse.osbp.xtext.action.ui.ActionDSLExecutableExtensionFactory:org.eclipse.xtext.ui.editor.preferences.LanguageRootPreferencePage"
+              icon="icons/dsl_action.png"
+              id="org.eclipse.osbp.xtext.action.ActionDSL"
+              name="OSBP ActionDSL">
+            <keywordReference id="org.eclipse.osbp.xtext.action.ui.keyword_ActionDSL"/>
+            <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.action.ui.keyword_ActionDSL"
+            label="ActionDSL"/>
+    </extension>
+    <extension
+         point="org.eclipse.ui.commands">
+      <command
+            description="Trigger expensive validation"
+            id="org.eclipse.osbp.xtext.action.ActionDSL.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.action.ActionDSL.validate"
+                 style="push"
+                 tooltip="Trigger expensive validation">
+            <visibleWhen checkEnabled="false">
+                <reference
+                    definitionId="org.eclipse.osbp.xtext.action.ActionDSL.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.action.ActionDSL.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.action.ActionDSL.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.action.ActionDSL.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.action.ActionDSL.Editor.opened">
+                	</reference>
+            	</visibleWhen>
+			</command>
+		</menuContribution>
+	</extension>
+	<extension point="org.eclipse.ui.handlers">
+	    <handler
+            class="org.eclipse.osbp.xtext.action.ui.ActionDSLExecutableExtensionFactory:org.eclipse.xtext.ui.editor.findrefs.FindReferencesHandler"
+            commandId="org.eclipse.xtext.ui.editor.FindReferences">
+            <activeWhen>
+                <reference
+                    definitionId="org.eclipse.osbp.xtext.action.ActionDSL.Editor.opened">
+                </reference>
+            </activeWhen>
+        </handler>
+    </extension>   
+
+<!-- adding resource factories -->
+
+	<extension
+		point="org.eclipse.emf.ecore.extension_parser">
+		<parser
+			class="org.eclipse.osbp.xtext.action.ui.ActionDSLExecutableExtensionFactory:org.eclipse.xtext.resource.IResourceFactory"
+			type="action">
+		</parser>
+	</extension>
+	<extension point="org.eclipse.xtext.extension_resourceServiceProvider">
+        <resourceServiceProvider
+            class="org.eclipse.osbp.xtext.action.ui.ActionDSLExecutableExtensionFactory:org.eclipse.xtext.ui.resource.IResourceUIServiceProvider"
+            uriExtension="action">
+        </resourceServiceProvider>
+    </extension>
+
+
+	<!-- marker definitions for org.eclipse.osbp.xtext.action.ActionDSL -->
+	<extension
+	        id="actiondsl.check.fast"
+	        name="OSBP ActionDSL Problem"
+	        point="org.eclipse.core.resources.markers">
+	    <super type="org.eclipse.xtext.ui.check.fast"/>
+	    <persistent value="true"/>
+	</extension>
+	<extension
+	        id="actiondsl.check.normal"
+	        name="OSBP ActionDSL Problem"
+	        point="org.eclipse.core.resources.markers">
+	    <super type="org.eclipse.xtext.ui.check.normal"/>
+	    <persistent value="true"/>
+	</extension>
+	<extension
+	        id="actiondsl.check.expensive"
+	        name="OSBP ActionDSL 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.action.ui.ActionDSLExecutableExtensionFactory:org.eclipse.xtext.builder.IXtextBuilderParticipant"
+            fileExtensions="action"
+            >
+      </participant>
+   </extension>
+   <extension
+            point="org.eclipse.ui.preferencePages">
+        <page
+            category="org.eclipse.osbp.xtext.action.ActionDSL"
+            class="org.eclipse.osbp.xtext.action.ui.ActionDSLExecutableExtensionFactory:org.eclipse.xtext.builder.preferences.BuilderPreferencePage"
+            id="org.eclipse.osbp.xtext.action.ActionDSL.compiler.preferencePage"
+            name="Compiler">
+            <keywordReference id="org.eclipse.osbp.xtext.action.ui.keyword_ActionDSL"/>
+        </page>
+    </extension>
+    <extension
+            point="org.eclipse.ui.propertyPages">
+        <page
+              category="org.eclipse.osbp.xtext.action.ActionDSL"
+              class="org.eclipse.osbp.xtext.action.ui.ActionDSLExecutableExtensionFactory:org.eclipse.xtext.builder.preferences.BuilderPreferencePage"
+              icon="icons/dsl_action.png"
+              id="org.eclipse.osbp.xtext.action.ActionDSL.compiler.propertyPage"
+              name="Compiler">
+            <keywordReference id="org.eclipse.osbp.xtext.action.ui.keyword_ActionDSL"/>
+            <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.action.ui.ActionDSLExecutableExtensionFactory:org.eclipse.xtext.ui.editor.outline.quickoutline.ShowQuickOutlineActionHandler"
+			commandId="org.eclipse.xtext.ui.editor.outline.QuickOutline">
+			<activeWhen>
+				<reference
+					definitionId="org.eclipse.osbp.xtext.action.ActionDSL.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.action.ActionDSL.Editor.opened"/>
+				</visibleWhen>
+			</command>
+		</menuContribution>
+	</extension>
+    <!-- quickfix marker resolution generator for org.eclipse.osbp.xtext.action.ActionDSL -->
+    <extension
+            point="org.eclipse.ui.ide.markerResolution">
+        <markerResolutionGenerator
+            class="org.eclipse.osbp.xtext.action.ui.ActionDSLExecutableExtensionFactory:org.eclipse.xtext.ui.editor.quickfix.MarkerResolutionGenerator"
+            markerType="org.eclipse.osbp.xtext.action.ui.actiondsl.check.fast">
+            <attribute
+                name="FIXABLE_KEY"
+                value="true">
+            </attribute>
+        </markerResolutionGenerator>
+        <markerResolutionGenerator
+            class="org.eclipse.osbp.xtext.action.ui.ActionDSLExecutableExtensionFactory:org.eclipse.xtext.ui.editor.quickfix.MarkerResolutionGenerator"
+            markerType="org.eclipse.osbp.xtext.action.ui.actiondsl.check.normal">
+            <attribute
+                name="FIXABLE_KEY"
+                value="true">
+            </attribute>
+        </markerResolutionGenerator>
+        <markerResolutionGenerator
+            class="org.eclipse.osbp.xtext.action.ui.ActionDSLExecutableExtensionFactory:org.eclipse.xtext.ui.editor.quickfix.MarkerResolutionGenerator"
+            markerType="org.eclipse.osbp.xtext.action.ui.actiondsl.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.action.ui.ActionDSLExecutableExtensionFactory:org.eclipse.xtext.ui.refactoring.ui.DefaultRenameElementHandler"
+			commandId="org.eclipse.xtext.ui.refactoring.RenameElement">
+			<activeWhen>
+				<reference
+					definitionId="org.eclipse.osbp.xtext.action.ActionDSL.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.action.ActionDSL.Editor.opened">
+               </reference>
+            </visibleWhen>
+         </command>
+      </menuContribution>
+   </extension>
+   <extension point="org.eclipse.ui.preferencePages">
+	    <page
+	        category="org.eclipse.osbp.xtext.action.ActionDSL"
+	        class="org.eclipse.osbp.xtext.action.ui.ActionDSLExecutableExtensionFactory:org.eclipse.xtext.ui.refactoring.ui.RefactoringPreferencePage"
+	        id="org.eclipse.osbp.xtext.action.ActionDSL.refactoring"
+ 		    icon="icons/dsl_action.png"
+	        name="Refactoring">
+	        <keywordReference id="org.eclipse.osbp.xtext.action.ui.keyword_ActionDSL"/>
+	    </page>
+	</extension>
+
+<!-- Type Hierarchy  -->
+	<extension
+		point="org.eclipse.ui.handlers">
+		<handler 
+			class="org.eclipse.osbp.xtext.action.ui.ActionDSLExecutableExtensionFactory:org.eclipse.xtext.xbase.ui.hierarchy.OpenTypeHierarchyHandler"
+			commandId="org.eclipse.xtext.xbase.ui.hierarchy.OpenTypeHierarchy">
+			<activeWhen>
+				<reference
+					definitionId="org.eclipse.osbp.xtext.action.ActionDSL.Editor.opened">
+				</reference>
+			</activeWhen>
+		</handler>
+		<handler 
+			class="org.eclipse.osbp.xtext.action.ui.ActionDSLExecutableExtensionFactory:org.eclipse.xtext.xbase.ui.hierarchy.QuickTypeHierarchyHandler"
+			commandId="org.eclipse.jdt.ui.edit.text.java.open.hierarchy">
+			<activeWhen>
+				<reference
+					definitionId="org.eclipse.osbp.xtext.action.ActionDSL.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.action.ActionDSL.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.action.ActionDSL.Editor.opened"/>
+				</visibleWhen>
+			</command>
+		</menuContribution>
+	</extension>
+	<!-- Call Hierachy -->
+	<extension
+		point="org.eclipse.ui.handlers">
+		<handler 
+			class="org.eclipse.osbp.xtext.action.ui.ActionDSLExecutableExtensionFactory:org.eclipse.xtext.xbase.ui.hierarchy.OpenCallHierachyHandler"
+			commandId="org.eclipse.xtext.xbase.ui.hierarchy.OpenCallHierarchy">
+			<activeWhen>
+				<reference
+					definitionId="org.eclipse.osbp.xtext.action.ActionDSL.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.action.ActionDSL.Editor.opened"/>
+				</visibleWhen>
+			</command>
+		</menuContribution>
+	</extension>
+	<extension
+         point="org.eclipse.core.runtime.adapters">
+      <factory class="org.eclipse.osbp.xtext.action.ui.ActionDSLExecutableExtensionFactory: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.action.ActionDSL" 
+                          id="org.eclipse.osbp.xtext.action.ActionDSL.rulerActions">
+	     <action
+	             label="Not Used"
+	             class="org.eclipse.osbp.xtext.action.ui.ActionDSLExecutableExtensionFactory:org.eclipse.debug.ui.actions.RulerToggleBreakpointActionDelegate"
+	             style="push"
+	             actionID="RulerDoubleClick"
+	             id="org.eclipse.osbp.xtext.action.ActionDSL.doubleClickBreakpointAction"/>
+	  </editorContribution>
+   </extension>
+   <extension point="org.eclipse.ui.popupMenus">
+      <viewerContribution
+         targetID="org.eclipse.osbp.xtext.action.ActionDSL.RulerContext"
+         id="org.eclipse.osbp.xtext.action.ActionDSL.RulerPopupActions">
+         <action
+            label="Toggle Breakpoint"
+            class="org.eclipse.osbp.xtext.action.ui.ActionDSLExecutableExtensionFactory:org.eclipse.debug.ui.actions.RulerToggleBreakpointActionDelegate"
+            menubarPath="debug"
+            id="org.eclipse.osbp.xtext.action.ActionDSL.rulerContextMenu.toggleBreakpointAction">
+         </action>
+         <action
+            label="Not used"
+            class="org.eclipse.osbp.xtext.action.ui.ActionDSLExecutableExtensionFactory:org.eclipse.debug.ui.actions.RulerEnableDisableBreakpointActionDelegate"
+            menubarPath="debug"
+            id="org.eclipse.osbp.xtext.action.ActionDSL.rulerContextMenu.enableDisableBreakpointAction">
+         </action>
+         <action
+           label="Breakpoint Properties"
+           helpContextId="breakpoint_properties_action_context"
+           class="org.eclipse.osbp.xtext.action.ui.ActionDSLExecutableExtensionFactory:org.eclipse.jdt.debug.ui.actions.JavaBreakpointPropertiesRulerActionDelegate"
+           menubarPath="group.properties"
+           id="org.eclipse.osbp.xtext.action.ActionDSL.rulerContextMenu.openBreapointPropertiesAction">
+         </action>
+      </viewerContribution>
+   </extension>
+    <!-- Introduce Local Variable Refactoring -->
+	<extension point="org.eclipse.ui.handlers">
+		<handler 
+			class="org.eclipse.osbp.xtext.action.ui.ActionDSLExecutableExtensionFactory:org.eclipse.xtext.xbase.ui.refactoring.ExtractVariableHandler"
+			commandId="org.eclipse.xtext.xbase.ui.refactoring.ExtractLocalVariable">
+			<activeWhen>
+				<reference
+					definitionId="org.eclipse.osbp.xtext.action.ActionDSL.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.action.ActionDSL.Editor.opened">
+               </reference>
+            </visibleWhen>
+         </command>
+      </menuContribution>
+   </extension>  
+   <!-- Open implementation -->
+   <extension point="org.eclipse.ui.handlers">
+      <handler
+            class="org.eclipse.osbp.xtext.action.ui.ActionDSLExecutableExtensionFactory:org.eclipse.xtext.xbase.ui.navigation.OpenImplementationHandler"
+            commandId="org.eclipse.xtext.xbase.ui.OpenImplementationCommand">
+            <activeWhen>
+				<reference
+					definitionId="org.eclipse.osbp.xtext.action.ActionDSL.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.action.ActionDSL.Editor.opened">
+              </reference>
+		</visibleWhen>
+         </command>
+      </menuContribution>
+   </extension>
+
+  <extension point="org.eclipse.compare.contentViewers">
+    <viewer id="org.eclipse.osbp.xtext.action.ActionDSL.compare.contentViewers"
+            class="org.eclipse.osbp.xtext.action.ui.ActionDSLExecutableExtensionFactory:org.eclipse.xtext.ui.compare.InjectableViewerCreator"
+            extensions="action">
+    </viewer>
+  </extension>
+  <extension point="org.eclipse.compare.contentMergeViewers">
+    <viewer id="org.eclipse.osbp.xtext.action.ActionDSL.compare.contentMergeViewers"
+            class="org.eclipse.osbp.xtext.action.ui.ActionDSLExecutableExtensionFactory:org.eclipse.xtext.ui.compare.InjectableViewerCreator"
+            extensions="action" label="ActionDSL Compare">
+     </viewer>
+  </extension>
+  <extension point="org.eclipse.ui.editors.documentProviders">
+    <provider id="org.eclipse.osbp.xtext.action.ActionDSL.editors.documentProviders"
+            class="org.eclipse.osbp.xtext.action.ui.ActionDSLExecutableExtensionFactory:org.eclipse.xtext.ui.editor.model.XtextDocumentProvider"
+            extensions="action">
+    </provider>
+  </extension>
+
+</plugin>
diff --git a/org.eclipse.osbp.xtext.action.ui/plugin.xml_gen b/org.eclipse.osbp.xtext.action.ui/plugin.xml_gen
new file mode 100644
index 0000000..01fa408
--- /dev/null
+++ b/org.eclipse.osbp.xtext.action.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.action.ui.ActionDSLExecutableExtensionFactory:org.eclipse.xtext.ui.editor.XtextEditor"
+            contributorClass="org.eclipse.ui.editors.text.TextEditorActionContributor"
+            default="true"
+            extensions="action"
+            id="org.eclipse.osbp.xtext.action.ActionDSL"
+            matchingStrategy="org.eclipse.osbp.xtext.action.ui.ActionDSLExecutableExtensionFactory:org.eclipse.xtext.xbase.ui.editor.JavaEditorInputMatcher"
+            name="ActionDSL Editor">
+        </editor>
+    </extension>
+    <extension
+        point="org.eclipse.ui.handlers">
+        <handler
+            class="org.eclipse.osbp.xtext.action.ui.ActionDSLExecutableExtensionFactory:org.eclipse.xtext.ui.editor.hyperlinking.OpenDeclarationHandler"
+            commandId="org.eclipse.xtext.ui.editor.hyperlinking.OpenDeclaration">
+            <activeWhen>
+                <reference
+                    definitionId="org.eclipse.osbp.xtext.action.ActionDSL.Editor.opened">
+                </reference>
+            </activeWhen>
+        </handler>
+        <handler
+            class="org.eclipse.osbp.xtext.action.ui.ActionDSLExecutableExtensionFactory:org.eclipse.xtext.ui.editor.handler.ValidateActionHandler"
+            commandId="org.eclipse.osbp.xtext.action.ActionDSL.validate">
+         <activeWhen>
+            <reference
+                    definitionId="org.eclipse.osbp.xtext.action.ActionDSL.Editor.opened">
+            </reference>
+         </activeWhen>
+      	</handler>
+      	<!-- copy qualified name -->
+        <handler
+            class="org.eclipse.osbp.xtext.action.ui.ActionDSLExecutableExtensionFactory:org.eclipse.xtext.ui.editor.copyqualifiedname.EditorCopyQualifiedNameHandler"
+            commandId="org.eclipse.xtext.ui.editor.copyqualifiedname.EditorCopyQualifiedName">
+            <activeWhen>
+				<reference definitionId="org.eclipse.osbp.xtext.action.ActionDSL.Editor.opened" />
+            </activeWhen>
+        </handler>
+        <handler
+            class="org.eclipse.osbp.xtext.action.ui.ActionDSLExecutableExtensionFactory:org.eclipse.xtext.ui.editor.copyqualifiedname.OutlineCopyQualifiedNameHandler"
+            commandId="org.eclipse.xtext.ui.editor.copyqualifiedname.OutlineCopyQualifiedName">
+            <activeWhen>
+            	<and>
+            		<reference definitionId="org.eclipse.osbp.xtext.action.ActionDSL.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.action.ActionDSL.Editor.opened">
+            <and>
+                <reference definitionId="isActiveEditorAnInstanceOfXtextEditor"/>
+                <with variable="activeEditor">
+                    <test property="org.eclipse.xtext.ui.editor.XtextEditor.languageName" 
+                        value="org.eclipse.osbp.xtext.action.ActionDSL" 
+                        forcePluginActivation="true"/>
+                </with>        
+            </and>
+        </definition>
+        <definition id="org.eclipse.osbp.xtext.action.ActionDSL.XtextEditor.opened">
+            <and>
+                <reference definitionId="isXtextEditorActive"/>
+                <with variable="activeEditor">
+                    <test property="org.eclipse.xtext.ui.editor.XtextEditor.languageName" 
+                        value="org.eclipse.osbp.xtext.action.ActionDSL" 
+                        forcePluginActivation="true"/>
+                </with>        
+            </and>
+        </definition>
+    </extension>
+    <extension
+            point="org.eclipse.ui.preferencePages">
+        <page
+            class="org.eclipse.osbp.xtext.action.ui.ActionDSLExecutableExtensionFactory:org.eclipse.xtext.ui.editor.preferences.LanguageRootPreferencePage"
+            id="org.eclipse.osbp.xtext.action.ActionDSL"
+            name="ActionDSL">
+            <keywordReference id="org.eclipse.osbp.xtext.action.ui.keyword_ActionDSL"/>
+        </page>
+        <page
+            category="org.eclipse.osbp.xtext.action.ActionDSL"
+            class="org.eclipse.osbp.xtext.action.ui.ActionDSLExecutableExtensionFactory:org.eclipse.xtext.ui.editor.syntaxcoloring.SyntaxColoringPreferencePage"
+            id="org.eclipse.osbp.xtext.action.ActionDSL.coloring"
+            name="Syntax Coloring">
+            <keywordReference id="org.eclipse.osbp.xtext.action.ui.keyword_ActionDSL"/>
+        </page>
+        <page
+            category="org.eclipse.osbp.xtext.action.ActionDSL"
+            class="org.eclipse.osbp.xtext.action.ui.ActionDSLExecutableExtensionFactory:org.eclipse.xtext.ui.editor.templates.XtextTemplatePreferencePage"
+            id="org.eclipse.osbp.xtext.action.ActionDSL.templates"
+            name="Templates">
+            <keywordReference id="org.eclipse.osbp.xtext.action.ui.keyword_ActionDSL"/>
+        </page>
+    </extension>
+    <extension
+            point="org.eclipse.ui.propertyPages">
+        <page
+            class="org.eclipse.osbp.xtext.action.ui.ActionDSLExecutableExtensionFactory:org.eclipse.xtext.ui.editor.preferences.LanguageRootPreferencePage"
+            id="org.eclipse.osbp.xtext.action.ActionDSL"
+            name="ActionDSL">
+            <keywordReference id="org.eclipse.osbp.xtext.action.ui.keyword_ActionDSL"/>
+            <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.action.ui.keyword_ActionDSL"
+            label="ActionDSL"/>
+    </extension>
+    <extension
+         point="org.eclipse.ui.commands">
+      <command
+            description="Trigger expensive validation"
+            id="org.eclipse.osbp.xtext.action.ActionDSL.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.action.ActionDSL.validate"
+                 style="push"
+                 tooltip="Trigger expensive validation">
+            <visibleWhen checkEnabled="false">
+                <reference
+                    definitionId="org.eclipse.osbp.xtext.action.ActionDSL.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.action.ActionDSL.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.action.ActionDSL.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.action.ActionDSL.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.action.ActionDSL.Editor.opened">
+                	</reference>
+            	</visibleWhen>
+			</command>
+		</menuContribution>
+	</extension>
+	<extension point="org.eclipse.ui.handlers">
+	    <handler
+            class="org.eclipse.osbp.xtext.action.ui.ActionDSLExecutableExtensionFactory:org.eclipse.xtext.ui.editor.findrefs.FindReferencesHandler"
+            commandId="org.eclipse.xtext.ui.editor.FindReferences">
+            <activeWhen>
+                <reference
+                    definitionId="org.eclipse.osbp.xtext.action.ActionDSL.Editor.opened">
+                </reference>
+            </activeWhen>
+        </handler>
+    </extension>   
+
+<!-- adding resource factories -->
+
+	<extension
+		point="org.eclipse.emf.ecore.extension_parser">
+		<parser
+			class="org.eclipse.osbp.xtext.action.ui.ActionDSLExecutableExtensionFactory:org.eclipse.xtext.resource.IResourceFactory"
+			type="action">
+		</parser>
+	</extension>
+	<extension point="org.eclipse.xtext.extension_resourceServiceProvider">
+        <resourceServiceProvider
+            class="org.eclipse.osbp.xtext.action.ui.ActionDSLExecutableExtensionFactory:org.eclipse.xtext.ui.resource.IResourceUIServiceProvider"
+            uriExtension="action">
+        </resourceServiceProvider>
+    </extension>
+
+
+	<!-- marker definitions for org.eclipse.osbp.xtext.action.ActionDSL -->
+	<extension
+	        id="actiondsl.check.fast"
+	        name="ActionDSL Problem"
+	        point="org.eclipse.core.resources.markers">
+	    <super type="org.eclipse.xtext.ui.check.fast"/>
+	    <persistent value="true"/>
+	</extension>
+	<extension
+	        id="actiondsl.check.normal"
+	        name="ActionDSL Problem"
+	        point="org.eclipse.core.resources.markers">
+	    <super type="org.eclipse.xtext.ui.check.normal"/>
+	    <persistent value="true"/>
+	</extension>
+	<extension
+	        id="actiondsl.check.expensive"
+	        name="ActionDSL 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.action.ui.ActionDSLExecutableExtensionFactory:org.eclipse.xtext.builder.IXtextBuilderParticipant"
+            fileExtensions="action"
+            >
+      </participant>
+   </extension>
+   <extension
+            point="org.eclipse.ui.preferencePages">
+        <page
+            category="org.eclipse.osbp.xtext.action.ActionDSL"
+            class="org.eclipse.osbp.xtext.action.ui.ActionDSLExecutableExtensionFactory:org.eclipse.xtext.builder.preferences.BuilderPreferencePage"
+            id="org.eclipse.osbp.xtext.action.ActionDSL.compiler.preferencePage"
+            name="Compiler">
+            <keywordReference id="org.eclipse.osbp.xtext.action.ui.keyword_ActionDSL"/>
+        </page>
+    </extension>
+    <extension
+            point="org.eclipse.ui.propertyPages">
+        <page
+            category="org.eclipse.osbp.xtext.action.ActionDSL"
+            class="org.eclipse.osbp.xtext.action.ui.ActionDSLExecutableExtensionFactory:org.eclipse.xtext.builder.preferences.BuilderPreferencePage"
+            id="org.eclipse.osbp.xtext.action.ActionDSL.compiler.propertyPage"
+            name="Compiler">
+            <keywordReference id="org.eclipse.osbp.xtext.action.ui.keyword_ActionDSL"/>
+            <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.action.ui.ActionDSLExecutableExtensionFactory:org.eclipse.xtext.ui.editor.outline.quickoutline.ShowQuickOutlineActionHandler"
+			commandId="org.eclipse.xtext.ui.editor.outline.QuickOutline">
+			<activeWhen>
+				<reference
+					definitionId="org.eclipse.osbp.xtext.action.ActionDSL.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.action.ActionDSL.Editor.opened"/>
+				</visibleWhen>
+			</command>
+		</menuContribution>
+	</extension>
+    <!-- quickfix marker resolution generator for org.eclipse.osbp.xtext.action.ActionDSL -->
+    <extension
+            point="org.eclipse.ui.ide.markerResolution">
+        <markerResolutionGenerator
+            class="org.eclipse.osbp.xtext.action.ui.ActionDSLExecutableExtensionFactory:org.eclipse.xtext.ui.editor.quickfix.MarkerResolutionGenerator"
+            markerType="org.eclipse.osbp.xtext.action.ui.actiondsl.check.fast">
+            <attribute
+                name="FIXABLE_KEY"
+                value="true">
+            </attribute>
+        </markerResolutionGenerator>
+        <markerResolutionGenerator
+            class="org.eclipse.osbp.xtext.action.ui.ActionDSLExecutableExtensionFactory:org.eclipse.xtext.ui.editor.quickfix.MarkerResolutionGenerator"
+            markerType="org.eclipse.osbp.xtext.action.ui.actiondsl.check.normal">
+            <attribute
+                name="FIXABLE_KEY"
+                value="true">
+            </attribute>
+        </markerResolutionGenerator>
+        <markerResolutionGenerator
+            class="org.eclipse.osbp.xtext.action.ui.ActionDSLExecutableExtensionFactory:org.eclipse.xtext.ui.editor.quickfix.MarkerResolutionGenerator"
+            markerType="org.eclipse.osbp.xtext.action.ui.actiondsl.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.action.ui.ActionDSLExecutableExtensionFactory:org.eclipse.xtext.ui.refactoring.ui.DefaultRenameElementHandler"
+			commandId="org.eclipse.xtext.ui.refactoring.RenameElement">
+			<activeWhen>
+				<reference
+					definitionId="org.eclipse.osbp.xtext.action.ActionDSL.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.action.ActionDSL.Editor.opened">
+               </reference>
+            </visibleWhen>
+         </command>
+      </menuContribution>
+   </extension>
+   <extension point="org.eclipse.ui.preferencePages">
+	    <page
+	        category="org.eclipse.osbp.xtext.action.ActionDSL"
+	        class="org.eclipse.osbp.xtext.action.ui.ActionDSLExecutableExtensionFactory:org.eclipse.xtext.ui.refactoring.ui.RefactoringPreferencePage"
+	        id="org.eclipse.osbp.xtext.action.ActionDSL.refactoring"
+	        name="Refactoring">
+	        <keywordReference id="org.eclipse.osbp.xtext.action.ui.keyword_ActionDSL"/>
+	    </page>
+	</extension>
+
+<!-- Type Hierarchy  -->
+	<extension
+		point="org.eclipse.ui.handlers">
+		<handler 
+			class="org.eclipse.osbp.xtext.action.ui.ActionDSLExecutableExtensionFactory:org.eclipse.xtext.xbase.ui.hierarchy.OpenTypeHierarchyHandler"
+			commandId="org.eclipse.xtext.xbase.ui.hierarchy.OpenTypeHierarchy">
+			<activeWhen>
+				<reference
+					definitionId="org.eclipse.osbp.xtext.action.ActionDSL.Editor.opened">
+				</reference>
+			</activeWhen>
+		</handler>
+		<handler 
+			class="org.eclipse.osbp.xtext.action.ui.ActionDSLExecutableExtensionFactory:org.eclipse.xtext.xbase.ui.hierarchy.QuickTypeHierarchyHandler"
+			commandId="org.eclipse.jdt.ui.edit.text.java.open.hierarchy">
+			<activeWhen>
+				<reference
+					definitionId="org.eclipse.osbp.xtext.action.ActionDSL.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.action.ActionDSL.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.action.ActionDSL.Editor.opened"/>
+				</visibleWhen>
+			</command>
+		</menuContribution>
+	</extension>
+	<!-- Call Hierachy -->
+	<extension
+		point="org.eclipse.ui.handlers">
+		<handler 
+			class="org.eclipse.osbp.xtext.action.ui.ActionDSLExecutableExtensionFactory:org.eclipse.xtext.xbase.ui.hierarchy.OpenCallHierachyHandler"
+			commandId="org.eclipse.xtext.xbase.ui.hierarchy.OpenCallHierarchy">
+			<activeWhen>
+				<reference
+					definitionId="org.eclipse.osbp.xtext.action.ActionDSL.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.action.ActionDSL.Editor.opened"/>
+				</visibleWhen>
+			</command>
+		</menuContribution>
+	</extension>
+	<extension
+         point="org.eclipse.core.runtime.adapters">
+      <factory class="org.eclipse.osbp.xtext.action.ui.ActionDSLExecutableExtensionFactory: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.action.ActionDSL" 
+                          id="org.eclipse.osbp.xtext.action.ActionDSL.rulerActions">
+	     <action
+	             label="Not Used"
+	             class="org.eclipse.osbp.xtext.action.ui.ActionDSLExecutableExtensionFactory:org.eclipse.debug.ui.actions.RulerToggleBreakpointActionDelegate"
+	             style="push"
+	             actionID="RulerDoubleClick"
+	             id="org.eclipse.osbp.xtext.action.ActionDSL.doubleClickBreakpointAction"/>
+	  </editorContribution>
+   </extension>
+   <extension point="org.eclipse.ui.popupMenus">
+      <viewerContribution
+         targetID="org.eclipse.osbp.xtext.action.ActionDSL.RulerContext"
+         id="org.eclipse.osbp.xtext.action.ActionDSL.RulerPopupActions">
+         <action
+            label="Toggle Breakpoint"
+            class="org.eclipse.osbp.xtext.action.ui.ActionDSLExecutableExtensionFactory:org.eclipse.debug.ui.actions.RulerToggleBreakpointActionDelegate"
+            menubarPath="debug"
+            id="org.eclipse.osbp.xtext.action.ActionDSL.rulerContextMenu.toggleBreakpointAction">
+         </action>
+         <action
+            label="Not used"
+            class="org.eclipse.osbp.xtext.action.ui.ActionDSLExecutableExtensionFactory:org.eclipse.debug.ui.actions.RulerEnableDisableBreakpointActionDelegate"
+            menubarPath="debug"
+            id="org.eclipse.osbp.xtext.action.ActionDSL.rulerContextMenu.enableDisableBreakpointAction">
+         </action>
+         <action
+           label="Breakpoint Properties"
+           helpContextId="breakpoint_properties_action_context"
+           class="org.eclipse.osbp.xtext.action.ui.ActionDSLExecutableExtensionFactory:org.eclipse.jdt.debug.ui.actions.JavaBreakpointPropertiesRulerActionDelegate"
+           menubarPath="group.properties"
+           id="org.eclipse.osbp.xtext.action.ActionDSL.rulerContextMenu.openBreapointPropertiesAction">
+         </action>
+      </viewerContribution>
+   </extension>
+    <!-- Introduce Local Variable Refactoring -->
+	<extension point="org.eclipse.ui.handlers">
+		<handler 
+			class="org.eclipse.osbp.xtext.action.ui.ActionDSLExecutableExtensionFactory:org.eclipse.xtext.xbase.ui.refactoring.ExtractVariableHandler"
+			commandId="org.eclipse.xtext.xbase.ui.refactoring.ExtractLocalVariable">
+			<activeWhen>
+				<reference
+					definitionId="org.eclipse.osbp.xtext.action.ActionDSL.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.action.ActionDSL.Editor.opened">
+               </reference>
+            </visibleWhen>
+         </command>
+      </menuContribution>
+   </extension>  
+   <!-- Open implementation -->
+   <extension point="org.eclipse.ui.handlers">
+      <handler
+            class="org.eclipse.osbp.xtext.action.ui.ActionDSLExecutableExtensionFactory:org.eclipse.xtext.xbase.ui.navigation.OpenImplementationHandler"
+            commandId="org.eclipse.xtext.xbase.ui.OpenImplementationCommand">
+            <activeWhen>
+				<reference
+					definitionId="org.eclipse.osbp.xtext.action.ActionDSL.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.action.ActionDSL.Editor.opened">
+              </reference>
+		</visibleWhen>
+         </command>
+      </menuContribution>
+   </extension>
+
+  <extension point="org.eclipse.compare.contentViewers">
+    <viewer id="org.eclipse.osbp.xtext.action.ActionDSL.compare.contentViewers"
+            class="org.eclipse.osbp.xtext.action.ui.ActionDSLExecutableExtensionFactory:org.eclipse.xtext.ui.compare.InjectableViewerCreator"
+            extensions="action">
+    </viewer>
+  </extension>
+  <extension point="org.eclipse.compare.contentMergeViewers">
+    <viewer id="org.eclipse.osbp.xtext.action.ActionDSL.compare.contentMergeViewers"
+            class="org.eclipse.osbp.xtext.action.ui.ActionDSLExecutableExtensionFactory:org.eclipse.xtext.ui.compare.InjectableViewerCreator"
+            extensions="action" label="ActionDSL Compare">
+     </viewer>
+  </extension>
+  <extension point="org.eclipse.ui.editors.documentProviders">
+    <provider id="org.eclipse.osbp.xtext.action.ActionDSL.editors.documentProviders"
+            class="org.eclipse.osbp.xtext.action.ui.ActionDSLExecutableExtensionFactory:org.eclipse.xtext.ui.editor.model.XtextDocumentProvider"
+            extensions="action">
+    </provider>
+  </extension>
+
+</plugin>
diff --git a/org.eclipse.osbp.xtext.action.ui/pom.xml b/org.eclipse.osbp.xtext.action.ui/pom.xml
new file mode 100644
index 0000000..67d4c7a
--- /dev/null
+++ b/org.eclipse.osbp.xtext.action.ui/pom.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--#======================================================================= -->
+<!--# Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) -->
+<!--# All rights reserved. This program and the accompanying materials -->
+<!--# are made available under the terms of the Eclipse Public License v1.0 -->
+<!--# which accompanies this distribution, and is available at -->
+<!--# http://www.eclipse.org/legal/epl-v10.html -->
+<!--# -->
+<!--# Contributors: -->
+<!--#     Christophe Loetz (Loetz GmbH&Co.KG) - initial API and implementation -->
+<!--#======================================================================= -->
+
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+    <artifactId>org.eclipse.osbp.xtext.action.ui</artifactId>
+    <packaging>eclipse-plugin</packaging>
+    <parent>
+        <groupId>org.eclipse.osbp.xtext.action</groupId>
+        <artifactId>org.eclipse.osbp.xtext.action.aggregator</artifactId>
+        <version>0.9.0-SNAPSHOT</version>
+        <relativePath>..</relativePath>
+    </parent>
+</project>
diff --git a/org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/AbstractActionDSLUiModule.java b/org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/AbstractActionDSLUiModule.java
new file mode 100644
index 0000000..080f02f
--- /dev/null
+++ b/org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/AbstractActionDSLUiModule.java
@@ -0,0 +1,374 @@
+/**
+ *                                                                            
+ *  Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) 
+ *                                                                            
+ *  All rights reserved. This program and the accompanying materials           
+ *  are made available under the 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.action.ui;
+
+import org.eclipse.xtext.ui.DefaultUiModule;
+import org.eclipse.ui.plugin.AbstractUIPlugin;
+
+/**
+ * Manual modifications go to {org.eclipse.osbp.xtext.action.ui.ActionDSLUiModule}
+ */
+@SuppressWarnings("all")
+public abstract class AbstractActionDSLUiModule extends DefaultUiModule {
+	
+	public AbstractActionDSLUiModule(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.action.parser.antlr.internal.InternalActionDSLLexer.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.action.ui.labeling.ActionDSLLabelProvider.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.action.ui.labeling.ActionDSLDescriptionLabelProvider.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.action.ui.outline.ActionDSLOutlineTreeProvider.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.action.ui.outline.ActionDSLOutlineTreeProvider.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.action.ui.quickfix.ActionDSLQuickfixProvider.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.action.ui.contentassist.ActionDSLProposalProvider.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.action.ui.contentassist.antlr.ActionDSLParser.class;
+	}
+
+	// contributed by org.eclipse.xtext.generator.parser.antlr.XtextAntlrUiGeneratorFragment
+	public void configureContentAssistLexerProvider(com.google.inject.Binder binder) {
+		binder.bind(org.eclipse.osbp.xtext.action.ui.contentassist.antlr.internal.InternalActionDSLLexer.class).toProvider(org.eclipse.xtext.parser.antlr.LexerProvider.create(org.eclipse.osbp.xtext.action.ui.contentassist.antlr.internal.InternalActionDSLLexer.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.action.ui.contentassist.antlr.internal.InternalActionDSLLexer.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.action.ui.contentassist.antlr.PartialActionDSLContentAssistParser.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.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/ActionDSLExecutableExtensionFactory.java b/org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/ActionDSLExecutableExtensionFactory.java
new file mode 100644
index 0000000..a72993a
--- /dev/null
+++ b/org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/ActionDSLExecutableExtensionFactory.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.action.ui;
+
+import org.eclipse.xtext.ui.guice.AbstractGuiceAwareExecutableExtensionFactory;
+import org.osgi.framework.Bundle;
+
+import com.google.inject.Injector;
+
+import org.eclipse.osbp.xtext.action.ui.internal.ActionDSLActivator;
+
+/**
+ * This class was generated. Customizations should only happen in a newly
+ * introduced subclass. 
+ */
+public class ActionDSLExecutableExtensionFactory extends AbstractGuiceAwareExecutableExtensionFactory {
+
+	@Override
+	protected Bundle getBundle() {
+		return ActionDSLActivator.getInstance().getBundle();
+	}
+	
+	@Override
+	protected Injector getInjector() {
+		return ActionDSLActivator.getInstance().getInjector(ActionDSLActivator.ORG_ECLIPSE_OSBP_XTEXT_ACTION_ACTIONDSL);
+	}
+	
+}
diff --git a/org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/AbstractActionDSLProposalProvider.java b/org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/AbstractActionDSLProposalProvider.java
new file mode 100644
index 0000000..bc8b647
--- /dev/null
+++ b/org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/AbstractActionDSLProposalProvider.java
@@ -0,0 +1,198 @@
+/**
+ *                                                                            
+ *  Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) 
+ *                                                                            
+ *  All rights reserved. This program and the accompanying materials           
+ *  are made available under the 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.action.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 AbstractActionDSLProposalProvider extends org.eclipse.xtext.xbase.annotations.ui.contentassist.XbaseWithAnnotationsProposalProvider {
+		
+	public void completeActionModel_Packages(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeActionPackage_Name(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeActionPackage_Imports(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeActionPackage_Toolbars(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeActionToolbar_Name(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeActionToolbar_Description(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
+	public void completeActionToolbar_DescriptionValue(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeActionToolbar_Actions(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeActionButton_Name(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeActionButton_Description(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
+	public void completeActionButton_DescriptionValue(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeActionButton_IconURI(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeActionButton_Group(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		lookupCrossReference(((CrossReference)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeActionButton_Canexecute(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		lookupCrossReference(((CrossReference)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeActionButton_Executeparameter(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		lookupCrossReference(((CrossReference)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeActionButton_ActionType(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeActionButton_Message(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		lookupCrossReference(((CrossReference)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeActionTask_Action(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeActionSelectWorkload_Action(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeActionDialog_Action(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeActionReport_Action(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeActionChart_Action(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeActionWorkflow_Action(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeActionDatainterchange_Action(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeActionDatainterchange_DataRef(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		lookupCrossReference(((CrossReference)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeActionGeneric_Action(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeActionParameter_Parameter(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		lookupCrossReference(((CrossReference)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeActionImport_ImportedNamespace(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+    
+	public void complete_ActionModel(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
+	public void complete_ActionPackage(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
+	public void complete_ActionToolbar(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
+	public void complete_ActionButton(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
+	public void complete_ActionType(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
+	public void complete_ActionTask(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
+	public void complete_ActionSelectWorkload(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
+	public void complete_ActionDialog(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
+	public void complete_ActionReport(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
+	public void complete_ActionChart(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
+	public void complete_ActionWorkflow(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
+	public void complete_ActionDatainterchange(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
+	public void complete_ActionGeneric(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
+	public void complete_ActionParameter(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
+	public void complete_ActionImport(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_ActionQualifiedNameWithWildCard(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
+	public void complete_QualifiedName(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
+	public void complete_ValidID(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
+	public void complete_TRANSLATABLEID(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
+	}
+	public void complete_TaskActionEnum(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
+	public void complete_SelectWorkloadActionEnum(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
+	public void complete_DialogActionEnum(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
+	public void complete_ReportActionEnum(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
+	public void complete_ChartActionEnum(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
+	public void complete_WorkflowActionEnum(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
+	public void complete_DatainterchangeActionEnum(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
+}
diff --git a/org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/ActionDSLParser.java b/org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/ActionDSLParser.java
new file mode 100644
index 0000000..9189d1e
--- /dev/null
+++ b/org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/ActionDSLParser.java
@@ -0,0 +1,536 @@
+/**
+ *                                                                            
+ *  Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) 
+ *                                                                            
+ *  All rights reserved. This program and the accompanying materials           
+ *  are made available under the 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.action.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.action.services.ActionDSLGrammarAccess;
+
+public class ActionDSLParser extends AbstractContentAssistParser {
+	
+	@Inject
+	private ActionDSLGrammarAccess grammarAccess;
+	
+	private Map<AbstractElement, String> nameMappings;
+	
+	@Override
+	protected org.eclipse.osbp.xtext.action.ui.contentassist.antlr.internal.InternalActionDSLParser createParser() {
+		org.eclipse.osbp.xtext.action.ui.contentassist.antlr.internal.InternalActionDSLParser result = new org.eclipse.osbp.xtext.action.ui.contentassist.antlr.internal.InternalActionDSLParser(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.getActionTypeAccess().getAlternatives(), "rule__ActionType__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.getTaskActionEnumAccess().getAlternatives(), "rule__TaskActionEnum__Alternatives");
+					put(grammarAccess.getSelectWorkloadActionEnumAccess().getAlternatives(), "rule__SelectWorkloadActionEnum__Alternatives");
+					put(grammarAccess.getDialogActionEnumAccess().getAlternatives(), "rule__DialogActionEnum__Alternatives");
+					put(grammarAccess.getReportActionEnumAccess().getAlternatives(), "rule__ReportActionEnum__Alternatives");
+					put(grammarAccess.getDatainterchangeActionEnumAccess().getAlternatives(), "rule__DatainterchangeActionEnum__Alternatives");
+					put(grammarAccess.getActionPackageAccess().getGroup(), "rule__ActionPackage__Group__0");
+					put(grammarAccess.getActionPackageAccess().getGroup_3(), "rule__ActionPackage__Group_3__0");
+					put(grammarAccess.getActionToolbarAccess().getGroup(), "rule__ActionToolbar__Group__0");
+					put(grammarAccess.getActionToolbarAccess().getGroup_3(), "rule__ActionToolbar__Group_3__0");
+					put(grammarAccess.getActionToolbarAccess().getGroup_4(), "rule__ActionToolbar__Group_4__0");
+					put(grammarAccess.getActionButtonAccess().getGroup(), "rule__ActionButton__Group__0");
+					put(grammarAccess.getActionButtonAccess().getGroup_3(), "rule__ActionButton__Group_3__0");
+					put(grammarAccess.getActionButtonAccess().getGroup_4(), "rule__ActionButton__Group_4__0");
+					put(grammarAccess.getActionButtonAccess().getGroup_5_0(), "rule__ActionButton__Group_5_0__0");
+					put(grammarAccess.getActionButtonAccess().getGroup_5_0_2(), "rule__ActionButton__Group_5_0_2__0");
+					put(grammarAccess.getActionButtonAccess().getGroup_5_1(), "rule__ActionButton__Group_5_1__0");
+					put(grammarAccess.getActionButtonAccess().getGroup_7(), "rule__ActionButton__Group_7__0");
+					put(grammarAccess.getActionTaskAccess().getGroup(), "rule__ActionTask__Group__0");
+					put(grammarAccess.getActionSelectWorkloadAccess().getGroup(), "rule__ActionSelectWorkload__Group__0");
+					put(grammarAccess.getActionDialogAccess().getGroup(), "rule__ActionDialog__Group__0");
+					put(grammarAccess.getActionReportAccess().getGroup(), "rule__ActionReport__Group__0");
+					put(grammarAccess.getActionChartAccess().getGroup(), "rule__ActionChart__Group__0");
+					put(grammarAccess.getActionWorkflowAccess().getGroup(), "rule__ActionWorkflow__Group__0");
+					put(grammarAccess.getActionDatainterchangeAccess().getGroup(), "rule__ActionDatainterchange__Group__0");
+					put(grammarAccess.getActionGenericAccess().getGroup(), "rule__ActionGeneric__Group__0");
+					put(grammarAccess.getActionParameterAccess().getGroup(), "rule__ActionParameter__Group__0");
+					put(grammarAccess.getActionImportAccess().getGroup(), "rule__ActionImport__Group__0");
+					put(grammarAccess.getSignedNumberAccess().getGroup(), "rule__SignedNumber__Group__0");
+					put(grammarAccess.getActionQualifiedNameWithWildCardAccess().getGroup(), "rule__ActionQualifiedNameWithWildCard__Group__0");
+					put(grammarAccess.getActionQualifiedNameWithWildCardAccess().getGroup_1(), "rule__ActionQualifiedNameWithWildCard__Group_1__0");
+					put(grammarAccess.getQualifiedNameAccess().getGroup(), "rule__QualifiedName__Group__0");
+					put(grammarAccess.getQualifiedNameAccess().getGroup_1(), "rule__QualifiedName__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.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.getActionModelAccess().getPackagesAssignment(), "rule__ActionModel__PackagesAssignment");
+					put(grammarAccess.getActionPackageAccess().getNameAssignment_2(), "rule__ActionPackage__NameAssignment_2");
+					put(grammarAccess.getActionPackageAccess().getImportsAssignment_3_1(), "rule__ActionPackage__ImportsAssignment_3_1");
+					put(grammarAccess.getActionPackageAccess().getToolbarsAssignment_3_2(), "rule__ActionPackage__ToolbarsAssignment_3_2");
+					put(grammarAccess.getActionToolbarAccess().getNameAssignment_2(), "rule__ActionToolbar__NameAssignment_2");
+					put(grammarAccess.getActionToolbarAccess().getDescriptionAssignment_3_0(), "rule__ActionToolbar__DescriptionAssignment_3_0");
+					put(grammarAccess.getActionToolbarAccess().getDescriptionValueAssignment_3_1(), "rule__ActionToolbar__DescriptionValueAssignment_3_1");
+					put(grammarAccess.getActionToolbarAccess().getActionsAssignment_4_2(), "rule__ActionToolbar__ActionsAssignment_4_2");
+					put(grammarAccess.getActionButtonAccess().getNameAssignment_2(), "rule__ActionButton__NameAssignment_2");
+					put(grammarAccess.getActionButtonAccess().getDescriptionAssignment_3_0(), "rule__ActionButton__DescriptionAssignment_3_0");
+					put(grammarAccess.getActionButtonAccess().getDescriptionValueAssignment_3_1(), "rule__ActionButton__DescriptionValueAssignment_3_1");
+					put(grammarAccess.getActionButtonAccess().getIconURIAssignment_4_1(), "rule__ActionButton__IconURIAssignment_4_1");
+					put(grammarAccess.getActionButtonAccess().getGroupAssignment_5_0_1(), "rule__ActionButton__GroupAssignment_5_0_1");
+					put(grammarAccess.getActionButtonAccess().getCanexecuteAssignment_5_0_2_1(), "rule__ActionButton__CanexecuteAssignment_5_0_2_1");
+					put(grammarAccess.getActionButtonAccess().getExecuteparameterAssignment_5_1_1(), "rule__ActionButton__ExecuteparameterAssignment_5_1_1");
+					put(grammarAccess.getActionButtonAccess().getActionTypeAssignment_6(), "rule__ActionButton__ActionTypeAssignment_6");
+					put(grammarAccess.getActionButtonAccess().getMessageAssignment_7_1(), "rule__ActionButton__MessageAssignment_7_1");
+					put(grammarAccess.getActionTaskAccess().getActionAssignment_1(), "rule__ActionTask__ActionAssignment_1");
+					put(grammarAccess.getActionSelectWorkloadAccess().getActionAssignment_1(), "rule__ActionSelectWorkload__ActionAssignment_1");
+					put(grammarAccess.getActionDialogAccess().getActionAssignment_1(), "rule__ActionDialog__ActionAssignment_1");
+					put(grammarAccess.getActionReportAccess().getActionAssignment_1(), "rule__ActionReport__ActionAssignment_1");
+					put(grammarAccess.getActionChartAccess().getActionAssignment_1(), "rule__ActionChart__ActionAssignment_1");
+					put(grammarAccess.getActionWorkflowAccess().getActionAssignment_1(), "rule__ActionWorkflow__ActionAssignment_1");
+					put(grammarAccess.getActionDatainterchangeAccess().getActionAssignment_1(), "rule__ActionDatainterchange__ActionAssignment_1");
+					put(grammarAccess.getActionDatainterchangeAccess().getDataRefAssignment_2(), "rule__ActionDatainterchange__DataRefAssignment_2");
+					put(grammarAccess.getActionGenericAccess().getActionAssignment_1(), "rule__ActionGeneric__ActionAssignment_1");
+					put(grammarAccess.getActionParameterAccess().getParameterAssignment_2(), "rule__ActionParameter__ParameterAssignment_2");
+					put(grammarAccess.getActionImportAccess().getImportedNamespaceAssignment_1(), "rule__ActionImport__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.getActionButtonAccess().getUnorderedGroup_5(), "rule__ActionButton__UnorderedGroup_5");
+				}
+			};
+		}
+		return nameMappings.get(element);
+	}
+	
+	@Override
+	protected Collection<FollowElement> getFollowElements(AbstractInternalContentAssistParser parser) {
+		try {
+			org.eclipse.osbp.xtext.action.ui.contentassist.antlr.internal.InternalActionDSLParser typedParser = (org.eclipse.osbp.xtext.action.ui.contentassist.antlr.internal.InternalActionDSLParser) parser;
+			typedParser.entryRuleActionModel();
+			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 ActionDSLGrammarAccess getGrammarAccess() {
+		return this.grammarAccess;
+	}
+	
+	public void setGrammarAccess(ActionDSLGrammarAccess grammarAccess) {
+		this.grammarAccess = grammarAccess;
+	}
+}
diff --git a/org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/PartialActionDSLContentAssistParser.java b/org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/PartialActionDSLContentAssistParser.java
new file mode 100644
index 0000000..ba9a300
--- /dev/null
+++ b/org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/PartialActionDSLContentAssistParser.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.action.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 PartialActionDSLContentAssistParser extends ActionDSLParser 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.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g b/org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g
new file mode 100644
index 0000000..daf6c91
--- /dev/null
+++ b/org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g
@@ -0,0 +1,10014 @@
+/**
+ *                                                                            
+ *  Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) 
+ *                                                                            
+ *  All rights reserved. This program and the accompanying materials           
+ *  are made available under the 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 InternalActionDSL;
+
+options {
+	superClass=AbstractInternalContentAssistParser;
+	backtrack=true;
+	
+}
+
+@lexer::header {
+package org.eclipse.osbp.xtext.action.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.action.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.action.services.ActionDSLGrammarAccess;
+
+}
+
+@parser::members {
+ 
+ 	private ActionDSLGrammarAccess grammarAccess;
+ 	
+    public void setGrammarAccess(ActionDSLGrammarAccess grammarAccess) {
+    	this.grammarAccess = grammarAccess;
+    }
+    
+    @Override
+    protected Grammar getGrammar() {
+    	return grammarAccess.getGrammar();
+    }
+    
+    @Override
+    protected String getValueForTokenName(String tokenName) {
+    	return tokenName;
+    }
+
+}
+
+
+
+
+// Entry rule entryRuleActionModel
+entryRuleActionModel 
+:
+{ before(grammarAccess.getActionModelRule()); }
+	 ruleActionModel
+{ after(grammarAccess.getActionModelRule()); } 
+	 EOF 
+;
+
+// Rule ActionModel
+ruleActionModel
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getActionModelAccess().getPackagesAssignment()); }
+(rule__ActionModel__PackagesAssignment)*
+{ after(grammarAccess.getActionModelAccess().getPackagesAssignment()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleActionPackage
+entryRuleActionPackage 
+:
+{ before(grammarAccess.getActionPackageRule()); }
+	 ruleActionPackage
+{ after(grammarAccess.getActionPackageRule()); } 
+	 EOF 
+;
+
+// Rule ActionPackage
+ruleActionPackage
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getActionPackageAccess().getGroup()); }
+(rule__ActionPackage__Group__0)
+{ after(grammarAccess.getActionPackageAccess().getGroup()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleActionToolbar
+entryRuleActionToolbar 
+:
+{ before(grammarAccess.getActionToolbarRule()); }
+	 ruleActionToolbar
+{ after(grammarAccess.getActionToolbarRule()); } 
+	 EOF 
+;
+
+// Rule ActionToolbar
+ruleActionToolbar
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getActionToolbarAccess().getGroup()); }
+(rule__ActionToolbar__Group__0)
+{ after(grammarAccess.getActionToolbarAccess().getGroup()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleActionButton
+entryRuleActionButton 
+:
+{ before(grammarAccess.getActionButtonRule()); }
+	 ruleActionButton
+{ after(grammarAccess.getActionButtonRule()); } 
+	 EOF 
+;
+
+// Rule ActionButton
+ruleActionButton
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getActionButtonAccess().getGroup()); }
+(rule__ActionButton__Group__0)
+{ after(grammarAccess.getActionButtonAccess().getGroup()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleActionType
+entryRuleActionType 
+:
+{ before(grammarAccess.getActionTypeRule()); }
+	 ruleActionType
+{ after(grammarAccess.getActionTypeRule()); } 
+	 EOF 
+;
+
+// Rule ActionType
+ruleActionType
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getActionTypeAccess().getAlternatives()); }
+(rule__ActionType__Alternatives)
+{ after(grammarAccess.getActionTypeAccess().getAlternatives()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleActionTask
+entryRuleActionTask 
+:
+{ before(grammarAccess.getActionTaskRule()); }
+	 ruleActionTask
+{ after(grammarAccess.getActionTaskRule()); } 
+	 EOF 
+;
+
+// Rule ActionTask
+ruleActionTask
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getActionTaskAccess().getGroup()); }
+(rule__ActionTask__Group__0)
+{ after(grammarAccess.getActionTaskAccess().getGroup()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleActionSelectWorkload
+entryRuleActionSelectWorkload 
+:
+{ before(grammarAccess.getActionSelectWorkloadRule()); }
+	 ruleActionSelectWorkload
+{ after(grammarAccess.getActionSelectWorkloadRule()); } 
+	 EOF 
+;
+
+// Rule ActionSelectWorkload
+ruleActionSelectWorkload
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getActionSelectWorkloadAccess().getGroup()); }
+(rule__ActionSelectWorkload__Group__0)
+{ after(grammarAccess.getActionSelectWorkloadAccess().getGroup()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleActionDialog
+entryRuleActionDialog 
+:
+{ before(grammarAccess.getActionDialogRule()); }
+	 ruleActionDialog
+{ after(grammarAccess.getActionDialogRule()); } 
+	 EOF 
+;
+
+// Rule ActionDialog
+ruleActionDialog
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getActionDialogAccess().getGroup()); }
+(rule__ActionDialog__Group__0)
+{ after(grammarAccess.getActionDialogAccess().getGroup()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleActionReport
+entryRuleActionReport 
+:
+{ before(grammarAccess.getActionReportRule()); }
+	 ruleActionReport
+{ after(grammarAccess.getActionReportRule()); } 
+	 EOF 
+;
+
+// Rule ActionReport
+ruleActionReport
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getActionReportAccess().getGroup()); }
+(rule__ActionReport__Group__0)
+{ after(grammarAccess.getActionReportAccess().getGroup()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleActionChart
+entryRuleActionChart 
+:
+{ before(grammarAccess.getActionChartRule()); }
+	 ruleActionChart
+{ after(grammarAccess.getActionChartRule()); } 
+	 EOF 
+;
+
+// Rule ActionChart
+ruleActionChart
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getActionChartAccess().getGroup()); }
+(rule__ActionChart__Group__0)
+{ after(grammarAccess.getActionChartAccess().getGroup()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleActionWorkflow
+entryRuleActionWorkflow 
+:
+{ before(grammarAccess.getActionWorkflowRule()); }
+	 ruleActionWorkflow
+{ after(grammarAccess.getActionWorkflowRule()); } 
+	 EOF 
+;
+
+// Rule ActionWorkflow
+ruleActionWorkflow
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getActionWorkflowAccess().getGroup()); }
+(rule__ActionWorkflow__Group__0)
+{ after(grammarAccess.getActionWorkflowAccess().getGroup()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleActionDatainterchange
+entryRuleActionDatainterchange 
+:
+{ before(grammarAccess.getActionDatainterchangeRule()); }
+	 ruleActionDatainterchange
+{ after(grammarAccess.getActionDatainterchangeRule()); } 
+	 EOF 
+;
+
+// Rule ActionDatainterchange
+ruleActionDatainterchange
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getActionDatainterchangeAccess().getGroup()); }
+(rule__ActionDatainterchange__Group__0)
+{ after(grammarAccess.getActionDatainterchangeAccess().getGroup()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule entryRuleActionGeneric
+entryRuleActionGeneric 
+:
+{ before(grammarAccess.getActionGenericRule()); }
+	 ruleActionGeneric
+{ after(grammarAccess.getActionGenericRule()); } 
+	 EOF 
+;
+
+// Rule ActionGeneric
+ruleActionGeneric
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getActionGenericAccess().getGroup()); }
+(rule__ActionGeneric__Group__0)
+{ after(grammarAccess.getActionGenericAccess().getGroup()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+// Entry rule entryRuleActionImport
+entryRuleActionImport 
+:
+{ before(grammarAccess.getActionImportRule()); }
+	 ruleActionImport
+{ after(grammarAccess.getActionImportRule()); } 
+	 EOF 
+;
+
+// Rule ActionImport
+ruleActionImport
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getActionImportAccess().getGroup()); }
+(rule__ActionImport__Group__0)
+{ after(grammarAccess.getActionImportAccess().getGroup()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+// Entry rule entryRuleActionQualifiedNameWithWildCard
+entryRuleActionQualifiedNameWithWildCard 
+:
+{ before(grammarAccess.getActionQualifiedNameWithWildCardRule()); }
+	 ruleActionQualifiedNameWithWildCard
+{ after(grammarAccess.getActionQualifiedNameWithWildCardRule()); } 
+	 EOF 
+;
+
+// Rule ActionQualifiedNameWithWildCard
+ruleActionQualifiedNameWithWildCard
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getActionQualifiedNameWithWildCardAccess().getGroup()); }
+(rule__ActionQualifiedNameWithWildCard__Group__0)
+{ after(grammarAccess.getActionQualifiedNameWithWildCardAccess().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 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 entryRuleTRANSLATABLEID
+entryRuleTRANSLATABLEID 
+:
+{ before(grammarAccess.getTRANSLATABLEIDRule()); }
+	 ruleTRANSLATABLEID
+{ after(grammarAccess.getTRANSLATABLEIDRule()); } 
+	 EOF 
+;
+
+// Rule TRANSLATABLEID
+ruleTRANSLATABLEID
+    @init {
+		int stackSize = keepStackSize();
+    }
+	:
+(
+{ before(grammarAccess.getTRANSLATABLEIDAccess().getIDTerminalRuleCall()); }
+	RULE_ID
+{ after(grammarAccess.getTRANSLATABLEIDAccess().getIDTerminalRuleCall()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Entry rule 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 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 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 TaskActionEnum
+ruleTaskActionEnum
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getTaskActionEnumAccess().getAlternatives()); }
+(rule__TaskActionEnum__Alternatives)
+{ after(grammarAccess.getTaskActionEnumAccess().getAlternatives()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Rule SelectWorkloadActionEnum
+ruleSelectWorkloadActionEnum
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getSelectWorkloadActionEnumAccess().getAlternatives()); }
+(rule__SelectWorkloadActionEnum__Alternatives)
+{ after(grammarAccess.getSelectWorkloadActionEnumAccess().getAlternatives()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Rule DialogActionEnum
+ruleDialogActionEnum
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getDialogActionEnumAccess().getAlternatives()); }
+(rule__DialogActionEnum__Alternatives)
+{ after(grammarAccess.getDialogActionEnumAccess().getAlternatives()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Rule ReportActionEnum
+ruleReportActionEnum
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getReportActionEnumAccess().getAlternatives()); }
+(rule__ReportActionEnum__Alternatives)
+{ after(grammarAccess.getReportActionEnumAccess().getAlternatives()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Rule ChartActionEnum
+ruleChartActionEnum
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getChartActionEnumAccess().getCHART_ACTION_DOWNLOADEnumLiteralDeclaration()); }
+(	'Download' 
+)
+{ after(grammarAccess.getChartActionEnumAccess().getCHART_ACTION_DOWNLOADEnumLiteralDeclaration()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Rule WorkflowActionEnum
+ruleWorkflowActionEnum
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getWorkflowActionEnumAccess().getWORKFLOW_ACTION_STARTEnumLiteralDeclaration()); }
+(	'Start' 
+)
+{ after(grammarAccess.getWorkflowActionEnumAccess().getWORKFLOW_ACTION_STARTEnumLiteralDeclaration()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+// Rule DatainterchangeActionEnum
+ruleDatainterchangeActionEnum
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getDatainterchangeActionEnumAccess().getAlternatives()); }
+(rule__DatainterchangeActionEnum__Alternatives)
+{ after(grammarAccess.getDatainterchangeActionEnumAccess().getAlternatives()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+rule__ActionType__Alternatives
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getActionTypeAccess().getActionTaskParserRuleCall_0()); }
+	ruleActionTask
+{ after(grammarAccess.getActionTypeAccess().getActionTaskParserRuleCall_0()); }
+)
+
+    |(
+{ before(grammarAccess.getActionTypeAccess().getActionSelectWorkloadParserRuleCall_1()); }
+	ruleActionSelectWorkload
+{ after(grammarAccess.getActionTypeAccess().getActionSelectWorkloadParserRuleCall_1()); }
+)
+
+    |(
+{ before(grammarAccess.getActionTypeAccess().getActionDialogParserRuleCall_2()); }
+	ruleActionDialog
+{ after(grammarAccess.getActionTypeAccess().getActionDialogParserRuleCall_2()); }
+)
+
+    |(
+{ before(grammarAccess.getActionTypeAccess().getActionReportParserRuleCall_3()); }
+	ruleActionReport
+{ after(grammarAccess.getActionTypeAccess().getActionReportParserRuleCall_3()); }
+)
+
+    |(
+{ before(grammarAccess.getActionTypeAccess().getActionChartParserRuleCall_4()); }
+	ruleActionChart
+{ after(grammarAccess.getActionTypeAccess().getActionChartParserRuleCall_4()); }
+)
+
+    |(
+{ before(grammarAccess.getActionTypeAccess().getActionWorkflowParserRuleCall_5()); }
+	ruleActionWorkflow
+{ after(grammarAccess.getActionTypeAccess().getActionWorkflowParserRuleCall_5()); }
+)
+
+    |(
+{ before(grammarAccess.getActionTypeAccess().getActionGenericParserRuleCall_6()); }
+	ruleActionGeneric
+{ after(grammarAccess.getActionTypeAccess().getActionGenericParserRuleCall_6()); }
+)
+
+    |(
+{ before(grammarAccess.getActionTypeAccess().getActionDatainterchangeParserRuleCall_7()); }
+	ruleActionDatainterchange
+{ after(grammarAccess.getActionTypeAccess().getActionDatainterchangeParserRuleCall_7()); }
+)
+
+;
+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__TaskActionEnum__Alternatives
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getTaskActionEnumAccess().getTASK_ACTION_CLAIMEnumLiteralDeclaration_0()); }
+(	'Claim' 
+)
+{ after(grammarAccess.getTaskActionEnumAccess().getTASK_ACTION_CLAIMEnumLiteralDeclaration_0()); }
+)
+
+    |(
+{ before(grammarAccess.getTaskActionEnumAccess().getTASK_ACTION_STARTEnumLiteralDeclaration_1()); }
+(	'Start' 
+)
+{ after(grammarAccess.getTaskActionEnumAccess().getTASK_ACTION_STARTEnumLiteralDeclaration_1()); }
+)
+
+    |(
+{ before(grammarAccess.getTaskActionEnumAccess().getTASK_ACTION_STOPEnumLiteralDeclaration_2()); }
+(	'Stop' 
+)
+{ after(grammarAccess.getTaskActionEnumAccess().getTASK_ACTION_STOPEnumLiteralDeclaration_2()); }
+)
+
+    |(
+{ before(grammarAccess.getTaskActionEnumAccess().getTASK_ACTION_RELEASEEnumLiteralDeclaration_3()); }
+(	'Release' 
+)
+{ after(grammarAccess.getTaskActionEnumAccess().getTASK_ACTION_RELEASEEnumLiteralDeclaration_3()); }
+)
+
+    |(
+{ before(grammarAccess.getTaskActionEnumAccess().getTASK_ACTION_SUSPENDEnumLiteralDeclaration_4()); }
+(	'Suspend' 
+)
+{ after(grammarAccess.getTaskActionEnumAccess().getTASK_ACTION_SUSPENDEnumLiteralDeclaration_4()); }
+)
+
+    |(
+{ before(grammarAccess.getTaskActionEnumAccess().getTASK_ACTION_RESUMEEnumLiteralDeclaration_5()); }
+(	'Resume' 
+)
+{ after(grammarAccess.getTaskActionEnumAccess().getTASK_ACTION_RESUMEEnumLiteralDeclaration_5()); }
+)
+
+    |(
+{ before(grammarAccess.getTaskActionEnumAccess().getTASK_ACTION_SKIPEnumLiteralDeclaration_6()); }
+(	'Skip' 
+)
+{ after(grammarAccess.getTaskActionEnumAccess().getTASK_ACTION_SKIPEnumLiteralDeclaration_6()); }
+)
+
+    |(
+{ before(grammarAccess.getTaskActionEnumAccess().getTASK_ACTION_COMPLETEEnumLiteralDeclaration_7()); }
+(	'Complete' 
+)
+{ after(grammarAccess.getTaskActionEnumAccess().getTASK_ACTION_COMPLETEEnumLiteralDeclaration_7()); }
+)
+
+    |(
+{ before(grammarAccess.getTaskActionEnumAccess().getTASK_ACTION_DELEGATEEnumLiteralDeclaration_8()); }
+(	'Delegate' 
+)
+{ after(grammarAccess.getTaskActionEnumAccess().getTASK_ACTION_DELEGATEEnumLiteralDeclaration_8()); }
+)
+
+    |(
+{ before(grammarAccess.getTaskActionEnumAccess().getTASK_ACTION_FORWARDEnumLiteralDeclaration_9()); }
+(	'Forward' 
+)
+{ after(grammarAccess.getTaskActionEnumAccess().getTASK_ACTION_FORWARDEnumLiteralDeclaration_9()); }
+)
+
+    |(
+{ before(grammarAccess.getTaskActionEnumAccess().getTASK_ACTION_FAILEnumLiteralDeclaration_10()); }
+(	'Fail' 
+)
+{ after(grammarAccess.getTaskActionEnumAccess().getTASK_ACTION_FAILEnumLiteralDeclaration_10()); }
+)
+
+    |(
+{ before(grammarAccess.getTaskActionEnumAccess().getTASK_ACTION_REGISTEREnumLiteralDeclaration_11()); }
+(	'Register' 
+)
+{ after(grammarAccess.getTaskActionEnumAccess().getTASK_ACTION_REGISTEREnumLiteralDeclaration_11()); }
+)
+
+    |(
+{ before(grammarAccess.getTaskActionEnumAccess().getTASK_ACTION_REMOVEEnumLiteralDeclaration_12()); }
+(	'Remove' 
+)
+{ after(grammarAccess.getTaskActionEnumAccess().getTASK_ACTION_REMOVEEnumLiteralDeclaration_12()); }
+)
+
+    |(
+{ before(grammarAccess.getTaskActionEnumAccess().getTASK_ACTION_ACTIVATEEnumLiteralDeclaration_13()); }
+(	'Activate' 
+)
+{ after(grammarAccess.getTaskActionEnumAccess().getTASK_ACTION_ACTIVATEEnumLiteralDeclaration_13()); }
+)
+
+    |(
+{ before(grammarAccess.getTaskActionEnumAccess().getTASK_ACTION_EXITEnumLiteralDeclaration_14()); }
+(	'Exit' 
+)
+{ after(grammarAccess.getTaskActionEnumAccess().getTASK_ACTION_EXITEnumLiteralDeclaration_14()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__SelectWorkloadActionEnum__Alternatives
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getSelectWorkloadActionEnumAccess().getWORKLOAD_SELECT_ACTION_REMOVE_ALLEnumLiteralDeclaration_0()); }
+(	'RemoveAll' 
+)
+{ after(grammarAccess.getSelectWorkloadActionEnumAccess().getWORKLOAD_SELECT_ACTION_REMOVE_ALLEnumLiteralDeclaration_0()); }
+)
+
+    |(
+{ before(grammarAccess.getSelectWorkloadActionEnumAccess().getWORKLOAD_SELECT_ACTION_ADD_ALLEnumLiteralDeclaration_1()); }
+(	'AddAll' 
+)
+{ after(grammarAccess.getSelectWorkloadActionEnumAccess().getWORKLOAD_SELECT_ACTION_ADD_ALLEnumLiteralDeclaration_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DialogActionEnum__Alternatives
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getDialogActionEnumAccess().getDIALOG_ACTION_NEWEnumLiteralDeclaration_0()); }
+(	'New' 
+)
+{ after(grammarAccess.getDialogActionEnumAccess().getDIALOG_ACTION_NEWEnumLiteralDeclaration_0()); }
+)
+
+    |(
+{ before(grammarAccess.getDialogActionEnumAccess().getDIALOG_ACTION_SAVEEnumLiteralDeclaration_1()); }
+(	'Save' 
+)
+{ after(grammarAccess.getDialogActionEnumAccess().getDIALOG_ACTION_SAVEEnumLiteralDeclaration_1()); }
+)
+
+    |(
+{ before(grammarAccess.getDialogActionEnumAccess().getDIALOG_ACTION_DELETEEnumLiteralDeclaration_2()); }
+(	'Delete' 
+)
+{ after(grammarAccess.getDialogActionEnumAccess().getDIALOG_ACTION_DELETEEnumLiteralDeclaration_2()); }
+)
+
+    |(
+{ before(grammarAccess.getDialogActionEnumAccess().getDIALOG_ACTION_CANCELEnumLiteralDeclaration_3()); }
+(	'Cancel' 
+)
+{ after(grammarAccess.getDialogActionEnumAccess().getDIALOG_ACTION_CANCELEnumLiteralDeclaration_3()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ReportActionEnum__Alternatives
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getReportActionEnumAccess().getREPORT_ACTION_PRINT_ON_SERVER_PDFEnumLiteralDeclaration_0()); }
+(	'PrintOnServer' 
+)
+{ after(grammarAccess.getReportActionEnumAccess().getREPORT_ACTION_PRINT_ON_SERVER_PDFEnumLiteralDeclaration_0()); }
+)
+
+    |(
+{ before(grammarAccess.getReportActionEnumAccess().getREPORT_ACTION_DOWNLOAD_PDFEnumLiteralDeclaration_1()); }
+(	'Download' 
+)
+{ after(grammarAccess.getReportActionEnumAccess().getREPORT_ACTION_DOWNLOAD_PDFEnumLiteralDeclaration_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DatainterchangeActionEnum__Alternatives
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getDatainterchangeActionEnumAccess().getDATAINTERCHANGE_ACTION_IMPORTEnumLiteralDeclaration_0()); }
+(	'Import' 
+)
+{ after(grammarAccess.getDatainterchangeActionEnumAccess().getDATAINTERCHANGE_ACTION_IMPORTEnumLiteralDeclaration_0()); }
+)
+
+    |(
+{ before(grammarAccess.getDatainterchangeActionEnumAccess().getDATAINTERCHANGE_ACTION_EXPORTEnumLiteralDeclaration_1()); }
+(	'Export' 
+)
+{ after(grammarAccess.getDatainterchangeActionEnumAccess().getDATAINTERCHANGE_ACTION_EXPORTEnumLiteralDeclaration_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+rule__ActionPackage__Group__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ActionPackage__Group__0__Impl
+	rule__ActionPackage__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ActionPackage__Group__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getActionPackageAccess().getActionPackageAction_0()); }
+(
+
+)
+{ after(grammarAccess.getActionPackageAccess().getActionPackageAction_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ActionPackage__Group__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ActionPackage__Group__1__Impl
+	rule__ActionPackage__Group__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ActionPackage__Group__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getActionPackageAccess().getPackageKeyword_1()); }
+
+	'package' 
+
+{ after(grammarAccess.getActionPackageAccess().getPackageKeyword_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ActionPackage__Group__2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ActionPackage__Group__2__Impl
+	rule__ActionPackage__Group__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ActionPackage__Group__2__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getActionPackageAccess().getNameAssignment_2()); }
+(rule__ActionPackage__NameAssignment_2)
+{ after(grammarAccess.getActionPackageAccess().getNameAssignment_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ActionPackage__Group__3
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ActionPackage__Group__3__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ActionPackage__Group__3__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getActionPackageAccess().getGroup_3()); }
+(rule__ActionPackage__Group_3__0)?
+{ after(grammarAccess.getActionPackageAccess().getGroup_3()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+rule__ActionPackage__Group_3__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ActionPackage__Group_3__0__Impl
+	rule__ActionPackage__Group_3__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ActionPackage__Group_3__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getActionPackageAccess().getLeftCurlyBracketKeyword_3_0()); }
+
+	'{' 
+
+{ after(grammarAccess.getActionPackageAccess().getLeftCurlyBracketKeyword_3_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ActionPackage__Group_3__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ActionPackage__Group_3__1__Impl
+	rule__ActionPackage__Group_3__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ActionPackage__Group_3__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getActionPackageAccess().getImportsAssignment_3_1()); }
+(rule__ActionPackage__ImportsAssignment_3_1)*
+{ after(grammarAccess.getActionPackageAccess().getImportsAssignment_3_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ActionPackage__Group_3__2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ActionPackage__Group_3__2__Impl
+	rule__ActionPackage__Group_3__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ActionPackage__Group_3__2__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getActionPackageAccess().getToolbarsAssignment_3_2()); }
+(rule__ActionPackage__ToolbarsAssignment_3_2)*
+{ after(grammarAccess.getActionPackageAccess().getToolbarsAssignment_3_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ActionPackage__Group_3__3
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ActionPackage__Group_3__3__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ActionPackage__Group_3__3__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getActionPackageAccess().getRightCurlyBracketKeyword_3_3()); }
+
+	'}' 
+
+{ after(grammarAccess.getActionPackageAccess().getRightCurlyBracketKeyword_3_3()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+rule__ActionToolbar__Group__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ActionToolbar__Group__0__Impl
+	rule__ActionToolbar__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ActionToolbar__Group__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getActionToolbarAccess().getActionToolbarAction_0()); }
+(
+
+)
+{ after(grammarAccess.getActionToolbarAccess().getActionToolbarAction_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ActionToolbar__Group__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ActionToolbar__Group__1__Impl
+	rule__ActionToolbar__Group__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ActionToolbar__Group__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getActionToolbarAccess().getToolbarKeyword_1()); }
+
+	'toolbar' 
+
+{ after(grammarAccess.getActionToolbarAccess().getToolbarKeyword_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ActionToolbar__Group__2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ActionToolbar__Group__2__Impl
+	rule__ActionToolbar__Group__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ActionToolbar__Group__2__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getActionToolbarAccess().getNameAssignment_2()); }
+(rule__ActionToolbar__NameAssignment_2)
+{ after(grammarAccess.getActionToolbarAccess().getNameAssignment_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ActionToolbar__Group__3
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ActionToolbar__Group__3__Impl
+	rule__ActionToolbar__Group__4
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ActionToolbar__Group__3__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getActionToolbarAccess().getGroup_3()); }
+(rule__ActionToolbar__Group_3__0)?
+{ after(grammarAccess.getActionToolbarAccess().getGroup_3()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ActionToolbar__Group__4
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ActionToolbar__Group__4__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ActionToolbar__Group__4__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getActionToolbarAccess().getGroup_4()); }
+(rule__ActionToolbar__Group_4__0)?
+{ after(grammarAccess.getActionToolbarAccess().getGroup_4()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+
+
+rule__ActionToolbar__Group_3__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ActionToolbar__Group_3__0__Impl
+	rule__ActionToolbar__Group_3__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ActionToolbar__Group_3__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getActionToolbarAccess().getDescriptionAssignment_3_0()); }
+(rule__ActionToolbar__DescriptionAssignment_3_0)
+{ after(grammarAccess.getActionToolbarAccess().getDescriptionAssignment_3_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ActionToolbar__Group_3__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ActionToolbar__Group_3__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ActionToolbar__Group_3__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getActionToolbarAccess().getDescriptionValueAssignment_3_1()); }
+(rule__ActionToolbar__DescriptionValueAssignment_3_1)
+{ after(grammarAccess.getActionToolbarAccess().getDescriptionValueAssignment_3_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__ActionToolbar__Group_4__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ActionToolbar__Group_4__0__Impl
+	rule__ActionToolbar__Group_4__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ActionToolbar__Group_4__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getActionToolbarAccess().getItemsKeyword_4_0()); }
+
+	'items' 
+
+{ after(grammarAccess.getActionToolbarAccess().getItemsKeyword_4_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ActionToolbar__Group_4__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ActionToolbar__Group_4__1__Impl
+	rule__ActionToolbar__Group_4__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ActionToolbar__Group_4__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getActionToolbarAccess().getLeftCurlyBracketKeyword_4_1()); }
+
+	'{' 
+
+{ after(grammarAccess.getActionToolbarAccess().getLeftCurlyBracketKeyword_4_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ActionToolbar__Group_4__2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ActionToolbar__Group_4__2__Impl
+	rule__ActionToolbar__Group_4__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ActionToolbar__Group_4__2__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getActionToolbarAccess().getActionsAssignment_4_2()); }
+(rule__ActionToolbar__ActionsAssignment_4_2)*
+{ after(grammarAccess.getActionToolbarAccess().getActionsAssignment_4_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ActionToolbar__Group_4__3
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ActionToolbar__Group_4__3__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ActionToolbar__Group_4__3__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getActionToolbarAccess().getRightCurlyBracketKeyword_4_3()); }
+
+	'}' 
+
+{ after(grammarAccess.getActionToolbarAccess().getRightCurlyBracketKeyword_4_3()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+rule__ActionButton__Group__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ActionButton__Group__0__Impl
+	rule__ActionButton__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ActionButton__Group__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getActionButtonAccess().getActionButtonAction_0()); }
+(
+
+)
+{ after(grammarAccess.getActionButtonAccess().getActionButtonAction_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ActionButton__Group__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ActionButton__Group__1__Impl
+	rule__ActionButton__Group__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ActionButton__Group__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getActionButtonAccess().getItemKeyword_1()); }
+
+	'item' 
+
+{ after(grammarAccess.getActionButtonAccess().getItemKeyword_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ActionButton__Group__2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ActionButton__Group__2__Impl
+	rule__ActionButton__Group__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ActionButton__Group__2__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getActionButtonAccess().getNameAssignment_2()); }
+(rule__ActionButton__NameAssignment_2)
+{ after(grammarAccess.getActionButtonAccess().getNameAssignment_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ActionButton__Group__3
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ActionButton__Group__3__Impl
+	rule__ActionButton__Group__4
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ActionButton__Group__3__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getActionButtonAccess().getGroup_3()); }
+(rule__ActionButton__Group_3__0)?
+{ after(grammarAccess.getActionButtonAccess().getGroup_3()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ActionButton__Group__4
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ActionButton__Group__4__Impl
+	rule__ActionButton__Group__5
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ActionButton__Group__4__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getActionButtonAccess().getGroup_4()); }
+(rule__ActionButton__Group_4__0)?
+{ after(grammarAccess.getActionButtonAccess().getGroup_4()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ActionButton__Group__5
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ActionButton__Group__5__Impl
+	rule__ActionButton__Group__6
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ActionButton__Group__5__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getActionButtonAccess().getUnorderedGroup_5()); }
+(rule__ActionButton__UnorderedGroup_5)?
+{ after(grammarAccess.getActionButtonAccess().getUnorderedGroup_5()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ActionButton__Group__6
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ActionButton__Group__6__Impl
+	rule__ActionButton__Group__7
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ActionButton__Group__6__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getActionButtonAccess().getActionTypeAssignment_6()); }
+(rule__ActionButton__ActionTypeAssignment_6)
+{ after(grammarAccess.getActionButtonAccess().getActionTypeAssignment_6()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ActionButton__Group__7
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ActionButton__Group__7__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ActionButton__Group__7__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getActionButtonAccess().getGroup_7()); }
+(rule__ActionButton__Group_7__0)?
+{ after(grammarAccess.getActionButtonAccess().getGroup_7()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+rule__ActionButton__Group_3__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ActionButton__Group_3__0__Impl
+	rule__ActionButton__Group_3__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ActionButton__Group_3__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getActionButtonAccess().getDescriptionAssignment_3_0()); }
+(rule__ActionButton__DescriptionAssignment_3_0)
+{ after(grammarAccess.getActionButtonAccess().getDescriptionAssignment_3_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ActionButton__Group_3__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ActionButton__Group_3__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ActionButton__Group_3__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getActionButtonAccess().getDescriptionValueAssignment_3_1()); }
+(rule__ActionButton__DescriptionValueAssignment_3_1)
+{ after(grammarAccess.getActionButtonAccess().getDescriptionValueAssignment_3_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__ActionButton__Group_4__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ActionButton__Group_4__0__Impl
+	rule__ActionButton__Group_4__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ActionButton__Group_4__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getActionButtonAccess().getIconKeyword_4_0()); }
+
+	'icon' 
+
+{ after(grammarAccess.getActionButtonAccess().getIconKeyword_4_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ActionButton__Group_4__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ActionButton__Group_4__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ActionButton__Group_4__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getActionButtonAccess().getIconURIAssignment_4_1()); }
+(rule__ActionButton__IconURIAssignment_4_1)
+{ after(grammarAccess.getActionButtonAccess().getIconURIAssignment_4_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__ActionButton__Group_5_0__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ActionButton__Group_5_0__0__Impl
+	rule__ActionButton__Group_5_0__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ActionButton__Group_5_0__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getActionButtonAccess().getGroupKeyword_5_0_0()); }
+
+	'group' 
+
+{ after(grammarAccess.getActionButtonAccess().getGroupKeyword_5_0_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ActionButton__Group_5_0__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ActionButton__Group_5_0__1__Impl
+	rule__ActionButton__Group_5_0__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ActionButton__Group_5_0__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getActionButtonAccess().getGroupAssignment_5_0_1()); }
+(rule__ActionButton__GroupAssignment_5_0_1)
+{ after(grammarAccess.getActionButtonAccess().getGroupAssignment_5_0_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ActionButton__Group_5_0__2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ActionButton__Group_5_0__2__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ActionButton__Group_5_0__2__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getActionButtonAccess().getGroup_5_0_2()); }
+(rule__ActionButton__Group_5_0_2__0)?
+{ after(grammarAccess.getActionButtonAccess().getGroup_5_0_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+rule__ActionButton__Group_5_0_2__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ActionButton__Group_5_0_2__0__Impl
+	rule__ActionButton__Group_5_0_2__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ActionButton__Group_5_0_2__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getActionButtonAccess().getCanExecuteKeyword_5_0_2_0()); }
+
+	'canExecute' 
+
+{ after(grammarAccess.getActionButtonAccess().getCanExecuteKeyword_5_0_2_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ActionButton__Group_5_0_2__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ActionButton__Group_5_0_2__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ActionButton__Group_5_0_2__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getActionButtonAccess().getCanexecuteAssignment_5_0_2_1()); }
+(rule__ActionButton__CanexecuteAssignment_5_0_2_1)
+{ after(grammarAccess.getActionButtonAccess().getCanexecuteAssignment_5_0_2_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__ActionButton__Group_5_1__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ActionButton__Group_5_1__0__Impl
+	rule__ActionButton__Group_5_1__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ActionButton__Group_5_1__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getActionButtonAccess().getExecuteParameterKeyword_5_1_0()); }
+
+	'executeParameter' 
+
+{ after(grammarAccess.getActionButtonAccess().getExecuteParameterKeyword_5_1_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ActionButton__Group_5_1__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ActionButton__Group_5_1__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ActionButton__Group_5_1__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getActionButtonAccess().getExecuteparameterAssignment_5_1_1()); }
+(rule__ActionButton__ExecuteparameterAssignment_5_1_1)
+{ after(grammarAccess.getActionButtonAccess().getExecuteparameterAssignment_5_1_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__ActionButton__Group_7__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ActionButton__Group_7__0__Impl
+	rule__ActionButton__Group_7__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ActionButton__Group_7__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getActionButtonAccess().getMessageKeyword_7_0()); }
+
+	'message' 
+
+{ after(grammarAccess.getActionButtonAccess().getMessageKeyword_7_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ActionButton__Group_7__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ActionButton__Group_7__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ActionButton__Group_7__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getActionButtonAccess().getMessageAssignment_7_1()); }
+(rule__ActionButton__MessageAssignment_7_1)
+{ after(grammarAccess.getActionButtonAccess().getMessageAssignment_7_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__ActionTask__Group__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ActionTask__Group__0__Impl
+	rule__ActionTask__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ActionTask__Group__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getActionTaskAccess().getTaskActionKeyword_0()); }
+
+	'taskAction' 
+
+{ after(grammarAccess.getActionTaskAccess().getTaskActionKeyword_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ActionTask__Group__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ActionTask__Group__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ActionTask__Group__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getActionTaskAccess().getActionAssignment_1()); }
+(rule__ActionTask__ActionAssignment_1)
+{ after(grammarAccess.getActionTaskAccess().getActionAssignment_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__ActionSelectWorkload__Group__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ActionSelectWorkload__Group__0__Impl
+	rule__ActionSelectWorkload__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ActionSelectWorkload__Group__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getActionSelectWorkloadAccess().getSelectWorkloadActionKeyword_0()); }
+
+	'selectWorkloadAction' 
+
+{ after(grammarAccess.getActionSelectWorkloadAccess().getSelectWorkloadActionKeyword_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ActionSelectWorkload__Group__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ActionSelectWorkload__Group__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ActionSelectWorkload__Group__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getActionSelectWorkloadAccess().getActionAssignment_1()); }
+(rule__ActionSelectWorkload__ActionAssignment_1)
+{ after(grammarAccess.getActionSelectWorkloadAccess().getActionAssignment_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__ActionDialog__Group__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ActionDialog__Group__0__Impl
+	rule__ActionDialog__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ActionDialog__Group__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getActionDialogAccess().getDialogActionKeyword_0()); }
+
+	'dialogAction' 
+
+{ after(grammarAccess.getActionDialogAccess().getDialogActionKeyword_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ActionDialog__Group__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ActionDialog__Group__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ActionDialog__Group__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getActionDialogAccess().getActionAssignment_1()); }
+(rule__ActionDialog__ActionAssignment_1)
+{ after(grammarAccess.getActionDialogAccess().getActionAssignment_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__ActionReport__Group__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ActionReport__Group__0__Impl
+	rule__ActionReport__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ActionReport__Group__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getActionReportAccess().getReportActionKeyword_0()); }
+
+	'reportAction' 
+
+{ after(grammarAccess.getActionReportAccess().getReportActionKeyword_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ActionReport__Group__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ActionReport__Group__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ActionReport__Group__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getActionReportAccess().getActionAssignment_1()); }
+(rule__ActionReport__ActionAssignment_1)
+{ after(grammarAccess.getActionReportAccess().getActionAssignment_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__ActionChart__Group__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ActionChart__Group__0__Impl
+	rule__ActionChart__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ActionChart__Group__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getActionChartAccess().getChartActionKeyword_0()); }
+
+	'chartAction' 
+
+{ after(grammarAccess.getActionChartAccess().getChartActionKeyword_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ActionChart__Group__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ActionChart__Group__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ActionChart__Group__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getActionChartAccess().getActionAssignment_1()); }
+(rule__ActionChart__ActionAssignment_1)
+{ after(grammarAccess.getActionChartAccess().getActionAssignment_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__ActionWorkflow__Group__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ActionWorkflow__Group__0__Impl
+	rule__ActionWorkflow__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ActionWorkflow__Group__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getActionWorkflowAccess().getWorkflowActionKeyword_0()); }
+
+	'workflowAction' 
+
+{ after(grammarAccess.getActionWorkflowAccess().getWorkflowActionKeyword_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ActionWorkflow__Group__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ActionWorkflow__Group__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ActionWorkflow__Group__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getActionWorkflowAccess().getActionAssignment_1()); }
+(rule__ActionWorkflow__ActionAssignment_1)
+{ after(grammarAccess.getActionWorkflowAccess().getActionAssignment_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__ActionDatainterchange__Group__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ActionDatainterchange__Group__0__Impl
+	rule__ActionDatainterchange__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ActionDatainterchange__Group__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getActionDatainterchangeAccess().getDatainterchangeActionKeyword_0()); }
+
+	'datainterchangeAction' 
+
+{ after(grammarAccess.getActionDatainterchangeAccess().getDatainterchangeActionKeyword_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ActionDatainterchange__Group__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ActionDatainterchange__Group__1__Impl
+	rule__ActionDatainterchange__Group__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ActionDatainterchange__Group__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getActionDatainterchangeAccess().getActionAssignment_1()); }
+(rule__ActionDatainterchange__ActionAssignment_1)
+{ after(grammarAccess.getActionDatainterchangeAccess().getActionAssignment_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ActionDatainterchange__Group__2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ActionDatainterchange__Group__2__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ActionDatainterchange__Group__2__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getActionDatainterchangeAccess().getDataRefAssignment_2()); }
+(rule__ActionDatainterchange__DataRefAssignment_2)
+{ after(grammarAccess.getActionDatainterchangeAccess().getDataRefAssignment_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+rule__ActionGeneric__Group__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ActionGeneric__Group__0__Impl
+	rule__ActionGeneric__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ActionGeneric__Group__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getActionGenericAccess().getGenericActionKeyword_0()); }
+
+	'genericAction' 
+
+{ after(grammarAccess.getActionGenericAccess().getGenericActionKeyword_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ActionGeneric__Group__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ActionGeneric__Group__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ActionGeneric__Group__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getActionGenericAccess().getActionAssignment_1()); }
+(rule__ActionGeneric__ActionAssignment_1)
+{ after(grammarAccess.getActionGenericAccess().getActionAssignment_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+rule__ActionImport__Group__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ActionImport__Group__0__Impl
+	rule__ActionImport__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ActionImport__Group__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getActionImportAccess().getImportKeyword_0()); }
+
+	'import' 
+
+{ after(grammarAccess.getActionImportAccess().getImportKeyword_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ActionImport__Group__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ActionImport__Group__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ActionImport__Group__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getActionImportAccess().getImportedNamespaceAssignment_1()); }
+(rule__ActionImport__ImportedNamespaceAssignment_1)
+{ after(grammarAccess.getActionImportAccess().getImportedNamespaceAssignment_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+rule__ActionQualifiedNameWithWildCard__Group__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ActionQualifiedNameWithWildCard__Group__0__Impl
+	rule__ActionQualifiedNameWithWildCard__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ActionQualifiedNameWithWildCard__Group__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getActionQualifiedNameWithWildCardAccess().getQualifiedNameParserRuleCall_0()); }
+	ruleQualifiedName
+{ after(grammarAccess.getActionQualifiedNameWithWildCardAccess().getQualifiedNameParserRuleCall_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ActionQualifiedNameWithWildCard__Group__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ActionQualifiedNameWithWildCard__Group__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ActionQualifiedNameWithWildCard__Group__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getActionQualifiedNameWithWildCardAccess().getGroup_1()); }
+(rule__ActionQualifiedNameWithWildCard__Group_1__0)?
+{ after(grammarAccess.getActionQualifiedNameWithWildCardAccess().getGroup_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__ActionQualifiedNameWithWildCard__Group_1__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ActionQualifiedNameWithWildCard__Group_1__0__Impl
+	rule__ActionQualifiedNameWithWildCard__Group_1__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ActionQualifiedNameWithWildCard__Group_1__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getActionQualifiedNameWithWildCardAccess().getFullStopKeyword_1_0()); }
+
+	'.' 
+
+{ after(grammarAccess.getActionQualifiedNameWithWildCardAccess().getFullStopKeyword_1_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__ActionQualifiedNameWithWildCard__Group_1__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__ActionQualifiedNameWithWildCard__Group_1__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ActionQualifiedNameWithWildCard__Group_1__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getActionQualifiedNameWithWildCardAccess().getAsteriskKeyword_1_1()); }
+
+	'*' 
+
+{ after(grammarAccess.getActionQualifiedNameWithWildCardAccess().getAsteriskKeyword_1_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__QualifiedName__Group__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__QualifiedName__Group__0__Impl
+	rule__QualifiedName__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__QualifiedName__Group__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getQualifiedNameAccess().getValidIDParserRuleCall_0()); }
+	ruleValidID
+{ after(grammarAccess.getQualifiedNameAccess().getValidIDParserRuleCall_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__QualifiedName__Group__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__QualifiedName__Group__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__QualifiedName__Group__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getQualifiedNameAccess().getGroup_1()); }
+(rule__QualifiedName__Group_1__0)*
+{ after(grammarAccess.getQualifiedNameAccess().getGroup_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__QualifiedName__Group_1__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__QualifiedName__Group_1__0__Impl
+	rule__QualifiedName__Group_1__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__QualifiedName__Group_1__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getQualifiedNameAccess().getFullStopKeyword_1_0()); }
+(
+	'.' 
+)
+{ after(grammarAccess.getQualifiedNameAccess().getFullStopKeyword_1_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__QualifiedName__Group_1__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__QualifiedName__Group_1__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__QualifiedName__Group_1__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getQualifiedNameAccess().getValidIDParserRuleCall_1_1()); }
+	ruleValidID
+{ after(grammarAccess.getQualifiedNameAccess().getValidIDParserRuleCall_1_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__XAnnotation__Group__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__XAnnotation__Group__0__Impl
+	rule__XAnnotation__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XAnnotation__Group__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getXAnnotationAccess().getXAnnotationAction_0()); }
+(
+
+)
+{ after(grammarAccess.getXAnnotationAccess().getXAnnotationAction_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__XAnnotation__Group__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__XAnnotation__Group__1__Impl
+	rule__XAnnotation__Group__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XAnnotation__Group__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getXAnnotationAccess().getCommercialAtKeyword_1()); }
+
+	'@' 
+
+{ after(grammarAccess.getXAnnotationAccess().getCommercialAtKeyword_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__XAnnotation__Group__2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__XAnnotation__Group__2__Impl
+	rule__XAnnotation__Group__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XAnnotation__Group__2__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getXAnnotationAccess().getAnnotationTypeAssignment_2()); }
+(rule__XAnnotation__AnnotationTypeAssignment_2)
+{ after(grammarAccess.getXAnnotationAccess().getAnnotationTypeAssignment_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__XAnnotation__Group__3
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__XAnnotation__Group__3__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XAnnotation__Group__3__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getXAnnotationAccess().getGroup_3()); }
+(rule__XAnnotation__Group_3__0)?
+{ after(grammarAccess.getXAnnotationAccess().getGroup_3()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+rule__XAnnotation__Group_3__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__XAnnotation__Group_3__0__Impl
+	rule__XAnnotation__Group_3__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XAnnotation__Group_3__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getXAnnotationAccess().getLeftParenthesisKeyword_3_0()); }
+(
+	'(' 
+)
+{ after(grammarAccess.getXAnnotationAccess().getLeftParenthesisKeyword_3_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__XAnnotation__Group_3__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__XAnnotation__Group_3__1__Impl
+	rule__XAnnotation__Group_3__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XAnnotation__Group_3__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getXAnnotationAccess().getAlternatives_3_1()); }
+(rule__XAnnotation__Alternatives_3_1)?
+{ after(grammarAccess.getXAnnotationAccess().getAlternatives_3_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__XAnnotation__Group_3__2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__XAnnotation__Group_3__2__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XAnnotation__Group_3__2__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getXAnnotationAccess().getRightParenthesisKeyword_3_2()); }
+
+	')' 
+
+{ after(grammarAccess.getXAnnotationAccess().getRightParenthesisKeyword_3_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+rule__XAnnotation__Group_3_1_0__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__XAnnotation__Group_3_1_0__0__Impl
+	rule__XAnnotation__Group_3_1_0__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XAnnotation__Group_3_1_0__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getXAnnotationAccess().getElementValuePairsAssignment_3_1_0_0()); }
+(rule__XAnnotation__ElementValuePairsAssignment_3_1_0_0)
+{ after(grammarAccess.getXAnnotationAccess().getElementValuePairsAssignment_3_1_0_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__XAnnotation__Group_3_1_0__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__XAnnotation__Group_3_1_0__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XAnnotation__Group_3_1_0__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getXAnnotationAccess().getGroup_3_1_0_1()); }
+(rule__XAnnotation__Group_3_1_0_1__0)*
+{ after(grammarAccess.getXAnnotationAccess().getGroup_3_1_0_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__XAnnotation__Group_3_1_0_1__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__XAnnotation__Group_3_1_0_1__0__Impl
+	rule__XAnnotation__Group_3_1_0_1__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XAnnotation__Group_3_1_0_1__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getXAnnotationAccess().getCommaKeyword_3_1_0_1_0()); }
+
+	',' 
+
+{ after(grammarAccess.getXAnnotationAccess().getCommaKeyword_3_1_0_1_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__XAnnotation__Group_3_1_0_1__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__XAnnotation__Group_3_1_0_1__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XAnnotation__Group_3_1_0_1__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getXAnnotationAccess().getElementValuePairsAssignment_3_1_0_1_1()); }
+(rule__XAnnotation__ElementValuePairsAssignment_3_1_0_1_1)
+{ after(grammarAccess.getXAnnotationAccess().getElementValuePairsAssignment_3_1_0_1_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__XAnnotationElementValuePair__Group__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__XAnnotationElementValuePair__Group__0__Impl
+	rule__XAnnotationElementValuePair__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XAnnotationElementValuePair__Group__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getXAnnotationElementValuePairAccess().getGroup_0()); }
+(rule__XAnnotationElementValuePair__Group_0__0)
+{ after(grammarAccess.getXAnnotationElementValuePairAccess().getGroup_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__XAnnotationElementValuePair__Group__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__XAnnotationElementValuePair__Group__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XAnnotationElementValuePair__Group__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getXAnnotationElementValuePairAccess().getValueAssignment_1()); }
+(rule__XAnnotationElementValuePair__ValueAssignment_1)
+{ after(grammarAccess.getXAnnotationElementValuePairAccess().getValueAssignment_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__XAnnotationElementValuePair__Group_0__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__XAnnotationElementValuePair__Group_0__0__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XAnnotationElementValuePair__Group_0__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getXAnnotationElementValuePairAccess().getGroup_0_0()); }
+(rule__XAnnotationElementValuePair__Group_0_0__0)
+{ after(grammarAccess.getXAnnotationElementValuePairAccess().getGroup_0_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+rule__XAnnotationElementValuePair__Group_0_0__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__XAnnotationElementValuePair__Group_0_0__0__Impl
+	rule__XAnnotationElementValuePair__Group_0_0__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XAnnotationElementValuePair__Group_0_0__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getXAnnotationElementValuePairAccess().getElementAssignment_0_0_0()); }
+(rule__XAnnotationElementValuePair__ElementAssignment_0_0_0)
+{ after(grammarAccess.getXAnnotationElementValuePairAccess().getElementAssignment_0_0_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__XAnnotationElementValuePair__Group_0_0__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__XAnnotationElementValuePair__Group_0_0__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XAnnotationElementValuePair__Group_0_0__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getXAnnotationElementValuePairAccess().getEqualsSignKeyword_0_0_1()); }
+
+	'=' 
+
+{ after(grammarAccess.getXAnnotationElementValuePairAccess().getEqualsSignKeyword_0_0_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__XAnnotationElementValueOrCommaList__Group_0__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__XAnnotationElementValueOrCommaList__Group_0__0__Impl
+	rule__XAnnotationElementValueOrCommaList__Group_0__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XAnnotationElementValueOrCommaList__Group_0__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getGroup_0_0()); }
+(rule__XAnnotationElementValueOrCommaList__Group_0_0__0)
+{ after(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getGroup_0_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__XAnnotationElementValueOrCommaList__Group_0__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__XAnnotationElementValueOrCommaList__Group_0__1__Impl
+	rule__XAnnotationElementValueOrCommaList__Group_0__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XAnnotationElementValueOrCommaList__Group_0__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getGroup_0_1()); }
+(rule__XAnnotationElementValueOrCommaList__Group_0_1__0)?
+{ after(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getGroup_0_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__XAnnotationElementValueOrCommaList__Group_0__2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__XAnnotationElementValueOrCommaList__Group_0__2__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XAnnotationElementValueOrCommaList__Group_0__2__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getRightSquareBracketKeyword_0_2()); }
+
+	']' 
+
+{ after(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getRightSquareBracketKeyword_0_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+rule__XAnnotationElementValueOrCommaList__Group_0_0__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__XAnnotationElementValueOrCommaList__Group_0_0__0__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XAnnotationElementValueOrCommaList__Group_0_0__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getGroup_0_0_0()); }
+(rule__XAnnotationElementValueOrCommaList__Group_0_0_0__0)
+{ after(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getGroup_0_0_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+rule__XAnnotationElementValueOrCommaList__Group_0_0_0__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__XAnnotationElementValueOrCommaList__Group_0_0_0__0__Impl
+	rule__XAnnotationElementValueOrCommaList__Group_0_0_0__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XAnnotationElementValueOrCommaList__Group_0_0_0__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getXListLiteralAction_0_0_0_0()); }
+(
+
+)
+{ after(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getXListLiteralAction_0_0_0_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__XAnnotationElementValueOrCommaList__Group_0_0_0__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__XAnnotationElementValueOrCommaList__Group_0_0_0__1__Impl
+	rule__XAnnotationElementValueOrCommaList__Group_0_0_0__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XAnnotationElementValueOrCommaList__Group_0_0_0__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getNumberSignKeyword_0_0_0_1()); }
+
+	'#' 
+
+{ after(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getNumberSignKeyword_0_0_0_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__XAnnotationElementValueOrCommaList__Group_0_0_0__2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__XAnnotationElementValueOrCommaList__Group_0_0_0__2__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XAnnotationElementValueOrCommaList__Group_0_0_0__2__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getLeftSquareBracketKeyword_0_0_0_2()); }
+
+	'[' 
+
+{ after(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getLeftSquareBracketKeyword_0_0_0_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+rule__XAnnotationElementValueOrCommaList__Group_0_1__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__XAnnotationElementValueOrCommaList__Group_0_1__0__Impl
+	rule__XAnnotationElementValueOrCommaList__Group_0_1__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XAnnotationElementValueOrCommaList__Group_0_1__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getElementsAssignment_0_1_0()); }
+(rule__XAnnotationElementValueOrCommaList__ElementsAssignment_0_1_0)
+{ after(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getElementsAssignment_0_1_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__XAnnotationElementValueOrCommaList__Group_0_1__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__XAnnotationElementValueOrCommaList__Group_0_1__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XAnnotationElementValueOrCommaList__Group_0_1__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getGroup_0_1_1()); }
+(rule__XAnnotationElementValueOrCommaList__Group_0_1_1__0)*
+{ after(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getGroup_0_1_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__XAnnotationElementValueOrCommaList__Group_0_1_1__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__XAnnotationElementValueOrCommaList__Group_0_1_1__0__Impl
+	rule__XAnnotationElementValueOrCommaList__Group_0_1_1__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XAnnotationElementValueOrCommaList__Group_0_1_1__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getCommaKeyword_0_1_1_0()); }
+
+	',' 
+
+{ after(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getCommaKeyword_0_1_1_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__XAnnotationElementValueOrCommaList__Group_0_1_1__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__XAnnotationElementValueOrCommaList__Group_0_1_1__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XAnnotationElementValueOrCommaList__Group_0_1_1__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getElementsAssignment_0_1_1_1()); }
+(rule__XAnnotationElementValueOrCommaList__ElementsAssignment_0_1_1_1)
+{ after(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getElementsAssignment_0_1_1_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__XAnnotationElementValueOrCommaList__Group_1__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__XAnnotationElementValueOrCommaList__Group_1__0__Impl
+	rule__XAnnotationElementValueOrCommaList__Group_1__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XAnnotationElementValueOrCommaList__Group_1__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getXAnnotationOrExpressionParserRuleCall_1_0()); }
+	ruleXAnnotationOrExpression
+{ after(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getXAnnotationOrExpressionParserRuleCall_1_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__XAnnotationElementValueOrCommaList__Group_1__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__XAnnotationElementValueOrCommaList__Group_1__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XAnnotationElementValueOrCommaList__Group_1__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getGroup_1_1()); }
+(rule__XAnnotationElementValueOrCommaList__Group_1_1__0)?
+{ after(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getGroup_1_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__XAnnotationElementValueOrCommaList__Group_1_1__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__XAnnotationElementValueOrCommaList__Group_1_1__0__Impl
+	rule__XAnnotationElementValueOrCommaList__Group_1_1__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XAnnotationElementValueOrCommaList__Group_1_1__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getXListLiteralElementsAction_1_1_0()); }
+(
+
+)
+{ after(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getXListLiteralElementsAction_1_1_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__XAnnotationElementValueOrCommaList__Group_1_1__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__XAnnotationElementValueOrCommaList__Group_1_1__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XAnnotationElementValueOrCommaList__Group_1_1__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+(
+{ before(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getGroup_1_1_1()); }
+(rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0)
+{ after(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getGroup_1_1_1()); }
+)
+(
+{ before(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getGroup_1_1_1()); }
+(rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0)*
+{ after(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getGroup_1_1_1()); }
+)
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0__Impl
+	rule__XAnnotationElementValueOrCommaList__Group_1_1_1__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XAnnotationElementValueOrCommaList__Group_1_1_1__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getCommaKeyword_1_1_1_0()); }
+
+	',' 
+
+{ after(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getCommaKeyword_1_1_1_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__XAnnotationElementValueOrCommaList__Group_1_1_1__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__XAnnotationElementValueOrCommaList__Group_1_1_1__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XAnnotationElementValueOrCommaList__Group_1_1_1__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getElementsAssignment_1_1_1_1()); }
+(rule__XAnnotationElementValueOrCommaList__ElementsAssignment_1_1_1_1)
+{ after(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getElementsAssignment_1_1_1_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__XAnnotationElementValue__Group_0__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__XAnnotationElementValue__Group_0__0__Impl
+	rule__XAnnotationElementValue__Group_0__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XAnnotationElementValue__Group_0__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getXAnnotationElementValueAccess().getGroup_0_0()); }
+(rule__XAnnotationElementValue__Group_0_0__0)
+{ after(grammarAccess.getXAnnotationElementValueAccess().getGroup_0_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__XAnnotationElementValue__Group_0__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__XAnnotationElementValue__Group_0__1__Impl
+	rule__XAnnotationElementValue__Group_0__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XAnnotationElementValue__Group_0__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getXAnnotationElementValueAccess().getGroup_0_1()); }
+(rule__XAnnotationElementValue__Group_0_1__0)?
+{ after(grammarAccess.getXAnnotationElementValueAccess().getGroup_0_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__XAnnotationElementValue__Group_0__2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__XAnnotationElementValue__Group_0__2__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XAnnotationElementValue__Group_0__2__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getXAnnotationElementValueAccess().getRightSquareBracketKeyword_0_2()); }
+
+	']' 
+
+{ after(grammarAccess.getXAnnotationElementValueAccess().getRightSquareBracketKeyword_0_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+rule__XAnnotationElementValue__Group_0_0__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__XAnnotationElementValue__Group_0_0__0__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XAnnotationElementValue__Group_0_0__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getXAnnotationElementValueAccess().getGroup_0_0_0()); }
+(rule__XAnnotationElementValue__Group_0_0_0__0)
+{ after(grammarAccess.getXAnnotationElementValueAccess().getGroup_0_0_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+rule__XAnnotationElementValue__Group_0_0_0__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__XAnnotationElementValue__Group_0_0_0__0__Impl
+	rule__XAnnotationElementValue__Group_0_0_0__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XAnnotationElementValue__Group_0_0_0__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getXAnnotationElementValueAccess().getXListLiteralAction_0_0_0_0()); }
+(
+
+)
+{ after(grammarAccess.getXAnnotationElementValueAccess().getXListLiteralAction_0_0_0_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__XAnnotationElementValue__Group_0_0_0__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__XAnnotationElementValue__Group_0_0_0__1__Impl
+	rule__XAnnotationElementValue__Group_0_0_0__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XAnnotationElementValue__Group_0_0_0__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getXAnnotationElementValueAccess().getNumberSignKeyword_0_0_0_1()); }
+
+	'#' 
+
+{ after(grammarAccess.getXAnnotationElementValueAccess().getNumberSignKeyword_0_0_0_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__XAnnotationElementValue__Group_0_0_0__2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__XAnnotationElementValue__Group_0_0_0__2__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XAnnotationElementValue__Group_0_0_0__2__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getXAnnotationElementValueAccess().getLeftSquareBracketKeyword_0_0_0_2()); }
+
+	'[' 
+
+{ after(grammarAccess.getXAnnotationElementValueAccess().getLeftSquareBracketKeyword_0_0_0_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+rule__XAnnotationElementValue__Group_0_1__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__XAnnotationElementValue__Group_0_1__0__Impl
+	rule__XAnnotationElementValue__Group_0_1__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XAnnotationElementValue__Group_0_1__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getXAnnotationElementValueAccess().getElementsAssignment_0_1_0()); }
+(rule__XAnnotationElementValue__ElementsAssignment_0_1_0)
+{ after(grammarAccess.getXAnnotationElementValueAccess().getElementsAssignment_0_1_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__XAnnotationElementValue__Group_0_1__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__XAnnotationElementValue__Group_0_1__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XAnnotationElementValue__Group_0_1__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getXAnnotationElementValueAccess().getGroup_0_1_1()); }
+(rule__XAnnotationElementValue__Group_0_1_1__0)*
+{ after(grammarAccess.getXAnnotationElementValueAccess().getGroup_0_1_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__XAnnotationElementValue__Group_0_1_1__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__XAnnotationElementValue__Group_0_1_1__0__Impl
+	rule__XAnnotationElementValue__Group_0_1_1__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XAnnotationElementValue__Group_0_1_1__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getXAnnotationElementValueAccess().getCommaKeyword_0_1_1_0()); }
+
+	',' 
+
+{ after(grammarAccess.getXAnnotationElementValueAccess().getCommaKeyword_0_1_1_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__XAnnotationElementValue__Group_0_1_1__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__XAnnotationElementValue__Group_0_1_1__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XAnnotationElementValue__Group_0_1_1__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getXAnnotationElementValueAccess().getElementsAssignment_0_1_1_1()); }
+(rule__XAnnotationElementValue__ElementsAssignment_0_1_1_1)
+{ after(grammarAccess.getXAnnotationElementValueAccess().getElementsAssignment_0_1_1_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__XAssignment__Group_0__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__XAssignment__Group_0__0__Impl
+	rule__XAssignment__Group_0__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XAssignment__Group_0__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getXAssignmentAccess().getXAssignmentAction_0_0()); }
+(
+
+)
+{ after(grammarAccess.getXAssignmentAccess().getXAssignmentAction_0_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__XAssignment__Group_0__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__XAssignment__Group_0__1__Impl
+	rule__XAssignment__Group_0__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XAssignment__Group_0__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getXAssignmentAccess().getFeatureAssignment_0_1()); }
+(rule__XAssignment__FeatureAssignment_0_1)
+{ after(grammarAccess.getXAssignmentAccess().getFeatureAssignment_0_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__XAssignment__Group_0__2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__XAssignment__Group_0__2__Impl
+	rule__XAssignment__Group_0__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XAssignment__Group_0__2__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getXAssignmentAccess().getOpSingleAssignParserRuleCall_0_2()); }
+	ruleOpSingleAssign
+{ after(grammarAccess.getXAssignmentAccess().getOpSingleAssignParserRuleCall_0_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__XAssignment__Group_0__3
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__XAssignment__Group_0__3__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XAssignment__Group_0__3__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getXAssignmentAccess().getValueAssignment_0_3()); }
+(rule__XAssignment__ValueAssignment_0_3)
+{ after(grammarAccess.getXAssignmentAccess().getValueAssignment_0_3()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+
+
+rule__XAssignment__Group_1__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__XAssignment__Group_1__0__Impl
+	rule__XAssignment__Group_1__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XAssignment__Group_1__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getXAssignmentAccess().getXOrExpressionParserRuleCall_1_0()); }
+	ruleXOrExpression
+{ after(grammarAccess.getXAssignmentAccess().getXOrExpressionParserRuleCall_1_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__XAssignment__Group_1__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__XAssignment__Group_1__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XAssignment__Group_1__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getXAssignmentAccess().getGroup_1_1()); }
+(rule__XAssignment__Group_1_1__0)?
+{ after(grammarAccess.getXAssignmentAccess().getGroup_1_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__XAssignment__Group_1_1__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__XAssignment__Group_1_1__0__Impl
+	rule__XAssignment__Group_1_1__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XAssignment__Group_1_1__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getXAssignmentAccess().getGroup_1_1_0()); }
+(rule__XAssignment__Group_1_1_0__0)
+{ after(grammarAccess.getXAssignmentAccess().getGroup_1_1_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__XAssignment__Group_1_1__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__XAssignment__Group_1_1__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XAssignment__Group_1_1__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getXAssignmentAccess().getRightOperandAssignment_1_1_1()); }
+(rule__XAssignment__RightOperandAssignment_1_1_1)
+{ after(grammarAccess.getXAssignmentAccess().getRightOperandAssignment_1_1_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__XAssignment__Group_1_1_0__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__XAssignment__Group_1_1_0__0__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XAssignment__Group_1_1_0__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getXAssignmentAccess().getGroup_1_1_0_0()); }
+(rule__XAssignment__Group_1_1_0_0__0)
+{ after(grammarAccess.getXAssignmentAccess().getGroup_1_1_0_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+rule__XAssignment__Group_1_1_0_0__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__XAssignment__Group_1_1_0_0__0__Impl
+	rule__XAssignment__Group_1_1_0_0__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XAssignment__Group_1_1_0_0__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getXAssignmentAccess().getXBinaryOperationLeftOperandAction_1_1_0_0_0()); }
+(
+
+)
+{ after(grammarAccess.getXAssignmentAccess().getXBinaryOperationLeftOperandAction_1_1_0_0_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__XAssignment__Group_1_1_0_0__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__XAssignment__Group_1_1_0_0__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XAssignment__Group_1_1_0_0__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getXAssignmentAccess().getFeatureAssignment_1_1_0_0_1()); }
+(rule__XAssignment__FeatureAssignment_1_1_0_0_1)
+{ after(grammarAccess.getXAssignmentAccess().getFeatureAssignment_1_1_0_0_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__OpMultiAssign__Group_5__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__OpMultiAssign__Group_5__0__Impl
+	rule__OpMultiAssign__Group_5__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__OpMultiAssign__Group_5__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getOpMultiAssignAccess().getLessThanSignKeyword_5_0()); }
+
+	'<' 
+
+{ after(grammarAccess.getOpMultiAssignAccess().getLessThanSignKeyword_5_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__OpMultiAssign__Group_5__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__OpMultiAssign__Group_5__1__Impl
+	rule__OpMultiAssign__Group_5__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__OpMultiAssign__Group_5__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getOpMultiAssignAccess().getLessThanSignKeyword_5_1()); }
+
+	'<' 
+
+{ after(grammarAccess.getOpMultiAssignAccess().getLessThanSignKeyword_5_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__OpMultiAssign__Group_5__2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__OpMultiAssign__Group_5__2__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__OpMultiAssign__Group_5__2__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getOpMultiAssignAccess().getEqualsSignKeyword_5_2()); }
+
+	'=' 
+
+{ after(grammarAccess.getOpMultiAssignAccess().getEqualsSignKeyword_5_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+rule__OpMultiAssign__Group_6__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__OpMultiAssign__Group_6__0__Impl
+	rule__OpMultiAssign__Group_6__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__OpMultiAssign__Group_6__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getOpMultiAssignAccess().getGreaterThanSignKeyword_6_0()); }
+
+	'>' 
+
+{ after(grammarAccess.getOpMultiAssignAccess().getGreaterThanSignKeyword_6_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__OpMultiAssign__Group_6__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__OpMultiAssign__Group_6__1__Impl
+	rule__OpMultiAssign__Group_6__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__OpMultiAssign__Group_6__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getOpMultiAssignAccess().getGreaterThanSignKeyword_6_1()); }
+(
+	'>' 
+)?
+{ after(grammarAccess.getOpMultiAssignAccess().getGreaterThanSignKeyword_6_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__OpMultiAssign__Group_6__2
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__OpMultiAssign__Group_6__2__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__OpMultiAssign__Group_6__2__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getOpMultiAssignAccess().getGreaterThanSignEqualsSignKeyword_6_2()); }
+
+	'>=' 
+
+{ after(grammarAccess.getOpMultiAssignAccess().getGreaterThanSignEqualsSignKeyword_6_2()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+
+
+rule__XOrExpression__Group__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__XOrExpression__Group__0__Impl
+	rule__XOrExpression__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XOrExpression__Group__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getXOrExpressionAccess().getXAndExpressionParserRuleCall_0()); }
+	ruleXAndExpression
+{ after(grammarAccess.getXOrExpressionAccess().getXAndExpressionParserRuleCall_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__XOrExpression__Group__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__XOrExpression__Group__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XOrExpression__Group__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getXOrExpressionAccess().getGroup_1()); }
+(rule__XOrExpression__Group_1__0)*
+{ after(grammarAccess.getXOrExpressionAccess().getGroup_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__XOrExpression__Group_1__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__XOrExpression__Group_1__0__Impl
+	rule__XOrExpression__Group_1__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XOrExpression__Group_1__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getXOrExpressionAccess().getGroup_1_0()); }
+(rule__XOrExpression__Group_1_0__0)
+{ after(grammarAccess.getXOrExpressionAccess().getGroup_1_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__XOrExpression__Group_1__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__XOrExpression__Group_1__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XOrExpression__Group_1__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getXOrExpressionAccess().getRightOperandAssignment_1_1()); }
+(rule__XOrExpression__RightOperandAssignment_1_1)
+{ after(grammarAccess.getXOrExpressionAccess().getRightOperandAssignment_1_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__XOrExpression__Group_1_0__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__XOrExpression__Group_1_0__0__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XOrExpression__Group_1_0__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getXOrExpressionAccess().getGroup_1_0_0()); }
+(rule__XOrExpression__Group_1_0_0__0)
+{ after(grammarAccess.getXOrExpressionAccess().getGroup_1_0_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+rule__XOrExpression__Group_1_0_0__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__XOrExpression__Group_1_0_0__0__Impl
+	rule__XOrExpression__Group_1_0_0__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XOrExpression__Group_1_0_0__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getXOrExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0()); }
+(
+
+)
+{ after(grammarAccess.getXOrExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__XOrExpression__Group_1_0_0__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__XOrExpression__Group_1_0_0__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XOrExpression__Group_1_0_0__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getXOrExpressionAccess().getFeatureAssignment_1_0_0_1()); }
+(rule__XOrExpression__FeatureAssignment_1_0_0_1)
+{ after(grammarAccess.getXOrExpressionAccess().getFeatureAssignment_1_0_0_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__XAndExpression__Group__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__XAndExpression__Group__0__Impl
+	rule__XAndExpression__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XAndExpression__Group__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getXAndExpressionAccess().getXEqualityExpressionParserRuleCall_0()); }
+	ruleXEqualityExpression
+{ after(grammarAccess.getXAndExpressionAccess().getXEqualityExpressionParserRuleCall_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__XAndExpression__Group__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__XAndExpression__Group__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XAndExpression__Group__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getXAndExpressionAccess().getGroup_1()); }
+(rule__XAndExpression__Group_1__0)*
+{ after(grammarAccess.getXAndExpressionAccess().getGroup_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__XAndExpression__Group_1__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__XAndExpression__Group_1__0__Impl
+	rule__XAndExpression__Group_1__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XAndExpression__Group_1__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getXAndExpressionAccess().getGroup_1_0()); }
+(rule__XAndExpression__Group_1_0__0)
+{ after(grammarAccess.getXAndExpressionAccess().getGroup_1_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__XAndExpression__Group_1__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__XAndExpression__Group_1__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XAndExpression__Group_1__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getXAndExpressionAccess().getRightOperandAssignment_1_1()); }
+(rule__XAndExpression__RightOperandAssignment_1_1)
+{ after(grammarAccess.getXAndExpressionAccess().getRightOperandAssignment_1_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__XAndExpression__Group_1_0__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__XAndExpression__Group_1_0__0__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XAndExpression__Group_1_0__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getXAndExpressionAccess().getGroup_1_0_0()); }
+(rule__XAndExpression__Group_1_0_0__0)
+{ after(grammarAccess.getXAndExpressionAccess().getGroup_1_0_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+rule__XAndExpression__Group_1_0_0__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__XAndExpression__Group_1_0_0__0__Impl
+	rule__XAndExpression__Group_1_0_0__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XAndExpression__Group_1_0_0__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getXAndExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0()); }
+(
+
+)
+{ after(grammarAccess.getXAndExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__XAndExpression__Group_1_0_0__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__XAndExpression__Group_1_0_0__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XAndExpression__Group_1_0_0__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getXAndExpressionAccess().getFeatureAssignment_1_0_0_1()); }
+(rule__XAndExpression__FeatureAssignment_1_0_0_1)
+{ after(grammarAccess.getXAndExpressionAccess().getFeatureAssignment_1_0_0_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__XEqualityExpression__Group__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__XEqualityExpression__Group__0__Impl
+	rule__XEqualityExpression__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XEqualityExpression__Group__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getXEqualityExpressionAccess().getXRelationalExpressionParserRuleCall_0()); }
+	ruleXRelationalExpression
+{ after(grammarAccess.getXEqualityExpressionAccess().getXRelationalExpressionParserRuleCall_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__XEqualityExpression__Group__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__XEqualityExpression__Group__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XEqualityExpression__Group__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getXEqualityExpressionAccess().getGroup_1()); }
+(rule__XEqualityExpression__Group_1__0)*
+{ after(grammarAccess.getXEqualityExpressionAccess().getGroup_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__XEqualityExpression__Group_1__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__XEqualityExpression__Group_1__0__Impl
+	rule__XEqualityExpression__Group_1__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XEqualityExpression__Group_1__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getXEqualityExpressionAccess().getGroup_1_0()); }
+(rule__XEqualityExpression__Group_1_0__0)
+{ after(grammarAccess.getXEqualityExpressionAccess().getGroup_1_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__XEqualityExpression__Group_1__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__XEqualityExpression__Group_1__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XEqualityExpression__Group_1__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getXEqualityExpressionAccess().getRightOperandAssignment_1_1()); }
+(rule__XEqualityExpression__RightOperandAssignment_1_1)
+{ after(grammarAccess.getXEqualityExpressionAccess().getRightOperandAssignment_1_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__XEqualityExpression__Group_1_0__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__XEqualityExpression__Group_1_0__0__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XEqualityExpression__Group_1_0__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getXEqualityExpressionAccess().getGroup_1_0_0()); }
+(rule__XEqualityExpression__Group_1_0_0__0)
+{ after(grammarAccess.getXEqualityExpressionAccess().getGroup_1_0_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+rule__XEqualityExpression__Group_1_0_0__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__XEqualityExpression__Group_1_0_0__0__Impl
+	rule__XEqualityExpression__Group_1_0_0__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XEqualityExpression__Group_1_0_0__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getXEqualityExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0()); }
+(
+
+)
+{ after(grammarAccess.getXEqualityExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__XEqualityExpression__Group_1_0_0__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__XEqualityExpression__Group_1_0_0__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XEqualityExpression__Group_1_0_0__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getXEqualityExpressionAccess().getFeatureAssignment_1_0_0_1()); }
+(rule__XEqualityExpression__FeatureAssignment_1_0_0_1)
+{ after(grammarAccess.getXEqualityExpressionAccess().getFeatureAssignment_1_0_0_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__XRelationalExpression__Group__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__XRelationalExpression__Group__0__Impl
+	rule__XRelationalExpression__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XRelationalExpression__Group__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getXRelationalExpressionAccess().getXOtherOperatorExpressionParserRuleCall_0()); }
+	ruleXOtherOperatorExpression
+{ after(grammarAccess.getXRelationalExpressionAccess().getXOtherOperatorExpressionParserRuleCall_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__XRelationalExpression__Group__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__XRelationalExpression__Group__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XRelationalExpression__Group__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getXRelationalExpressionAccess().getAlternatives_1()); }
+(rule__XRelationalExpression__Alternatives_1)*
+{ after(grammarAccess.getXRelationalExpressionAccess().getAlternatives_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__XRelationalExpression__Group_1_0__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__XRelationalExpression__Group_1_0__0__Impl
+	rule__XRelationalExpression__Group_1_0__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XRelationalExpression__Group_1_0__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getXRelationalExpressionAccess().getGroup_1_0_0()); }
+(rule__XRelationalExpression__Group_1_0_0__0)
+{ after(grammarAccess.getXRelationalExpressionAccess().getGroup_1_0_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__XRelationalExpression__Group_1_0__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__XRelationalExpression__Group_1_0__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XRelationalExpression__Group_1_0__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getXRelationalExpressionAccess().getTypeAssignment_1_0_1()); }
+(rule__XRelationalExpression__TypeAssignment_1_0_1)
+{ after(grammarAccess.getXRelationalExpressionAccess().getTypeAssignment_1_0_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__XRelationalExpression__Group_1_0_0__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__XRelationalExpression__Group_1_0_0__0__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XRelationalExpression__Group_1_0_0__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getXRelationalExpressionAccess().getGroup_1_0_0_0()); }
+(rule__XRelationalExpression__Group_1_0_0_0__0)
+{ after(grammarAccess.getXRelationalExpressionAccess().getGroup_1_0_0_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+rule__XRelationalExpression__Group_1_0_0_0__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__XRelationalExpression__Group_1_0_0_0__0__Impl
+	rule__XRelationalExpression__Group_1_0_0_0__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XRelationalExpression__Group_1_0_0_0__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getXRelationalExpressionAccess().getXInstanceOfExpressionExpressionAction_1_0_0_0_0()); }
+(
+
+)
+{ after(grammarAccess.getXRelationalExpressionAccess().getXInstanceOfExpressionExpressionAction_1_0_0_0_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__XRelationalExpression__Group_1_0_0_0__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__XRelationalExpression__Group_1_0_0_0__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XRelationalExpression__Group_1_0_0_0__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getXRelationalExpressionAccess().getInstanceofKeyword_1_0_0_0_1()); }
+
+	'instanceof' 
+
+{ after(grammarAccess.getXRelationalExpressionAccess().getInstanceofKeyword_1_0_0_0_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__XRelationalExpression__Group_1_1__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__XRelationalExpression__Group_1_1__0__Impl
+	rule__XRelationalExpression__Group_1_1__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XRelationalExpression__Group_1_1__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getXRelationalExpressionAccess().getGroup_1_1_0()); }
+(rule__XRelationalExpression__Group_1_1_0__0)
+{ after(grammarAccess.getXRelationalExpressionAccess().getGroup_1_1_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__XRelationalExpression__Group_1_1__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__XRelationalExpression__Group_1_1__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XRelationalExpression__Group_1_1__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getXRelationalExpressionAccess().getRightOperandAssignment_1_1_1()); }
+(rule__XRelationalExpression__RightOperandAssignment_1_1_1)
+{ after(grammarAccess.getXRelationalExpressionAccess().getRightOperandAssignment_1_1_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__XRelationalExpression__Group_1_1_0__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__XRelationalExpression__Group_1_1_0__0__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XRelationalExpression__Group_1_1_0__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getXRelationalExpressionAccess().getGroup_1_1_0_0()); }
+(rule__XRelationalExpression__Group_1_1_0_0__0)
+{ after(grammarAccess.getXRelationalExpressionAccess().getGroup_1_1_0_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+rule__XRelationalExpression__Group_1_1_0_0__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__XRelationalExpression__Group_1_1_0_0__0__Impl
+	rule__XRelationalExpression__Group_1_1_0_0__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XRelationalExpression__Group_1_1_0_0__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getXRelationalExpressionAccess().getXBinaryOperationLeftOperandAction_1_1_0_0_0()); }
+(
+
+)
+{ after(grammarAccess.getXRelationalExpressionAccess().getXBinaryOperationLeftOperandAction_1_1_0_0_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__XRelationalExpression__Group_1_1_0_0__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__XRelationalExpression__Group_1_1_0_0__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XRelationalExpression__Group_1_1_0_0__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getXRelationalExpressionAccess().getFeatureAssignment_1_1_0_0_1()); }
+(rule__XRelationalExpression__FeatureAssignment_1_1_0_0_1)
+{ after(grammarAccess.getXRelationalExpressionAccess().getFeatureAssignment_1_1_0_0_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__OpCompare__Group_1__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__OpCompare__Group_1__0__Impl
+	rule__OpCompare__Group_1__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__OpCompare__Group_1__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getOpCompareAccess().getLessThanSignKeyword_1_0()); }
+
+	'<' 
+
+{ after(grammarAccess.getOpCompareAccess().getLessThanSignKeyword_1_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__OpCompare__Group_1__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__OpCompare__Group_1__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__OpCompare__Group_1__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getOpCompareAccess().getEqualsSignKeyword_1_1()); }
+
+	'=' 
+
+{ after(grammarAccess.getOpCompareAccess().getEqualsSignKeyword_1_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__XOtherOperatorExpression__Group__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__XOtherOperatorExpression__Group__0__Impl
+	rule__XOtherOperatorExpression__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XOtherOperatorExpression__Group__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getXOtherOperatorExpressionAccess().getXAdditiveExpressionParserRuleCall_0()); }
+	ruleXAdditiveExpression
+{ after(grammarAccess.getXOtherOperatorExpressionAccess().getXAdditiveExpressionParserRuleCall_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__XOtherOperatorExpression__Group__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__XOtherOperatorExpression__Group__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XOtherOperatorExpression__Group__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getXOtherOperatorExpressionAccess().getGroup_1()); }
+(rule__XOtherOperatorExpression__Group_1__0)*
+{ after(grammarAccess.getXOtherOperatorExpressionAccess().getGroup_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__XOtherOperatorExpression__Group_1__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__XOtherOperatorExpression__Group_1__0__Impl
+	rule__XOtherOperatorExpression__Group_1__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XOtherOperatorExpression__Group_1__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getXOtherOperatorExpressionAccess().getGroup_1_0()); }
+(rule__XOtherOperatorExpression__Group_1_0__0)
+{ after(grammarAccess.getXOtherOperatorExpressionAccess().getGroup_1_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__XOtherOperatorExpression__Group_1__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__XOtherOperatorExpression__Group_1__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XOtherOperatorExpression__Group_1__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getXOtherOperatorExpressionAccess().getRightOperandAssignment_1_1()); }
+(rule__XOtherOperatorExpression__RightOperandAssignment_1_1)
+{ after(grammarAccess.getXOtherOperatorExpressionAccess().getRightOperandAssignment_1_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__XOtherOperatorExpression__Group_1_0__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__XOtherOperatorExpression__Group_1_0__0__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XOtherOperatorExpression__Group_1_0__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getXOtherOperatorExpressionAccess().getGroup_1_0_0()); }
+(rule__XOtherOperatorExpression__Group_1_0_0__0)
+{ after(grammarAccess.getXOtherOperatorExpressionAccess().getGroup_1_0_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+rule__XOtherOperatorExpression__Group_1_0_0__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__XOtherOperatorExpression__Group_1_0_0__0__Impl
+	rule__XOtherOperatorExpression__Group_1_0_0__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XOtherOperatorExpression__Group_1_0_0__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getXOtherOperatorExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0()); }
+(
+
+)
+{ after(grammarAccess.getXOtherOperatorExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__XOtherOperatorExpression__Group_1_0_0__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__XOtherOperatorExpression__Group_1_0_0__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__XOtherOperatorExpression__Group_1_0_0__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getXOtherOperatorExpressionAccess().getFeatureAssignment_1_0_0_1()); }
+(rule__XOtherOperatorExpression__FeatureAssignment_1_0_0_1)
+{ after(grammarAccess.getXOtherOperatorExpressionAccess().getFeatureAssignment_1_0_0_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__OpOther__Group_2__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__OpOther__Group_2__0__Impl
+	rule__OpOther__Group_2__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__OpOther__Group_2__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getOpOtherAccess().getGreaterThanSignKeyword_2_0()); }
+
+	'>' 
+
+{ after(grammarAccess.getOpOtherAccess().getGreaterThanSignKeyword_2_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__OpOther__Group_2__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__OpOther__Group_2__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__OpOther__Group_2__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getOpOtherAccess().getFullStopFullStopKeyword_2_1()); }
+
+	'..' 
+
+{ after(grammarAccess.getOpOtherAccess().getFullStopFullStopKeyword_2_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__OpOther__Group_5__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__OpOther__Group_5__0__Impl
+	rule__OpOther__Group_5__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__OpOther__Group_5__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getOpOtherAccess().getGreaterThanSignKeyword_5_0()); }
+
+	'>' 
+
+{ after(grammarAccess.getOpOtherAccess().getGreaterThanSignKeyword_5_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__OpOther__Group_5__1
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__OpOther__Group_5__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__OpOther__Group_5__1__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getOpOtherAccess().getAlternatives_5_1()); }
+(rule__OpOther__Alternatives_5_1)
+{ after(grammarAccess.getOpOtherAccess().getAlternatives_5_1()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+
+
+rule__OpOther__Group_5_1_0__0
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+	rule__OpOther__Group_5_1_0__0__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__OpOther__Group_5_1_0__0__Impl
+    @init {
+		int stackSize = keepStackSize();
+    }
+:
+(
+{ before(grammarAccess.getOpOtherAccess().getGroup_5_1_0_0()); }
+(rule__OpOther__Group_5_1_0_0__0)
+{ after(grammarAccess.getOpOtherAccess().getGroup_5_1_0_0()); }
+)
+
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+
+
+rule__OpOther__Group_5_1_0_0__0
+    @init {
+		int stackSize = keepStackSize();
+    }
diff --git a/org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.tokens b/org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.tokens
new file mode 100644
index 0000000..8acc6e7
--- /dev/null
+++ b/org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.tokens
@@ -0,0 +1,245 @@
+'!'=42
+'!='=24
+'!=='=26
+'#'=100
+'%'=41
+'%='=22
+'&&'=15
+'&'=124
+'('=96
+')'=97
+'*'=38
+'**'=39
+'*='=20
+'+'=36
+'++'=43
+'+='=18
+','=98
+'-'=37
+'--'=44
+'-='=19
+'->'=30
+'.'=45
+'..'=32
+'..<'=31
+'/'=40
+'/='=21
+':'=108
+'::'=126
+';'=104
+'<'=29
+'<>'=34
+'='=13
+'=='=23
+'==='=25
+'=>'=33
+'>'=28
+'>='=27
+'?'=123
+'?.'=127
+'?:'=35
+'@'=95
+'Activate'=65
+'AddAll'=68
+'Cancel'=72
+'Claim'=53
+'Complete'=59
+'Delegate'=60
+'Delete'=71
+'Download'=16
+'Exit'=66
+'Export'=75
+'Fail'=62
+'Forward'=61
+'Import'=74
+'New'=69
+'PrintOnServer'=73
+'Register'=63
+'Release'=55
+'Remove'=64
+'RemoveAll'=67
+'Resume'=57
+'Save'=70
+'Skip'=58
+'Start'=17
+'Stop'=54
+'Suspend'=56
+'['=101
+']'=99
+'as'=103
+'canExecute'=84
+'case'=110
+'catch'=122
+'chartAction'=91
+'datainterchangeAction'=93
+'default'=109
+'described by'=125
+'dialogAction'=89
+'do'=113
+'else'=106
+'executeParameter'=85
+'extends'=47
+'extension'=50
+'false'=52
+'finally'=120
+'for'=111
+'genericAction'=94
+'group'=83
+'icon'=82
+'if'=105
+'import'=49
+'instanceof'=102
+'item'=81
+'items'=80
+'message'=86
+'new'=114
+'null'=115
+'package'=76
+'reportAction'=90
+'return'=118
+'selectWorkloadAction'=88
+'static'=48
+'super'=51
+'switch'=107
+'synchronized'=121
+'taskAction'=87
+'throw'=117
+'toolbar'=79
+'true'=130
+'try'=119
+'typeof'=116
+'val'=46
+'var'=129
+'while'=112
+'workflowAction'=92
+'{'=77
+'|'=128
+'||'=14
+'}'=78
+RULE_ANY_OTHER=12
+RULE_DECIMAL=8
+RULE_HEX=6
+RULE_ID=4
+RULE_INT=7
+RULE_ML_COMMENT=9
+RULE_SL_COMMENT=10
+RULE_STRING=5
+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__13=13
+T__14=14
+T__15=15
+T__16=16
+T__17=17
+T__18=18
+T__19=19
+T__20=20
+T__21=21
+T__22=22
+T__23=23
+T__24=24
+T__25=25
+T__26=26
+T__27=27
+T__28=28
+T__29=29
+T__30=30
+T__31=31
+T__32=32
+T__33=33
+T__34=34
+T__35=35
+T__36=36
+T__37=37
+T__38=38
+T__39=39
+T__40=40
+T__41=41
+T__42=42
+T__43=43
+T__44=44
+T__45=45
+T__46=46
+T__47=47
+T__48=48
+T__49=49
+T__50=50
+T__51=51
+T__52=52
+T__53=53
+T__54=54
+T__55=55
+T__56=56
+T__57=57
+T__58=58
+T__59=59
+T__60=60
+T__61=61
+T__62=62
+T__63=63
+T__64=64
+T__65=65
+T__66=66
+T__67=67
+T__68=68
+T__69=69
+T__70=70
+T__71=71
+T__72=72
+T__73=73
+T__74=74
+T__75=75
+T__76=76
+T__77=77
+T__78=78
+T__79=79
+T__80=80
+T__81=81
+T__82=82
+T__83=83
+T__84=84
+T__85=85
+T__86=86
+T__87=87
+T__88=88
+T__89=89
+T__90=90
+T__91=91
+T__92=92
+T__93=93
+T__94=94
+T__95=95
+T__96=96
+T__97=97
+T__98=98
+T__99=99
diff --git a/org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSLLexer.java b/org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSLLexer.java
new file mode 100644
index 0000000..4e7af28
--- /dev/null
+++ b/org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSLLexer.java
@@ -0,0 +1,5352 @@
+/**
+ *                                                                            
+ *  Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) 
+ *                                                                            
+ *  All rights reserved. This program and the accompanying materials           
+ *  are made available under the 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.action.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 InternalActionDSLLexer extends Lexer {
+    public static final int RULE_HEX=6;
+    public static final int T__50=50;
+    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__52=52;
+    public static final int T__53=53;
+    public static final int T__54=54;
+    public static final int T__60=60;
+    public static final int T__61=61;
+    public static final int RULE_ID=4;
+    public static final int T__130=130;
+    public static final int RULE_INT=7;
+    public static final int T__66=66;
+    public static final int RULE_ML_COMMENT=9;
+    public static final int T__67=67;
+    public static final int T__129=129;
+    public static final int T__68=68;
+    public static final int T__69=69;
+    public static final int T__62=62;
+    public static final int T__126=126;
+    public static final int T__63=63;
+    public static final int T__125=125;
+    public static final int T__64=64;
+    public static final int T__128=128;
+    public static final int T__65=65;
+    public static final int T__127=127;
+    public static final int T__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__30=30;
+    public static final int T__31=31;
+    public static final int T__32=32;
+    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__41=41;
+    public static final int T__42=42;
+    public static final int T__43=43;
+    public static final int T__91=91;
+    public static final int T__100=100;
+    public static final int T__92=92;
+    public static final int T__93=93;
+    public static final int T__102=102;
+    public static final int T__94=94;
+    public static final int T__101=101;
+    public static final int T__90=90;
+    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__99=99;
+    public static final int T__13=13;
+    public static final int T__14=14;
+    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 RULE_DECIMAL=8;
+    public static final int T__26=26;
+    public static final int T__27=27;
+    public static final int T__28=28;
+    public static final int T__29=29;
+    public static final int T__22=22;
+    public static final int T__23=23;
+    public static final int T__24=24;
+    public static final int T__25=25;
+    public static final int T__20=20;
+    public static final int T__21=21;
+    public static final int T__122=122;
+    public static final int T__70=70;
+    public static final int T__121=121;
+    public static final int T__71=71;
+    public static final int T__124=124;
+    public static final int T__72=72;
+    public static final int T__123=123;
+    public static final int T__120=120;
+    public static final int RULE_STRING=5;
+    public static final int RULE_SL_COMMENT=10;
+    public static final int T__77=77;
+    public static final int T__119=119;
+    public static final int T__78=78;
+    public static final int T__118=118;
+    public static final int T__79=79;
+    public static final int T__73=73;
+    public static final int T__115=115;
+    public static final int EOF=-1;
+    public static final int T__74=74;
+    public static final int T__114=114;
+    public static final int T__75=75;
+    public static final int T__117=117;
+    public static final int T__76=76;
+    public static final int T__116=116;
+    public static final int T__80=80;
+    public static final int T__111=111;
+    public static final int T__81=81;
+    public static final int T__110=110;
+    public static final int T__82=82;
+    public static final int T__113=113;
+    public static final int T__83=83;
+    public static final int T__112=112;
+    public static final int RULE_WS=11;
+    public static final int RULE_ANY_OTHER=12;
+    public static final int T__88=88;
+    public static final int T__108=108;
+    public static final int T__89=89;
+    public static final int T__107=107;
+    public static final int T__109=109;
+    public static final int T__84=84;
+    public static final int T__104=104;
+    public static final int T__85=85;
+    public static final int T__103=103;
+    public static final int T__86=86;
+    public static final int T__106=106;
+    public static final int T__87=87;
+    public static final int T__105=105;
+
+    // delegates
+    // delegators
+
+    public InternalActionDSLLexer() {;} 
+    public InternalActionDSLLexer(CharStream input) {
+        this(input, new RecognizerSharedState());
+    }
+    public InternalActionDSLLexer(CharStream input, RecognizerSharedState state) {
+        super(input,state);
+
+    }
+    public String getGrammarFileName() { return "../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.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.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:11:7: ( '=' )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.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.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:12:7: ( '||' )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.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.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:13:7: ( '&&' )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.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.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:14:7: ( 'Download' )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:14:9: 'Download'
+            {
+            match("Download"); 
+
+
+            }
+
+            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.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:15:7: ( 'Start' )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:15:9: 'Start'
+            {
+            match("Start"); 
+
+
+            }
+
+            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.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:16:7: ( '+=' )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.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.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:17:7: ( '-=' )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:17:9: '-='
+            {
+            match("-="); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__19"
+
+    // $ANTLR start "T__20"
+    public final void mT__20() throws RecognitionException {
+        try {
+            int _type = T__20;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:18:7: ( '*=' )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.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.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:19:7: ( '/=' )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.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.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:20:7: ( '%=' )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.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.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:21:7: ( '==' )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.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.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:22:7: ( '!=' )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.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.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:23:7: ( '===' )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.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.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:24:7: ( '!==' )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.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.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:25:7: ( '>=' )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.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.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:26:7: ( '>' )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.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.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:27:7: ( '<' )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.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.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:28:7: ( '->' )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.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.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:29:7: ( '..<' )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.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.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:30:7: ( '..' )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.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.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:31:7: ( '=>' )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.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.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:32:7: ( '<>' )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.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.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:33:7: ( '?:' )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.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.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:34:7: ( '+' )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.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.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:35:7: ( '-' )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.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.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:36:7: ( '*' )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.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.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:37:7: ( '**' )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.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.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:38:7: ( '/' )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.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.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:39:7: ( '%' )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.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.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:40:7: ( '!' )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.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.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:41:7: ( '++' )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.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.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:42:7: ( '--' )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.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.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:43:7: ( '.' )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.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.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:44:7: ( 'val' )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:44:9: 'val'
+            {
+            match("val"); 
+
+
+            }
+
+            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.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:45:7: ( 'extends' )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:45:9: 'extends'
+            {
+            match("extends"); 
+
+
+            }
+
+            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.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:46:7: ( 'static' )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:46:9: 'static'
+            {
+            match("static"); 
+
+
+            }
+
+            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.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:47:7: ( 'import' )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:47:9: 'import'
+            {
+            match("import"); 
+
+
+            }
+
+            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.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:48:7: ( 'extension' )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:48:9: 'extension'
+            {
+            match("extension"); 
+
+
+            }
+
+            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.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:49:7: ( 'super' )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:49:9: 'super'
+            {
+            match("super"); 
+
+
+            }
+
+            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.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:50:7: ( 'false' )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:50:9: 'false'
+            {
+            match("false"); 
+
+
+            }
+
+            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.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:51:7: ( 'Claim' )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:51:9: 'Claim'
+            {
+            match("Claim"); 
+
+
+            }
+
+            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.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:52:7: ( 'Stop' )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:52:9: 'Stop'
+            {
+            match("Stop"); 
+
+
+            }
+
+            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.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:53:7: ( 'Release' )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:53:9: 'Release'
+            {
+            match("Release"); 
+
+
+            }
+
+            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.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:54:7: ( 'Suspend' )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:54:9: 'Suspend'
+            {
+            match("Suspend"); 
+
+
+            }
+
+            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.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:55:7: ( 'Resume' )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:55:9: 'Resume'
+            {
+            match("Resume"); 
+
+
+            }
+
+            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.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:56:7: ( 'Skip' )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:56:9: 'Skip'
+            {
+            match("Skip"); 
+
+
+            }
+
+            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.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:57:7: ( 'Complete' )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:57:9: 'Complete'
+            {
+            match("Complete"); 
+
+
+            }
+
+            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.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:58:7: ( 'Delegate' )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:58:9: 'Delegate'
+            {
+            match("Delegate"); 
+
+
+            }
+
+            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.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:59:7: ( 'Forward' )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:59:9: 'Forward'
+            {
+            match("Forward"); 
+
+
+            }
+
+            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.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:60:7: ( 'Fail' )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:60:9: 'Fail'
+            {
+            match("Fail"); 
+
+
+            }
+
+            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.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:61:7: ( 'Register' )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:61:9: 'Register'
+            {
+            match("Register"); 
+
+
+            }
+
+            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.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:62:7: ( 'Remove' )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:62:9: 'Remove'
+            {
+            match("Remove"); 
+
+
+            }
+
+            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.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:63:7: ( 'Activate' )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:63:9: 'Activate'
+            {
+            match("Activate"); 
+
+
+            }
+
+            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.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:64:7: ( 'Exit' )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:64:9: 'Exit'
+            {
+            match("Exit"); 
+
+
+            }
+
+            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.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:65:7: ( 'RemoveAll' )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:65:9: 'RemoveAll'
+            {
+            match("RemoveAll"); 
+
+
+            }
+
+            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.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:66:7: ( 'AddAll' )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:66:9: 'AddAll'
+            {
+            match("AddAll"); 
+
+
+            }
+
+            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.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:67:7: ( 'New' )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:67:9: 'New'
+            {
+            match("New"); 
+
+
+            }
+
+            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.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:68:7: ( 'Save' )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:68:9: 'Save'
+            {
+            match("Save"); 
+
+
+            }
+
+            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.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:69:7: ( 'Delete' )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:69:9: 'Delete'
+            {
+            match("Delete"); 
+
+
+            }
+
+            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.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:70:7: ( 'Cancel' )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:70:9: 'Cancel'
+            {
+            match("Cancel"); 
+
+
+            }
+
+            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.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:71:7: ( 'PrintOnServer' )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:71:9: 'PrintOnServer'
+            {
+            match("PrintOnServer"); 
+
+
+            }
+
+            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.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:72:7: ( 'Import' )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:72:9: 'Import'
+            {
+            match("Import"); 
+
+
+            }
+
+            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.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:73:7: ( 'Export' )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:73:9: 'Export'
+            {
+            match("Export"); 
+
+
+            }
+
+            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.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:74:7: ( 'package' )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:74:9: 'package'
+            {
+            match("package"); 
+
+
+            }
+
+            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.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:75:7: ( '{' )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:75:9: '{'
+            {
+            match('{'); 
+
+            }
+
+            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.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:76:7: ( '}' )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:76:9: '}'
+            {
+            match('}'); 
+
+            }
+
+            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.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:77:7: ( 'toolbar' )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:77:9: 'toolbar'
+            {
+            match("toolbar"); 
+
+
+            }
+
+            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.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:78:7: ( 'items' )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:78:9: 'items'
+            {
+            match("items"); 
+
+
+            }
+
+            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.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:79:7: ( 'item' )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:79:9: 'item'
+            {
+            match("item"); 
+
+
+            }
+
+            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.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:80:7: ( 'icon' )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:80:9: 'icon'
+            {
+            match("icon"); 
+
+
+            }
+
+            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.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:81:7: ( 'group' )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:81:9: 'group'
+            {
+            match("group"); 
+
+
+            }
+
+            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.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:82:7: ( 'canExecute' )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:82:9: 'canExecute'
+            {
+            match("canExecute"); 
+
+
+            }
+
+            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.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:83:7: ( 'executeParameter' )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:83:9: 'executeParameter'
+            {
+            match("executeParameter"); 
+
+
+            }
+
+            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.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:84:7: ( 'message' )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:84:9: 'message'
+            {
+            match("message"); 
+
+
+            }
+
+            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.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:85:7: ( 'taskAction' )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:85:9: 'taskAction'
+            {
+            match("taskAction"); 
+
+
+            }
+
+            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.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:86:7: ( 'selectWorkloadAction' )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:86:9: 'selectWorkloadAction'
+            {
+            match("selectWorkloadAction"); 
+
+
+            }
+
+            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.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:87:7: ( 'dialogAction' )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:87:9: 'dialogAction'
+            {
+            match("dialogAction"); 
+
+
+            }
+
+            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.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:88:7: ( 'reportAction' )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:88:9: 'reportAction'
+            {
+            match("reportAction"); 
+
+
+            }
+
+            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.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:89:7: ( 'chartAction' )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:89:9: 'chartAction'
+            {
+            match("chartAction"); 
+
+
+            }
+
+            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.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:90:7: ( 'workflowAction' )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:90:9: 'workflowAction'
+            {
+            match("workflowAction"); 
+
+
+            }
+
+            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.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:91:7: ( 'datainterchangeAction' )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:91:9: 'datainterchangeAction'
+            {
+            match("datainterchangeAction"); 
+
+
+            }
+
+            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.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:92:7: ( 'genericAction' )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:92:9: 'genericAction'
+            {
+            match("genericAction"); 
+
+
+            }
+
+            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.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:93:7: ( '@' )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:93:9: '@'
+            {
+            match('@'); 
+
+            }
+
+            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.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:94:7: ( '(' )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:94:9: '('
+            {
+            match('('); 
+
+            }
+
+            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.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:95:7: ( ')' )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:95:9: ')'
+            {
+            match(')'); 
+
+            }
+
+            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.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:96:7: ( ',' )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:96:9: ','
+            {
+            match(','); 
+
+            }
+
+            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.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:97:7: ( ']' )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:97:9: ']'
+            {
+            match(']'); 
+
+            }
+
+            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.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:98:8: ( '#' )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:98:10: '#'
+            {
+            match('#'); 
+
+            }
+
+            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.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:99:8: ( '[' )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:99:10: '['
+            {
+            match('['); 
+
+            }
+
+            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.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:100:8: ( 'instanceof' )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:100:10: 'instanceof'
+            {
+            match("instanceof"); 
+
+
+            }
+
+            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.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:101:8: ( 'as' )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:101:10: 'as'
+            {
+            match("as"); 
+
+
+            }
+
+            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.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:102:8: ( ';' )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:102:10: ';'
+            {
+            match(';'); 
+
+            }
+
+            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.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:103:8: ( 'if' )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:103:10: 'if'
+            {
+            match("if"); 
+
+
+            }
+
+            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.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:104:8: ( 'else' )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:104:10: 'else'
+            {
+            match("else"); 
+
+
+            }
+
+            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.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:105:8: ( 'switch' )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:105:10: 'switch'
+            {
+            match("switch"); 
+
+
+            }
+
+            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.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:106:8: ( ':' )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:106:10: ':'
+            {
+            match(':'); 
+
+            }
+
+            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.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:107:8: ( 'default' )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:107:10: 'default'
+            {
+            match("default"); 
+
+
+            }
+
+            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.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:108:8: ( 'case' )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:108:10: 'case'
+            {
+            match("case"); 
+
+
+            }
+
+            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.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:109:8: ( 'for' )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:109:10: 'for'
+            {
+            match("for"); 
+
+
+            }
+
+            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.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:110:8: ( 'while' )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:110:10: 'while'
+            {
+            match("while"); 
+
+
+            }
+
+            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.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:111:8: ( 'do' )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:111:10: 'do'
+            {
+            match("do"); 
+
+
+            }
+
+            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.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:112:8: ( 'new' )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:112:10: 'new'
+            {
+            match("new"); 
+
+
+            }
+
+            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.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:113:8: ( 'null' )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:113:10: 'null'
+            {
+            match("null"); 
+
+
+            }
+
+            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.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:114:8: ( 'typeof' )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:114:10: 'typeof'
+            {
+            match("typeof"); 
+
+
+            }
+
+            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.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:115:8: ( 'throw' )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:115:10: 'throw'
+            {
+            match("throw"); 
+
+
+            }
+
+            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.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:116:8: ( 'return' )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:116:10: 'return'
+            {
+            match("return"); 
+
+
+            }
+
+            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.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:117:8: ( 'try' )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:117:10: 'try'
+            {
+            match("try"); 
+
+
+            }
+
+            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.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:118:8: ( 'finally' )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:118:10: 'finally'
+            {
+            match("finally"); 
+
+
+            }
+
+            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.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:119:8: ( 'synchronized' )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:119:10: 'synchronized'
+            {
+            match("synchronized"); 
+
+
+            }
+
+            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.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:120:8: ( 'catch' )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:120:10: 'catch'
+            {
+            match("catch"); 
+
+
+            }
+
+            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.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:121:8: ( '?' )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.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.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:122:8: ( '&' )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.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.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:123:8: ( 'described by' )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:123:10: 'described by'
+            {
+            match("described by"); 
+
+
+            }
+
+            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.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:124:8: ( '::' )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.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.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:125:8: ( '?.' )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.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.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:126:8: ( '|' )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.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.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:127:8: ( 'var' )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:127:10: 'var'
+            {
+            match("var"); 
+
+
+            }
+
+            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.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:128:8: ( 'true' )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:128:10: 'true'
+            {
+            match("true"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__130"
+
+    // $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.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:24430:10: ( ( '0x' | '0X' ) ( '0' .. '9' | 'a' .. 'f' | 'A' .. 'F' | '_' )+ ( '#' ( ( 'b' | 'B' ) ( 'i' | 'I' ) | ( 'l' | 'L' ) ) )? )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:24430:12: ( '0x' | '0X' ) ( '0' .. '9' | 'a' .. 'f' | 'A' .. 'F' | '_' )+ ( '#' ( ( 'b' | 'B' ) ( 'i' | 'I' ) | ( 'l' | 'L' ) ) )?
+            {
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:24430: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.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:24430:13: '0x'
+                    {
+                    match("0x"); 
+
+
+                    }
+                    break;
+                case 2 :
+                    // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:24430:18: '0X'
+                    {
+                    match("0X"); 
+
+
+                    }
+                    break;
+
+            }
+
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:24430: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.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.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.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:24430: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.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:24430:59: '#' ( ( 'b' | 'B' ) ( 'i' | 'I' ) | ( 'l' | 'L' ) )
+                    {
+                    match('#'); 
+                    // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:24430: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.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:24430: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.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:24430: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.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:24432:10: ( '0' .. '9' ( '0' .. '9' | '_' )* )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:24432:12: '0' .. '9' ( '0' .. '9' | '_' )*
+            {
+            matchRange('0','9'); 
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:24432: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.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.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.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:24434:14: ( RULE_INT ( ( 'e' | 'E' ) ( '+' | '-' )? RULE_INT )? ( ( 'b' | 'B' ) ( 'i' | 'I' | 'd' | 'D' ) | ( 'l' | 'L' | 'd' | 'D' | 'f' | 'F' ) )? )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:24434: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.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:24434: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.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:24434: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.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:24434: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.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.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.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:24434: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.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:24434: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.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:24434: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.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:24436:9: ( ( '^' )? ( 'a' .. 'z' | 'A' .. 'Z' | '$' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '$' | '_' | '0' .. '9' )* )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:24436:11: ( '^' )? ( 'a' .. 'z' | 'A' .. 'Z' | '$' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '$' | '_' | '0' .. '9' )*
+            {
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:24436:11: ( '^' )?
+            int alt9=2;
+            int LA9_0 = input.LA(1);
+
+            if ( (LA9_0=='^') ) {
+                alt9=1;
+            }
+            switch (alt9) {
+                case 1 :
+                    // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:24436: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.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:24436: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.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.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.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:24438:13: ( ( '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* ( '\"' )? | '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* ( '\\'' )? ) )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:24438:15: ( '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* ( '\"' )? | '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* ( '\\'' )? )
+            {
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:24438: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.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:24438:16: '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* ( '\"' )?
+                    {
+                    match('\"'); 
+                    // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:24438: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.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:24438:21: '\\\\' .
+                    	    {
+                    	    match('\\'); 
+                    	    matchAny(); 
+
+                    	    }
+                    	    break;
+                    	case 2 :
+                    	    // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:24438: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.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:24438:44: ( '\"' )?
+                    int alt12=2;
+                    int LA12_0 = input.LA(1);
+
+                    if ( (LA12_0=='\"') ) {
+                        alt12=1;
+                    }
+                    switch (alt12) {
+                        case 1 :
+                            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:24438:44: '\"'
+                            {
+                            match('\"'); 
+
+                            }
+                            break;
+
+                    }
+
+
+                    }
+                    break;
+                case 2 :
+                    // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:24438:49: '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* ( '\\'' )?
+                    {
+                    match('\''); 
+                    // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:24438: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.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:24438:55: '\\\\' .
+                    	    {
+                    	    match('\\'); 
+                    	    matchAny(); 
+
+                    	    }
+                    	    break;
+                    	case 2 :
+                    	    // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:24438: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.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:24438:79: ( '\\'' )?
+                    int alt14=2;
+                    int LA14_0 = input.LA(1);
+
+                    if ( (LA14_0=='\'') ) {
+                        alt14=1;
+                    }
+                    switch (alt14) {
+                        case 1 :
+                            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:24438: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.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:24440:17: ( '/*' ( options {greedy=false; } : . )* '*/' )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:24440:19: '/*' ( options {greedy=false; } : . )* '*/'
+            {
+            match("/*"); 
+
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:24440: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.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:24440: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.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:24442:17: ( '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )? )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:24442:19: '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )?
+            {
+            match("//"); 
+
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:24442: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.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:24442: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.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:24442: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.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:24442:41: ( '\\r' )? '\\n'
+                    {
+                    // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:24442: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.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:24442: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.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:24444:9: ( ( ' ' | '\\t' | '\\r' | '\\n' )+ )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:24444:11: ( ' ' | '\\t' | '\\r' | '\\n' )+
+            {
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:24444: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.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.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.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:24446:16: ( . )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:24446:18: .
+            {
+            matchAny(); 
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "RULE_ANY_OTHER"
+
+    public void mTokens() throws RecognitionException {
+        // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.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 | RULE_HEX | RULE_INT | RULE_DECIMAL | RULE_ID | RULE_STRING | RULE_ML_COMMENT | RULE_SL_COMMENT | RULE_WS | RULE_ANY_OTHER )
+        int alt21=127;
+        alt21 = dfa21.predict(input);
+        switch (alt21) {
+            case 1 :
+                // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1:10: T__13
+                {
+                mT__13(); 
+
+                }
+                break;
+            case 2 :
+                // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1:16: T__14
+                {
+                mT__14(); 
+
+                }
+                break;
+            case 3 :
+                // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1:22: T__15
+                {
+                mT__15(); 
+
+                }
+                break;
+            case 4 :
+                // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1:28: T__16
+                {
+                mT__16(); 
+
+                }
+                break;
+            case 5 :
+                // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1:34: T__17
+                {
+                mT__17(); 
+
+                }
+                break;
+            case 6 :
+                // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1:40: T__18
+                {
+                mT__18(); 
+
+                }
+                break;
+            case 7 :
+                // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1:46: T__19
+                {
+                mT__19(); 
+
+                }
+                break;
+            case 8 :
+                // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1:52: T__20
+                {
+                mT__20(); 
+
+                }
+                break;
+            case 9 :
+                // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1:58: T__21
+                {
+                mT__21(); 
+
+                }
+                break;
+            case 10 :
+                // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1:64: T__22
+                {
+                mT__22(); 
+
+                }
+                break;
+            case 11 :
+                // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1:70: T__23
+                {
+                mT__23(); 
+
+                }
+                break;
+            case 12 :
+                // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1:76: T__24
+                {
+                mT__24(); 
+
+                }
+                break;
+            case 13 :
+                // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1:82: T__25
+                {
+                mT__25(); 
+
+                }
+                break;
+            case 14 :
+                // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1:88: T__26
+                {
+                mT__26(); 
+
+                }
+                break;
+            case 15 :
+                // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1:94: T__27
+                {
+                mT__27(); 
+
+                }
+                break;
+            case 16 :
+                // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1:100: T__28
+                {
+                mT__28(); 
+
+                }
+                break;
+            case 17 :
+                // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1:106: T__29
+                {
+                mT__29(); 
+
+                }
+                break;
+            case 18 :
+                // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1:112: T__30
+                {
+                mT__30(); 
+
+                }
+                break;
+            case 19 :
+                // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1:118: T__31
+                {
+                mT__31(); 
+
+                }
+                break;
+            case 20 :
+                // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1:124: T__32
+                {
+                mT__32(); 
+
+                }
+                break;
+            case 21 :
+                // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1:130: T__33
+                {
+                mT__33(); 
+
+                }
+                break;
+            case 22 :
+                // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1:136: T__34
+                {
+                mT__34(); 
+
+                }
+                break;
+            case 23 :
+                // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1:142: T__35
+                {
+                mT__35(); 
+
+                }
+                break;
+            case 24 :
+                // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1:148: T__36
+                {
+                mT__36(); 
+
+                }
+                break;
+            case 25 :
+                // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1:154: T__37
+                {
+                mT__37(); 
+
+                }
+                break;
+            case 26 :
+                // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1:160: T__38
+                {
+                mT__38(); 
+
+                }
+                break;
+            case 27 :
+                // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1:166: T__39
+                {
+                mT__39(); 
+
+                }
+                break;
+            case 28 :
+                // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1:172: T__40
+                {
+                mT__40(); 
+
+                }
+                break;
+            case 29 :
+                // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1:178: T__41
+                {
+                mT__41(); 
+
+                }
+                break;
+            case 30 :
+                // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1:184: T__42
+                {
+                mT__42(); 
+
+                }
+                break;
+            case 31 :
+                // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1:190: T__43
+                {
+                mT__43(); 
+
+                }
+                break;
+            case 32 :
+                // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1:196: T__44
+                {
+                mT__44(); 
+
+                }
+                break;
+            case 33 :
+                // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1:202: T__45
+                {
+                mT__45(); 
+
+                }
+                break;
+            case 34 :
+                // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1:208: T__46
+                {
+                mT__46(); 
+
+                }
+                break;
+            case 35 :
+                // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1:214: T__47
+                {
+                mT__47(); 
+
+                }
+                break;
+            case 36 :
+                // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1:220: T__48
+                {
+                mT__48(); 
+
+                }
+                break;
+            case 37 :
+                // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1:226: T__49
+                {
+                mT__49(); 
+
+                }
+                break;
+            case 38 :
+                // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1:232: T__50
+                {
+                mT__50(); 
+
+                }
+                break;
+            case 39 :
+                // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1:238: T__51
+                {
+                mT__51(); 
+
+                }
+                break;
+            case 40 :
+                // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1:244: T__52
+                {
+                mT__52(); 
+
+                }
+                break;
+            case 41 :
+                // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1:250: T__53
+                {
+                mT__53(); 
+
+                }
+                break;
+            case 42 :
+                // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1:256: T__54
+                {
+                mT__54(); 
+
+                }
+                break;
+            case 43 :
+                // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1:262: T__55
+                {
+                mT__55(); 
+
+                }
+                break;
+            case 44 :
+                // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1:268: T__56
+                {
+                mT__56(); 
+
+                }
+                break;
+            case 45 :
+                // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1:274: T__57
+                {
+                mT__57(); 
+
+                }
+                break;
+            case 46 :
+                // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1:280: T__58
+                {
+                mT__58(); 
+
+                }
+                break;
+            case 47 :
+                // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1:286: T__59
+                {
+                mT__59(); 
+
+                }
+                break;
+            case 48 :
+                // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1:292: T__60
+                {
+                mT__60(); 
+
+                }
+                break;
+            case 49 :
+                // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1:298: T__61
+                {
+                mT__61(); 
+
+                }
+                break;
+            case 50 :
+                // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1:304: T__62
+                {
+                mT__62(); 
+
+                }
+                break;
+            case 51 :
+                // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1:310: T__63
+                {
+                mT__63(); 
+
+                }
+                break;
+            case 52 :
+                // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1:316: T__64
+                {
+                mT__64(); 
+
+                }
+                break;
+            case 53 :
+                // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1:322: T__65
+                {
+                mT__65(); 
+
+                }
+                break;
+            case 54 :
+                // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1:328: T__66
+                {
+                mT__66(); 
+
+                }
+                break;
+            case 55 :
+                // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1:334: T__67
+                {
+                mT__67(); 
+
+                }
+                break;
+            case 56 :
+                // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1:340: T__68
+                {
+                mT__68(); 
+
+                }
+                break;
+            case 57 :
+                // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1:346: T__69
+                {
+                mT__69(); 
+
+                }
+                break;
+            case 58 :
+                // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1:352: T__70
+                {
+                mT__70(); 
+
+                }
+                break;
+            case 59 :
+                // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1:358: T__71
+                {
+                mT__71(); 
+
+                }
+                break;
+            case 60 :
+                // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1:364: T__72
+                {
+                mT__72(); 
+
+                }
+                break;
+            case 61 :
+                // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1:370: T__73
+                {
+                mT__73(); 
+
+                }
+                break;
+            case 62 :
+                // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1:376: T__74
+                {
+                mT__74(); 
+
+                }
+                break;
+            case 63 :
+                // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1:382: T__75
+                {
+                mT__75(); 
+
+                }
+                break;
+            case 64 :
+                // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1:388: T__76
+                {
+                mT__76(); 
+
+                }
+                break;
+            case 65 :
+                // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1:394: T__77
+                {
+                mT__77(); 
+
+                }
+                break;
+            case 66 :
+                // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1:400: T__78
+                {
+                mT__78(); 
+
+                }
+                break;
+            case 67 :
+                // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1:406: T__79
+                {
+                mT__79(); 
+
+                }
+                break;
+            case 68 :
+                // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1:412: T__80
+                {
+                mT__80(); 
+
+                }
+                break;
+            case 69 :
+                // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1:418: T__81
+                {
+                mT__81(); 
+
+                }
+                break;
+            case 70 :
+                // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1:424: T__82
+                {
+                mT__82(); 
+
+                }
+                break;
+            case 71 :
+                // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1:430: T__83
+                {
+                mT__83(); 
+
+                }
+                break;
+            case 72 :
+                // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1:436: T__84
+                {
+                mT__84(); 
+
+                }
+                break;
+            case 73 :
+                // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1:442: T__85
+                {
+                mT__85(); 
+
+                }
+                break;
+            case 74 :
+                // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1:448: T__86
+                {
+                mT__86(); 
+
+                }
+                break;
+            case 75 :
+                // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1:454: T__87
+                {
+                mT__87(); 
+
+                }
+                break;
+            case 76 :
+                // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1:460: T__88
+                {
+                mT__88(); 
+
+                }
+                break;
+            case 77 :
+                // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1:466: T__89
+                {
+                mT__89(); 
+
+                }
+                break;
+            case 78 :
+                // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1:472: T__90
+                {
+                mT__90(); 
+
+                }
+                break;
+            case 79 :
+                // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1:478: T__91
+                {
+                mT__91(); 
+
+                }
+                break;
+            case 80 :
+                // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1:484: T__92
+                {
+                mT__92(); 
+
+                }
+                break;
+            case 81 :
+                // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1:490: T__93
+                {
+                mT__93(); 
+
+                }
+                break;
+            case 82 :
+                // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1:496: T__94
+                {
+                mT__94(); 
+
+                }
+                break;
+            case 83 :
+                // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1:502: T__95
+                {
+                mT__95(); 
+
+                }
+                break;
+            case 84 :
+                // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1:508: T__96
+                {
+                mT__96(); 
+
+                }
+                break;
+            case 85 :
+                // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1:514: T__97
+                {
+                mT__97(); 
+
+                }
+                break;
+            case 86 :
+                // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1:520: T__98
+                {
+                mT__98(); 
+
+                }
+                break;
+            case 87 :
+                // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1:526: T__99
+                {
+                mT__99(); 
+
+                }
+                break;
+            case 88 :
+                // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1:532: T__100
+                {
+                mT__100(); 
+
+                }
+                break;
+            case 89 :
+                // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1:539: T__101
+                {
+                mT__101(); 
+
+                }
+                break;
+            case 90 :
+                // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1:546: T__102
+                {
+                mT__102(); 
+
+                }
+                break;
+            case 91 :
+                // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1:553: T__103
+                {
+                mT__103(); 
+
+                }
+                break;
+            case 92 :
+                // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1:560: T__104
+                {
+                mT__104(); 
+
+                }
+                break;
+            case 93 :
+                // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1:567: T__105
+                {
+                mT__105(); 
+
+                }
+                break;
+            case 94 :
+                // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1:574: T__106
+                {
+                mT__106(); 
+
+                }
+                break;
+            case 95 :
+                // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1:581: T__107
+                {
+                mT__107(); 
+
+                }
+                break;
+            case 96 :
+                // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1:588: T__108
+                {
+                mT__108(); 
+
+                }
+                break;
+            case 97 :
+                // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1:595: T__109
+                {
+                mT__109(); 
+
+                }
+                break;
+            case 98 :
+                // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1:602: T__110
+                {
+                mT__110(); 
+
+                }
+                break;
+            case 99 :
+                // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1:609: T__111
+                {
+                mT__111(); 
+
+                }
+                break;
+            case 100 :
+                // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1:616: T__112
+                {
+                mT__112(); 
+
+                }
+                break;
+            case 101 :
+                // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1:623: T__113
+                {
+                mT__113(); 
+
+                }
+                break;
+            case 102 :
+                // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1:630: T__114
+                {
+                mT__114(); 
+
+                }
+                break;
+            case 103 :
+                // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1:637: T__115
+                {
+                mT__115(); 
+
+                }
+                break;
+            case 104 :
+                // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1:644: T__116
+                {
+                mT__116(); 
+
+                }
+                break;
+            case 105 :
+                // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1:651: T__117
+                {
+                mT__117(); 
+
+                }
+                break;
+            case 106 :
+                // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1:658: T__118
+                {
+                mT__118(); 
+
+                }
+                break;
+            case 107 :
+                // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1:665: T__119
+                {
+                mT__119(); 
+
+                }
+                break;
+            case 108 :
+                // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1:672: T__120
+                {
+                mT__120(); 
+
+                }
+                break;
+            case 109 :
+                // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1:679: T__121
+                {
+                mT__121(); 
+
+                }
+                break;
+            case 110 :
+                // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1:686: T__122
+                {
+                mT__122(); 
+
+                }
+                break;
+            case 111 :
+                // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1:693: T__123
+                {
+                mT__123(); 
+
+                }
+                break;
+            case 112 :
+                // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1:700: T__124
+                {
+                mT__124(); 
+
+                }
+                break;
+            case 113 :
+                // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1:707: T__125
+                {
+                mT__125(); 
+
+                }
+                break;
+            case 114 :
+                // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1:714: T__126
+                {
+                mT__126(); 
+
+                }
+                break;
+            case 115 :
+                // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1:721: T__127
+                {
+                mT__127(); 
+
+                }
+                break;
+            case 116 :
+                // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1:728: T__128
+                {
+                mT__128(); 
+
+                }
+                break;
+            case 117 :
+                // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1:735: T__129
+                {
+                mT__129(); 
+
+                }
+                break;
+            case 118 :
+                // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1:742: T__130
+                {
+                mT__130(); 
+
+                }
+                break;
+            case 119 :
+                // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1:749: RULE_HEX
+                {
+                mRULE_HEX(); 
+
+                }
+                break;
+            case 120 :
+                // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1:758: RULE_INT
+                {
+                mRULE_INT(); 
+
+                }
+                break;
+            case 121 :
+                // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1:767: RULE_DECIMAL
+                {
+                mRULE_DECIMAL(); 
+
+                }
+                break;
+            case 122 :
+                // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1:780: RULE_ID
+                {
+                mRULE_ID(); 
+
+                }
+                break;
+            case 123 :
+                // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1:788: RULE_STRING
+                {
+                mRULE_STRING(); 
+
+                }
+                break;
+            case 124 :
+                // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1:800: RULE_ML_COMMENT
+                {
+                mRULE_ML_COMMENT(); 
+
+                }
+                break;
+            case 125 :
+                // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1:816: RULE_SL_COMMENT
+                {
+                mRULE_SL_COMMENT(); 
+
+                }
+                break;
+            case 126 :
+                // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1:832: RULE_WS
+                {
+                mRULE_WS(); 
+
+                }
+                break;
+            case 127 :
+                // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1:840: RULE_ANY_OTHER
+                {
+                mRULE_ANY_OTHER(); 
+
+                }
+                break;
+
+        }
+
+    }
+
+
+    protected DFA21 dfa21 = new DFA21(this);
+    static final String DFA21_eotS =
+        "\1\uffff\1\74\1\76\1\100\2\103\1\112\1\116\1\121\1\125\1\127\1"+
+        "\131\1\133\1\135\1\137\1\142\16\103\2\uffff\7\103\7\uffff\1\103"+
+        "\1\uffff\1\u009d\1\103\2\u00a2\1\71\5\uffff\1\u00a7\6\uffff\2\103"+
+        "\1\uffff\4\103\20\uffff\1\u00b0\5\uffff\1\u00b2\4\uffff\14\103\1"+
+        "\u00c1\20\103\2\uffff\15\103\1\u00e7\3\103\7\uffff\1\u00ec\3\uffff"+
+        "\2\103\1\uffff\1\u00a2\6\uffff\7\103\4\uffff\1\u00f6\1\u00f7\14"+
+        "\103\1\uffff\1\103\1\u0105\16\103\1\u0114\7\103\1\u011c\14\103\1"+
+        "\uffff\4\103\1\uffff\1\u012d\4\103\1\u0133\1\103\1\u0135\1\u0136"+
+        "\2\uffff\2\103\1\u0139\6\103\1\u0141\1\u0142\2\103\1\uffff\11\103"+
+        "\1\u014e\2\103\1\u0151\1\103\1\uffff\7\103\1\uffff\1\u015a\3\103"+
+        "\1\u015e\13\103\1\uffff\1\u016a\3\103\1\u016e\1\uffff\1\103\2\uffff"+
+        "\2\103\1\uffff\1\103\1\u0174\4\103\1\u0179\2\uffff\1\103\1\u017b"+
+        "\1\103\1\u017d\7\103\1\uffff\2\103\1\uffff\7\103\1\u018e\1\uffff"+
+        "\1\u018f\2\103\1\uffff\1\u0192\11\103\1\u019c\1\uffff\2\103\1\u019f"+
+        "\1\uffff\4\103\1\u01a4\1\uffff\1\103\1\u01a6\1\103\1\u01a8\1\uffff"+
+        "\1\103\1\uffff\1\103\1\uffff\1\103\1\u01ac\1\103\1\u01ae\1\103\1"+
+        "\u01b1\2\103\1\u01b4\1\u01b5\1\103\1\u01b7\3\103\1\u01bb\2\uffff"+
+        "\2\103\1\uffff\7\103\1\u01c5\1\103\1\uffff\2\103\1\uffff\1\u01c9"+
+        "\1\u01ca\2\103\1\uffff\1\103\1\uffff\1\103\1\uffff\1\103\1\u01d0"+
+        "\1\103\1\uffff\1\u01d2\1\uffff\2\103\1\uffff\1\u01d5\1\103\2\uffff"+
+        "\1\103\1\uffff\1\u01d8\1\u01d9\1\103\1\uffff\3\103\1\u01de\2\103"+
+        "\1\u01e1\2\103\1\uffff\1\103\1\u01e5\1\u01e6\2\uffff\5\103\1\uffff"+
+        "\1\u01ec\1\uffff\1\u01ed\1\103\1\uffff\1\u01ef\1\103\2\uffff\4\103"+
+        "\1\uffff\2\103\1\uffff\3\103\2\uffff\1\u01fa\4\103\2\uffff\1\u01ff"+
+        "\1\uffff\12\103\1\uffff\3\103\1\u020d\1\uffff\1\103\1\u020f\1\103"+
+        "\1\u0211\3\103\1\uffff\5\103\1\uffff\1\103\1\uffff\1\103\1\uffff"+
+        "\1\u021c\6\103\1\u0223\2\103\1\uffff\1\u0226\1\103\1\u0228\3\103"+
+        "\1\uffff\1\u022c\1\u022d\1\uffff\1\103\1\uffff\3\103\2\uffff\1\103"+
+        "\1\u0233\3\103\1\uffff\1\u0237\2\103\1\uffff\6\103\1\u0240\1\103"+
+        "\1\uffff\1\u0242\1\uffff";
+    static final String DFA21_eofS =
+        "\u0243\uffff";
+    static final String DFA21_minS =
+        "\1\0\1\75\1\174\1\46\1\145\1\141\1\53\1\55\2\52\3\75\1\76\2\56"+
+        "\1\141\1\154\1\145\1\143\2\141\1\145\1\141\1\143\1\170\1\145\1\162"+
+        "\1\155\1\141\2\uffff\1\141\1\145\1\141\1\145\1\141\1\145\1\150\7"+
+        "\uffff\1\163\1\uffff\1\72\1\145\2\60\1\44\5\uffff\1\75\6\uffff\1"+
+        "\167\1\154\1\uffff\1\141\1\163\1\151\1\166\20\uffff\1\75\5\uffff"+
+        "\1\74\4\uffff\1\154\1\145\1\163\1\141\1\160\1\154\1\151\1\156\1"+
+        "\160\1\145\1\157\1\163\1\44\1\154\1\162\1\156\1\141\1\155\1\156"+
+        "\1\147\1\162\1\151\1\164\1\144\1\151\1\167\1\151\1\160\1\143\2\uffff"+
+        "\1\157\1\163\1\160\1\162\1\165\1\157\2\156\1\141\1\163\1\141\1\164"+
+        "\1\146\1\44\1\160\1\162\1\151\7\uffff\1\44\3\uffff\1\167\1\154\1"+
+        "\uffff\1\60\6\uffff\1\156\1\145\1\162\3\160\1\145\4\uffff\2\44\1"+
+        "\145\1\143\1\145\1\164\2\145\1\164\1\143\1\157\1\155\1\156\1\164"+
+        "\1\uffff\1\163\1\44\1\141\1\151\1\160\1\143\1\145\1\165\1\151\1"+
+        "\157\1\167\1\154\1\151\1\101\1\164\1\157\1\44\1\156\1\157\1\153"+
+        "\1\154\1\153\1\145\1\157\1\44\1\145\1\165\1\145\1\105\1\145\1\143"+
+        "\1\162\1\163\1\154\2\141\1\143\1\uffff\1\157\1\165\1\153\1\154\1"+
+        "\uffff\1\44\2\154\1\147\1\164\1\44\1\145\2\44\2\uffff\1\156\1\165"+
+        "\1\44\1\151\1\162\2\143\1\150\1\162\2\44\1\141\1\145\1\uffff\1\154"+
+        "\1\155\1\154\1\145\1\141\1\155\1\163\1\166\1\141\1\44\1\166\1\154"+
+        "\1\44\1\162\1\uffff\1\164\1\162\1\141\1\142\1\101\1\157\1\167\1"+
+        "\uffff\1\44\1\160\1\162\1\170\1\44\1\150\1\164\1\141\1\157\1\151"+
+        "\1\165\3\162\1\146\1\145\1\uffff\1\44\1\157\1\141\1\145\1\44\1\uffff"+
+        "\1\156\2\uffff\1\144\1\164\1\uffff\1\143\1\44\1\164\1\150\1\162"+
+        "\1\164\1\44\2\uffff\1\156\1\44\1\154\1\44\1\145\1\154\1\163\1\145"+
+        "\1\164\1\145\1\162\1\uffff\1\141\1\154\1\uffff\1\164\1\117\1\164"+
+        "\1\147\1\141\1\143\1\146\1\44\1\uffff\1\44\1\151\1\145\1\uffff\1"+
+        "\44\1\101\2\147\1\156\1\154\1\151\1\164\1\156\1\154\1\44\1\uffff"+
+        "\1\141\1\164\1\44\1\uffff\1\144\1\163\1\151\1\145\1\44\1\uffff\1"+
+        "\127\1\44\1\157\1\44\1\uffff\1\143\1\uffff\1\171\1\uffff\1\164\1"+
+        "\44\1\145\1\44\1\145\1\44\1\144\1\164\2\44\1\156\1\44\1\145\1\162"+
+        "\1\164\1\44\2\uffff\2\143\1\uffff\1\143\1\145\1\101\2\164\1\142"+
+        "\1\101\1\44\1\157\1\uffff\1\144\1\145\1\uffff\2\44\1\157\1\120\1"+
+        "\uffff\1\157\1\uffff\1\156\1\uffff\1\145\1\44\1\145\1\uffff\1\44"+
+        "\1\uffff\1\162\1\154\1\uffff\1\44\1\145\2\uffff\1\123\1\uffff\2"+
+        "\44\1\151\1\uffff\1\101\1\165\1\164\1\44\1\143\1\145\1\44\1\145"+
+        "\1\143\1\uffff\1\167\2\44\2\uffff\1\156\1\141\1\162\1\151\1\157"+
+        "\1\uffff\1\44\1\uffff\1\44\1\154\1\uffff\1\44\1\145\2\uffff\1\157"+
+        "\1\143\1\164\1\151\1\uffff\1\164\1\162\1\uffff\1\144\1\164\1\101"+
+        "\2\uffff\1\44\1\162\1\153\1\172\1\146\2\uffff\1\44\1\uffff\1\162"+
+        "\1\156\1\164\1\145\1\157\1\151\1\143\1\40\1\151\1\143\1\uffff\1"+
+        "\141\1\154\1\145\1\44\1\uffff\1\166\1\44\1\151\1\44\1\156\1\157"+
+        "\1\150\1\uffff\1\157\1\164\1\155\1\157\1\144\1\uffff\1\145\1\uffff"+
+        "\1\157\1\uffff\1\44\1\156\1\141\1\156\1\151\1\145\1\141\1\44\1\162"+
+        "\1\156\1\uffff\1\44\1\156\1\44\1\157\1\164\1\144\1\uffff\2\44\1"+
+        "\uffff\1\147\1\uffff\1\156\1\145\1\101\2\uffff\1\145\1\44\1\162"+
+        "\1\143\1\101\1\uffff\1\44\1\164\1\143\1\uffff\1\151\1\164\1\157"+
+        "\1\151\1\156\1\157\1\44\1\156\1\uffff\1\44\1\uffff";
+    static final String DFA21_maxS =
+        "\1\uffff\1\76\1\174\1\46\1\157\1\165\1\75\1\76\5\75\1\76\1\56\1"+
+        "\72\1\141\1\170\1\171\1\164\2\157\1\145\1\157\1\144\1\170\1\145"+
+        "\1\162\1\155\1\141\2\uffff\1\171\1\162\1\150\1\145\1\157\1\145\1"+
+        "\157\7\uffff\1\163\1\uffff\1\72\1\165\1\170\1\154\1\172\5\uffff"+
+        "\1\75\6\uffff\1\167\1\154\1\uffff\1\157\1\163\1\151\1\166\20\uffff"+
+        "\1\75\5\uffff\1\74\4\uffff\1\162\1\164\1\163\1\141\1\160\1\154\1"+
+        "\151\1\156\1\160\1\145\1\157\1\163\1\172\1\154\1\162\1\156\1\141"+
+        "\1\155\1\156\1\163\1\162\1\151\1\164\1\144\1\160\1\167\1\151\1\160"+
+        "\1\143\2\uffff\1\157\1\163\1\160\1\162\1\171\1\157\1\156\1\164\1"+
+        "\141\1\163\1\141\1\164\1\163\1\172\1\164\1\162\1\151\7\uffff\1\172"+
+        "\3\uffff\1\167\1\154\1\uffff\1\154\6\uffff\1\156\1\145\1\162\3\160"+
+        "\1\145\4\uffff\2\172\1\145\1\143\1\145\1\164\2\145\1\164\1\143\1"+
+        "\157\1\155\1\156\1\164\1\uffff\1\163\1\172\1\141\1\151\1\160\1\143"+
+        "\1\145\1\165\1\151\1\157\1\167\1\154\1\151\1\101\1\164\1\157\1\172"+
+        "\1\156\1\157\1\153\1\154\1\153\1\145\1\157\1\172\1\145\1\165\1\145"+
+        "\1\105\1\145\1\143\1\162\1\163\1\154\2\141\1\143\1\uffff\1\157\1"+
+        "\165\1\153\1\154\1\uffff\1\172\2\154\2\164\1\172\1\145\2\172\2\uffff"+
+        "\1\156\1\165\1\172\1\151\1\162\2\143\1\150\1\162\2\172\1\141\1\145"+
+        "\1\uffff\1\154\1\155\1\154\1\145\1\141\1\155\1\163\1\166\1\141\1"+
+        "\172\1\166\1\154\1\172\1\162\1\uffff\1\164\1\162\1\141\1\142\1\101"+
+        "\1\157\1\167\1\uffff\1\172\1\160\1\162\1\170\1\172\1\150\1\164\1"+
+        "\141\1\157\1\151\1\165\3\162\1\146\1\145\1\uffff\1\172\1\157\1\141"+
+        "\1\145\1\172\1\uffff\1\156\2\uffff\1\163\1\164\1\uffff\1\143\1\172"+
+        "\1\164\1\150\1\162\1\164\1\172\2\uffff\1\156\1\172\1\154\1\172\1"+
+        "\145\1\154\1\163\1\145\1\164\1\145\1\162\1\uffff\1\141\1\154\1\uffff"+
+        "\1\164\1\117\1\164\1\147\1\141\1\143\1\146\1\172\1\uffff\1\172\1"+
+        "\151\1\145\1\uffff\1\172\1\101\2\147\1\156\1\154\1\151\1\164\1\156"+
+        "\1\154\1\172\1\uffff\1\141\1\164\1\172\1\uffff\1\144\1\163\1\151"+
+        "\1\145\1\172\1\uffff\1\127\1\172\1\157\1\172\1\uffff\1\143\1\uffff"+
+        "\1\171\1\uffff\1\164\1\172\1\145\1\172\1\145\1\172\1\144\1\164\2"+
+        "\172\1\156\1\172\1\145\1\162\1\164\1\172\2\uffff\2\143\1\uffff\1"+
+        "\143\1\145\1\101\2\164\1\142\1\101\1\172\1\157\1\uffff\1\144\1\145"+
+        "\1\uffff\2\172\1\157\1\120\1\uffff\1\157\1\uffff\1\156\1\uffff\1"+
+        "\145\1\172\1\145\1\uffff\1\172\1\uffff\1\162\1\154\1\uffff\1\172"+
+        "\1\145\2\uffff\1\123\1\uffff\2\172\1\151\1\uffff\1\101\1\165\1\164"+
+        "\1\172\1\143\1\145\1\172\1\145\1\143\1\uffff\1\167\2\172\2\uffff"+
+        "\1\156\1\141\1\162\1\151\1\157\1\uffff\1\172\1\uffff\1\172\1\154"+
+        "\1\uffff\1\172\1\145\2\uffff\1\157\1\143\1\164\1\151\1\uffff\1\164"+
+        "\1\162\1\uffff\1\144\1\164\1\101\2\uffff\1\172\1\162\1\153\1\172"+
+        "\1\146\2\uffff\1\172\1\uffff\1\162\1\156\1\164\1\145\1\157\1\151"+
+        "\1\143\1\40\1\151\1\143\1\uffff\1\141\1\154\1\145\1\172\1\uffff"+
+        "\1\166\1\172\1\151\1\172\1\156\1\157\1\150\1\uffff\1\157\1\164\1"+
+        "\155\1\157\1\144\1\uffff\1\145\1\uffff\1\157\1\uffff\1\172\1\156"+
+        "\1\141\1\156\1\151\1\145\1\141\1\172\1\162\1\156\1\uffff\1\172\1"+
+        "\156\1\172\1\157\1\164\1\144\1\uffff\2\172\1\uffff\1\147\1\uffff"+
+        "\1\156\1\145\1\101\2\uffff\1\145\1\172\1\162\1\143\1\101\1\uffff"+
+        "\1\172\1\164\1\143\1\uffff\1\151\1\164\1\157\1\151\1\156\1\157\1"+
+        "\172\1\156\1\uffff\1\172\1\uffff";
+    static final String DFA21_acceptS =
+        "\36\uffff\1\101\1\102\7\uffff\1\123\1\124\1\125\1\126\1\127\1\130"+
+        "\1\131\1\uffff\1\134\5\uffff\1\172\2\173\1\176\1\177\1\uffff\1\25"+
+        "\1\1\1\2\1\164\1\3\1\160\2\uffff\1\172\4\uffff\1\6\1\37\1\30\1\7"+
+        "\1\22\1\40\1\31\1\10\1\33\1\32\1\11\1\174\1\175\1\34\1\12\1\35\1"+
+        "\uffff\1\36\1\17\1\20\1\26\1\21\1\uffff\1\41\1\27\1\163\1\157\35"+
+        "\uffff\1\101\1\102\21\uffff\1\123\1\124\1\125\1\126\1\127\1\130"+
+        "\1\131\1\uffff\1\134\1\162\1\140\2\uffff\1\167\1\uffff\1\170\1\171"+
+        "\1\173\1\176\1\15\1\13\7\uffff\1\16\1\14\1\23\1\24\16\uffff\1\135"+
+        "\45\uffff\1\145\4\uffff\1\133\11\uffff\1\42\1\165\15\uffff\1\143"+
+        "\16\uffff\1\71\7\uffff\1\153\20\uffff\1\146\5\uffff\1\52\1\uffff"+
+        "\1\56\1\72\2\uffff\1\136\7\uffff\1\105\1\106\13\uffff\1\62\2\uffff"+
+        "\1\66\10\uffff\1\166\3\uffff\1\142\13\uffff\1\147\3\uffff\1\5\5"+
+        "\uffff\1\47\4\uffff\1\104\1\uffff\1\50\1\uffff\1\51\20\uffff\1\151"+
+        "\1\107\2\uffff\1\156\11\uffff\1\144\2\uffff\1\73\4\uffff\1\44\1"+
+        "\uffff\1\137\1\uffff\1\45\3\uffff\1\74\1\uffff\1\55\2\uffff\1\64"+
+        "\2\uffff\1\70\1\77\1\uffff\1\76\3\uffff\1\150\11\uffff\1\152\3\uffff"+
+        "\1\54\1\43\5\uffff\1\154\1\uffff\1\53\2\uffff\1\61\2\uffff\1\100"+
+        "\1\103\4\uffff\1\112\2\uffff\1\141\3\uffff\1\4\1\60\5\uffff\1\57"+
+        "\1\63\1\uffff\1\65\12\uffff\1\46\4\uffff\1\67\7\uffff\1\161\5\uffff"+
+        "\1\132\1\uffff\1\113\1\uffff\1\110\12\uffff\1\117\6\uffff\1\155"+
+        "\2\uffff\1\115\1\uffff\1\116\3\uffff\1\75\1\122\5\uffff\1\120\3"+
+        "\uffff\1\111\10\uffff\1\114\1\uffff\1\121";
+    static final String DFA21_specialS =
+        "\1\0\u0242\uffff}>";
+    static final String[] DFA21_transitionS = {
+            "\11\71\2\70\2\71\1\70\22\71\1\70\1\13\1\66\1\54\1\65\1\12\1"+
+            "\3\1\67\1\50\1\51\1\10\1\6\1\52\1\7\1\16\1\11\1\62\11\63\1\60"+
+            "\1\57\1\15\1\1\1\14\1\17\1\47\1\30\1\65\1\25\1\4\1\31\1\27\2"+
+            "\65\1\34\4\65\1\32\1\65\1\33\1\65\1\26\1\5\7\65\1\55\1\71\1"+
+            "\53\1\64\1\65\1\71\1\56\1\65\1\42\1\44\1\21\1\24\1\41\1\65\1"+
+            "\23\3\65\1\43\1\61\1\65\1\35\1\65\1\45\1\22\1\40\1\65\1\20\1"+
+            "\46\3\65\1\36\1\2\1\37\uff82\71",
+            "\1\72\1\73",
+            "\1\75",
+            "\1\77",
+            "\1\102\11\uffff\1\101",
+            "\1\107\11\uffff\1\106\10\uffff\1\104\1\105",
+            "\1\111\21\uffff\1\110",
+            "\1\115\17\uffff\1\113\1\114",
+            "\1\120\22\uffff\1\117",
+            "\1\123\4\uffff\1\124\15\uffff\1\122",
+            "\1\126",
+            "\1\130",
+            "\1\132",
+            "\1\134",
+            "\1\136",
+            "\1\141\13\uffff\1\140",
+            "\1\143",
+            "\1\145\13\uffff\1\144",
+            "\1\150\16\uffff\1\146\1\147\1\uffff\1\151\1\uffff\1\152",
+            "\1\155\2\uffff\1\157\6\uffff\1\153\1\156\5\uffff\1\154",
+            "\1\160\7\uffff\1\162\5\uffff\1\161",
+            "\1\165\12\uffff\1\163\2\uffff\1\164",
+            "\1\166",
+            "\1\170\15\uffff\1\167",
+            "\1\171\1\172",
+            "\1\173",
+            "\1\174",
+            "\1\175",
+            "\1\176",
+            "\1\177",
+            "",
+            "",
+            "\1\u0083\6\uffff\1\u0085\6\uffff\1\u0082\2\uffff\1\u0086\6"+
+            "\uffff\1\u0084",
+            "\1\u0088\14\uffff\1\u0087",
+            "\1\u0089\6\uffff\1\u008a",
+            "\1\u008b",
+            "\1\u008d\3\uffff\1\u008e\3\uffff\1\u008c\5\uffff\1\u008f",
+            "\1\u0090",
+            "\1\u0092\6\uffff\1\u0091",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "\1\u009a",
+            "",
+            "\1\u009c",
+            "\1\u009e\17\uffff\1\u009f",
+            "\12\u00a1\10\uffff\1\u00a3\1\uffff\3\u00a3\5\uffff\1\u00a3"+
+            "\13\uffff\1\u00a0\6\uffff\1\u00a1\2\uffff\1\u00a3\1\uffff\3"+
+            "\u00a3\5\uffff\1\u00a3\13\uffff\1\u00a0",
+            "\12\u00a1\10\uffff\1\u00a3\1\uffff\3\u00a3\5\uffff\1\u00a3"+
+            "\22\uffff\1\u00a1\2\uffff\1\u00a3\1\uffff\3\u00a3\5\uffff\1"+
+            "\u00a3",
+            "\1\103\34\uffff\32\103\4\uffff\1\103\1\uffff\32\103",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "\1\u00a6",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "\1\u00a8",
+            "\1\u00a9",
+            "",
+            "\1\u00aa\15\uffff\1\u00ab",
+            "\1\u00ac",
+            "\1\u00ad",
+            "\1\u00ae",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "\1\u00af",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "\1\u00b1",
+            "",
+            "",
+            "",
+            "",
+            "\1\u00b3\5\uffff\1\u00b4",
+            "\1\u00b6\16\uffff\1\u00b5",
+            "\1\u00b7",
+            "\1\u00b8",
+            "\1\u00b9",
+            "\1\u00ba",
+            "\1\u00bb",
+            "\1\u00bc",
+            "\1\u00bd",
+            "\1\u00be",
+            "\1\u00bf",
+            "\1\u00c0",
+            "\1\103\13\uffff\12\103\7\uffff\32\103\4\uffff\1\103\1\uffff"+
+            "\32\103",
+            "\1\u00c2",
+            "\1\u00c3",
+            "\1\u00c4",
+            "\1\u00c5",
+            "\1\u00c6",
+            "\1\u00c7",
+            "\1\u00ca\4\uffff\1\u00c8\1\u00cb\5\uffff\1\u00c9",
+            "\1\u00cc",
+            "\1\u00cd",
+            "\1\u00ce",
+            "\1\u00cf",
+            "\1\u00d0\6\uffff\1\u00d1",
+            "\1\u00d2",
+            "\1\u00d3",
+            "\1\u00d4",
+            "\1\u00d5",
+            "",
+            "",
+            "\1\u00d6",
+            "\1\u00d7",
+            "\1\u00d8",
+            "\1\u00d9",
+            "\1\u00db\3\uffff\1\u00da",
+            "\1\u00dc",
+            "\1\u00dd",
+            "\1\u00de\4\uffff\1\u00df\1\u00e0",
+            "\1\u00e1",
+            "\1\u00e2",
+            "\1\u00e3",
+            "\1\u00e4",
+            "\1\u00e5\14\uffff\1\u00e6",
+            "\1\103\13\uffff\12\103\7\uffff\32\103\4\uffff\1\103\1\uffff"+
+            "\32\103",
+            "\1\u00e8\3\uffff\1\u00e9",
+            "\1\u00ea",
+            "\1\u00eb",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "\1\103\13\uffff\12\103\7\uffff\32\103\4\uffff\1\103\1\uffff"+
+            "\32\103",
+            "",
+            "",
+            "",
+            "\1\u00ed",
+            "\1\u00ee",
+            "",
+            "\12\u00a1\10\uffff\1\u00a3\1\uffff\3\u00a3\5\uffff\1\u00a3"+
+            "\22\uffff\1\u00a1\2\uffff\1\u00a3\1\uffff\3\u00a3\5\uffff\1"+
+            "\u00a3",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "\1\u00ef",
+            "\1\u00f0",
+            "\1\u00f1",
+            "\1\u00f2",
+            "\1\u00f3",
+            "\1\u00f4",
+            "\1\u00f5",
+            "",
+            "",
+            "",
+            "",
+            "\1\103\13\uffff\12\103\7\uffff\32\103\4\uffff\1\103\1\uffff"+
+            "\32\103",
+            "\1\103\13\uffff\12\103\7\uffff\32\103\4\uffff\1\103\1\uffff"+
+            "\32\103",
+            "\1\u00f8",
+            "\1\u00f9",
+            "\1\u00fa",
+            "\1\u00fb",
+            "\1\u00fc",
+            "\1\u00fd",
+            "\1\u00fe",
+            "\1\u00ff",
+            "\1\u0100",
+            "\1\u0101",
+            "\1\u0102",
+            "\1\u0103",
+            "",
+            "\1\u0104",
+            "\1\103\13\uffff\12\103\7\uffff\32\103\4\uffff\1\103\1\uffff"+
+            "\32\103",
+            "\1\u0106",
+            "\1\u0107",
+            "\1\u0108",
+            "\1\u0109",
+            "\1\u010a",
+            "\1\u010b",
+            "\1\u010c",
+            "\1\u010d",
+            "\1\u010e",
+            "\1\u010f",
+            "\1\u0110",
+            "\1\u0111",
+            "\1\u0112",
+            "\1\u0113",
+            "\1\103\13\uffff\12\103\7\uffff\32\103\4\uffff\1\103\1\uffff"+
+            "\32\103",
+            "\1\u0115",
+            "\1\u0116",
+            "\1\u0117",
+            "\1\u0118",
+            "\1\u0119",
+            "\1\u011a",
+            "\1\u011b",
+            "\1\103\13\uffff\12\103\7\uffff\32\103\4\uffff\1\103\1\uffff"+
+            "\32\103",
+            "\1\u011d",
+            "\1\u011e",
+            "\1\u011f",
+            "\1\u0120",
+            "\1\u0121",
+            "\1\u0122",
+            "\1\u0123",
+            "\1\u0124",
+            "\1\u0125",
+            "\1\u0126",
+            "\1\u0127",
+            "\1\u0128",
+            "",
+            "\1\u0129",
+            "\1\u012a",
+            "\1\u012b",
+            "\1\u012c",
+            "",
+            "\1\103\13\uffff\12\103\7\uffff\32\103\4\uffff\1\103\1\uffff"+
+            "\32\103",
+            "\1\u012e",
+            "\1\u012f",
+            "\1\u0130\14\uffff\1\u0131",
+            "\1\u0132",
+            "\1\103\13\uffff\12\103\7\uffff\32\103\4\uffff\1\103\1\uffff"+
+            "\32\103",
+            "\1\u0134",
+            "\1\103\13\uffff\12\103\7\uffff\32\103\4\uffff\1\103\1\uffff"+
+            "\32\103",
+            "\1\103\13\uffff\12\103\7\uffff\32\103\4\uffff\1\103\1\uffff"+
+            "\32\103",
+            "",
+            "",
+            "\1\u0137",
+            "\1\u0138",
+            "\1\103\13\uffff\12\103\7\uffff\32\103\4\uffff\1\103\1\uffff"+
+            "\32\103",
+            "\1\u013a",
+            "\1\u013b",
+            "\1\u013c",
+            "\1\u013d",
+            "\1\u013e",
+            "\1\u013f",
+            "\1\103\13\uffff\12\103\7\uffff\32\103\4\uffff\1\103\1\uffff"+
+            "\22\103\1\u0140\7\103",
+            "\1\103\13\uffff\12\103\7\uffff\32\103\4\uffff\1\103\1\uffff"+
+            "\32\103",
+            "\1\u0143",
+            "\1\u0144",
+            "",
+            "\1\u0145",
+            "\1\u0146",
+            "\1\u0147",
+            "\1\u0148",
+            "\1\u0149",
+            "\1\u014a",
+            "\1\u014b",
+            "\1\u014c",
+            "\1\u014d",
+            "\1\103\13\uffff\12\103\7\uffff\32\103\4\uffff\1\103\1\uffff"+
+            "\32\103",
+            "\1\u014f",
+            "\1\u0150",
+            "\1\103\13\uffff\12\103\7\uffff\32\103\4\uffff\1\103\1\uffff"+
+            "\32\103",
+            "\1\u0152",
+            "",
+            "\1\u0153",
+            "\1\u0154",
+            "\1\u0155",
+            "\1\u0156",
+            "\1\u0157",
+            "\1\u0158",
+            "\1\u0159",
+            "",
+            "\1\103\13\uffff\12\103\7\uffff\32\103\4\uffff\1\103\1\uffff"+
+            "\32\103",
+            "\1\u015b",
+            "\1\u015c",
+            "\1\u015d",
+            "\1\103\13\uffff\12\103\7\uffff\32\103\4\uffff\1\103\1\uffff"+
+            "\32\103",
+            "\1\u015f",
+            "\1\u0160",
+            "\1\u0161",
+            "\1\u0162",
+            "\1\u0163",
+            "\1\u0164",
+            "\1\u0165",
+            "\1\u0166",
+            "\1\u0167",
+            "\1\u0168",
+            "\1\u0169",
+            "",
+            "\1\103\13\uffff\12\103\7\uffff\32\103\4\uffff\1\103\1\uffff"+
+            "\32\103",
+            "\1\u016b",
+            "\1\u016c",
+            "\1\u016d",
+            "\1\103\13\uffff\12\103\7\uffff\32\103\4\uffff\1\103\1\uffff"+
+            "\32\103",
+            "",
+            "\1\u016f",
+            "",
+            "",
+            "\1\u0170\16\uffff\1\u0171",
+            "\1\u0172",
+            "",
+            "\1\u0173",
+            "\1\103\13\uffff\12\103\7\uffff\32\103\4\uffff\1\103\1\uffff"+
+            "\32\103",
+            "\1\u0175",
+            "\1\u0176",
+            "\1\u0177",
+            "\1\u0178",
+            "\1\103\13\uffff\12\103\7\uffff\32\103\4\uffff\1\103\1\uffff"+
+            "\32\103",
+            "",
+            "",
+            "\1\u017a",
+            "\1\103\13\uffff\12\103\7\uffff\32\103\4\uffff\1\103\1\uffff"+
+            "\32\103",
+            "\1\u017c",
+            "\1\103\13\uffff\12\103\7\uffff\32\103\4\uffff\1\103\1\uffff"+
+            "\32\103",
+            "\1\u017e",
+            "\1\u017f",
+            "\1\u0180",
+            "\1\u0181",
+            "\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\103\13\uffff\12\103\7\uffff\32\103\4\uffff\1\103\1\uffff"+
+            "\32\103",
+            "",
+            "\1\103\13\uffff\12\103\7\uffff\32\103\4\uffff\1\103\1\uffff"+
+            "\32\103",
+            "\1\u0190",
+            "\1\u0191",
+            "",
+            "\1\103\13\uffff\12\103\7\uffff\32\103\4\uffff\1\103\1\uffff"+
+            "\32\103",
+            "\1\u0193",
+            "\1\u0194",
+            "\1\u0195",
+            "\1\u0196",
+            "\1\u0197",
+            "\1\u0198",
+            "\1\u0199",
+            "\1\u019a",
+            "\1\u019b",
+            "\1\103\13\uffff\12\103\7\uffff\32\103\4\uffff\1\103\1\uffff"+
+            "\32\103",
+            "",
+            "\1\u019d",
+            "\1\u019e",
+            "\1\103\13\uffff\12\103\7\uffff\32\103\4\uffff\1\103\1\uffff"+
+            "\32\103",
+            "",
+            "\1\u01a0",
+            "\1\u01a1",
+            "\1\u01a2",
+            "\1\u01a3",
+            "\1\103\13\uffff\12\103\7\uffff\32\103\4\uffff\1\103\1\uffff"+
+            "\32\103",
+            "",
+            "\1\u01a5",
+            "\1\103\13\uffff\12\103\7\uffff\32\103\4\uffff\1\103\1\uffff"+
+            "\32\103",
+            "\1\u01a7",
+            "\1\103\13\uffff\12\103\7\uffff\32\103\4\uffff\1\103\1\uffff"+
+            "\32\103",
+            "",
+            "\1\u01a9",
+            "",
+            "\1\u01aa",
+            "",
+            "\1\u01ab",
+            "\1\103\13\uffff\12\103\7\uffff\32\103\4\uffff\1\103\1\uffff"+
+            "\32\103",
+            "\1\u01ad",
+            "\1\103\13\uffff\12\103\7\uffff\32\103\4\uffff\1\103\1\uffff"+
+            "\32\103",
+            "\1\u01af",
+            "\1\103\13\uffff\12\103\7\uffff\1\u01b0\31\103\4\uffff\1\103"+
+            "\1\uffff\32\103",
+            "\1\u01b2",
+            "\1\u01b3",
+            "\1\103\13\uffff\12\103\7\uffff\32\103\4\uffff\1\103\1\uffff"+
+            "\32\103",
+            "\1\103\13\uffff\12\103\7\uffff\32\103\4\uffff\1\103\1\uffff"+
+            "\32\103",
+            "\1\u01b6",
+            "\1\103\13\uffff\12\103\7\uffff\32\103\4\uffff\1\103\1\uffff"+
+            "\32\103",
+            "\1\u01b8",
+            "\1\u01b9",
+            "\1\u01ba",
+            "\1\103\13\uffff\12\103\7\uffff\32\103\4\uffff\1\103\1\uffff"+
+            "\32\103",
+            "",
+            "",
+            "\1\u01bc",
+            "\1\u01bd",
+            "",
+            "\1\u01be",
+            "\1\u01bf",
+            "\1\u01c0",
+            "\1\u01c1",
+            "\1\u01c2",
+            "\1\u01c3",
+            "\1\u01c4",
+            "\1\103\13\uffff\12\103\7\uffff\32\103\4\uffff\1\103\1\uffff"+
+            "\32\103",
+            "\1\u01c6",
+            "",
+            "\1\u01c7",
+            "\1\u01c8",
+            "",
+            "\1\103\13\uffff\12\103\7\uffff\32\103\4\uffff\1\103\1\uffff"+
+            "\32\103",
+            "\1\103\13\uffff\12\103\7\uffff\32\103\4\uffff\1\103\1\uffff"+
+            "\32\103",
+            "\1\u01cb",
+            "\1\u01cc",
+            "",
+            "\1\u01cd",
+            "",
+            "\1\u01ce",
+            "",
+            "\1\u01cf",
+            "\1\103\13\uffff\12\103\7\uffff\32\103\4\uffff\1\103\1\uffff"+
+            "\32\103",
+            "\1\u01d1",
+            "",
+            "\1\103\13\uffff\12\103\7\uffff\32\103\4\uffff\1\103\1\uffff"+
+            "\32\103",
+            "",
+            "\1\u01d3",
+            "\1\u01d4",
+            "",
+            "\1\103\13\uffff\12\103\7\uffff\32\103\4\uffff\1\103\1\uffff"+
+            "\32\103",
+            "\1\u01d6",
+            "",
+            "",
+            "\1\u01d7",
+            "",
+            "\1\103\13\uffff\12\103\7\uffff\32\103\4\uffff\1\103\1\uffff"+
+            "\32\103",
+            "\1\103\13\uffff\12\103\7\uffff\32\103\4\uffff\1\103\1\uffff"+
+            "\32\103",
+            "\1\u01da",
+            "",
+            "\1\u01db",
+            "\1\u01dc",
+            "\1\u01dd",
+            "\1\103\13\uffff\12\103\7\uffff\32\103\4\uffff\1\103\1\uffff"+
+            "\32\103",
+            "\1\u01df",
+            "\1\u01e0",
+            "\1\103\13\uffff\12\103\7\uffff\32\103\4\uffff\1\103\1\uffff"+
+            "\32\103",
+            "\1\u01e2",
+            "\1\u01e3",
+            "",
+            "\1\u01e4",
+            "\1\103\13\uffff\12\103\7\uffff\32\103\4\uffff\1\103\1\uffff"+
+            "\32\103",
+            "\1\103\13\uffff\12\103\7\uffff\32\103\4\uffff\1\103\1\uffff"+
+            "\32\103",
+            "",
+            "",
+            "\1\u01e7",
+            "\1\u01e8",
+            "\1\u01e9",
+            "\1\u01ea",
+            "\1\u01eb",
+            "",
+            "\1\103\13\uffff\12\103\7\uffff\32\103\4\uffff\1\103\1\uffff"+
+            "\32\103",
+            "",
+            "\1\103\13\uffff\12\103\7\uffff\32\103\4\uffff\1\103\1\uffff"+
+            "\32\103",
+            "\1\u01ee",
+            "",
+            "\1\103\13\uffff\12\103\7\uffff\32\103\4\uffff\1\103\1\uffff"+
+            "\32\103",
+            "\1\u01f0",
+            "",
+            "",
+            "\1\u01f1",
+            "\1\u01f2",
+            "\1\u01f3",
+            "\1\u01f4",
+            "",
+            "\1\u01f5",
+            "\1\u01f6",
+            "",
+            "\1\u01f7",
+            "\1\u01f8",
+            "\1\u01f9",
+            "",
+            "",
+            "\1\103\13\uffff\12\103\7\uffff\32\103\4\uffff\1\103\1\uffff"+
+            "\32\103",
+            "\1\u01fb",
+            "\1\u01fc",
+            "\1\u01fd",
+            "\1\u01fe",
+            "",
+            "",
+            "\1\103\13\uffff\12\103\7\uffff\32\103\4\uffff\1\103\1\uffff"+
+            "\32\103",
+            "",
+            "\1\u0200",
+            "\1\u0201",
+            "\1\u0202",
+            "\1\u0203",
+            "\1\u0204",
+            "\1\u0205",
+            "\1\u0206",
+            "\1\u0207",
+            "\1\u0208",
+            "\1\u0209",
+            "",
+            "\1\u020a",
+            "\1\u020b",
+            "\1\u020c",
+            "\1\103\13\uffff\12\103\7\uffff\32\103\4\uffff\1\103\1\uffff"+
+            "\32\103",
+            "",
+            "\1\u020e",
+            "\1\103\13\uffff\12\103\7\uffff\32\103\4\uffff\1\103\1\uffff"+
+            "\32\103",
+            "\1\u0210",
+            "\1\103\13\uffff\12\103\7\uffff\32\103\4\uffff\1\103\1\uffff"+
+            "\32\103",
+            "\1\u0212",
+            "\1\u0213",
+            "\1\u0214",
+            "",
+            "\1\u0215",
+            "\1\u0216",
+            "\1\u0217",
+            "\1\u0218",
+            "\1\u0219",
+            "",
+            "\1\u021a",
+            "",
+            "\1\u021b",
+            "",
+            "\1\103\13\uffff\12\103\7\uffff\32\103\4\uffff\1\103\1\uffff"+
+            "\32\103",
+            "\1\u021d",
+            "\1\u021e",
+            "\1\u021f",
+            "\1\u0220",
+            "\1\u0221",
+            "\1\u0222",
+            "\1\103\13\uffff\12\103\7\uffff\32\103\4\uffff\1\103\1\uffff"+
+            "\32\103",
+            "\1\u0224",
+            "\1\u0225",
+            "",
+            "\1\103\13\uffff\12\103\7\uffff\32\103\4\uffff\1\103\1\uffff"+
+            "\32\103",
+            "\1\u0227",
+            "\1\103\13\uffff\12\103\7\uffff\32\103\4\uffff\1\103\1\uffff"+
+            "\32\103",
+            "\1\u0229",
+            "\1\u022a",
+            "\1\u022b",
+            "",
+            "\1\103\13\uffff\12\103\7\uffff\32\103\4\uffff\1\103\1\uffff"+
+            "\32\103",
+            "\1\103\13\uffff\12\103\7\uffff\32\103\4\uffff\1\103\1\uffff"+
+            "\32\103",
+            "",
+            "\1\u022e",
+            "",
+            "\1\u022f",
+            "\1\u0230",
+            "\1\u0231",
+            "",
+            "",
+            "\1\u0232",
+            "\1\103\13\uffff\12\103\7\uffff\32\103\4\uffff\1\103\1\uffff"+
+            "\32\103",
+            "\1\u0234",
+            "\1\u0235",
+            "\1\u0236",
+            "",
+            "\1\103\13\uffff\12\103\7\uffff\32\103\4\uffff\1\103\1\uffff"+
+            "\32\103",
+            "\1\u0238",
+            "\1\u0239",
+            "",
+            "\1\u023a",
+            "\1\u023b",
+            "\1\u023c",
+            "\1\u023d",
+            "\1\u023e",
+            "\1\u023f",
+            "\1\103\13\uffff\12\103\7\uffff\32\103\4\uffff\1\103\1\uffff"+
+            "\32\103",
+            "\1\u0241",
+            "",
+            "\1\103\13\uffff\12\103\7\uffff\32\103\4\uffff\1\103\1\uffff"+
+            "\32\103",
+            ""
+    };
+
+    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 | 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=='D') ) {s = 4;}
+
+                        else if ( (LA21_0=='S') ) {s = 5;}
+
+                        else if ( (LA21_0=='+') ) {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=='v') ) {s = 16;}
+
+                        else if ( (LA21_0=='e') ) {s = 17;}
+
+                        else if ( (LA21_0=='s') ) {s = 18;}
+
+                        else if ( (LA21_0=='i') ) {s = 19;}
+
+                        else if ( (LA21_0=='f') ) {s = 20;}
+
+                        else if ( (LA21_0=='C') ) {s = 21;}
+
+                        else if ( (LA21_0=='R') ) {s = 22;}
+
+                        else if ( (LA21_0=='F') ) {s = 23;}
+
+                        else if ( (LA21_0=='A') ) {s = 24;}
+
+                        else if ( (LA21_0=='E') ) {s = 25;}
+
+                        else if ( (LA21_0=='N') ) {s = 26;}
+
+                        else if ( (LA21_0=='P') ) {s = 27;}
+
+                        else if ( (LA21_0=='I') ) {s = 28;}
+
+                        else if ( (LA21_0=='p') ) {s = 29;}
+
+                        else if ( (LA21_0=='{') ) {s = 30;}
+
+                        else if ( (LA21_0=='}') ) {s = 31;}
+
+                        else if ( (LA21_0=='t') ) {s = 32;}
+
+                        else if ( (LA21_0=='g') ) {s = 33;}
+
+                        else if ( (LA21_0=='c') ) {s = 34;}
+
+                        else if ( (LA21_0=='m') ) {s = 35;}
+
+                        else if ( (LA21_0=='d') ) {s = 36;}
+
+                        else if ( (LA21_0=='r') ) {s = 37;}
+
+                        else if ( (LA21_0=='w') ) {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=='#') ) {s = 44;}
+
+                        else if ( (LA21_0=='[') ) {s = 45;}
+
+                        else if ( (LA21_0=='a') ) {s = 46;}
+
+                        else if ( (LA21_0==';') ) {s = 47;}
+
+                        else if ( (LA21_0==':') ) {s = 48;}
+
+                        else if ( (LA21_0=='n') ) {s = 49;}
+
+                        else if ( (LA21_0=='0') ) {s = 50;}
+
+                        else if ( ((LA21_0>='1' && LA21_0<='9')) ) {s = 51;}
+
+                        else if ( (LA21_0=='^') ) {s = 52;}
+
+                        else if ( (LA21_0=='$'||LA21_0=='B'||(LA21_0>='G' && LA21_0<='H')||(LA21_0>='J' && LA21_0<='M')||LA21_0=='O'||LA21_0=='Q'||(LA21_0>='T' && LA21_0<='Z')||LA21_0=='_'||LA21_0=='b'||LA21_0=='h'||(LA21_0>='j' && LA21_0<='l')||LA21_0=='o'||LA21_0=='q'||LA21_0=='u'||(LA21_0>='x' && LA21_0<='z')) ) {s = 53;}
+
+                        else if ( (LA21_0=='\"') ) {s = 54;}
+
+                        else if ( (LA21_0=='\'') ) {s = 55;}
+
+                        else if ( ((LA21_0>='\t' && LA21_0<='\n')||LA21_0=='\r'||LA21_0==' ') ) {s = 56;}
+
+                        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 = 57;}
+
+                        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.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSLParser.java b/org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSLParser.java
new file mode 100644
index 0000000..f6e7958
--- /dev/null
+++ b/org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSLParser.java
@@ -0,0 +1,10014 @@
+/**
+ *                                                                            
+ *  Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) 
+ *                                                                            
+ *  All rights reserved. This program and the accompanying materials           
+ *  are made available under the 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.action.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.action.services.ActionDSLGrammarAccess;
+
+
+
+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 InternalActionDSLParser extends AbstractInternalContentAssistParser {
+    public static final String[] tokenNames = new String[] {
+        "<invalid>", "<EOR>", "<DOWN>", "<UP>", "RULE_ID", "RULE_STRING", "RULE_HEX", "RULE_INT", "RULE_DECIMAL", "RULE_ML_COMMENT", "RULE_SL_COMMENT", "RULE_WS", "RULE_ANY_OTHER", "'='", "'||'", "'&&'", "'Download'", "'Start'", "'+='", "'-='", "'*='", "'/='", "'%='", "'=='", "'!='", "'==='", "'!=='", "'>='", "'>'", "'<'", "'->'", "'..<'", "'..'", "'=>'", "'<>'", "'?:'", "'+'", "'-'", "'*'", "'**'", "'/'", "'%'", "'!'", "'++'", "'--'", "'.'", "'val'", "'extends'", "'static'", "'import'", "'extension'", "'super'", "'false'", "'Claim'", "'Stop'", "'Release'", "'Suspend'", "'Resume'", "'Skip'", "'Complete'", "'Delegate'", "'Forward'", "'Fail'", "'Register'", "'Remove'", "'Activate'", "'Exit'", "'RemoveAll'", "'AddAll'", "'New'", "'Save'", "'Delete'", "'Cancel'", "'PrintOnServer'", "'Import'", "'Export'", "'package'", "'{'", "'}'", "'toolbar'", "'items'", "'item'", "'icon'", "'group'", "'canExecute'", "'executeParameter'", "'message'", "'taskAction'", "'selectWorkloadAction'", "'dialogAction'", "'reportAction'", "'chartAction'", "'workflowAction'", "'datainterchangeAction'", "'genericAction'", "'@'", "'('", "')'", "','", "']'", "'#'", "'['", "'instanceof'", "'as'", "';'", "'if'", "'else'", "'switch'", "':'", "'default'", "'case'", "'for'", "'while'", "'do'", "'new'", "'null'", "'typeof'", "'throw'", "'return'", "'try'", "'finally'", "'synchronized'", "'catch'", "'?'", "'&'", "'described by'", "'::'", "'?.'", "'|'", "'var'", "'true'"
+    };
+    public static final int RULE_HEX=6;
+    public static final int T__50=50;
+    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__52=52;
+    public static final int T__53=53;
+    public static final int T__54=54;
+    public static final int T__60=60;
+    public static final int T__61=61;
+    public static final int RULE_ID=4;
+    public static final int T__130=130;
+    public static final int RULE_INT=7;
+    public static final int T__66=66;
+    public static final int RULE_ML_COMMENT=9;
+    public static final int T__67=67;
+    public static final int T__129=129;
+    public static final int T__68=68;
+    public static final int T__69=69;
+    public static final int T__62=62;
+    public static final int T__126=126;
+    public static final int T__63=63;
+    public static final int T__125=125;
+    public static final int T__64=64;
+    public static final int T__128=128;
+    public static final int T__65=65;
+    public static final int T__127=127;
+    public static final int T__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__30=30;
+    public static final int T__31=31;
+    public static final int T__32=32;
+    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__41=41;
+    public static final int T__42=42;
+    public static final int T__43=43;
+    public static final int T__91=91;
+    public static final int T__100=100;
+    public static final int T__92=92;
+    public static final int T__93=93;
+    public static final int T__102=102;
+    public static final int T__94=94;
+    public static final int T__101=101;
+    public static final int T__90=90;
+    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__99=99;
+    public static final int T__13=13;
+    public static final int T__14=14;
+    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 RULE_DECIMAL=8;
+    public static final int T__26=26;
+    public static final int T__27=27;
+    public static final int T__28=28;
+    public static final int T__29=29;
+    public static final int T__22=22;
+    public static final int T__23=23;
+    public static final int T__24=24;
+    public static final int T__25=25;
+    public static final int T__20=20;
+    public static final int T__21=21;
+    public static final int T__122=122;
+    public static final int T__70=70;
+    public static final int T__121=121;
+    public static final int T__71=71;
+    public static final int T__124=124;
+    public static final int T__72=72;
+    public static final int T__123=123;
+    public static final int T__120=120;
+    public static final int RULE_STRING=5;
+    public static final int RULE_SL_COMMENT=10;
+    public static final int T__77=77;
+    public static final int T__119=119;
+    public static final int T__78=78;
+    public static final int T__118=118;
+    public static final int T__79=79;
+    public static final int T__73=73;
+    public static final int T__115=115;
+    public static final int EOF=-1;
+    public static final int T__74=74;
+    public static final int T__114=114;
+    public static final int T__75=75;
+    public static final int T__117=117;
+    public static final int T__76=76;
+    public static final int T__116=116;
+    public static final int T__80=80;
+    public static final int T__111=111;
+    public static final int T__81=81;
+    public static final int T__110=110;
+    public static final int T__82=82;
+    public static final int T__113=113;
+    public static final int T__83=83;
+    public static final int T__112=112;
+    public static final int RULE_WS=11;
+    public static final int RULE_ANY_OTHER=12;
+    public static final int T__88=88;
+    public static final int T__108=108;
+    public static final int T__89=89;
+    public static final int T__107=107;
+    public static final int T__109=109;
+    public static final int T__84=84;
+    public static final int T__104=104;
+    public static final int T__85=85;
+    public static final int T__103=103;
+    public static final int T__86=86;
+    public static final int T__106=106;
+    public static final int T__87=87;
+    public static final int T__105=105;
+
+    // delegates
+    // delegators
+
+
+        public InternalActionDSLParser(TokenStream input) {
+            this(input, new RecognizerSharedState());
+        }
+        public InternalActionDSLParser(TokenStream input, RecognizerSharedState state) {
+            super(input, state);
+             
+        }
+        
+
+    public String[] getTokenNames() { return InternalActionDSLParser.tokenNames; }
+    public String getGrammarFileName() { return "../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g"; }
+
+
+     
+     	private ActionDSLGrammarAccess grammarAccess;
+     	
+        public void setGrammarAccess(ActionDSLGrammarAccess grammarAccess) {
+        	this.grammarAccess = grammarAccess;
+        }
+        
+        @Override
+        protected Grammar getGrammar() {
+        	return grammarAccess.getGrammar();
+        }
+        
+        @Override
+        protected String getValueForTokenName(String tokenName) {
+        	return tokenName;
+        }
+
+
+
+
+    // $ANTLR start "entryRuleActionModel"
+    // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:61:1: entryRuleActionModel : ruleActionModel EOF ;
+    public final void entryRuleActionModel() throws RecognitionException {
+        try {
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:62:1: ( ruleActionModel EOF )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:63:1: ruleActionModel EOF
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getActionModelRule()); 
+            }
+            pushFollow(FOLLOW_ruleActionModel_in_entryRuleActionModel67);
+            ruleActionModel();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getActionModelRule()); 
+            }
+            match(input,EOF,FOLLOW_EOF_in_entryRuleActionModel74); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleActionModel"
+
+
+    // $ANTLR start "ruleActionModel"
+    // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:70:1: ruleActionModel : ( ( rule__ActionModel__PackagesAssignment )* ) ;
+    public final void ruleActionModel() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:74:2: ( ( ( rule__ActionModel__PackagesAssignment )* ) )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:75:1: ( ( rule__ActionModel__PackagesAssignment )* )
+            {
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:75:1: ( ( rule__ActionModel__PackagesAssignment )* )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:76:1: ( rule__ActionModel__PackagesAssignment )*
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getActionModelAccess().getPackagesAssignment()); 
+            }
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:77:1: ( rule__ActionModel__PackagesAssignment )*
+            loop1:
+            do {
+                int alt1=2;
+                int LA1_0 = input.LA(1);
+
+                if ( (LA1_0==76) ) {
+                    alt1=1;
+                }
+
+
+                switch (alt1) {
+            	case 1 :
+            	    // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:77:2: rule__ActionModel__PackagesAssignment
+            	    {
+            	    pushFollow(FOLLOW_rule__ActionModel__PackagesAssignment_in_ruleActionModel100);
+            	    rule__ActionModel__PackagesAssignment();
+
+            	    state._fsp--;
+            	    if (state.failed) return ;
+
+            	    }
+            	    break;
+
+            	default :
+            	    break loop1;
+                }
+            } while (true);
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getActionModelAccess().getPackagesAssignment()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleActionModel"
+
+
+    // $ANTLR start "entryRuleActionPackage"
+    // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:89:1: entryRuleActionPackage : ruleActionPackage EOF ;
+    public final void entryRuleActionPackage() throws RecognitionException {
+        try {
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:90:1: ( ruleActionPackage EOF )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:91:1: ruleActionPackage EOF
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getActionPackageRule()); 
+            }
+            pushFollow(FOLLOW_ruleActionPackage_in_entryRuleActionPackage128);
+            ruleActionPackage();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getActionPackageRule()); 
+            }
+            match(input,EOF,FOLLOW_EOF_in_entryRuleActionPackage135); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleActionPackage"
+
+
+    // $ANTLR start "ruleActionPackage"
+    // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:98:1: ruleActionPackage : ( ( rule__ActionPackage__Group__0 ) ) ;
+    public final void ruleActionPackage() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:102:2: ( ( ( rule__ActionPackage__Group__0 ) ) )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:103:1: ( ( rule__ActionPackage__Group__0 ) )
+            {
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:103:1: ( ( rule__ActionPackage__Group__0 ) )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:104:1: ( rule__ActionPackage__Group__0 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getActionPackageAccess().getGroup()); 
+            }
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:105:1: ( rule__ActionPackage__Group__0 )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:105:2: rule__ActionPackage__Group__0
+            {
+            pushFollow(FOLLOW_rule__ActionPackage__Group__0_in_ruleActionPackage161);
+            rule__ActionPackage__Group__0();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getActionPackageAccess().getGroup()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleActionPackage"
+
+
+    // $ANTLR start "entryRuleActionToolbar"
+    // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:117:1: entryRuleActionToolbar : ruleActionToolbar EOF ;
+    public final void entryRuleActionToolbar() throws RecognitionException {
+        try {
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:118:1: ( ruleActionToolbar EOF )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:119:1: ruleActionToolbar EOF
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getActionToolbarRule()); 
+            }
+            pushFollow(FOLLOW_ruleActionToolbar_in_entryRuleActionToolbar188);
+            ruleActionToolbar();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getActionToolbarRule()); 
+            }
+            match(input,EOF,FOLLOW_EOF_in_entryRuleActionToolbar195); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleActionToolbar"
+
+
+    // $ANTLR start "ruleActionToolbar"
+    // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:126:1: ruleActionToolbar : ( ( rule__ActionToolbar__Group__0 ) ) ;
+    public final void ruleActionToolbar() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:130:2: ( ( ( rule__ActionToolbar__Group__0 ) ) )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:131:1: ( ( rule__ActionToolbar__Group__0 ) )
+            {
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:131:1: ( ( rule__ActionToolbar__Group__0 ) )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:132:1: ( rule__ActionToolbar__Group__0 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getActionToolbarAccess().getGroup()); 
+            }
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:133:1: ( rule__ActionToolbar__Group__0 )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:133:2: rule__ActionToolbar__Group__0
+            {
+            pushFollow(FOLLOW_rule__ActionToolbar__Group__0_in_ruleActionToolbar221);
+            rule__ActionToolbar__Group__0();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getActionToolbarAccess().getGroup()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleActionToolbar"
+
+
+    // $ANTLR start "entryRuleActionButton"
+    // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:145:1: entryRuleActionButton : ruleActionButton EOF ;
+    public final void entryRuleActionButton() throws RecognitionException {
+        try {
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:146:1: ( ruleActionButton EOF )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:147:1: ruleActionButton EOF
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getActionButtonRule()); 
+            }
+            pushFollow(FOLLOW_ruleActionButton_in_entryRuleActionButton248);
+            ruleActionButton();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getActionButtonRule()); 
+            }
+            match(input,EOF,FOLLOW_EOF_in_entryRuleActionButton255); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleActionButton"
+
+
+    // $ANTLR start "ruleActionButton"
+    // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:154:1: ruleActionButton : ( ( rule__ActionButton__Group__0 ) ) ;
+    public final void ruleActionButton() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:158:2: ( ( ( rule__ActionButton__Group__0 ) ) )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:159:1: ( ( rule__ActionButton__Group__0 ) )
+            {
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:159:1: ( ( rule__ActionButton__Group__0 ) )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:160:1: ( rule__ActionButton__Group__0 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getActionButtonAccess().getGroup()); 
+            }
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:161:1: ( rule__ActionButton__Group__0 )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:161:2: rule__ActionButton__Group__0
+            {
+            pushFollow(FOLLOW_rule__ActionButton__Group__0_in_ruleActionButton281);
+            rule__ActionButton__Group__0();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getActionButtonAccess().getGroup()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleActionButton"
+
+
+    // $ANTLR start "entryRuleActionType"
+    // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:173:1: entryRuleActionType : ruleActionType EOF ;
+    public final void entryRuleActionType() throws RecognitionException {
+        try {
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:174:1: ( ruleActionType EOF )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:175:1: ruleActionType EOF
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getActionTypeRule()); 
+            }
+            pushFollow(FOLLOW_ruleActionType_in_entryRuleActionType308);
+            ruleActionType();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getActionTypeRule()); 
+            }
+            match(input,EOF,FOLLOW_EOF_in_entryRuleActionType315); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleActionType"
+
+
+    // $ANTLR start "ruleActionType"
+    // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:182:1: ruleActionType : ( ( rule__ActionType__Alternatives ) ) ;
+    public final void ruleActionType() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:186:2: ( ( ( rule__ActionType__Alternatives ) ) )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:187:1: ( ( rule__ActionType__Alternatives ) )
+            {
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:187:1: ( ( rule__ActionType__Alternatives ) )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:188:1: ( rule__ActionType__Alternatives )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getActionTypeAccess().getAlternatives()); 
+            }
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:189:1: ( rule__ActionType__Alternatives )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:189:2: rule__ActionType__Alternatives
+            {
+            pushFollow(FOLLOW_rule__ActionType__Alternatives_in_ruleActionType341);
+            rule__ActionType__Alternatives();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getActionTypeAccess().getAlternatives()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleActionType"
+
+
+    // $ANTLR start "entryRuleActionTask"
+    // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:201:1: entryRuleActionTask : ruleActionTask EOF ;
+    public final void entryRuleActionTask() throws RecognitionException {
+        try {
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:202:1: ( ruleActionTask EOF )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:203:1: ruleActionTask EOF
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getActionTaskRule()); 
+            }
+            pushFollow(FOLLOW_ruleActionTask_in_entryRuleActionTask368);
+            ruleActionTask();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getActionTaskRule()); 
+            }
+            match(input,EOF,FOLLOW_EOF_in_entryRuleActionTask375); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleActionTask"
+
+
+    // $ANTLR start "ruleActionTask"
+    // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:210:1: ruleActionTask : ( ( rule__ActionTask__Group__0 ) ) ;
+    public final void ruleActionTask() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:214:2: ( ( ( rule__ActionTask__Group__0 ) ) )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:215:1: ( ( rule__ActionTask__Group__0 ) )
+            {
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:215:1: ( ( rule__ActionTask__Group__0 ) )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:216:1: ( rule__ActionTask__Group__0 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getActionTaskAccess().getGroup()); 
+            }
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:217:1: ( rule__ActionTask__Group__0 )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:217:2: rule__ActionTask__Group__0
+            {
+            pushFollow(FOLLOW_rule__ActionTask__Group__0_in_ruleActionTask401);
+            rule__ActionTask__Group__0();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getActionTaskAccess().getGroup()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleActionTask"
+
+
+    // $ANTLR start "entryRuleActionSelectWorkload"
+    // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:229:1: entryRuleActionSelectWorkload : ruleActionSelectWorkload EOF ;
+    public final void entryRuleActionSelectWorkload() throws RecognitionException {
+        try {
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:230:1: ( ruleActionSelectWorkload EOF )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:231:1: ruleActionSelectWorkload EOF
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getActionSelectWorkloadRule()); 
+            }
+            pushFollow(FOLLOW_ruleActionSelectWorkload_in_entryRuleActionSelectWorkload428);
+            ruleActionSelectWorkload();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getActionSelectWorkloadRule()); 
+            }
+            match(input,EOF,FOLLOW_EOF_in_entryRuleActionSelectWorkload435); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleActionSelectWorkload"
+
+
+    // $ANTLR start "ruleActionSelectWorkload"
+    // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:238:1: ruleActionSelectWorkload : ( ( rule__ActionSelectWorkload__Group__0 ) ) ;
+    public final void ruleActionSelectWorkload() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:242:2: ( ( ( rule__ActionSelectWorkload__Group__0 ) ) )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:243:1: ( ( rule__ActionSelectWorkload__Group__0 ) )
+            {
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:243:1: ( ( rule__ActionSelectWorkload__Group__0 ) )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:244:1: ( rule__ActionSelectWorkload__Group__0 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getActionSelectWorkloadAccess().getGroup()); 
+            }
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:245:1: ( rule__ActionSelectWorkload__Group__0 )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:245:2: rule__ActionSelectWorkload__Group__0
+            {
+            pushFollow(FOLLOW_rule__ActionSelectWorkload__Group__0_in_ruleActionSelectWorkload461);
+            rule__ActionSelectWorkload__Group__0();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getActionSelectWorkloadAccess().getGroup()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleActionSelectWorkload"
+
+
+    // $ANTLR start "entryRuleActionDialog"
+    // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:257:1: entryRuleActionDialog : ruleActionDialog EOF ;
+    public final void entryRuleActionDialog() throws RecognitionException {
+        try {
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:258:1: ( ruleActionDialog EOF )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:259:1: ruleActionDialog EOF
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getActionDialogRule()); 
+            }
+            pushFollow(FOLLOW_ruleActionDialog_in_entryRuleActionDialog488);
+            ruleActionDialog();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getActionDialogRule()); 
+            }
+            match(input,EOF,FOLLOW_EOF_in_entryRuleActionDialog495); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleActionDialog"
+
+
+    // $ANTLR start "ruleActionDialog"
+    // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:266:1: ruleActionDialog : ( ( rule__ActionDialog__Group__0 ) ) ;
+    public final void ruleActionDialog() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:270:2: ( ( ( rule__ActionDialog__Group__0 ) ) )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:271:1: ( ( rule__ActionDialog__Group__0 ) )
+            {
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:271:1: ( ( rule__ActionDialog__Group__0 ) )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:272:1: ( rule__ActionDialog__Group__0 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getActionDialogAccess().getGroup()); 
+            }
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:273:1: ( rule__ActionDialog__Group__0 )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:273:2: rule__ActionDialog__Group__0
+            {
+            pushFollow(FOLLOW_rule__ActionDialog__Group__0_in_ruleActionDialog521);
+            rule__ActionDialog__Group__0();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getActionDialogAccess().getGroup()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleActionDialog"
+
+
+    // $ANTLR start "entryRuleActionReport"
+    // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:285:1: entryRuleActionReport : ruleActionReport EOF ;
+    public final void entryRuleActionReport() throws RecognitionException {
+        try {
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:286:1: ( ruleActionReport EOF )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:287:1: ruleActionReport EOF
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getActionReportRule()); 
+            }
+            pushFollow(FOLLOW_ruleActionReport_in_entryRuleActionReport548);
+            ruleActionReport();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getActionReportRule()); 
+            }
+            match(input,EOF,FOLLOW_EOF_in_entryRuleActionReport555); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleActionReport"
+
+
+    // $ANTLR start "ruleActionReport"
+    // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:294:1: ruleActionReport : ( ( rule__ActionReport__Group__0 ) ) ;
+    public final void ruleActionReport() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:298:2: ( ( ( rule__ActionReport__Group__0 ) ) )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:299:1: ( ( rule__ActionReport__Group__0 ) )
+            {
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:299:1: ( ( rule__ActionReport__Group__0 ) )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:300:1: ( rule__ActionReport__Group__0 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getActionReportAccess().getGroup()); 
+            }
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:301:1: ( rule__ActionReport__Group__0 )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:301:2: rule__ActionReport__Group__0
+            {
+            pushFollow(FOLLOW_rule__ActionReport__Group__0_in_ruleActionReport581);
+            rule__ActionReport__Group__0();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getActionReportAccess().getGroup()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleActionReport"
+
+
+    // $ANTLR start "entryRuleActionChart"
+    // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:313:1: entryRuleActionChart : ruleActionChart EOF ;
+    public final void entryRuleActionChart() throws RecognitionException {
+        try {
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:314:1: ( ruleActionChart EOF )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:315:1: ruleActionChart EOF
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getActionChartRule()); 
+            }
+            pushFollow(FOLLOW_ruleActionChart_in_entryRuleActionChart608);
+            ruleActionChart();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getActionChartRule()); 
+            }
+            match(input,EOF,FOLLOW_EOF_in_entryRuleActionChart615); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleActionChart"
+
+
+    // $ANTLR start "ruleActionChart"
+    // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:322:1: ruleActionChart : ( ( rule__ActionChart__Group__0 ) ) ;
+    public final void ruleActionChart() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:326:2: ( ( ( rule__ActionChart__Group__0 ) ) )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:327:1: ( ( rule__ActionChart__Group__0 ) )
+            {
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:327:1: ( ( rule__ActionChart__Group__0 ) )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:328:1: ( rule__ActionChart__Group__0 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getActionChartAccess().getGroup()); 
+            }
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:329:1: ( rule__ActionChart__Group__0 )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:329:2: rule__ActionChart__Group__0
+            {
+            pushFollow(FOLLOW_rule__ActionChart__Group__0_in_ruleActionChart641);
+            rule__ActionChart__Group__0();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getActionChartAccess().getGroup()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleActionChart"
+
+
+    // $ANTLR start "entryRuleActionWorkflow"
+    // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:341:1: entryRuleActionWorkflow : ruleActionWorkflow EOF ;
+    public final void entryRuleActionWorkflow() throws RecognitionException {
+        try {
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:342:1: ( ruleActionWorkflow EOF )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:343:1: ruleActionWorkflow EOF
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getActionWorkflowRule()); 
+            }
+            pushFollow(FOLLOW_ruleActionWorkflow_in_entryRuleActionWorkflow668);
+            ruleActionWorkflow();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getActionWorkflowRule()); 
+            }
+            match(input,EOF,FOLLOW_EOF_in_entryRuleActionWorkflow675); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleActionWorkflow"
+
+
+    // $ANTLR start "ruleActionWorkflow"
+    // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:350:1: ruleActionWorkflow : ( ( rule__ActionWorkflow__Group__0 ) ) ;
+    public final void ruleActionWorkflow() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:354:2: ( ( ( rule__ActionWorkflow__Group__0 ) ) )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:355:1: ( ( rule__ActionWorkflow__Group__0 ) )
+            {
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:355:1: ( ( rule__ActionWorkflow__Group__0 ) )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:356:1: ( rule__ActionWorkflow__Group__0 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getActionWorkflowAccess().getGroup()); 
+            }
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:357:1: ( rule__ActionWorkflow__Group__0 )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:357:2: rule__ActionWorkflow__Group__0
+            {
+            pushFollow(FOLLOW_rule__ActionWorkflow__Group__0_in_ruleActionWorkflow701);
+            rule__ActionWorkflow__Group__0();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getActionWorkflowAccess().getGroup()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleActionWorkflow"
+
+
+    // $ANTLR start "entryRuleActionDatainterchange"
+    // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:369:1: entryRuleActionDatainterchange : ruleActionDatainterchange EOF ;
+    public final void entryRuleActionDatainterchange() throws RecognitionException {
+        try {
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:370:1: ( ruleActionDatainterchange EOF )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:371:1: ruleActionDatainterchange EOF
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getActionDatainterchangeRule()); 
+            }
+            pushFollow(FOLLOW_ruleActionDatainterchange_in_entryRuleActionDatainterchange728);
+            ruleActionDatainterchange();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getActionDatainterchangeRule()); 
+            }
+            match(input,EOF,FOLLOW_EOF_in_entryRuleActionDatainterchange735); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleActionDatainterchange"
+
+
+    // $ANTLR start "ruleActionDatainterchange"
+    // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:378:1: ruleActionDatainterchange : ( ( rule__ActionDatainterchange__Group__0 ) ) ;
+    public final void ruleActionDatainterchange() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:382:2: ( ( ( rule__ActionDatainterchange__Group__0 ) ) )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:383:1: ( ( rule__ActionDatainterchange__Group__0 ) )
+            {
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:383:1: ( ( rule__ActionDatainterchange__Group__0 ) )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:384:1: ( rule__ActionDatainterchange__Group__0 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getActionDatainterchangeAccess().getGroup()); 
+            }
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:385:1: ( rule__ActionDatainterchange__Group__0 )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:385:2: rule__ActionDatainterchange__Group__0
+            {
+            pushFollow(FOLLOW_rule__ActionDatainterchange__Group__0_in_ruleActionDatainterchange761);
+            rule__ActionDatainterchange__Group__0();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getActionDatainterchangeAccess().getGroup()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleActionDatainterchange"
+
+
+    // $ANTLR start "entryRuleActionGeneric"
+    // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:397:1: entryRuleActionGeneric : ruleActionGeneric EOF ;
+    public final void entryRuleActionGeneric() throws RecognitionException {
+        try {
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:398:1: ( ruleActionGeneric EOF )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:399:1: ruleActionGeneric EOF
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getActionGenericRule()); 
+            }
+            pushFollow(FOLLOW_ruleActionGeneric_in_entryRuleActionGeneric788);
+            ruleActionGeneric();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getActionGenericRule()); 
+            }
+            match(input,EOF,FOLLOW_EOF_in_entryRuleActionGeneric795); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleActionGeneric"
+
+
+    // $ANTLR start "ruleActionGeneric"
+    // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:406:1: ruleActionGeneric : ( ( rule__ActionGeneric__Group__0 ) ) ;
+    public final void ruleActionGeneric() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:410:2: ( ( ( rule__ActionGeneric__Group__0 ) ) )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:411:1: ( ( rule__ActionGeneric__Group__0 ) )
+            {
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:411:1: ( ( rule__ActionGeneric__Group__0 ) )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:412:1: ( rule__ActionGeneric__Group__0 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getActionGenericAccess().getGroup()); 
+            }
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:413:1: ( rule__ActionGeneric__Group__0 )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:413:2: rule__ActionGeneric__Group__0
+            {
+            pushFollow(FOLLOW_rule__ActionGeneric__Group__0_in_ruleActionGeneric821);
+            rule__ActionGeneric__Group__0();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getActionGenericAccess().getGroup()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleActionGeneric"
+
+
+    // $ANTLR start "entryRuleActionImport"
+    // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:427:1: entryRuleActionImport : ruleActionImport EOF ;
+    public final void entryRuleActionImport() throws RecognitionException {
+        try {
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:428:1: ( ruleActionImport EOF )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:429:1: ruleActionImport EOF
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getActionImportRule()); 
+            }
+            pushFollow(FOLLOW_ruleActionImport_in_entryRuleActionImport850);
+            ruleActionImport();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getActionImportRule()); 
+            }
+            match(input,EOF,FOLLOW_EOF_in_entryRuleActionImport857); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleActionImport"
+
+
+    // $ANTLR start "ruleActionImport"
+    // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:436:1: ruleActionImport : ( ( rule__ActionImport__Group__0 ) ) ;
+    public final void ruleActionImport() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:440:2: ( ( ( rule__ActionImport__Group__0 ) ) )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:441:1: ( ( rule__ActionImport__Group__0 ) )
+            {
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:441:1: ( ( rule__ActionImport__Group__0 ) )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:442:1: ( rule__ActionImport__Group__0 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getActionImportAccess().getGroup()); 
+            }
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:443:1: ( rule__ActionImport__Group__0 )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:443:2: rule__ActionImport__Group__0
+            {
+            pushFollow(FOLLOW_rule__ActionImport__Group__0_in_ruleActionImport883);
+            rule__ActionImport__Group__0();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getActionImportAccess().getGroup()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleActionImport"
+
+
+    // $ANTLR start "entryRuleActionQualifiedNameWithWildCard"
+    // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:457:1: entryRuleActionQualifiedNameWithWildCard : ruleActionQualifiedNameWithWildCard EOF ;
+    public final void entryRuleActionQualifiedNameWithWildCard() throws RecognitionException {
+        try {
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:458:1: ( ruleActionQualifiedNameWithWildCard EOF )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:459:1: ruleActionQualifiedNameWithWildCard EOF
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getActionQualifiedNameWithWildCardRule()); 
+            }
+            pushFollow(FOLLOW_ruleActionQualifiedNameWithWildCard_in_entryRuleActionQualifiedNameWithWildCard912);
+            ruleActionQualifiedNameWithWildCard();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getActionQualifiedNameWithWildCardRule()); 
+            }
+            match(input,EOF,FOLLOW_EOF_in_entryRuleActionQualifiedNameWithWildCard919); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleActionQualifiedNameWithWildCard"
+
+
+    // $ANTLR start "ruleActionQualifiedNameWithWildCard"
+    // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:466:1: ruleActionQualifiedNameWithWildCard : ( ( rule__ActionQualifiedNameWithWildCard__Group__0 ) ) ;
+    public final void ruleActionQualifiedNameWithWildCard() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:470:2: ( ( ( rule__ActionQualifiedNameWithWildCard__Group__0 ) ) )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:471:1: ( ( rule__ActionQualifiedNameWithWildCard__Group__0 ) )
+            {
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:471:1: ( ( rule__ActionQualifiedNameWithWildCard__Group__0 ) )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:472:1: ( rule__ActionQualifiedNameWithWildCard__Group__0 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getActionQualifiedNameWithWildCardAccess().getGroup()); 
+            }
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:473:1: ( rule__ActionQualifiedNameWithWildCard__Group__0 )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:473:2: rule__ActionQualifiedNameWithWildCard__Group__0
+            {
+            pushFollow(FOLLOW_rule__ActionQualifiedNameWithWildCard__Group__0_in_ruleActionQualifiedNameWithWildCard945);
+            rule__ActionQualifiedNameWithWildCard__Group__0();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getActionQualifiedNameWithWildCardAccess().getGroup()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleActionQualifiedNameWithWildCard"
+
+
+    // $ANTLR start "entryRuleQualifiedName"
+    // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:485:1: entryRuleQualifiedName : ruleQualifiedName EOF ;
+    public final void entryRuleQualifiedName() throws RecognitionException {
+        try {
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:486:1: ( ruleQualifiedName EOF )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:487:1: ruleQualifiedName EOF
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getQualifiedNameRule()); 
+            }
+            pushFollow(FOLLOW_ruleQualifiedName_in_entryRuleQualifiedName972);
+            ruleQualifiedName();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getQualifiedNameRule()); 
+            }
+            match(input,EOF,FOLLOW_EOF_in_entryRuleQualifiedName979); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleQualifiedName"
+
+
+    // $ANTLR start "ruleQualifiedName"
+    // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:494:1: ruleQualifiedName : ( ( rule__QualifiedName__Group__0 ) ) ;
+    public final void ruleQualifiedName() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:498:2: ( ( ( rule__QualifiedName__Group__0 ) ) )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:499:1: ( ( rule__QualifiedName__Group__0 ) )
+            {
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:499:1: ( ( rule__QualifiedName__Group__0 ) )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:500:1: ( rule__QualifiedName__Group__0 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getQualifiedNameAccess().getGroup()); 
+            }
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:501:1: ( rule__QualifiedName__Group__0 )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:501:2: rule__QualifiedName__Group__0
+            {
+            pushFollow(FOLLOW_rule__QualifiedName__Group__0_in_ruleQualifiedName1005);
+            rule__QualifiedName__Group__0();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getQualifiedNameAccess().getGroup()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleQualifiedName"
+
+
+    // $ANTLR start "entryRuleValidID"
+    // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:513:1: entryRuleValidID : ruleValidID EOF ;
+    public final void entryRuleValidID() throws RecognitionException {
+        try {
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:514:1: ( ruleValidID EOF )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:515:1: ruleValidID EOF
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getValidIDRule()); 
+            }
+            pushFollow(FOLLOW_ruleValidID_in_entryRuleValidID1032);
+            ruleValidID();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getValidIDRule()); 
+            }
+            match(input,EOF,FOLLOW_EOF_in_entryRuleValidID1039); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleValidID"
+
+
+    // $ANTLR start "ruleValidID"
+    // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:522:1: ruleValidID : ( RULE_ID ) ;
+    public final void ruleValidID() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:526:2: ( ( RULE_ID ) )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:527:1: ( RULE_ID )
+            {
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:527:1: ( RULE_ID )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:528:1: RULE_ID
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getValidIDAccess().getIDTerminalRuleCall()); 
+            }
+            match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleValidID1065); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getValidIDAccess().getIDTerminalRuleCall()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleValidID"
+
+
+    // $ANTLR start "entryRuleTRANSLATABLEID"
+    // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:541:1: entryRuleTRANSLATABLEID : ruleTRANSLATABLEID EOF ;
+    public final void entryRuleTRANSLATABLEID() throws RecognitionException {
+        try {
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:542:1: ( ruleTRANSLATABLEID EOF )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:543:1: ruleTRANSLATABLEID EOF
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTRANSLATABLEIDRule()); 
+            }
+            pushFollow(FOLLOW_ruleTRANSLATABLEID_in_entryRuleTRANSLATABLEID1091);
+            ruleTRANSLATABLEID();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTRANSLATABLEIDRule()); 
+            }
+            match(input,EOF,FOLLOW_EOF_in_entryRuleTRANSLATABLEID1098); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleTRANSLATABLEID"
+
+
+    // $ANTLR start "ruleTRANSLATABLEID"
+    // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:550:1: ruleTRANSLATABLEID : ( RULE_ID ) ;
+    public final void ruleTRANSLATABLEID() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:554:2: ( ( RULE_ID ) )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:555:1: ( RULE_ID )
+            {
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:555:1: ( RULE_ID )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:556:1: RULE_ID
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTRANSLATABLEIDAccess().getIDTerminalRuleCall()); 
+            }
+            match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleTRANSLATABLEID1124); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTRANSLATABLEIDAccess().getIDTerminalRuleCall()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleTRANSLATABLEID"
+
+
+    // $ANTLR start "entryRuleTRANSLATABLESTRING"
+    // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:569:1: entryRuleTRANSLATABLESTRING : ruleTRANSLATABLESTRING EOF ;
+    public final void entryRuleTRANSLATABLESTRING() throws RecognitionException {
+        try {
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:570:1: ( ruleTRANSLATABLESTRING EOF )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:571:1: ruleTRANSLATABLESTRING EOF
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTRANSLATABLESTRINGRule()); 
+            }
+            pushFollow(FOLLOW_ruleTRANSLATABLESTRING_in_entryRuleTRANSLATABLESTRING1150);
+            ruleTRANSLATABLESTRING();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTRANSLATABLESTRINGRule()); 
+            }
+            match(input,EOF,FOLLOW_EOF_in_entryRuleTRANSLATABLESTRING1157); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleTRANSLATABLESTRING"
+
+
+    // $ANTLR start "ruleTRANSLATABLESTRING"
+    // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:578:1: ruleTRANSLATABLESTRING : ( RULE_STRING ) ;
+    public final void ruleTRANSLATABLESTRING() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:582:2: ( ( RULE_STRING ) )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:583:1: ( RULE_STRING )
+            {
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:583:1: ( RULE_STRING )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:584:1: RULE_STRING
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTRANSLATABLESTRINGAccess().getSTRINGTerminalRuleCall()); 
+            }
+            match(input,RULE_STRING,FOLLOW_RULE_STRING_in_ruleTRANSLATABLESTRING1183); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTRANSLATABLESTRINGAccess().getSTRINGTerminalRuleCall()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleTRANSLATABLESTRING"
+
+
+    // $ANTLR start "entryRuleXAnnotation"
+    // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:597:1: entryRuleXAnnotation : ruleXAnnotation EOF ;
+    public final void entryRuleXAnnotation() throws RecognitionException {
+        try {
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:598:1: ( ruleXAnnotation EOF )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:599:1: ruleXAnnotation EOF
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXAnnotationRule()); 
+            }
+            pushFollow(FOLLOW_ruleXAnnotation_in_entryRuleXAnnotation1209);
+            ruleXAnnotation();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXAnnotationRule()); 
+            }
+            match(input,EOF,FOLLOW_EOF_in_entryRuleXAnnotation1216); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleXAnnotation"
+
+
+    // $ANTLR start "ruleXAnnotation"
+    // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:606:1: ruleXAnnotation : ( ( rule__XAnnotation__Group__0 ) ) ;
+    public final void ruleXAnnotation() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:610:2: ( ( ( rule__XAnnotation__Group__0 ) ) )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:611:1: ( ( rule__XAnnotation__Group__0 ) )
+            {
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:611:1: ( ( rule__XAnnotation__Group__0 ) )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:612:1: ( rule__XAnnotation__Group__0 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXAnnotationAccess().getGroup()); 
+            }
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:613:1: ( rule__XAnnotation__Group__0 )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:613:2: rule__XAnnotation__Group__0
+            {
+            pushFollow(FOLLOW_rule__XAnnotation__Group__0_in_ruleXAnnotation1242);
+            rule__XAnnotation__Group__0();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXAnnotationAccess().getGroup()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleXAnnotation"
+
+
+    // $ANTLR start "entryRuleXAnnotationElementValuePair"
+    // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:625:1: entryRuleXAnnotationElementValuePair : ruleXAnnotationElementValuePair EOF ;
+    public final void entryRuleXAnnotationElementValuePair() throws RecognitionException {
+        try {
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:626:1: ( ruleXAnnotationElementValuePair EOF )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:627:1: ruleXAnnotationElementValuePair EOF
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXAnnotationElementValuePairRule()); 
+            }
+            pushFollow(FOLLOW_ruleXAnnotationElementValuePair_in_entryRuleXAnnotationElementValuePair1269);
+            ruleXAnnotationElementValuePair();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXAnnotationElementValuePairRule()); 
+            }
+            match(input,EOF,FOLLOW_EOF_in_entryRuleXAnnotationElementValuePair1276); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleXAnnotationElementValuePair"
+
+
+    // $ANTLR start "ruleXAnnotationElementValuePair"
+    // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:634:1: ruleXAnnotationElementValuePair : ( ( rule__XAnnotationElementValuePair__Group__0 ) ) ;
+    public final void ruleXAnnotationElementValuePair() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:638:2: ( ( ( rule__XAnnotationElementValuePair__Group__0 ) ) )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:639:1: ( ( rule__XAnnotationElementValuePair__Group__0 ) )
+            {
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:639:1: ( ( rule__XAnnotationElementValuePair__Group__0 ) )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:640:1: ( rule__XAnnotationElementValuePair__Group__0 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXAnnotationElementValuePairAccess().getGroup()); 
+            }
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:641:1: ( rule__XAnnotationElementValuePair__Group__0 )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:641:2: rule__XAnnotationElementValuePair__Group__0
+            {
+            pushFollow(FOLLOW_rule__XAnnotationElementValuePair__Group__0_in_ruleXAnnotationElementValuePair1302);
+            rule__XAnnotationElementValuePair__Group__0();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXAnnotationElementValuePairAccess().getGroup()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleXAnnotationElementValuePair"
+
+
+    // $ANTLR start "entryRuleXAnnotationElementValueOrCommaList"
+    // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:653:1: entryRuleXAnnotationElementValueOrCommaList : ruleXAnnotationElementValueOrCommaList EOF ;
+    public final void entryRuleXAnnotationElementValueOrCommaList() throws RecognitionException {
+        try {
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:654:1: ( ruleXAnnotationElementValueOrCommaList EOF )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:655:1: ruleXAnnotationElementValueOrCommaList EOF
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXAnnotationElementValueOrCommaListRule()); 
+            }
+            pushFollow(FOLLOW_ruleXAnnotationElementValueOrCommaList_in_entryRuleXAnnotationElementValueOrCommaList1329);
+            ruleXAnnotationElementValueOrCommaList();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXAnnotationElementValueOrCommaListRule()); 
+            }
+            match(input,EOF,FOLLOW_EOF_in_entryRuleXAnnotationElementValueOrCommaList1336); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleXAnnotationElementValueOrCommaList"
+
+
+    // $ANTLR start "ruleXAnnotationElementValueOrCommaList"
+    // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:662:1: ruleXAnnotationElementValueOrCommaList : ( ( rule__XAnnotationElementValueOrCommaList__Alternatives ) ) ;
+    public final void ruleXAnnotationElementValueOrCommaList() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:666:2: ( ( ( rule__XAnnotationElementValueOrCommaList__Alternatives ) ) )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:667:1: ( ( rule__XAnnotationElementValueOrCommaList__Alternatives ) )
+            {
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:667:1: ( ( rule__XAnnotationElementValueOrCommaList__Alternatives ) )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:668:1: ( rule__XAnnotationElementValueOrCommaList__Alternatives )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getAlternatives()); 
+            }
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:669:1: ( rule__XAnnotationElementValueOrCommaList__Alternatives )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:669:2: rule__XAnnotationElementValueOrCommaList__Alternatives
+            {
+            pushFollow(FOLLOW_rule__XAnnotationElementValueOrCommaList__Alternatives_in_ruleXAnnotationElementValueOrCommaList1362);
+            rule__XAnnotationElementValueOrCommaList__Alternatives();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getAlternatives()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleXAnnotationElementValueOrCommaList"
+
+
+    // $ANTLR start "entryRuleXAnnotationElementValue"
+    // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:681:1: entryRuleXAnnotationElementValue : ruleXAnnotationElementValue EOF ;
+    public final void entryRuleXAnnotationElementValue() throws RecognitionException {
+        try {
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:682:1: ( ruleXAnnotationElementValue EOF )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:683:1: ruleXAnnotationElementValue EOF
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXAnnotationElementValueRule()); 
+            }
+            pushFollow(FOLLOW_ruleXAnnotationElementValue_in_entryRuleXAnnotationElementValue1389);
+            ruleXAnnotationElementValue();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXAnnotationElementValueRule()); 
+            }
+            match(input,EOF,FOLLOW_EOF_in_entryRuleXAnnotationElementValue1396); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleXAnnotationElementValue"
+
+
+    // $ANTLR start "ruleXAnnotationElementValue"
+    // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:690:1: ruleXAnnotationElementValue : ( ( rule__XAnnotationElementValue__Alternatives ) ) ;
+    public final void ruleXAnnotationElementValue() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:694:2: ( ( ( rule__XAnnotationElementValue__Alternatives ) ) )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:695:1: ( ( rule__XAnnotationElementValue__Alternatives ) )
+            {
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:695:1: ( ( rule__XAnnotationElementValue__Alternatives ) )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:696:1: ( rule__XAnnotationElementValue__Alternatives )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXAnnotationElementValueAccess().getAlternatives()); 
+            }
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:697:1: ( rule__XAnnotationElementValue__Alternatives )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:697:2: rule__XAnnotationElementValue__Alternatives
+            {
+            pushFollow(FOLLOW_rule__XAnnotationElementValue__Alternatives_in_ruleXAnnotationElementValue1422);
+            rule__XAnnotationElementValue__Alternatives();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXAnnotationElementValueAccess().getAlternatives()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleXAnnotationElementValue"
+
+
+    // $ANTLR start "entryRuleXAnnotationOrExpression"
+    // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:709:1: entryRuleXAnnotationOrExpression : ruleXAnnotationOrExpression EOF ;
+    public final void entryRuleXAnnotationOrExpression() throws RecognitionException {
+        try {
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:710:1: ( ruleXAnnotationOrExpression EOF )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:711:1: ruleXAnnotationOrExpression EOF
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXAnnotationOrExpressionRule()); 
+            }
+            pushFollow(FOLLOW_ruleXAnnotationOrExpression_in_entryRuleXAnnotationOrExpression1449);
+            ruleXAnnotationOrExpression();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXAnnotationOrExpressionRule()); 
+            }
+            match(input,EOF,FOLLOW_EOF_in_entryRuleXAnnotationOrExpression1456); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleXAnnotationOrExpression"
+
+
+    // $ANTLR start "ruleXAnnotationOrExpression"
+    // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:718:1: ruleXAnnotationOrExpression : ( ( rule__XAnnotationOrExpression__Alternatives ) ) ;
+    public final void ruleXAnnotationOrExpression() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:722:2: ( ( ( rule__XAnnotationOrExpression__Alternatives ) ) )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:723:1: ( ( rule__XAnnotationOrExpression__Alternatives ) )
+            {
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:723:1: ( ( rule__XAnnotationOrExpression__Alternatives ) )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:724:1: ( rule__XAnnotationOrExpression__Alternatives )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXAnnotationOrExpressionAccess().getAlternatives()); 
+            }
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:725:1: ( rule__XAnnotationOrExpression__Alternatives )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:725:2: rule__XAnnotationOrExpression__Alternatives
+            {
+            pushFollow(FOLLOW_rule__XAnnotationOrExpression__Alternatives_in_ruleXAnnotationOrExpression1482);
+            rule__XAnnotationOrExpression__Alternatives();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXAnnotationOrExpressionAccess().getAlternatives()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleXAnnotationOrExpression"
+
+
+    // $ANTLR start "entryRuleXExpression"
+    // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:737:1: entryRuleXExpression : ruleXExpression EOF ;
+    public final void entryRuleXExpression() throws RecognitionException {
+        try {
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:738:1: ( ruleXExpression EOF )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:739:1: ruleXExpression EOF
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXExpressionRule()); 
+            }
+            pushFollow(FOLLOW_ruleXExpression_in_entryRuleXExpression1509);
+            ruleXExpression();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXExpressionRule()); 
+            }
+            match(input,EOF,FOLLOW_EOF_in_entryRuleXExpression1516); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleXExpression"
+
+
+    // $ANTLR start "ruleXExpression"
+    // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:746:1: ruleXExpression : ( ruleXAssignment ) ;
+    public final void ruleXExpression() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:750:2: ( ( ruleXAssignment ) )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:751:1: ( ruleXAssignment )
+            {
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:751:1: ( ruleXAssignment )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:752:1: ruleXAssignment
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXExpressionAccess().getXAssignmentParserRuleCall()); 
+            }
+            pushFollow(FOLLOW_ruleXAssignment_in_ruleXExpression1542);
+            ruleXAssignment();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXExpressionAccess().getXAssignmentParserRuleCall()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleXExpression"
+
+
+    // $ANTLR start "entryRuleXAssignment"
+    // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:765:1: entryRuleXAssignment : ruleXAssignment EOF ;
+    public final void entryRuleXAssignment() throws RecognitionException {
+        try {
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:766:1: ( ruleXAssignment EOF )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:767:1: ruleXAssignment EOF
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXAssignmentRule()); 
+            }
+            pushFollow(FOLLOW_ruleXAssignment_in_entryRuleXAssignment1568);
+            ruleXAssignment();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXAssignmentRule()); 
+            }
+            match(input,EOF,FOLLOW_EOF_in_entryRuleXAssignment1575); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleXAssignment"
+
+
+    // $ANTLR start "ruleXAssignment"
+    // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:774:1: ruleXAssignment : ( ( rule__XAssignment__Alternatives ) ) ;
+    public final void ruleXAssignment() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:778:2: ( ( ( rule__XAssignment__Alternatives ) ) )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:779:1: ( ( rule__XAssignment__Alternatives ) )
+            {
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:779:1: ( ( rule__XAssignment__Alternatives ) )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:780:1: ( rule__XAssignment__Alternatives )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXAssignmentAccess().getAlternatives()); 
+            }
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:781:1: ( rule__XAssignment__Alternatives )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:781:2: rule__XAssignment__Alternatives
+            {
+            pushFollow(FOLLOW_rule__XAssignment__Alternatives_in_ruleXAssignment1601);
+            rule__XAssignment__Alternatives();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXAssignmentAccess().getAlternatives()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleXAssignment"
+
+
+    // $ANTLR start "entryRuleOpSingleAssign"
+    // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:793:1: entryRuleOpSingleAssign : ruleOpSingleAssign EOF ;
+    public final void entryRuleOpSingleAssign() throws RecognitionException {
+        try {
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:794:1: ( ruleOpSingleAssign EOF )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:795:1: ruleOpSingleAssign EOF
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getOpSingleAssignRule()); 
+            }
+            pushFollow(FOLLOW_ruleOpSingleAssign_in_entryRuleOpSingleAssign1628);
+            ruleOpSingleAssign();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getOpSingleAssignRule()); 
+            }
+            match(input,EOF,FOLLOW_EOF_in_entryRuleOpSingleAssign1635); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleOpSingleAssign"
+
+
+    // $ANTLR start "ruleOpSingleAssign"
+    // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:802:1: ruleOpSingleAssign : ( '=' ) ;
+    public final void ruleOpSingleAssign() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:806:2: ( ( '=' ) )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:807:1: ( '=' )
+            {
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:807:1: ( '=' )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:808:1: '='
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getOpSingleAssignAccess().getEqualsSignKeyword()); 
+            }
+            match(input,13,FOLLOW_13_in_ruleOpSingleAssign1662); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getOpSingleAssignAccess().getEqualsSignKeyword()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleOpSingleAssign"
+
+
+    // $ANTLR start "entryRuleOpMultiAssign"
+    // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:823:1: entryRuleOpMultiAssign : ruleOpMultiAssign EOF ;
+    public final void entryRuleOpMultiAssign() throws RecognitionException {
+        try {
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:824:1: ( ruleOpMultiAssign EOF )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:825:1: ruleOpMultiAssign EOF
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getOpMultiAssignRule()); 
+            }
+            pushFollow(FOLLOW_ruleOpMultiAssign_in_entryRuleOpMultiAssign1690);
+            ruleOpMultiAssign();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getOpMultiAssignRule()); 
+            }
+            match(input,EOF,FOLLOW_EOF_in_entryRuleOpMultiAssign1697); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleOpMultiAssign"
+
+
+    // $ANTLR start "ruleOpMultiAssign"
+    // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:832:1: ruleOpMultiAssign : ( ( rule__OpMultiAssign__Alternatives ) ) ;
+    public final void ruleOpMultiAssign() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:836:2: ( ( ( rule__OpMultiAssign__Alternatives ) ) )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:837:1: ( ( rule__OpMultiAssign__Alternatives ) )
+            {
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:837:1: ( ( rule__OpMultiAssign__Alternatives ) )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:838:1: ( rule__OpMultiAssign__Alternatives )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getOpMultiAssignAccess().getAlternatives()); 
+            }
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:839:1: ( rule__OpMultiAssign__Alternatives )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:839:2: rule__OpMultiAssign__Alternatives
+            {
+            pushFollow(FOLLOW_rule__OpMultiAssign__Alternatives_in_ruleOpMultiAssign1723);
+            rule__OpMultiAssign__Alternatives();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getOpMultiAssignAccess().getAlternatives()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleOpMultiAssign"
+
+
+    // $ANTLR start "entryRuleXOrExpression"
+    // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:851:1: entryRuleXOrExpression : ruleXOrExpression EOF ;
+    public final void entryRuleXOrExpression() throws RecognitionException {
+        try {
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:852:1: ( ruleXOrExpression EOF )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:853:1: ruleXOrExpression EOF
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXOrExpressionRule()); 
+            }
+            pushFollow(FOLLOW_ruleXOrExpression_in_entryRuleXOrExpression1750);
+            ruleXOrExpression();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXOrExpressionRule()); 
+            }
+            match(input,EOF,FOLLOW_EOF_in_entryRuleXOrExpression1757); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleXOrExpression"
+
+
+    // $ANTLR start "ruleXOrExpression"
+    // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:860:1: ruleXOrExpression : ( ( rule__XOrExpression__Group__0 ) ) ;
+    public final void ruleXOrExpression() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:864:2: ( ( ( rule__XOrExpression__Group__0 ) ) )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:865:1: ( ( rule__XOrExpression__Group__0 ) )
+            {
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:865:1: ( ( rule__XOrExpression__Group__0 ) )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:866:1: ( rule__XOrExpression__Group__0 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXOrExpressionAccess().getGroup()); 
+            }
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:867:1: ( rule__XOrExpression__Group__0 )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:867:2: rule__XOrExpression__Group__0
+            {
+            pushFollow(FOLLOW_rule__XOrExpression__Group__0_in_ruleXOrExpression1783);
+            rule__XOrExpression__Group__0();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXOrExpressionAccess().getGroup()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleXOrExpression"
+
+
+    // $ANTLR start "entryRuleOpOr"
+    // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:879:1: entryRuleOpOr : ruleOpOr EOF ;
+    public final void entryRuleOpOr() throws RecognitionException {
+        try {
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:880:1: ( ruleOpOr EOF )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:881:1: ruleOpOr EOF
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getOpOrRule()); 
+            }
+            pushFollow(FOLLOW_ruleOpOr_in_entryRuleOpOr1810);
+            ruleOpOr();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getOpOrRule()); 
+            }
+            match(input,EOF,FOLLOW_EOF_in_entryRuleOpOr1817); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleOpOr"
+
+
+    // $ANTLR start "ruleOpOr"
+    // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:888:1: ruleOpOr : ( '||' ) ;
+    public final void ruleOpOr() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:892:2: ( ( '||' ) )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:893:1: ( '||' )
+            {
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:893:1: ( '||' )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:894:1: '||'
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getOpOrAccess().getVerticalLineVerticalLineKeyword()); 
+            }
+            match(input,14,FOLLOW_14_in_ruleOpOr1844); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getOpOrAccess().getVerticalLineVerticalLineKeyword()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleOpOr"
+
+
+    // $ANTLR start "entryRuleXAndExpression"
+    // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:909:1: entryRuleXAndExpression : ruleXAndExpression EOF ;
+    public final void entryRuleXAndExpression() throws RecognitionException {
+        try {
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:910:1: ( ruleXAndExpression EOF )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:911:1: ruleXAndExpression EOF
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXAndExpressionRule()); 
+            }
+            pushFollow(FOLLOW_ruleXAndExpression_in_entryRuleXAndExpression1872);
+            ruleXAndExpression();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXAndExpressionRule()); 
+            }
+            match(input,EOF,FOLLOW_EOF_in_entryRuleXAndExpression1879); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleXAndExpression"
+
+
+    // $ANTLR start "ruleXAndExpression"
+    // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:918:1: ruleXAndExpression : ( ( rule__XAndExpression__Group__0 ) ) ;
+    public final void ruleXAndExpression() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:922:2: ( ( ( rule__XAndExpression__Group__0 ) ) )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:923:1: ( ( rule__XAndExpression__Group__0 ) )
+            {
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:923:1: ( ( rule__XAndExpression__Group__0 ) )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:924:1: ( rule__XAndExpression__Group__0 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXAndExpressionAccess().getGroup()); 
+            }
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:925:1: ( rule__XAndExpression__Group__0 )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:925:2: rule__XAndExpression__Group__0
+            {
+            pushFollow(FOLLOW_rule__XAndExpression__Group__0_in_ruleXAndExpression1905);
+            rule__XAndExpression__Group__0();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXAndExpressionAccess().getGroup()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleXAndExpression"
+
+
+    // $ANTLR start "entryRuleOpAnd"
+    // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:937:1: entryRuleOpAnd : ruleOpAnd EOF ;
+    public final void entryRuleOpAnd() throws RecognitionException {
+        try {
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:938:1: ( ruleOpAnd EOF )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:939:1: ruleOpAnd EOF
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getOpAndRule()); 
+            }
+            pushFollow(FOLLOW_ruleOpAnd_in_entryRuleOpAnd1932);
+            ruleOpAnd();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getOpAndRule()); 
+            }
+            match(input,EOF,FOLLOW_EOF_in_entryRuleOpAnd1939); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleOpAnd"
+
+
+    // $ANTLR start "ruleOpAnd"
+    // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:946:1: ruleOpAnd : ( '&&' ) ;
+    public final void ruleOpAnd() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:950:2: ( ( '&&' ) )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:951:1: ( '&&' )
+            {
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:951:1: ( '&&' )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:952:1: '&&'
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getOpAndAccess().getAmpersandAmpersandKeyword()); 
+            }
+            match(input,15,FOLLOW_15_in_ruleOpAnd1966); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getOpAndAccess().getAmpersandAmpersandKeyword()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleOpAnd"
+
+
+    // $ANTLR start "entryRuleXEqualityExpression"
+    // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:967:1: entryRuleXEqualityExpression : ruleXEqualityExpression EOF ;
+    public final void entryRuleXEqualityExpression() throws RecognitionException {
+        try {
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:968:1: ( ruleXEqualityExpression EOF )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:969:1: ruleXEqualityExpression EOF
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXEqualityExpressionRule()); 
+            }
+            pushFollow(FOLLOW_ruleXEqualityExpression_in_entryRuleXEqualityExpression1994);
+            ruleXEqualityExpression();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXEqualityExpressionRule()); 
+            }
+            match(input,EOF,FOLLOW_EOF_in_entryRuleXEqualityExpression2001); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleXEqualityExpression"
+
+
+    // $ANTLR start "ruleXEqualityExpression"
+    // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:976:1: ruleXEqualityExpression : ( ( rule__XEqualityExpression__Group__0 ) ) ;
+    public final void ruleXEqualityExpression() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:980:2: ( ( ( rule__XEqualityExpression__Group__0 ) ) )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:981:1: ( ( rule__XEqualityExpression__Group__0 ) )
+            {
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:981:1: ( ( rule__XEqualityExpression__Group__0 ) )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:982:1: ( rule__XEqualityExpression__Group__0 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXEqualityExpressionAccess().getGroup()); 
+            }
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:983:1: ( rule__XEqualityExpression__Group__0 )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:983:2: rule__XEqualityExpression__Group__0
+            {
+            pushFollow(FOLLOW_rule__XEqualityExpression__Group__0_in_ruleXEqualityExpression2027);
+            rule__XEqualityExpression__Group__0();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXEqualityExpressionAccess().getGroup()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleXEqualityExpression"
+
+
+    // $ANTLR start "entryRuleOpEquality"
+    // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:995:1: entryRuleOpEquality : ruleOpEquality EOF ;
+    public final void entryRuleOpEquality() throws RecognitionException {
+        try {
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:996:1: ( ruleOpEquality EOF )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:997:1: ruleOpEquality EOF
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getOpEqualityRule()); 
+            }
+            pushFollow(FOLLOW_ruleOpEquality_in_entryRuleOpEquality2054);
+            ruleOpEquality();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getOpEqualityRule()); 
+            }
+            match(input,EOF,FOLLOW_EOF_in_entryRuleOpEquality2061); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleOpEquality"
+
+
+    // $ANTLR start "ruleOpEquality"
+    // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1004:1: ruleOpEquality : ( ( rule__OpEquality__Alternatives ) ) ;
+    public final void ruleOpEquality() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1008:2: ( ( ( rule__OpEquality__Alternatives ) ) )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1009:1: ( ( rule__OpEquality__Alternatives ) )
+            {
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1009:1: ( ( rule__OpEquality__Alternatives ) )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1010:1: ( rule__OpEquality__Alternatives )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getOpEqualityAccess().getAlternatives()); 
+            }
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1011:1: ( rule__OpEquality__Alternatives )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1011:2: rule__OpEquality__Alternatives
+            {
+            pushFollow(FOLLOW_rule__OpEquality__Alternatives_in_ruleOpEquality2087);
+            rule__OpEquality__Alternatives();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getOpEqualityAccess().getAlternatives()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleOpEquality"
+
+
+    // $ANTLR start "entryRuleXRelationalExpression"
+    // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1023:1: entryRuleXRelationalExpression : ruleXRelationalExpression EOF ;
+    public final void entryRuleXRelationalExpression() throws RecognitionException {
+        try {
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1024:1: ( ruleXRelationalExpression EOF )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1025:1: ruleXRelationalExpression EOF
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXRelationalExpressionRule()); 
+            }
+            pushFollow(FOLLOW_ruleXRelationalExpression_in_entryRuleXRelationalExpression2114);
+            ruleXRelationalExpression();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXRelationalExpressionRule()); 
+            }
+            match(input,EOF,FOLLOW_EOF_in_entryRuleXRelationalExpression2121); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleXRelationalExpression"
+
+
+    // $ANTLR start "ruleXRelationalExpression"
+    // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1032:1: ruleXRelationalExpression : ( ( rule__XRelationalExpression__Group__0 ) ) ;
+    public final void ruleXRelationalExpression() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1036:2: ( ( ( rule__XRelationalExpression__Group__0 ) ) )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1037:1: ( ( rule__XRelationalExpression__Group__0 ) )
+            {
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1037:1: ( ( rule__XRelationalExpression__Group__0 ) )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1038:1: ( rule__XRelationalExpression__Group__0 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXRelationalExpressionAccess().getGroup()); 
+            }
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1039:1: ( rule__XRelationalExpression__Group__0 )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1039:2: rule__XRelationalExpression__Group__0
+            {
+            pushFollow(FOLLOW_rule__XRelationalExpression__Group__0_in_ruleXRelationalExpression2147);
+            rule__XRelationalExpression__Group__0();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXRelationalExpressionAccess().getGroup()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleXRelationalExpression"
+
+
+    // $ANTLR start "entryRuleOpCompare"
+    // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1051:1: entryRuleOpCompare : ruleOpCompare EOF ;
+    public final void entryRuleOpCompare() throws RecognitionException {
+        try {
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1052:1: ( ruleOpCompare EOF )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1053:1: ruleOpCompare EOF
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getOpCompareRule()); 
+            }
+            pushFollow(FOLLOW_ruleOpCompare_in_entryRuleOpCompare2174);
+            ruleOpCompare();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getOpCompareRule()); 
+            }
+            match(input,EOF,FOLLOW_EOF_in_entryRuleOpCompare2181); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleOpCompare"
+
+
+    // $ANTLR start "ruleOpCompare"
+    // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1060:1: ruleOpCompare : ( ( rule__OpCompare__Alternatives ) ) ;
+    public final void ruleOpCompare() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1064:2: ( ( ( rule__OpCompare__Alternatives ) ) )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1065:1: ( ( rule__OpCompare__Alternatives ) )
+            {
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1065:1: ( ( rule__OpCompare__Alternatives ) )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1066:1: ( rule__OpCompare__Alternatives )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getOpCompareAccess().getAlternatives()); 
+            }
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1067:1: ( rule__OpCompare__Alternatives )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1067:2: rule__OpCompare__Alternatives
+            {
+            pushFollow(FOLLOW_rule__OpCompare__Alternatives_in_ruleOpCompare2207);
+            rule__OpCompare__Alternatives();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getOpCompareAccess().getAlternatives()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleOpCompare"
+
+
+    // $ANTLR start "entryRuleXOtherOperatorExpression"
+    // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1079:1: entryRuleXOtherOperatorExpression : ruleXOtherOperatorExpression EOF ;
+    public final void entryRuleXOtherOperatorExpression() throws RecognitionException {
+        try {
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1080:1: ( ruleXOtherOperatorExpression EOF )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1081:1: ruleXOtherOperatorExpression EOF
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXOtherOperatorExpressionRule()); 
+            }
+            pushFollow(FOLLOW_ruleXOtherOperatorExpression_in_entryRuleXOtherOperatorExpression2234);
+            ruleXOtherOperatorExpression();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXOtherOperatorExpressionRule()); 
+            }
+            match(input,EOF,FOLLOW_EOF_in_entryRuleXOtherOperatorExpression2241); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleXOtherOperatorExpression"
+
+
+    // $ANTLR start "ruleXOtherOperatorExpression"
+    // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1088:1: ruleXOtherOperatorExpression : ( ( rule__XOtherOperatorExpression__Group__0 ) ) ;
+    public final void ruleXOtherOperatorExpression() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1092:2: ( ( ( rule__XOtherOperatorExpression__Group__0 ) ) )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1093:1: ( ( rule__XOtherOperatorExpression__Group__0 ) )
+            {
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1093:1: ( ( rule__XOtherOperatorExpression__Group__0 ) )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1094:1: ( rule__XOtherOperatorExpression__Group__0 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXOtherOperatorExpressionAccess().getGroup()); 
+            }
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1095:1: ( rule__XOtherOperatorExpression__Group__0 )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1095:2: rule__XOtherOperatorExpression__Group__0
+            {
+            pushFollow(FOLLOW_rule__XOtherOperatorExpression__Group__0_in_ruleXOtherOperatorExpression2267);
+            rule__XOtherOperatorExpression__Group__0();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXOtherOperatorExpressionAccess().getGroup()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleXOtherOperatorExpression"
+
+
+    // $ANTLR start "entryRuleOpOther"
+    // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1107:1: entryRuleOpOther : ruleOpOther EOF ;
+    public final void entryRuleOpOther() throws RecognitionException {
+        try {
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1108:1: ( ruleOpOther EOF )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1109:1: ruleOpOther EOF
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getOpOtherRule()); 
+            }
+            pushFollow(FOLLOW_ruleOpOther_in_entryRuleOpOther2294);
+            ruleOpOther();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getOpOtherRule()); 
+            }
+            match(input,EOF,FOLLOW_EOF_in_entryRuleOpOther2301); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleOpOther"
+
+
+    // $ANTLR start "ruleOpOther"
+    // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1116:1: ruleOpOther : ( ( rule__OpOther__Alternatives ) ) ;
+    public final void ruleOpOther() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1120:2: ( ( ( rule__OpOther__Alternatives ) ) )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1121:1: ( ( rule__OpOther__Alternatives ) )
+            {
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1121:1: ( ( rule__OpOther__Alternatives ) )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1122:1: ( rule__OpOther__Alternatives )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getOpOtherAccess().getAlternatives()); 
+            }
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1123:1: ( rule__OpOther__Alternatives )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1123:2: rule__OpOther__Alternatives
+            {
+            pushFollow(FOLLOW_rule__OpOther__Alternatives_in_ruleOpOther2327);
+            rule__OpOther__Alternatives();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getOpOtherAccess().getAlternatives()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleOpOther"
+
+
+    // $ANTLR start "entryRuleXAdditiveExpression"
+    // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1135:1: entryRuleXAdditiveExpression : ruleXAdditiveExpression EOF ;
+    public final void entryRuleXAdditiveExpression() throws RecognitionException {
+        try {
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1136:1: ( ruleXAdditiveExpression EOF )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1137:1: ruleXAdditiveExpression EOF
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXAdditiveExpressionRule()); 
+            }
+            pushFollow(FOLLOW_ruleXAdditiveExpression_in_entryRuleXAdditiveExpression2354);
+            ruleXAdditiveExpression();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXAdditiveExpressionRule()); 
+            }
+            match(input,EOF,FOLLOW_EOF_in_entryRuleXAdditiveExpression2361); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleXAdditiveExpression"
+
+
+    // $ANTLR start "ruleXAdditiveExpression"
+    // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1144:1: ruleXAdditiveExpression : ( ( rule__XAdditiveExpression__Group__0 ) ) ;
+    public final void ruleXAdditiveExpression() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1148:2: ( ( ( rule__XAdditiveExpression__Group__0 ) ) )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1149:1: ( ( rule__XAdditiveExpression__Group__0 ) )
+            {
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1149:1: ( ( rule__XAdditiveExpression__Group__0 ) )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1150:1: ( rule__XAdditiveExpression__Group__0 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXAdditiveExpressionAccess().getGroup()); 
+            }
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1151:1: ( rule__XAdditiveExpression__Group__0 )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1151:2: rule__XAdditiveExpression__Group__0
+            {
+            pushFollow(FOLLOW_rule__XAdditiveExpression__Group__0_in_ruleXAdditiveExpression2387);
+            rule__XAdditiveExpression__Group__0();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXAdditiveExpressionAccess().getGroup()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleXAdditiveExpression"
+
+
+    // $ANTLR start "entryRuleOpAdd"
+    // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1163:1: entryRuleOpAdd : ruleOpAdd EOF ;
+    public final void entryRuleOpAdd() throws RecognitionException {
+        try {
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1164:1: ( ruleOpAdd EOF )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1165:1: ruleOpAdd EOF
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getOpAddRule()); 
+            }
+            pushFollow(FOLLOW_ruleOpAdd_in_entryRuleOpAdd2414);
+            ruleOpAdd();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getOpAddRule()); 
+            }
+            match(input,EOF,FOLLOW_EOF_in_entryRuleOpAdd2421); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleOpAdd"
+
+
+    // $ANTLR start "ruleOpAdd"
+    // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1172:1: ruleOpAdd : ( ( rule__OpAdd__Alternatives ) ) ;
+    public final void ruleOpAdd() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1176:2: ( ( ( rule__OpAdd__Alternatives ) ) )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1177:1: ( ( rule__OpAdd__Alternatives ) )
+            {
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1177:1: ( ( rule__OpAdd__Alternatives ) )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1178:1: ( rule__OpAdd__Alternatives )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getOpAddAccess().getAlternatives()); 
+            }
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1179:1: ( rule__OpAdd__Alternatives )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1179:2: rule__OpAdd__Alternatives
+            {
+            pushFollow(FOLLOW_rule__OpAdd__Alternatives_in_ruleOpAdd2447);
+            rule__OpAdd__Alternatives();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getOpAddAccess().getAlternatives()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleOpAdd"
+
+
+    // $ANTLR start "entryRuleXMultiplicativeExpression"
+    // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1191:1: entryRuleXMultiplicativeExpression : ruleXMultiplicativeExpression EOF ;
+    public final void entryRuleXMultiplicativeExpression() throws RecognitionException {
+        try {
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1192:1: ( ruleXMultiplicativeExpression EOF )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1193:1: ruleXMultiplicativeExpression EOF
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXMultiplicativeExpressionRule()); 
+            }
+            pushFollow(FOLLOW_ruleXMultiplicativeExpression_in_entryRuleXMultiplicativeExpression2474);
+            ruleXMultiplicativeExpression();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXMultiplicativeExpressionRule()); 
+            }
+            match(input,EOF,FOLLOW_EOF_in_entryRuleXMultiplicativeExpression2481); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleXMultiplicativeExpression"
+
+
+    // $ANTLR start "ruleXMultiplicativeExpression"
+    // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1200:1: ruleXMultiplicativeExpression : ( ( rule__XMultiplicativeExpression__Group__0 ) ) ;
+    public final void ruleXMultiplicativeExpression() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1204:2: ( ( ( rule__XMultiplicativeExpression__Group__0 ) ) )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1205:1: ( ( rule__XMultiplicativeExpression__Group__0 ) )
+            {
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1205:1: ( ( rule__XMultiplicativeExpression__Group__0 ) )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1206:1: ( rule__XMultiplicativeExpression__Group__0 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXMultiplicativeExpressionAccess().getGroup()); 
+            }
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1207:1: ( rule__XMultiplicativeExpression__Group__0 )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1207:2: rule__XMultiplicativeExpression__Group__0
+            {
+            pushFollow(FOLLOW_rule__XMultiplicativeExpression__Group__0_in_ruleXMultiplicativeExpression2507);
+            rule__XMultiplicativeExpression__Group__0();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXMultiplicativeExpressionAccess().getGroup()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleXMultiplicativeExpression"
+
+
+    // $ANTLR start "entryRuleOpMulti"
+    // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1219:1: entryRuleOpMulti : ruleOpMulti EOF ;
+    public final void entryRuleOpMulti() throws RecognitionException {
+        try {
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1220:1: ( ruleOpMulti EOF )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1221:1: ruleOpMulti EOF
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getOpMultiRule()); 
+            }
+            pushFollow(FOLLOW_ruleOpMulti_in_entryRuleOpMulti2534);
+            ruleOpMulti();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getOpMultiRule()); 
+            }
+            match(input,EOF,FOLLOW_EOF_in_entryRuleOpMulti2541); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleOpMulti"
+
+
+    // $ANTLR start "ruleOpMulti"
+    // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1228:1: ruleOpMulti : ( ( rule__OpMulti__Alternatives ) ) ;
+    public final void ruleOpMulti() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1232:2: ( ( ( rule__OpMulti__Alternatives ) ) )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1233:1: ( ( rule__OpMulti__Alternatives ) )
+            {
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1233:1: ( ( rule__OpMulti__Alternatives ) )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1234:1: ( rule__OpMulti__Alternatives )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getOpMultiAccess().getAlternatives()); 
+            }
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1235:1: ( rule__OpMulti__Alternatives )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1235:2: rule__OpMulti__Alternatives
+            {
+            pushFollow(FOLLOW_rule__OpMulti__Alternatives_in_ruleOpMulti2567);
+            rule__OpMulti__Alternatives();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getOpMultiAccess().getAlternatives()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleOpMulti"
+
+
+    // $ANTLR start "entryRuleXUnaryOperation"
+    // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1247:1: entryRuleXUnaryOperation : ruleXUnaryOperation EOF ;
+    public final void entryRuleXUnaryOperation() throws RecognitionException {
+        try {
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1248:1: ( ruleXUnaryOperation EOF )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1249:1: ruleXUnaryOperation EOF
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXUnaryOperationRule()); 
+            }
+            pushFollow(FOLLOW_ruleXUnaryOperation_in_entryRuleXUnaryOperation2594);
+            ruleXUnaryOperation();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXUnaryOperationRule()); 
+            }
+            match(input,EOF,FOLLOW_EOF_in_entryRuleXUnaryOperation2601); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleXUnaryOperation"
+
+
+    // $ANTLR start "ruleXUnaryOperation"
+    // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1256:1: ruleXUnaryOperation : ( ( rule__XUnaryOperation__Alternatives ) ) ;
+    public final void ruleXUnaryOperation() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1260:2: ( ( ( rule__XUnaryOperation__Alternatives ) ) )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1261:1: ( ( rule__XUnaryOperation__Alternatives ) )
+            {
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1261:1: ( ( rule__XUnaryOperation__Alternatives ) )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1262:1: ( rule__XUnaryOperation__Alternatives )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXUnaryOperationAccess().getAlternatives()); 
+            }
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1263:1: ( rule__XUnaryOperation__Alternatives )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1263:2: rule__XUnaryOperation__Alternatives
+            {
+            pushFollow(FOLLOW_rule__XUnaryOperation__Alternatives_in_ruleXUnaryOperation2627);
+            rule__XUnaryOperation__Alternatives();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXUnaryOperationAccess().getAlternatives()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleXUnaryOperation"
+
+
+    // $ANTLR start "entryRuleOpUnary"
+    // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1275:1: entryRuleOpUnary : ruleOpUnary EOF ;
+    public final void entryRuleOpUnary() throws RecognitionException {
+        try {
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1276:1: ( ruleOpUnary EOF )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1277:1: ruleOpUnary EOF
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getOpUnaryRule()); 
+            }
+            pushFollow(FOLLOW_ruleOpUnary_in_entryRuleOpUnary2654);
+            ruleOpUnary();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getOpUnaryRule()); 
+            }
+            match(input,EOF,FOLLOW_EOF_in_entryRuleOpUnary2661); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleOpUnary"
+
+
+    // $ANTLR start "ruleOpUnary"
+    // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1284:1: ruleOpUnary : ( ( rule__OpUnary__Alternatives ) ) ;
+    public final void ruleOpUnary() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1288:2: ( ( ( rule__OpUnary__Alternatives ) ) )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1289:1: ( ( rule__OpUnary__Alternatives ) )
+            {
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1289:1: ( ( rule__OpUnary__Alternatives ) )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1290:1: ( rule__OpUnary__Alternatives )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getOpUnaryAccess().getAlternatives()); 
+            }
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1291:1: ( rule__OpUnary__Alternatives )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1291:2: rule__OpUnary__Alternatives
+            {
+            pushFollow(FOLLOW_rule__OpUnary__Alternatives_in_ruleOpUnary2687);
+            rule__OpUnary__Alternatives();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getOpUnaryAccess().getAlternatives()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleOpUnary"
+
+
+    // $ANTLR start "entryRuleXCastedExpression"
+    // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1303:1: entryRuleXCastedExpression : ruleXCastedExpression EOF ;
+    public final void entryRuleXCastedExpression() throws RecognitionException {
+        try {
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1304:1: ( ruleXCastedExpression EOF )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1305:1: ruleXCastedExpression EOF
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXCastedExpressionRule()); 
+            }
+            pushFollow(FOLLOW_ruleXCastedExpression_in_entryRuleXCastedExpression2714);
+            ruleXCastedExpression();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXCastedExpressionRule()); 
+            }
+            match(input,EOF,FOLLOW_EOF_in_entryRuleXCastedExpression2721); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleXCastedExpression"
+
+
+    // $ANTLR start "ruleXCastedExpression"
+    // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1312:1: ruleXCastedExpression : ( ( rule__XCastedExpression__Group__0 ) ) ;
+    public final void ruleXCastedExpression() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1316:2: ( ( ( rule__XCastedExpression__Group__0 ) ) )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1317:1: ( ( rule__XCastedExpression__Group__0 ) )
+            {
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1317:1: ( ( rule__XCastedExpression__Group__0 ) )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1318:1: ( rule__XCastedExpression__Group__0 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXCastedExpressionAccess().getGroup()); 
+            }
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1319:1: ( rule__XCastedExpression__Group__0 )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1319:2: rule__XCastedExpression__Group__0
+            {
+            pushFollow(FOLLOW_rule__XCastedExpression__Group__0_in_ruleXCastedExpression2747);
+            rule__XCastedExpression__Group__0();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXCastedExpressionAccess().getGroup()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleXCastedExpression"
+
+
+    // $ANTLR start "entryRuleXPostfixOperation"
+    // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1331:1: entryRuleXPostfixOperation : ruleXPostfixOperation EOF ;
+    public final void entryRuleXPostfixOperation() throws RecognitionException {
+        try {
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1332:1: ( ruleXPostfixOperation EOF )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1333:1: ruleXPostfixOperation EOF
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXPostfixOperationRule()); 
+            }
+            pushFollow(FOLLOW_ruleXPostfixOperation_in_entryRuleXPostfixOperation2774);
+            ruleXPostfixOperation();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXPostfixOperationRule()); 
+            }
+            match(input,EOF,FOLLOW_EOF_in_entryRuleXPostfixOperation2781); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleXPostfixOperation"
+
+
+    // $ANTLR start "ruleXPostfixOperation"
+    // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1340:1: ruleXPostfixOperation : ( ( rule__XPostfixOperation__Group__0 ) ) ;
+    public final void ruleXPostfixOperation() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1344:2: ( ( ( rule__XPostfixOperation__Group__0 ) ) )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1345:1: ( ( rule__XPostfixOperation__Group__0 ) )
+            {
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1345:1: ( ( rule__XPostfixOperation__Group__0 ) )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1346:1: ( rule__XPostfixOperation__Group__0 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXPostfixOperationAccess().getGroup()); 
+            }
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1347:1: ( rule__XPostfixOperation__Group__0 )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1347:2: rule__XPostfixOperation__Group__0
+            {
+            pushFollow(FOLLOW_rule__XPostfixOperation__Group__0_in_ruleXPostfixOperation2807);
+            rule__XPostfixOperation__Group__0();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXPostfixOperationAccess().getGroup()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleXPostfixOperation"
+
+
+    // $ANTLR start "entryRuleOpPostfix"
+    // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1359:1: entryRuleOpPostfix : ruleOpPostfix EOF ;
+    public final void entryRuleOpPostfix() throws RecognitionException {
+        try {
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1360:1: ( ruleOpPostfix EOF )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1361:1: ruleOpPostfix EOF
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getOpPostfixRule()); 
+            }
+            pushFollow(FOLLOW_ruleOpPostfix_in_entryRuleOpPostfix2834);
+            ruleOpPostfix();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getOpPostfixRule()); 
+            }
+            match(input,EOF,FOLLOW_EOF_in_entryRuleOpPostfix2841); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleOpPostfix"
+
+
+    // $ANTLR start "ruleOpPostfix"
+    // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1368:1: ruleOpPostfix : ( ( rule__OpPostfix__Alternatives ) ) ;
+    public final void ruleOpPostfix() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1372:2: ( ( ( rule__OpPostfix__Alternatives ) ) )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1373:1: ( ( rule__OpPostfix__Alternatives ) )
+            {
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1373:1: ( ( rule__OpPostfix__Alternatives ) )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1374:1: ( rule__OpPostfix__Alternatives )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getOpPostfixAccess().getAlternatives()); 
+            }
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1375:1: ( rule__OpPostfix__Alternatives )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1375:2: rule__OpPostfix__Alternatives
+            {
+            pushFollow(FOLLOW_rule__OpPostfix__Alternatives_in_ruleOpPostfix2867);
+            rule__OpPostfix__Alternatives();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getOpPostfixAccess().getAlternatives()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleOpPostfix"
+
+
+    // $ANTLR start "entryRuleXMemberFeatureCall"
+    // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1387:1: entryRuleXMemberFeatureCall : ruleXMemberFeatureCall EOF ;
+    public final void entryRuleXMemberFeatureCall() throws RecognitionException {
+        try {
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1388:1: ( ruleXMemberFeatureCall EOF )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1389:1: ruleXMemberFeatureCall EOF
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXMemberFeatureCallRule()); 
+            }
+            pushFollow(FOLLOW_ruleXMemberFeatureCall_in_entryRuleXMemberFeatureCall2894);
+            ruleXMemberFeatureCall();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXMemberFeatureCallRule()); 
+            }
+            match(input,EOF,FOLLOW_EOF_in_entryRuleXMemberFeatureCall2901); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleXMemberFeatureCall"
+
+
+    // $ANTLR start "ruleXMemberFeatureCall"
+    // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1396:1: ruleXMemberFeatureCall : ( ( rule__XMemberFeatureCall__Group__0 ) ) ;
+    public final void ruleXMemberFeatureCall() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1400:2: ( ( ( rule__XMemberFeatureCall__Group__0 ) ) )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1401:1: ( ( rule__XMemberFeatureCall__Group__0 ) )
+            {
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1401:1: ( ( rule__XMemberFeatureCall__Group__0 ) )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1402:1: ( rule__XMemberFeatureCall__Group__0 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXMemberFeatureCallAccess().getGroup()); 
+            }
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1403:1: ( rule__XMemberFeatureCall__Group__0 )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1403:2: rule__XMemberFeatureCall__Group__0
+            {
+            pushFollow(FOLLOW_rule__XMemberFeatureCall__Group__0_in_ruleXMemberFeatureCall2927);
+            rule__XMemberFeatureCall__Group__0();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXMemberFeatureCallAccess().getGroup()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleXMemberFeatureCall"
+
+
+    // $ANTLR start "entryRuleXPrimaryExpression"
+    // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1415:1: entryRuleXPrimaryExpression : ruleXPrimaryExpression EOF ;
+    public final void entryRuleXPrimaryExpression() throws RecognitionException {
+        try {
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1416:1: ( ruleXPrimaryExpression EOF )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1417:1: ruleXPrimaryExpression EOF
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXPrimaryExpressionRule()); 
+            }
+            pushFollow(FOLLOW_ruleXPrimaryExpression_in_entryRuleXPrimaryExpression2954);
+            ruleXPrimaryExpression();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXPrimaryExpressionRule()); 
+            }
+            match(input,EOF,FOLLOW_EOF_in_entryRuleXPrimaryExpression2961); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleXPrimaryExpression"
+
+
+    // $ANTLR start "ruleXPrimaryExpression"
+    // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1424:1: ruleXPrimaryExpression : ( ( rule__XPrimaryExpression__Alternatives ) ) ;
+    public final void ruleXPrimaryExpression() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1428:2: ( ( ( rule__XPrimaryExpression__Alternatives ) ) )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1429:1: ( ( rule__XPrimaryExpression__Alternatives ) )
+            {
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1429:1: ( ( rule__XPrimaryExpression__Alternatives ) )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1430:1: ( rule__XPrimaryExpression__Alternatives )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXPrimaryExpressionAccess().getAlternatives()); 
+            }
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1431:1: ( rule__XPrimaryExpression__Alternatives )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1431:2: rule__XPrimaryExpression__Alternatives
+            {
+            pushFollow(FOLLOW_rule__XPrimaryExpression__Alternatives_in_ruleXPrimaryExpression2987);
+            rule__XPrimaryExpression__Alternatives();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXPrimaryExpressionAccess().getAlternatives()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleXPrimaryExpression"
+
+
+    // $ANTLR start "entryRuleXLiteral"
+    // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1443:1: entryRuleXLiteral : ruleXLiteral EOF ;
+    public final void entryRuleXLiteral() throws RecognitionException {
+        try {
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1444:1: ( ruleXLiteral EOF )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1445:1: ruleXLiteral EOF
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXLiteralRule()); 
+            }
+            pushFollow(FOLLOW_ruleXLiteral_in_entryRuleXLiteral3014);
+            ruleXLiteral();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXLiteralRule()); 
+            }
+            match(input,EOF,FOLLOW_EOF_in_entryRuleXLiteral3021); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleXLiteral"
+
+
+    // $ANTLR start "ruleXLiteral"
+    // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1452:1: ruleXLiteral : ( ( rule__XLiteral__Alternatives ) ) ;
+    public final void ruleXLiteral() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1456:2: ( ( ( rule__XLiteral__Alternatives ) ) )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1457:1: ( ( rule__XLiteral__Alternatives ) )
+            {
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1457:1: ( ( rule__XLiteral__Alternatives ) )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1458:1: ( rule__XLiteral__Alternatives )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXLiteralAccess().getAlternatives()); 
+            }
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1459:1: ( rule__XLiteral__Alternatives )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1459:2: rule__XLiteral__Alternatives
+            {
+            pushFollow(FOLLOW_rule__XLiteral__Alternatives_in_ruleXLiteral3047);
+            rule__XLiteral__Alternatives();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXLiteralAccess().getAlternatives()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleXLiteral"
+
+
+    // $ANTLR start "entryRuleXCollectionLiteral"
+    // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1471:1: entryRuleXCollectionLiteral : ruleXCollectionLiteral EOF ;
+    public final void entryRuleXCollectionLiteral() throws RecognitionException {
+        try {
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1472:1: ( ruleXCollectionLiteral EOF )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1473:1: ruleXCollectionLiteral EOF
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXCollectionLiteralRule()); 
+            }
+            pushFollow(FOLLOW_ruleXCollectionLiteral_in_entryRuleXCollectionLiteral3074);
+            ruleXCollectionLiteral();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXCollectionLiteralRule()); 
+            }
+            match(input,EOF,FOLLOW_EOF_in_entryRuleXCollectionLiteral3081); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleXCollectionLiteral"
+
+
+    // $ANTLR start "ruleXCollectionLiteral"
+    // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1480:1: ruleXCollectionLiteral : ( ( rule__XCollectionLiteral__Alternatives ) ) ;
+    public final void ruleXCollectionLiteral() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1484:2: ( ( ( rule__XCollectionLiteral__Alternatives ) ) )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1485:1: ( ( rule__XCollectionLiteral__Alternatives ) )
+            {
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1485:1: ( ( rule__XCollectionLiteral__Alternatives ) )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1486:1: ( rule__XCollectionLiteral__Alternatives )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXCollectionLiteralAccess().getAlternatives()); 
+            }
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1487:1: ( rule__XCollectionLiteral__Alternatives )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1487:2: rule__XCollectionLiteral__Alternatives
+            {
+            pushFollow(FOLLOW_rule__XCollectionLiteral__Alternatives_in_ruleXCollectionLiteral3107);
+            rule__XCollectionLiteral__Alternatives();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXCollectionLiteralAccess().getAlternatives()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleXCollectionLiteral"
+
+
+    // $ANTLR start "entryRuleXSetLiteral"
+    // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1499:1: entryRuleXSetLiteral : ruleXSetLiteral EOF ;
+    public final void entryRuleXSetLiteral() throws RecognitionException {
+        try {
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1500:1: ( ruleXSetLiteral EOF )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1501:1: ruleXSetLiteral EOF
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXSetLiteralRule()); 
+            }
+            pushFollow(FOLLOW_ruleXSetLiteral_in_entryRuleXSetLiteral3134);
+            ruleXSetLiteral();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXSetLiteralRule()); 
+            }
+            match(input,EOF,FOLLOW_EOF_in_entryRuleXSetLiteral3141); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleXSetLiteral"
+
+
+    // $ANTLR start "ruleXSetLiteral"
+    // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1508:1: ruleXSetLiteral : ( ( rule__XSetLiteral__Group__0 ) ) ;
+    public final void ruleXSetLiteral() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1512:2: ( ( ( rule__XSetLiteral__Group__0 ) ) )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1513:1: ( ( rule__XSetLiteral__Group__0 ) )
+            {
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1513:1: ( ( rule__XSetLiteral__Group__0 ) )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1514:1: ( rule__XSetLiteral__Group__0 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXSetLiteralAccess().getGroup()); 
+            }
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1515:1: ( rule__XSetLiteral__Group__0 )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1515:2: rule__XSetLiteral__Group__0
+            {
+            pushFollow(FOLLOW_rule__XSetLiteral__Group__0_in_ruleXSetLiteral3167);
+            rule__XSetLiteral__Group__0();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXSetLiteralAccess().getGroup()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleXSetLiteral"
+
+
+    // $ANTLR start "entryRuleXListLiteral"
+    // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1527:1: entryRuleXListLiteral : ruleXListLiteral EOF ;
+    public final void entryRuleXListLiteral() throws RecognitionException {
+        try {
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1528:1: ( ruleXListLiteral EOF )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1529:1: ruleXListLiteral EOF
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXListLiteralRule()); 
+            }
+            pushFollow(FOLLOW_ruleXListLiteral_in_entryRuleXListLiteral3194);
+            ruleXListLiteral();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXListLiteralRule()); 
+            }
+            match(input,EOF,FOLLOW_EOF_in_entryRuleXListLiteral3201); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleXListLiteral"
+
+
+    // $ANTLR start "ruleXListLiteral"
+    // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1536:1: ruleXListLiteral : ( ( rule__XListLiteral__Group__0 ) ) ;
+    public final void ruleXListLiteral() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1540:2: ( ( ( rule__XListLiteral__Group__0 ) ) )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1541:1: ( ( rule__XListLiteral__Group__0 ) )
+            {
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1541:1: ( ( rule__XListLiteral__Group__0 ) )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1542:1: ( rule__XListLiteral__Group__0 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXListLiteralAccess().getGroup()); 
+            }
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1543:1: ( rule__XListLiteral__Group__0 )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1543:2: rule__XListLiteral__Group__0
+            {
+            pushFollow(FOLLOW_rule__XListLiteral__Group__0_in_ruleXListLiteral3227);
+            rule__XListLiteral__Group__0();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXListLiteralAccess().getGroup()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleXListLiteral"
+
+
+    // $ANTLR start "entryRuleXClosure"
+    // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1555:1: entryRuleXClosure : ruleXClosure EOF ;
+    public final void entryRuleXClosure() throws RecognitionException {
+        try {
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1556:1: ( ruleXClosure EOF )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1557:1: ruleXClosure EOF
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXClosureRule()); 
+            }
+            pushFollow(FOLLOW_ruleXClosure_in_entryRuleXClosure3254);
+            ruleXClosure();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXClosureRule()); 
+            }
+            match(input,EOF,FOLLOW_EOF_in_entryRuleXClosure3261); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleXClosure"
+
+
+    // $ANTLR start "ruleXClosure"
+    // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1564:1: ruleXClosure : ( ( rule__XClosure__Group__0 ) ) ;
+    public final void ruleXClosure() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1568:2: ( ( ( rule__XClosure__Group__0 ) ) )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1569:1: ( ( rule__XClosure__Group__0 ) )
+            {
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1569:1: ( ( rule__XClosure__Group__0 ) )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1570:1: ( rule__XClosure__Group__0 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXClosureAccess().getGroup()); 
+            }
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1571:1: ( rule__XClosure__Group__0 )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1571:2: rule__XClosure__Group__0
+            {
+            pushFollow(FOLLOW_rule__XClosure__Group__0_in_ruleXClosure3287);
+            rule__XClosure__Group__0();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXClosureAccess().getGroup()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleXClosure"
+
+
+    // $ANTLR start "entryRuleXExpressionInClosure"
+    // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1583:1: entryRuleXExpressionInClosure : ruleXExpressionInClosure EOF ;
+    public final void entryRuleXExpressionInClosure() throws RecognitionException {
+        try {
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1584:1: ( ruleXExpressionInClosure EOF )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1585:1: ruleXExpressionInClosure EOF
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXExpressionInClosureRule()); 
+            }
+            pushFollow(FOLLOW_ruleXExpressionInClosure_in_entryRuleXExpressionInClosure3314);
+            ruleXExpressionInClosure();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXExpressionInClosureRule()); 
+            }
+            match(input,EOF,FOLLOW_EOF_in_entryRuleXExpressionInClosure3321); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleXExpressionInClosure"
+
+
+    // $ANTLR start "ruleXExpressionInClosure"
+    // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1592:1: ruleXExpressionInClosure : ( ( rule__XExpressionInClosure__Group__0 ) ) ;
+    public final void ruleXExpressionInClosure() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1596:2: ( ( ( rule__XExpressionInClosure__Group__0 ) ) )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1597:1: ( ( rule__XExpressionInClosure__Group__0 ) )
+            {
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1597:1: ( ( rule__XExpressionInClosure__Group__0 ) )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1598:1: ( rule__XExpressionInClosure__Group__0 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXExpressionInClosureAccess().getGroup()); 
+            }
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1599:1: ( rule__XExpressionInClosure__Group__0 )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1599:2: rule__XExpressionInClosure__Group__0
+            {
+            pushFollow(FOLLOW_rule__XExpressionInClosure__Group__0_in_ruleXExpressionInClosure3347);
+            rule__XExpressionInClosure__Group__0();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXExpressionInClosureAccess().getGroup()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleXExpressionInClosure"
+
+
+    // $ANTLR start "entryRuleXShortClosure"
+    // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1611:1: entryRuleXShortClosure : ruleXShortClosure EOF ;
+    public final void entryRuleXShortClosure() throws RecognitionException {
+        try {
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1612:1: ( ruleXShortClosure EOF )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1613:1: ruleXShortClosure EOF
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXShortClosureRule()); 
+            }
+            pushFollow(FOLLOW_ruleXShortClosure_in_entryRuleXShortClosure3374);
+            ruleXShortClosure();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXShortClosureRule()); 
+            }
+            match(input,EOF,FOLLOW_EOF_in_entryRuleXShortClosure3381); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleXShortClosure"
+
+
+    // $ANTLR start "ruleXShortClosure"
+    // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1620:1: ruleXShortClosure : ( ( rule__XShortClosure__Group__0 ) ) ;
+    public final void ruleXShortClosure() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1624:2: ( ( ( rule__XShortClosure__Group__0 ) ) )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1625:1: ( ( rule__XShortClosure__Group__0 ) )
+            {
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1625:1: ( ( rule__XShortClosure__Group__0 ) )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1626:1: ( rule__XShortClosure__Group__0 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXShortClosureAccess().getGroup()); 
+            }
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1627:1: ( rule__XShortClosure__Group__0 )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1627:2: rule__XShortClosure__Group__0
+            {
+            pushFollow(FOLLOW_rule__XShortClosure__Group__0_in_ruleXShortClosure3407);
+            rule__XShortClosure__Group__0();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXShortClosureAccess().getGroup()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleXShortClosure"
+
+
+    // $ANTLR start "entryRuleXParenthesizedExpression"
+    // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1639:1: entryRuleXParenthesizedExpression : ruleXParenthesizedExpression EOF ;
+    public final void entryRuleXParenthesizedExpression() throws RecognitionException {
+        try {
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1640:1: ( ruleXParenthesizedExpression EOF )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1641:1: ruleXParenthesizedExpression EOF
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXParenthesizedExpressionRule()); 
+            }
+            pushFollow(FOLLOW_ruleXParenthesizedExpression_in_entryRuleXParenthesizedExpression3434);
+            ruleXParenthesizedExpression();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXParenthesizedExpressionRule()); 
+            }
+            match(input,EOF,FOLLOW_EOF_in_entryRuleXParenthesizedExpression3441); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleXParenthesizedExpression"
+
+
+    // $ANTLR start "ruleXParenthesizedExpression"
+    // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1648:1: ruleXParenthesizedExpression : ( ( rule__XParenthesizedExpression__Group__0 ) ) ;
+    public final void ruleXParenthesizedExpression() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1652:2: ( ( ( rule__XParenthesizedExpression__Group__0 ) ) )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1653:1: ( ( rule__XParenthesizedExpression__Group__0 ) )
+            {
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1653:1: ( ( rule__XParenthesizedExpression__Group__0 ) )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1654:1: ( rule__XParenthesizedExpression__Group__0 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXParenthesizedExpressionAccess().getGroup()); 
+            }
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1655:1: ( rule__XParenthesizedExpression__Group__0 )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1655:2: rule__XParenthesizedExpression__Group__0
+            {
+            pushFollow(FOLLOW_rule__XParenthesizedExpression__Group__0_in_ruleXParenthesizedExpression3467);
+            rule__XParenthesizedExpression__Group__0();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXParenthesizedExpressionAccess().getGroup()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleXParenthesizedExpression"
+
+
+    // $ANTLR start "entryRuleXIfExpression"
+    // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1667:1: entryRuleXIfExpression : ruleXIfExpression EOF ;
+    public final void entryRuleXIfExpression() throws RecognitionException {
+        try {
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1668:1: ( ruleXIfExpression EOF )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1669:1: ruleXIfExpression EOF
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXIfExpressionRule()); 
+            }
+            pushFollow(FOLLOW_ruleXIfExpression_in_entryRuleXIfExpression3494);
+            ruleXIfExpression();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXIfExpressionRule()); 
+            }
+            match(input,EOF,FOLLOW_EOF_in_entryRuleXIfExpression3501); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleXIfExpression"
+
+
+    // $ANTLR start "ruleXIfExpression"
+    // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1676:1: ruleXIfExpression : ( ( rule__XIfExpression__Group__0 ) ) ;
+    public final void ruleXIfExpression() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1680:2: ( ( ( rule__XIfExpression__Group__0 ) ) )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1681:1: ( ( rule__XIfExpression__Group__0 ) )
+            {
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1681:1: ( ( rule__XIfExpression__Group__0 ) )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1682:1: ( rule__XIfExpression__Group__0 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXIfExpressionAccess().getGroup()); 
+            }
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1683:1: ( rule__XIfExpression__Group__0 )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1683:2: rule__XIfExpression__Group__0
+            {
+            pushFollow(FOLLOW_rule__XIfExpression__Group__0_in_ruleXIfExpression3527);
+            rule__XIfExpression__Group__0();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXIfExpressionAccess().getGroup()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleXIfExpression"
+
+
+    // $ANTLR start "entryRuleXSwitchExpression"
+    // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1695:1: entryRuleXSwitchExpression : ruleXSwitchExpression EOF ;
+    public final void entryRuleXSwitchExpression() throws RecognitionException {
+        try {
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1696:1: ( ruleXSwitchExpression EOF )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1697:1: ruleXSwitchExpression EOF
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXSwitchExpressionRule()); 
+            }
+            pushFollow(FOLLOW_ruleXSwitchExpression_in_entryRuleXSwitchExpression3554);
+            ruleXSwitchExpression();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXSwitchExpressionRule()); 
+            }
+            match(input,EOF,FOLLOW_EOF_in_entryRuleXSwitchExpression3561); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleXSwitchExpression"
+
+
+    // $ANTLR start "ruleXSwitchExpression"
+    // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1704:1: ruleXSwitchExpression : ( ( rule__XSwitchExpression__Group__0 ) ) ;
+    public final void ruleXSwitchExpression() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1708:2: ( ( ( rule__XSwitchExpression__Group__0 ) ) )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1709:1: ( ( rule__XSwitchExpression__Group__0 ) )
+            {
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1709:1: ( ( rule__XSwitchExpression__Group__0 ) )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1710:1: ( rule__XSwitchExpression__Group__0 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXSwitchExpressionAccess().getGroup()); 
+            }
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1711:1: ( rule__XSwitchExpression__Group__0 )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1711:2: rule__XSwitchExpression__Group__0
+            {
+            pushFollow(FOLLOW_rule__XSwitchExpression__Group__0_in_ruleXSwitchExpression3587);
+            rule__XSwitchExpression__Group__0();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXSwitchExpressionAccess().getGroup()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleXSwitchExpression"
+
+
+    // $ANTLR start "entryRuleXCasePart"
+    // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1723:1: entryRuleXCasePart : ruleXCasePart EOF ;
+    public final void entryRuleXCasePart() throws RecognitionException {
+        try {
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1724:1: ( ruleXCasePart EOF )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1725:1: ruleXCasePart EOF
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXCasePartRule()); 
+            }
+            pushFollow(FOLLOW_ruleXCasePart_in_entryRuleXCasePart3614);
+            ruleXCasePart();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXCasePartRule()); 
+            }
+            match(input,EOF,FOLLOW_EOF_in_entryRuleXCasePart3621); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleXCasePart"
+
+
+    // $ANTLR start "ruleXCasePart"
+    // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1732:1: ruleXCasePart : ( ( rule__XCasePart__Group__0 ) ) ;
+    public final void ruleXCasePart() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1736:2: ( ( ( rule__XCasePart__Group__0 ) ) )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1737:1: ( ( rule__XCasePart__Group__0 ) )
+            {
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1737:1: ( ( rule__XCasePart__Group__0 ) )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1738:1: ( rule__XCasePart__Group__0 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXCasePartAccess().getGroup()); 
+            }
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1739:1: ( rule__XCasePart__Group__0 )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1739:2: rule__XCasePart__Group__0
+            {
+            pushFollow(FOLLOW_rule__XCasePart__Group__0_in_ruleXCasePart3647);
+            rule__XCasePart__Group__0();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXCasePartAccess().getGroup()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleXCasePart"
+
+
+    // $ANTLR start "entryRuleXForLoopExpression"
+    // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1751:1: entryRuleXForLoopExpression : ruleXForLoopExpression EOF ;
+    public final void entryRuleXForLoopExpression() throws RecognitionException {
+        try {
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1752:1: ( ruleXForLoopExpression EOF )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1753:1: ruleXForLoopExpression EOF
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXForLoopExpressionRule()); 
+            }
+            pushFollow(FOLLOW_ruleXForLoopExpression_in_entryRuleXForLoopExpression3674);
+            ruleXForLoopExpression();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXForLoopExpressionRule()); 
+            }
+            match(input,EOF,FOLLOW_EOF_in_entryRuleXForLoopExpression3681); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleXForLoopExpression"
+
+
+    // $ANTLR start "ruleXForLoopExpression"
+    // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1760:1: ruleXForLoopExpression : ( ( rule__XForLoopExpression__Group__0 ) ) ;
+    public final void ruleXForLoopExpression() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1764:2: ( ( ( rule__XForLoopExpression__Group__0 ) ) )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1765:1: ( ( rule__XForLoopExpression__Group__0 ) )
+            {
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1765:1: ( ( rule__XForLoopExpression__Group__0 ) )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1766:1: ( rule__XForLoopExpression__Group__0 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXForLoopExpressionAccess().getGroup()); 
+            }
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1767:1: ( rule__XForLoopExpression__Group__0 )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1767:2: rule__XForLoopExpression__Group__0
+            {
+            pushFollow(FOLLOW_rule__XForLoopExpression__Group__0_in_ruleXForLoopExpression3707);
+            rule__XForLoopExpression__Group__0();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXForLoopExpressionAccess().getGroup()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleXForLoopExpression"
+
+
+    // $ANTLR start "entryRuleXBasicForLoopExpression"
+    // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1779:1: entryRuleXBasicForLoopExpression : ruleXBasicForLoopExpression EOF ;
+    public final void entryRuleXBasicForLoopExpression() throws RecognitionException {
+        try {
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1780:1: ( ruleXBasicForLoopExpression EOF )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1781:1: ruleXBasicForLoopExpression EOF
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXBasicForLoopExpressionRule()); 
+            }
+            pushFollow(FOLLOW_ruleXBasicForLoopExpression_in_entryRuleXBasicForLoopExpression3734);
+            ruleXBasicForLoopExpression();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXBasicForLoopExpressionRule()); 
+            }
+            match(input,EOF,FOLLOW_EOF_in_entryRuleXBasicForLoopExpression3741); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleXBasicForLoopExpression"
+
+
+    // $ANTLR start "ruleXBasicForLoopExpression"
+    // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1788:1: ruleXBasicForLoopExpression : ( ( rule__XBasicForLoopExpression__Group__0 ) ) ;
+    public final void ruleXBasicForLoopExpression() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1792:2: ( ( ( rule__XBasicForLoopExpression__Group__0 ) ) )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1793:1: ( ( rule__XBasicForLoopExpression__Group__0 ) )
+            {
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1793:1: ( ( rule__XBasicForLoopExpression__Group__0 ) )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1794:1: ( rule__XBasicForLoopExpression__Group__0 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXBasicForLoopExpressionAccess().getGroup()); 
+            }
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1795:1: ( rule__XBasicForLoopExpression__Group__0 )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1795:2: rule__XBasicForLoopExpression__Group__0
+            {
+            pushFollow(FOLLOW_rule__XBasicForLoopExpression__Group__0_in_ruleXBasicForLoopExpression3767);
+            rule__XBasicForLoopExpression__Group__0();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXBasicForLoopExpressionAccess().getGroup()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleXBasicForLoopExpression"
+
+
+    // $ANTLR start "entryRuleXWhileExpression"
+    // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1807:1: entryRuleXWhileExpression : ruleXWhileExpression EOF ;
+    public final void entryRuleXWhileExpression() throws RecognitionException {
+        try {
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1808:1: ( ruleXWhileExpression EOF )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1809:1: ruleXWhileExpression EOF
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXWhileExpressionRule()); 
+            }
+            pushFollow(FOLLOW_ruleXWhileExpression_in_entryRuleXWhileExpression3794);
+            ruleXWhileExpression();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXWhileExpressionRule()); 
+            }
+            match(input,EOF,FOLLOW_EOF_in_entryRuleXWhileExpression3801); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleXWhileExpression"
+
+
+    // $ANTLR start "ruleXWhileExpression"
+    // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1816:1: ruleXWhileExpression : ( ( rule__XWhileExpression__Group__0 ) ) ;
+    public final void ruleXWhileExpression() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1820:2: ( ( ( rule__XWhileExpression__Group__0 ) ) )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1821:1: ( ( rule__XWhileExpression__Group__0 ) )
+            {
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1821:1: ( ( rule__XWhileExpression__Group__0 ) )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1822:1: ( rule__XWhileExpression__Group__0 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXWhileExpressionAccess().getGroup()); 
+            }
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1823:1: ( rule__XWhileExpression__Group__0 )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1823:2: rule__XWhileExpression__Group__0
+            {
+            pushFollow(FOLLOW_rule__XWhileExpression__Group__0_in_ruleXWhileExpression3827);
+            rule__XWhileExpression__Group__0();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXWhileExpressionAccess().getGroup()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleXWhileExpression"
+
+
+    // $ANTLR start "entryRuleXDoWhileExpression"
+    // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1835:1: entryRuleXDoWhileExpression : ruleXDoWhileExpression EOF ;
+    public final void entryRuleXDoWhileExpression() throws RecognitionException {
+        try {
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1836:1: ( ruleXDoWhileExpression EOF )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1837:1: ruleXDoWhileExpression EOF
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXDoWhileExpressionRule()); 
+            }
+            pushFollow(FOLLOW_ruleXDoWhileExpression_in_entryRuleXDoWhileExpression3854);
+            ruleXDoWhileExpression();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXDoWhileExpressionRule()); 
+            }
+            match(input,EOF,FOLLOW_EOF_in_entryRuleXDoWhileExpression3861); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleXDoWhileExpression"
+
+
+    // $ANTLR start "ruleXDoWhileExpression"
+    // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1844:1: ruleXDoWhileExpression : ( ( rule__XDoWhileExpression__Group__0 ) ) ;
+    public final void ruleXDoWhileExpression() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1848:2: ( ( ( rule__XDoWhileExpression__Group__0 ) ) )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1849:1: ( ( rule__XDoWhileExpression__Group__0 ) )
+            {
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1849:1: ( ( rule__XDoWhileExpression__Group__0 ) )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1850:1: ( rule__XDoWhileExpression__Group__0 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXDoWhileExpressionAccess().getGroup()); 
+            }
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1851:1: ( rule__XDoWhileExpression__Group__0 )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1851:2: rule__XDoWhileExpression__Group__0
+            {
+            pushFollow(FOLLOW_rule__XDoWhileExpression__Group__0_in_ruleXDoWhileExpression3887);
+            rule__XDoWhileExpression__Group__0();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXDoWhileExpressionAccess().getGroup()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleXDoWhileExpression"
+
+
+    // $ANTLR start "entryRuleXBlockExpression"
+    // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1863:1: entryRuleXBlockExpression : ruleXBlockExpression EOF ;
+    public final void entryRuleXBlockExpression() throws RecognitionException {
+        try {
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1864:1: ( ruleXBlockExpression EOF )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1865:1: ruleXBlockExpression EOF
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXBlockExpressionRule()); 
+            }
+            pushFollow(FOLLOW_ruleXBlockExpression_in_entryRuleXBlockExpression3914);
+            ruleXBlockExpression();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXBlockExpressionRule()); 
+            }
+            match(input,EOF,FOLLOW_EOF_in_entryRuleXBlockExpression3921); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleXBlockExpression"
+
+
+    // $ANTLR start "ruleXBlockExpression"
+    // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1872:1: ruleXBlockExpression : ( ( rule__XBlockExpression__Group__0 ) ) ;
+    public final void ruleXBlockExpression() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1876:2: ( ( ( rule__XBlockExpression__Group__0 ) ) )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1877:1: ( ( rule__XBlockExpression__Group__0 ) )
+            {
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1877:1: ( ( rule__XBlockExpression__Group__0 ) )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1878:1: ( rule__XBlockExpression__Group__0 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXBlockExpressionAccess().getGroup()); 
+            }
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1879:1: ( rule__XBlockExpression__Group__0 )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1879:2: rule__XBlockExpression__Group__0
+            {
+            pushFollow(FOLLOW_rule__XBlockExpression__Group__0_in_ruleXBlockExpression3947);
+            rule__XBlockExpression__Group__0();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXBlockExpressionAccess().getGroup()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleXBlockExpression"
+
+
+    // $ANTLR start "entryRuleXExpressionOrVarDeclaration"
+    // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1891:1: entryRuleXExpressionOrVarDeclaration : ruleXExpressionOrVarDeclaration EOF ;
+    public final void entryRuleXExpressionOrVarDeclaration() throws RecognitionException {
+        try {
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1892:1: ( ruleXExpressionOrVarDeclaration EOF )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1893:1: ruleXExpressionOrVarDeclaration EOF
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXExpressionOrVarDeclarationRule()); 
+            }
+            pushFollow(FOLLOW_ruleXExpressionOrVarDeclaration_in_entryRuleXExpressionOrVarDeclaration3974);
+            ruleXExpressionOrVarDeclaration();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXExpressionOrVarDeclarationRule()); 
+            }
+            match(input,EOF,FOLLOW_EOF_in_entryRuleXExpressionOrVarDeclaration3981); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleXExpressionOrVarDeclaration"
+
+
+    // $ANTLR start "ruleXExpressionOrVarDeclaration"
+    // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1900:1: ruleXExpressionOrVarDeclaration : ( ( rule__XExpressionOrVarDeclaration__Alternatives ) ) ;
+    public final void ruleXExpressionOrVarDeclaration() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1904:2: ( ( ( rule__XExpressionOrVarDeclaration__Alternatives ) ) )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1905:1: ( ( rule__XExpressionOrVarDeclaration__Alternatives ) )
+            {
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1905:1: ( ( rule__XExpressionOrVarDeclaration__Alternatives ) )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1906:1: ( rule__XExpressionOrVarDeclaration__Alternatives )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXExpressionOrVarDeclarationAccess().getAlternatives()); 
+            }
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1907:1: ( rule__XExpressionOrVarDeclaration__Alternatives )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1907:2: rule__XExpressionOrVarDeclaration__Alternatives
+            {
+            pushFollow(FOLLOW_rule__XExpressionOrVarDeclaration__Alternatives_in_ruleXExpressionOrVarDeclaration4007);
+            rule__XExpressionOrVarDeclaration__Alternatives();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXExpressionOrVarDeclarationAccess().getAlternatives()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleXExpressionOrVarDeclaration"
+
+
+    // $ANTLR start "entryRuleXVariableDeclaration"
+    // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1919:1: entryRuleXVariableDeclaration : ruleXVariableDeclaration EOF ;
+    public final void entryRuleXVariableDeclaration() throws RecognitionException {
+        try {
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1920:1: ( ruleXVariableDeclaration EOF )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1921:1: ruleXVariableDeclaration EOF
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXVariableDeclarationRule()); 
+            }
+            pushFollow(FOLLOW_ruleXVariableDeclaration_in_entryRuleXVariableDeclaration4034);
+            ruleXVariableDeclaration();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXVariableDeclarationRule()); 
+            }
+            match(input,EOF,FOLLOW_EOF_in_entryRuleXVariableDeclaration4041); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleXVariableDeclaration"
+
+
+    // $ANTLR start "ruleXVariableDeclaration"
+    // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1928:1: ruleXVariableDeclaration : ( ( rule__XVariableDeclaration__Group__0 ) ) ;
+    public final void ruleXVariableDeclaration() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1932:2: ( ( ( rule__XVariableDeclaration__Group__0 ) ) )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1933:1: ( ( rule__XVariableDeclaration__Group__0 ) )
+            {
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1933:1: ( ( rule__XVariableDeclaration__Group__0 ) )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1934:1: ( rule__XVariableDeclaration__Group__0 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXVariableDeclarationAccess().getGroup()); 
+            }
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1935:1: ( rule__XVariableDeclaration__Group__0 )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1935:2: rule__XVariableDeclaration__Group__0
+            {
+            pushFollow(FOLLOW_rule__XVariableDeclaration__Group__0_in_ruleXVariableDeclaration4067);
+            rule__XVariableDeclaration__Group__0();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXVariableDeclarationAccess().getGroup()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleXVariableDeclaration"
+
+
+    // $ANTLR start "entryRuleJvmFormalParameter"
+    // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1947:1: entryRuleJvmFormalParameter : ruleJvmFormalParameter EOF ;
+    public final void entryRuleJvmFormalParameter() throws RecognitionException {
+        try {
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1948:1: ( ruleJvmFormalParameter EOF )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1949:1: ruleJvmFormalParameter EOF
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getJvmFormalParameterRule()); 
+            }
+            pushFollow(FOLLOW_ruleJvmFormalParameter_in_entryRuleJvmFormalParameter4094);
+            ruleJvmFormalParameter();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getJvmFormalParameterRule()); 
+            }
+            match(input,EOF,FOLLOW_EOF_in_entryRuleJvmFormalParameter4101); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleJvmFormalParameter"
+
+
+    // $ANTLR start "ruleJvmFormalParameter"
+    // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1956:1: ruleJvmFormalParameter : ( ( rule__JvmFormalParameter__Group__0 ) ) ;
+    public final void ruleJvmFormalParameter() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1960:2: ( ( ( rule__JvmFormalParameter__Group__0 ) ) )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1961:1: ( ( rule__JvmFormalParameter__Group__0 ) )
+            {
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1961:1: ( ( rule__JvmFormalParameter__Group__0 ) )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1962:1: ( rule__JvmFormalParameter__Group__0 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getJvmFormalParameterAccess().getGroup()); 
+            }
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1963:1: ( rule__JvmFormalParameter__Group__0 )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1963:2: rule__JvmFormalParameter__Group__0
+            {
+            pushFollow(FOLLOW_rule__JvmFormalParameter__Group__0_in_ruleJvmFormalParameter4127);
+            rule__JvmFormalParameter__Group__0();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getJvmFormalParameterAccess().getGroup()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleJvmFormalParameter"
+
+
+    // $ANTLR start "entryRuleFullJvmFormalParameter"
+    // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1975:1: entryRuleFullJvmFormalParameter : ruleFullJvmFormalParameter EOF ;
+    public final void entryRuleFullJvmFormalParameter() throws RecognitionException {
+        try {
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1976:1: ( ruleFullJvmFormalParameter EOF )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1977:1: ruleFullJvmFormalParameter EOF
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getFullJvmFormalParameterRule()); 
+            }
+            pushFollow(FOLLOW_ruleFullJvmFormalParameter_in_entryRuleFullJvmFormalParameter4154);
+            ruleFullJvmFormalParameter();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getFullJvmFormalParameterRule()); 
+            }
+            match(input,EOF,FOLLOW_EOF_in_entryRuleFullJvmFormalParameter4161); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleFullJvmFormalParameter"
+
+
+    // $ANTLR start "ruleFullJvmFormalParameter"
+    // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1984:1: ruleFullJvmFormalParameter : ( ( rule__FullJvmFormalParameter__Group__0 ) ) ;
+    public final void ruleFullJvmFormalParameter() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1988:2: ( ( ( rule__FullJvmFormalParameter__Group__0 ) ) )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1989:1: ( ( rule__FullJvmFormalParameter__Group__0 ) )
+            {
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1989:1: ( ( rule__FullJvmFormalParameter__Group__0 ) )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1990:1: ( rule__FullJvmFormalParameter__Group__0 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getFullJvmFormalParameterAccess().getGroup()); 
+            }
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1991:1: ( rule__FullJvmFormalParameter__Group__0 )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:1991:2: rule__FullJvmFormalParameter__Group__0
+            {
+            pushFollow(FOLLOW_rule__FullJvmFormalParameter__Group__0_in_ruleFullJvmFormalParameter4187);
+            rule__FullJvmFormalParameter__Group__0();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getFullJvmFormalParameterAccess().getGroup()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleFullJvmFormalParameter"
+
+
+    // $ANTLR start "entryRuleXFeatureCall"
+    // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:2003:1: entryRuleXFeatureCall : ruleXFeatureCall EOF ;
+    public final void entryRuleXFeatureCall() throws RecognitionException {
+        try {
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:2004:1: ( ruleXFeatureCall EOF )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:2005:1: ruleXFeatureCall EOF
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXFeatureCallRule()); 
+            }
+            pushFollow(FOLLOW_ruleXFeatureCall_in_entryRuleXFeatureCall4214);
+            ruleXFeatureCall();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXFeatureCallRule()); 
+            }
+            match(input,EOF,FOLLOW_EOF_in_entryRuleXFeatureCall4221); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleXFeatureCall"
+
+
+    // $ANTLR start "ruleXFeatureCall"
+    // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:2012:1: ruleXFeatureCall : ( ( rule__XFeatureCall__Group__0 ) ) ;
+    public final void ruleXFeatureCall() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:2016:2: ( ( ( rule__XFeatureCall__Group__0 ) ) )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:2017:1: ( ( rule__XFeatureCall__Group__0 ) )
+            {
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:2017:1: ( ( rule__XFeatureCall__Group__0 ) )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:2018:1: ( rule__XFeatureCall__Group__0 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXFeatureCallAccess().getGroup()); 
+            }
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:2019:1: ( rule__XFeatureCall__Group__0 )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:2019:2: rule__XFeatureCall__Group__0
+            {
+            pushFollow(FOLLOW_rule__XFeatureCall__Group__0_in_ruleXFeatureCall4247);
+            rule__XFeatureCall__Group__0();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXFeatureCallAccess().getGroup()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleXFeatureCall"
+
+
+    // $ANTLR start "entryRuleFeatureCallID"
+    // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:2031:1: entryRuleFeatureCallID : ruleFeatureCallID EOF ;
+    public final void entryRuleFeatureCallID() throws RecognitionException {
+        try {
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:2032:1: ( ruleFeatureCallID EOF )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:2033:1: ruleFeatureCallID EOF
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getFeatureCallIDRule()); 
+            }
+            pushFollow(FOLLOW_ruleFeatureCallID_in_entryRuleFeatureCallID4274);
+            ruleFeatureCallID();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getFeatureCallIDRule()); 
+            }
+            match(input,EOF,FOLLOW_EOF_in_entryRuleFeatureCallID4281); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleFeatureCallID"
+
+
+    // $ANTLR start "ruleFeatureCallID"
+    // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:2040:1: ruleFeatureCallID : ( ( rule__FeatureCallID__Alternatives ) ) ;
+    public final void ruleFeatureCallID() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:2044:2: ( ( ( rule__FeatureCallID__Alternatives ) ) )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:2045:1: ( ( rule__FeatureCallID__Alternatives ) )
+            {
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:2045:1: ( ( rule__FeatureCallID__Alternatives ) )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:2046:1: ( rule__FeatureCallID__Alternatives )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getFeatureCallIDAccess().getAlternatives()); 
+            }
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:2047:1: ( rule__FeatureCallID__Alternatives )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:2047:2: rule__FeatureCallID__Alternatives
+            {
+            pushFollow(FOLLOW_rule__FeatureCallID__Alternatives_in_ruleFeatureCallID4307);
+            rule__FeatureCallID__Alternatives();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getFeatureCallIDAccess().getAlternatives()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleFeatureCallID"
+
+
+    // $ANTLR start "entryRuleIdOrSuper"
+    // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:2059:1: entryRuleIdOrSuper : ruleIdOrSuper EOF ;
+    public final void entryRuleIdOrSuper() throws RecognitionException {
+        try {
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:2060:1: ( ruleIdOrSuper EOF )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:2061:1: ruleIdOrSuper EOF
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getIdOrSuperRule()); 
+            }
+            pushFollow(FOLLOW_ruleIdOrSuper_in_entryRuleIdOrSuper4334);
+            ruleIdOrSuper();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getIdOrSuperRule()); 
+            }
+            match(input,EOF,FOLLOW_EOF_in_entryRuleIdOrSuper4341); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleIdOrSuper"
+
+
+    // $ANTLR start "ruleIdOrSuper"
+    // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:2068:1: ruleIdOrSuper : ( ( rule__IdOrSuper__Alternatives ) ) ;
+    public final void ruleIdOrSuper() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:2072:2: ( ( ( rule__IdOrSuper__Alternatives ) ) )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:2073:1: ( ( rule__IdOrSuper__Alternatives ) )
+            {
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:2073:1: ( ( rule__IdOrSuper__Alternatives ) )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:2074:1: ( rule__IdOrSuper__Alternatives )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getIdOrSuperAccess().getAlternatives()); 
+            }
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:2075:1: ( rule__IdOrSuper__Alternatives )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:2075:2: rule__IdOrSuper__Alternatives
+            {
+            pushFollow(FOLLOW_rule__IdOrSuper__Alternatives_in_ruleIdOrSuper4367);
+            rule__IdOrSuper__Alternatives();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getIdOrSuperAccess().getAlternatives()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleIdOrSuper"
+
+
+    // $ANTLR start "entryRuleXConstructorCall"
+    // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:2087:1: entryRuleXConstructorCall : ruleXConstructorCall EOF ;
+    public final void entryRuleXConstructorCall() throws RecognitionException {
+        try {
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:2088:1: ( ruleXConstructorCall EOF )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:2089:1: ruleXConstructorCall EOF
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXConstructorCallRule()); 
+            }
+            pushFollow(FOLLOW_ruleXConstructorCall_in_entryRuleXConstructorCall4394);
+            ruleXConstructorCall();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXConstructorCallRule()); 
+            }
+            match(input,EOF,FOLLOW_EOF_in_entryRuleXConstructorCall4401); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleXConstructorCall"
+
+
+    // $ANTLR start "ruleXConstructorCall"
+    // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:2096:1: ruleXConstructorCall : ( ( rule__XConstructorCall__Group__0 ) ) ;
+    public final void ruleXConstructorCall() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:2100:2: ( ( ( rule__XConstructorCall__Group__0 ) ) )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:2101:1: ( ( rule__XConstructorCall__Group__0 ) )
+            {
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:2101:1: ( ( rule__XConstructorCall__Group__0 ) )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:2102:1: ( rule__XConstructorCall__Group__0 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXConstructorCallAccess().getGroup()); 
+            }
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:2103:1: ( rule__XConstructorCall__Group__0 )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:2103:2: rule__XConstructorCall__Group__0
+            {
+            pushFollow(FOLLOW_rule__XConstructorCall__Group__0_in_ruleXConstructorCall4427);
+            rule__XConstructorCall__Group__0();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXConstructorCallAccess().getGroup()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleXConstructorCall"
+
+
+    // $ANTLR start "entryRuleXBooleanLiteral"
+    // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:2115:1: entryRuleXBooleanLiteral : ruleXBooleanLiteral EOF ;
+    public final void entryRuleXBooleanLiteral() throws RecognitionException {
+        try {
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:2116:1: ( ruleXBooleanLiteral EOF )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:2117:1: ruleXBooleanLiteral EOF
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXBooleanLiteralRule()); 
+            }
+            pushFollow(FOLLOW_ruleXBooleanLiteral_in_entryRuleXBooleanLiteral4454);
+            ruleXBooleanLiteral();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXBooleanLiteralRule()); 
+            }
+            match(input,EOF,FOLLOW_EOF_in_entryRuleXBooleanLiteral4461); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleXBooleanLiteral"
+
+
+    // $ANTLR start "ruleXBooleanLiteral"
+    // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:2124:1: ruleXBooleanLiteral : ( ( rule__XBooleanLiteral__Group__0 ) ) ;
+    public final void ruleXBooleanLiteral() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:2128:2: ( ( ( rule__XBooleanLiteral__Group__0 ) ) )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:2129:1: ( ( rule__XBooleanLiteral__Group__0 ) )
+            {
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:2129:1: ( ( rule__XBooleanLiteral__Group__0 ) )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:2130:1: ( rule__XBooleanLiteral__Group__0 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXBooleanLiteralAccess().getGroup()); 
+            }
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:2131:1: ( rule__XBooleanLiteral__Group__0 )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:2131:2: rule__XBooleanLiteral__Group__0
+            {
+            pushFollow(FOLLOW_rule__XBooleanLiteral__Group__0_in_ruleXBooleanLiteral4487);
+            rule__XBooleanLiteral__Group__0();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXBooleanLiteralAccess().getGroup()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleXBooleanLiteral"
+
+
+    // $ANTLR start "entryRuleXNullLiteral"
+    // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:2143:1: entryRuleXNullLiteral : ruleXNullLiteral EOF ;
+    public final void entryRuleXNullLiteral() throws RecognitionException {
+        try {
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:2144:1: ( ruleXNullLiteral EOF )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:2145:1: ruleXNullLiteral EOF
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXNullLiteralRule()); 
+            }
+            pushFollow(FOLLOW_ruleXNullLiteral_in_entryRuleXNullLiteral4514);
+            ruleXNullLiteral();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXNullLiteralRule()); 
+            }
+            match(input,EOF,FOLLOW_EOF_in_entryRuleXNullLiteral4521); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleXNullLiteral"
+
+
+    // $ANTLR start "ruleXNullLiteral"
+    // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:2152:1: ruleXNullLiteral : ( ( rule__XNullLiteral__Group__0 ) ) ;
+    public final void ruleXNullLiteral() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:2156:2: ( ( ( rule__XNullLiteral__Group__0 ) ) )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:2157:1: ( ( rule__XNullLiteral__Group__0 ) )
+            {
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:2157:1: ( ( rule__XNullLiteral__Group__0 ) )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:2158:1: ( rule__XNullLiteral__Group__0 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXNullLiteralAccess().getGroup()); 
+            }
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:2159:1: ( rule__XNullLiteral__Group__0 )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:2159:2: rule__XNullLiteral__Group__0
+            {
+            pushFollow(FOLLOW_rule__XNullLiteral__Group__0_in_ruleXNullLiteral4547);
+            rule__XNullLiteral__Group__0();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXNullLiteralAccess().getGroup()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleXNullLiteral"
+
+
+    // $ANTLR start "entryRuleXNumberLiteral"
+    // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:2171:1: entryRuleXNumberLiteral : ruleXNumberLiteral EOF ;
+    public final void entryRuleXNumberLiteral() throws RecognitionException {
+        try {
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:2172:1: ( ruleXNumberLiteral EOF )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:2173:1: ruleXNumberLiteral EOF
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXNumberLiteralRule()); 
+            }
+            pushFollow(FOLLOW_ruleXNumberLiteral_in_entryRuleXNumberLiteral4574);
+            ruleXNumberLiteral();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXNumberLiteralRule()); 
+            }
+            match(input,EOF,FOLLOW_EOF_in_entryRuleXNumberLiteral4581); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleXNumberLiteral"
+
+
+    // $ANTLR start "ruleXNumberLiteral"
+    // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:2180:1: ruleXNumberLiteral : ( ( rule__XNumberLiteral__Group__0 ) ) ;
+    public final void ruleXNumberLiteral() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:2184:2: ( ( ( rule__XNumberLiteral__Group__0 ) ) )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:2185:1: ( ( rule__XNumberLiteral__Group__0 ) )
+            {
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:2185:1: ( ( rule__XNumberLiteral__Group__0 ) )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:2186:1: ( rule__XNumberLiteral__Group__0 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXNumberLiteralAccess().getGroup()); 
+            }
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:2187:1: ( rule__XNumberLiteral__Group__0 )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:2187:2: rule__XNumberLiteral__Group__0
+            {
+            pushFollow(FOLLOW_rule__XNumberLiteral__Group__0_in_ruleXNumberLiteral4607);
+            rule__XNumberLiteral__Group__0();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXNumberLiteralAccess().getGroup()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleXNumberLiteral"
+
+
+    // $ANTLR start "entryRuleXStringLiteral"
+    // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:2199:1: entryRuleXStringLiteral : ruleXStringLiteral EOF ;
+    public final void entryRuleXStringLiteral() throws RecognitionException {
+        try {
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:2200:1: ( ruleXStringLiteral EOF )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:2201:1: ruleXStringLiteral EOF
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXStringLiteralRule()); 
+            }
+            pushFollow(FOLLOW_ruleXStringLiteral_in_entryRuleXStringLiteral4634);
+            ruleXStringLiteral();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXStringLiteralRule()); 
+            }
+            match(input,EOF,FOLLOW_EOF_in_entryRuleXStringLiteral4641); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleXStringLiteral"
+
+
+    // $ANTLR start "ruleXStringLiteral"
+    // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:2208:1: ruleXStringLiteral : ( ( rule__XStringLiteral__Group__0 ) ) ;
+    public final void ruleXStringLiteral() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:2212:2: ( ( ( rule__XStringLiteral__Group__0 ) ) )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:2213:1: ( ( rule__XStringLiteral__Group__0 ) )
+            {
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:2213:1: ( ( rule__XStringLiteral__Group__0 ) )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:2214:1: ( rule__XStringLiteral__Group__0 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXStringLiteralAccess().getGroup()); 
+            }
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:2215:1: ( rule__XStringLiteral__Group__0 )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:2215:2: rule__XStringLiteral__Group__0
+            {
+            pushFollow(FOLLOW_rule__XStringLiteral__Group__0_in_ruleXStringLiteral4667);
+            rule__XStringLiteral__Group__0();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXStringLiteralAccess().getGroup()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleXStringLiteral"
+
+
+    // $ANTLR start "entryRuleXTypeLiteral"
+    // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:2227:1: entryRuleXTypeLiteral : ruleXTypeLiteral EOF ;
+    public final void entryRuleXTypeLiteral() throws RecognitionException {
+        try {
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:2228:1: ( ruleXTypeLiteral EOF )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:2229:1: ruleXTypeLiteral EOF
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXTypeLiteralRule()); 
+            }
+            pushFollow(FOLLOW_ruleXTypeLiteral_in_entryRuleXTypeLiteral4694);
+            ruleXTypeLiteral();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXTypeLiteralRule()); 
+            }
+            match(input,EOF,FOLLOW_EOF_in_entryRuleXTypeLiteral4701); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleXTypeLiteral"
+
+
+    // $ANTLR start "ruleXTypeLiteral"
+    // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:2236:1: ruleXTypeLiteral : ( ( rule__XTypeLiteral__Group__0 ) ) ;
+    public final void ruleXTypeLiteral() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:2240:2: ( ( ( rule__XTypeLiteral__Group__0 ) ) )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:2241:1: ( ( rule__XTypeLiteral__Group__0 ) )
+            {
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:2241:1: ( ( rule__XTypeLiteral__Group__0 ) )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:2242:1: ( rule__XTypeLiteral__Group__0 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXTypeLiteralAccess().getGroup()); 
+            }
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:2243:1: ( rule__XTypeLiteral__Group__0 )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:2243:2: rule__XTypeLiteral__Group__0
+            {
+            pushFollow(FOLLOW_rule__XTypeLiteral__Group__0_in_ruleXTypeLiteral4727);
+            rule__XTypeLiteral__Group__0();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXTypeLiteralAccess().getGroup()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleXTypeLiteral"
+
+
+    // $ANTLR start "entryRuleXThrowExpression"
+    // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:2255:1: entryRuleXThrowExpression : ruleXThrowExpression EOF ;
+    public final void entryRuleXThrowExpression() throws RecognitionException {
+        try {
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:2256:1: ( ruleXThrowExpression EOF )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:2257:1: ruleXThrowExpression EOF
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXThrowExpressionRule()); 
+            }
+            pushFollow(FOLLOW_ruleXThrowExpression_in_entryRuleXThrowExpression4754);
+            ruleXThrowExpression();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXThrowExpressionRule()); 
+            }
+            match(input,EOF,FOLLOW_EOF_in_entryRuleXThrowExpression4761); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleXThrowExpression"
+
+
+    // $ANTLR start "ruleXThrowExpression"
+    // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:2264:1: ruleXThrowExpression : ( ( rule__XThrowExpression__Group__0 ) ) ;
+    public final void ruleXThrowExpression() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:2268:2: ( ( ( rule__XThrowExpression__Group__0 ) ) )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:2269:1: ( ( rule__XThrowExpression__Group__0 ) )
+            {
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:2269:1: ( ( rule__XThrowExpression__Group__0 ) )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:2270:1: ( rule__XThrowExpression__Group__0 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXThrowExpressionAccess().getGroup()); 
+            }
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:2271:1: ( rule__XThrowExpression__Group__0 )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:2271:2: rule__XThrowExpression__Group__0
+            {
+            pushFollow(FOLLOW_rule__XThrowExpression__Group__0_in_ruleXThrowExpression4787);
+            rule__XThrowExpression__Group__0();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXThrowExpressionAccess().getGroup()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleXThrowExpression"
+
+
+    // $ANTLR start "entryRuleXReturnExpression"
+    // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:2283:1: entryRuleXReturnExpression : ruleXReturnExpression EOF ;
+    public final void entryRuleXReturnExpression() throws RecognitionException {
+        try {
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:2284:1: ( ruleXReturnExpression EOF )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:2285:1: ruleXReturnExpression EOF
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXReturnExpressionRule()); 
+            }
+            pushFollow(FOLLOW_ruleXReturnExpression_in_entryRuleXReturnExpression4814);
+            ruleXReturnExpression();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXReturnExpressionRule()); 
+            }
+            match(input,EOF,FOLLOW_EOF_in_entryRuleXReturnExpression4821); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleXReturnExpression"
+
+
+    // $ANTLR start "ruleXReturnExpression"
+    // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:2292:1: ruleXReturnExpression : ( ( rule__XReturnExpression__Group__0 ) ) ;
+    public final void ruleXReturnExpression() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:2296:2: ( ( ( rule__XReturnExpression__Group__0 ) ) )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:2297:1: ( ( rule__XReturnExpression__Group__0 ) )
+            {
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:2297:1: ( ( rule__XReturnExpression__Group__0 ) )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:2298:1: ( rule__XReturnExpression__Group__0 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXReturnExpressionAccess().getGroup()); 
+            }
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:2299:1: ( rule__XReturnExpression__Group__0 )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:2299:2: rule__XReturnExpression__Group__0
+            {
+            pushFollow(FOLLOW_rule__XReturnExpression__Group__0_in_ruleXReturnExpression4847);
+            rule__XReturnExpression__Group__0();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXReturnExpressionAccess().getGroup()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleXReturnExpression"
+
+
+    // $ANTLR start "entryRuleXTryCatchFinallyExpression"
+    // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:2311:1: entryRuleXTryCatchFinallyExpression : ruleXTryCatchFinallyExpression EOF ;
+    public final void entryRuleXTryCatchFinallyExpression() throws RecognitionException {
+        try {
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:2312:1: ( ruleXTryCatchFinallyExpression EOF )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:2313:1: ruleXTryCatchFinallyExpression EOF
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXTryCatchFinallyExpressionRule()); 
+            }
+            pushFollow(FOLLOW_ruleXTryCatchFinallyExpression_in_entryRuleXTryCatchFinallyExpression4874);
+            ruleXTryCatchFinallyExpression();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXTryCatchFinallyExpressionRule()); 
+            }
+            match(input,EOF,FOLLOW_EOF_in_entryRuleXTryCatchFinallyExpression4881); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleXTryCatchFinallyExpression"
+
+
+    // $ANTLR start "ruleXTryCatchFinallyExpression"
+    // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:2320:1: ruleXTryCatchFinallyExpression : ( ( rule__XTryCatchFinallyExpression__Group__0 ) ) ;
+    public final void ruleXTryCatchFinallyExpression() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:2324:2: ( ( ( rule__XTryCatchFinallyExpression__Group__0 ) ) )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:2325:1: ( ( rule__XTryCatchFinallyExpression__Group__0 ) )
+            {
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:2325:1: ( ( rule__XTryCatchFinallyExpression__Group__0 ) )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:2326:1: ( rule__XTryCatchFinallyExpression__Group__0 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXTryCatchFinallyExpressionAccess().getGroup()); 
+            }
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:2327:1: ( rule__XTryCatchFinallyExpression__Group__0 )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:2327:2: rule__XTryCatchFinallyExpression__Group__0
+            {
+            pushFollow(FOLLOW_rule__XTryCatchFinallyExpression__Group__0_in_ruleXTryCatchFinallyExpression4907);
+            rule__XTryCatchFinallyExpression__Group__0();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXTryCatchFinallyExpressionAccess().getGroup()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleXTryCatchFinallyExpression"
+
+
+    // $ANTLR start "entryRuleXSynchronizedExpression"
+    // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:2339:1: entryRuleXSynchronizedExpression : ruleXSynchronizedExpression EOF ;
+    public final void entryRuleXSynchronizedExpression() throws RecognitionException {
+        try {
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:2340:1: ( ruleXSynchronizedExpression EOF )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:2341:1: ruleXSynchronizedExpression EOF
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXSynchronizedExpressionRule()); 
+            }
+            pushFollow(FOLLOW_ruleXSynchronizedExpression_in_entryRuleXSynchronizedExpression4934);
+            ruleXSynchronizedExpression();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXSynchronizedExpressionRule()); 
+            }
+            match(input,EOF,FOLLOW_EOF_in_entryRuleXSynchronizedExpression4941); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleXSynchronizedExpression"
+
+
+    // $ANTLR start "ruleXSynchronizedExpression"
+    // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:2348:1: ruleXSynchronizedExpression : ( ( rule__XSynchronizedExpression__Group__0 ) ) ;
+    public final void ruleXSynchronizedExpression() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:2352:2: ( ( ( rule__XSynchronizedExpression__Group__0 ) ) )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:2353:1: ( ( rule__XSynchronizedExpression__Group__0 ) )
+            {
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:2353:1: ( ( rule__XSynchronizedExpression__Group__0 ) )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:2354:1: ( rule__XSynchronizedExpression__Group__0 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXSynchronizedExpressionAccess().getGroup()); 
+            }
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:2355:1: ( rule__XSynchronizedExpression__Group__0 )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:2355:2: rule__XSynchronizedExpression__Group__0
+            {
+            pushFollow(FOLLOW_rule__XSynchronizedExpression__Group__0_in_ruleXSynchronizedExpression4967);
+            rule__XSynchronizedExpression__Group__0();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXSynchronizedExpressionAccess().getGroup()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleXSynchronizedExpression"
+
+
+    // $ANTLR start "entryRuleXCatchClause"
+    // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:2367:1: entryRuleXCatchClause : ruleXCatchClause EOF ;
+    public final void entryRuleXCatchClause() throws RecognitionException {
+        try {
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:2368:1: ( ruleXCatchClause EOF )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:2369:1: ruleXCatchClause EOF
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXCatchClauseRule()); 
+            }
+            pushFollow(FOLLOW_ruleXCatchClause_in_entryRuleXCatchClause4994);
+            ruleXCatchClause();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXCatchClauseRule()); 
+            }
+            match(input,EOF,FOLLOW_EOF_in_entryRuleXCatchClause5001); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleXCatchClause"
+
+
+    // $ANTLR start "ruleXCatchClause"
+    // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:2376:1: ruleXCatchClause : ( ( rule__XCatchClause__Group__0 ) ) ;
+    public final void ruleXCatchClause() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:2380:2: ( ( ( rule__XCatchClause__Group__0 ) ) )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:2381:1: ( ( rule__XCatchClause__Group__0 ) )
+            {
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:2381:1: ( ( rule__XCatchClause__Group__0 ) )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:2382:1: ( rule__XCatchClause__Group__0 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXCatchClauseAccess().getGroup()); 
+            }
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:2383:1: ( rule__XCatchClause__Group__0 )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:2383:2: rule__XCatchClause__Group__0
+            {
+            pushFollow(FOLLOW_rule__XCatchClause__Group__0_in_ruleXCatchClause5027);
+            rule__XCatchClause__Group__0();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXCatchClauseAccess().getGroup()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleXCatchClause"
+
+
+    // $ANTLR start "entryRuleNumber"
+    // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:2395:1: entryRuleNumber : ruleNumber EOF ;
+    public final void entryRuleNumber() throws RecognitionException {
+
+        	HiddenTokens myHiddenTokenState = ((XtextTokenStream)input).setHiddenTokens();
+
+        try {
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:2399:1: ( ruleNumber EOF )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:2400:1: ruleNumber EOF
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getNumberRule()); 
+            }
+            pushFollow(FOLLOW_ruleNumber_in_entryRuleNumber5059);
+            ruleNumber();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getNumberRule()); 
+            }
+            match(input,EOF,FOLLOW_EOF_in_entryRuleNumber5066); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	myHiddenTokenState.restore();
+
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleNumber"
+
+
+    // $ANTLR start "ruleNumber"
+    // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:2410:1: ruleNumber : ( ( rule__Number__Alternatives ) ) ;
+    public final void ruleNumber() throws RecognitionException {
+
+        		HiddenTokens myHiddenTokenState = ((XtextTokenStream)input).setHiddenTokens();
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:2415:2: ( ( ( rule__Number__Alternatives ) ) )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:2416:1: ( ( rule__Number__Alternatives ) )
+            {
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:2416:1: ( ( rule__Number__Alternatives ) )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:2417:1: ( rule__Number__Alternatives )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getNumberAccess().getAlternatives()); 
+            }
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:2418:1: ( rule__Number__Alternatives )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:2418:2: rule__Number__Alternatives
+            {
+            pushFollow(FOLLOW_rule__Number__Alternatives_in_ruleNumber5096);
+            rule__Number__Alternatives();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getNumberAccess().getAlternatives()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+            	myHiddenTokenState.restore();
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleNumber"
+
+
+    // $ANTLR start "entryRuleJvmTypeReference"
+    // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:2433:1: entryRuleJvmTypeReference : ruleJvmTypeReference EOF ;
+    public final void entryRuleJvmTypeReference() throws RecognitionException {
+        try {
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:2434:1: ( ruleJvmTypeReference EOF )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:2435:1: ruleJvmTypeReference EOF
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getJvmTypeReferenceRule()); 
+            }
+            pushFollow(FOLLOW_ruleJvmTypeReference_in_entryRuleJvmTypeReference5125);
+            ruleJvmTypeReference();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getJvmTypeReferenceRule()); 
+            }
+            match(input,EOF,FOLLOW_EOF_in_entryRuleJvmTypeReference5132); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleJvmTypeReference"
+
+
+    // $ANTLR start "ruleJvmTypeReference"
+    // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:2442:1: ruleJvmTypeReference : ( ( rule__JvmTypeReference__Alternatives ) ) ;
+    public final void ruleJvmTypeReference() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:2446:2: ( ( ( rule__JvmTypeReference__Alternatives ) ) )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:2447:1: ( ( rule__JvmTypeReference__Alternatives ) )
+            {
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:2447:1: ( ( rule__JvmTypeReference__Alternatives ) )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:2448:1: ( rule__JvmTypeReference__Alternatives )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getJvmTypeReferenceAccess().getAlternatives()); 
+            }
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:2449:1: ( rule__JvmTypeReference__Alternatives )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:2449:2: rule__JvmTypeReference__Alternatives
+            {
+            pushFollow(FOLLOW_rule__JvmTypeReference__Alternatives_in_ruleJvmTypeReference5158);
+            rule__JvmTypeReference__Alternatives();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getJvmTypeReferenceAccess().getAlternatives()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleJvmTypeReference"
+
+
+    // $ANTLR start "entryRuleArrayBrackets"
+    // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:2461:1: entryRuleArrayBrackets : ruleArrayBrackets EOF ;
+    public final void entryRuleArrayBrackets() throws RecognitionException {
+        try {
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:2462:1: ( ruleArrayBrackets EOF )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:2463:1: ruleArrayBrackets EOF
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getArrayBracketsRule()); 
+            }
+            pushFollow(FOLLOW_ruleArrayBrackets_in_entryRuleArrayBrackets5185);
+            ruleArrayBrackets();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getArrayBracketsRule()); 
+            }
+            match(input,EOF,FOLLOW_EOF_in_entryRuleArrayBrackets5192); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleArrayBrackets"
+
+
+    // $ANTLR start "ruleArrayBrackets"
+    // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:2470:1: ruleArrayBrackets : ( ( rule__ArrayBrackets__Group__0 ) ) ;
+    public final void ruleArrayBrackets() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:2474:2: ( ( ( rule__ArrayBrackets__Group__0 ) ) )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:2475:1: ( ( rule__ArrayBrackets__Group__0 ) )
+            {
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:2475:1: ( ( rule__ArrayBrackets__Group__0 ) )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:2476:1: ( rule__ArrayBrackets__Group__0 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getArrayBracketsAccess().getGroup()); 
+            }
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:2477:1: ( rule__ArrayBrackets__Group__0 )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:2477:2: rule__ArrayBrackets__Group__0
+            {
+            pushFollow(FOLLOW_rule__ArrayBrackets__Group__0_in_ruleArrayBrackets5218);
+            rule__ArrayBrackets__Group__0();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getArrayBracketsAccess().getGroup()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleArrayBrackets"
+
+
+    // $ANTLR start "entryRuleXFunctionTypeRef"
+    // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:2489:1: entryRuleXFunctionTypeRef : ruleXFunctionTypeRef EOF ;
+    public final void entryRuleXFunctionTypeRef() throws RecognitionException {
+        try {
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:2490:1: ( ruleXFunctionTypeRef EOF )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:2491:1: ruleXFunctionTypeRef EOF
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXFunctionTypeRefRule()); 
+            }
+            pushFollow(FOLLOW_ruleXFunctionTypeRef_in_entryRuleXFunctionTypeRef5245);
+            ruleXFunctionTypeRef();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXFunctionTypeRefRule()); 
+            }
+            match(input,EOF,FOLLOW_EOF_in_entryRuleXFunctionTypeRef5252); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleXFunctionTypeRef"
+
+
+    // $ANTLR start "ruleXFunctionTypeRef"
+    // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:2498:1: ruleXFunctionTypeRef : ( ( rule__XFunctionTypeRef__Group__0 ) ) ;
+    public final void ruleXFunctionTypeRef() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:2502:2: ( ( ( rule__XFunctionTypeRef__Group__0 ) ) )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:2503:1: ( ( rule__XFunctionTypeRef__Group__0 ) )
+            {
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:2503:1: ( ( rule__XFunctionTypeRef__Group__0 ) )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:2504:1: ( rule__XFunctionTypeRef__Group__0 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXFunctionTypeRefAccess().getGroup()); 
+            }
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:2505:1: ( rule__XFunctionTypeRef__Group__0 )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:2505:2: rule__XFunctionTypeRef__Group__0
+            {
+            pushFollow(FOLLOW_rule__XFunctionTypeRef__Group__0_in_ruleXFunctionTypeRef5278);
+            rule__XFunctionTypeRef__Group__0();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXFunctionTypeRefAccess().getGroup()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleXFunctionTypeRef"
+
+
+    // $ANTLR start "entryRuleJvmParameterizedTypeReference"
+    // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:2517:1: entryRuleJvmParameterizedTypeReference : ruleJvmParameterizedTypeReference EOF ;
+    public final void entryRuleJvmParameterizedTypeReference() throws RecognitionException {
+        try {
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:2518:1: ( ruleJvmParameterizedTypeReference EOF )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:2519:1: ruleJvmParameterizedTypeReference EOF
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getJvmParameterizedTypeReferenceRule()); 
+            }
+            pushFollow(FOLLOW_ruleJvmParameterizedTypeReference_in_entryRuleJvmParameterizedTypeReference5305);
+            ruleJvmParameterizedTypeReference();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getJvmParameterizedTypeReferenceRule()); 
+            }
+            match(input,EOF,FOLLOW_EOF_in_entryRuleJvmParameterizedTypeReference5312); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleJvmParameterizedTypeReference"
+
+
+    // $ANTLR start "ruleJvmParameterizedTypeReference"
+    // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:2526:1: ruleJvmParameterizedTypeReference : ( ( rule__JvmParameterizedTypeReference__Group__0 ) ) ;
+    public final void ruleJvmParameterizedTypeReference() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:2530:2: ( ( ( rule__JvmParameterizedTypeReference__Group__0 ) ) )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:2531:1: ( ( rule__JvmParameterizedTypeReference__Group__0 ) )
+            {
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:2531:1: ( ( rule__JvmParameterizedTypeReference__Group__0 ) )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:2532:1: ( rule__JvmParameterizedTypeReference__Group__0 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getJvmParameterizedTypeReferenceAccess().getGroup()); 
+            }
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:2533:1: ( rule__JvmParameterizedTypeReference__Group__0 )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:2533:2: rule__JvmParameterizedTypeReference__Group__0
+            {
+            pushFollow(FOLLOW_rule__JvmParameterizedTypeReference__Group__0_in_ruleJvmParameterizedTypeReference5338);
+            rule__JvmParameterizedTypeReference__Group__0();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getJvmParameterizedTypeReferenceAccess().getGroup()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleJvmParameterizedTypeReference"
+
+
+    // $ANTLR start "entryRuleJvmArgumentTypeReference"
+    // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:2545:1: entryRuleJvmArgumentTypeReference : ruleJvmArgumentTypeReference EOF ;
+    public final void entryRuleJvmArgumentTypeReference() throws RecognitionException {
+        try {
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:2546:1: ( ruleJvmArgumentTypeReference EOF )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:2547:1: ruleJvmArgumentTypeReference EOF
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getJvmArgumentTypeReferenceRule()); 
+            }
+            pushFollow(FOLLOW_ruleJvmArgumentTypeReference_in_entryRuleJvmArgumentTypeReference5365);
+            ruleJvmArgumentTypeReference();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getJvmArgumentTypeReferenceRule()); 
+            }
+            match(input,EOF,FOLLOW_EOF_in_entryRuleJvmArgumentTypeReference5372); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleJvmArgumentTypeReference"
+
+
+    // $ANTLR start "ruleJvmArgumentTypeReference"
+    // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:2554:1: ruleJvmArgumentTypeReference : ( ( rule__JvmArgumentTypeReference__Alternatives ) ) ;
+    public final void ruleJvmArgumentTypeReference() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:2558:2: ( ( ( rule__JvmArgumentTypeReference__Alternatives ) ) )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:2559:1: ( ( rule__JvmArgumentTypeReference__Alternatives ) )
+            {
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:2559:1: ( ( rule__JvmArgumentTypeReference__Alternatives ) )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:2560:1: ( rule__JvmArgumentTypeReference__Alternatives )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getJvmArgumentTypeReferenceAccess().getAlternatives()); 
+            }
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:2561:1: ( rule__JvmArgumentTypeReference__Alternatives )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:2561:2: rule__JvmArgumentTypeReference__Alternatives
+            {
+            pushFollow(FOLLOW_rule__JvmArgumentTypeReference__Alternatives_in_ruleJvmArgumentTypeReference5398);
+            rule__JvmArgumentTypeReference__Alternatives();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getJvmArgumentTypeReferenceAccess().getAlternatives()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleJvmArgumentTypeReference"
+
+
+    // $ANTLR start "entryRuleJvmWildcardTypeReference"
+    // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:2573:1: entryRuleJvmWildcardTypeReference : ruleJvmWildcardTypeReference EOF ;
+    public final void entryRuleJvmWildcardTypeReference() throws RecognitionException {
+        try {
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:2574:1: ( ruleJvmWildcardTypeReference EOF )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:2575:1: ruleJvmWildcardTypeReference EOF
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getJvmWildcardTypeReferenceRule()); 
+            }
+            pushFollow(FOLLOW_ruleJvmWildcardTypeReference_in_entryRuleJvmWildcardTypeReference5425);
+            ruleJvmWildcardTypeReference();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getJvmWildcardTypeReferenceRule()); 
+            }
+            match(input,EOF,FOLLOW_EOF_in_entryRuleJvmWildcardTypeReference5432); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleJvmWildcardTypeReference"
+
+
+    // $ANTLR start "ruleJvmWildcardTypeReference"
+    // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:2582:1: ruleJvmWildcardTypeReference : ( ( rule__JvmWildcardTypeReference__Group__0 ) ) ;
+    public final void ruleJvmWildcardTypeReference() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:2586:2: ( ( ( rule__JvmWildcardTypeReference__Group__0 ) ) )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:2587:1: ( ( rule__JvmWildcardTypeReference__Group__0 ) )
+            {
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:2587:1: ( ( rule__JvmWildcardTypeReference__Group__0 ) )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:2588:1: ( rule__JvmWildcardTypeReference__Group__0 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getJvmWildcardTypeReferenceAccess().getGroup()); 
+            }
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:2589:1: ( rule__JvmWildcardTypeReference__Group__0 )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:2589:2: rule__JvmWildcardTypeReference__Group__0
+            {
+            pushFollow(FOLLOW_rule__JvmWildcardTypeReference__Group__0_in_ruleJvmWildcardTypeReference5458);
+            rule__JvmWildcardTypeReference__Group__0();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getJvmWildcardTypeReferenceAccess().getGroup()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleJvmWildcardTypeReference"
+
+
+    // $ANTLR start "entryRuleJvmUpperBound"
+    // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:2601:1: entryRuleJvmUpperBound : ruleJvmUpperBound EOF ;
+    public final void entryRuleJvmUpperBound() throws RecognitionException {
+        try {
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:2602:1: ( ruleJvmUpperBound EOF )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:2603:1: ruleJvmUpperBound EOF
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getJvmUpperBoundRule()); 
+            }
+            pushFollow(FOLLOW_ruleJvmUpperBound_in_entryRuleJvmUpperBound5485);
+            ruleJvmUpperBound();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getJvmUpperBoundRule()); 
+            }
+            match(input,EOF,FOLLOW_EOF_in_entryRuleJvmUpperBound5492); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleJvmUpperBound"
+
+
+    // $ANTLR start "ruleJvmUpperBound"
+    // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:2610:1: ruleJvmUpperBound : ( ( rule__JvmUpperBound__Group__0 ) ) ;
+    public final void ruleJvmUpperBound() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:2614:2: ( ( ( rule__JvmUpperBound__Group__0 ) ) )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:2615:1: ( ( rule__JvmUpperBound__Group__0 ) )
+            {
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:2615:1: ( ( rule__JvmUpperBound__Group__0 ) )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:2616:1: ( rule__JvmUpperBound__Group__0 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getJvmUpperBoundAccess().getGroup()); 
+            }
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:2617:1: ( rule__JvmUpperBound__Group__0 )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:2617:2: rule__JvmUpperBound__Group__0
+            {
+            pushFollow(FOLLOW_rule__JvmUpperBound__Group__0_in_ruleJvmUpperBound5518);
+            rule__JvmUpperBound__Group__0();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getJvmUpperBoundAccess().getGroup()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleJvmUpperBound"
+
+
+    // $ANTLR start "entryRuleJvmUpperBoundAnded"
+    // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:2629:1: entryRuleJvmUpperBoundAnded : ruleJvmUpperBoundAnded EOF ;
+    public final void entryRuleJvmUpperBoundAnded() throws RecognitionException {
+        try {
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:2630:1: ( ruleJvmUpperBoundAnded EOF )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:2631:1: ruleJvmUpperBoundAnded EOF
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getJvmUpperBoundAndedRule()); 
+            }
+            pushFollow(FOLLOW_ruleJvmUpperBoundAnded_in_entryRuleJvmUpperBoundAnded5545);
+            ruleJvmUpperBoundAnded();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getJvmUpperBoundAndedRule()); 
+            }
+            match(input,EOF,FOLLOW_EOF_in_entryRuleJvmUpperBoundAnded5552); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleJvmUpperBoundAnded"
+
+
+    // $ANTLR start "ruleJvmUpperBoundAnded"
+    // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:2638:1: ruleJvmUpperBoundAnded : ( ( rule__JvmUpperBoundAnded__Group__0 ) ) ;
+    public final void ruleJvmUpperBoundAnded() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:2642:2: ( ( ( rule__JvmUpperBoundAnded__Group__0 ) ) )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:2643:1: ( ( rule__JvmUpperBoundAnded__Group__0 ) )
+            {
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:2643:1: ( ( rule__JvmUpperBoundAnded__Group__0 ) )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:2644:1: ( rule__JvmUpperBoundAnded__Group__0 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getJvmUpperBoundAndedAccess().getGroup()); 
+            }
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:2645:1: ( rule__JvmUpperBoundAnded__Group__0 )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:2645:2: rule__JvmUpperBoundAnded__Group__0
+            {
+            pushFollow(FOLLOW_rule__JvmUpperBoundAnded__Group__0_in_ruleJvmUpperBoundAnded5578);
+            rule__JvmUpperBoundAnded__Group__0();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getJvmUpperBoundAndedAccess().getGroup()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleJvmUpperBoundAnded"
+
+
+    // $ANTLR start "entryRuleJvmLowerBound"
+    // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:2657:1: entryRuleJvmLowerBound : ruleJvmLowerBound EOF ;
+    public final void entryRuleJvmLowerBound() throws RecognitionException {
+        try {
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:2658:1: ( ruleJvmLowerBound EOF )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:2659:1: ruleJvmLowerBound EOF
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getJvmLowerBoundRule()); 
+            }
+            pushFollow(FOLLOW_ruleJvmLowerBound_in_entryRuleJvmLowerBound5605);
+            ruleJvmLowerBound();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getJvmLowerBoundRule()); 
+            }
+            match(input,EOF,FOLLOW_EOF_in_entryRuleJvmLowerBound5612); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleJvmLowerBound"
+
+
+    // $ANTLR start "ruleJvmLowerBound"
+    // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:2666:1: ruleJvmLowerBound : ( ( rule__JvmLowerBound__Group__0 ) ) ;
+    public final void ruleJvmLowerBound() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:2670:2: ( ( ( rule__JvmLowerBound__Group__0 ) ) )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:2671:1: ( ( rule__JvmLowerBound__Group__0 ) )
+            {
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:2671:1: ( ( rule__JvmLowerBound__Group__0 ) )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:2672:1: ( rule__JvmLowerBound__Group__0 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getJvmLowerBoundAccess().getGroup()); 
+            }
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:2673:1: ( rule__JvmLowerBound__Group__0 )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:2673:2: rule__JvmLowerBound__Group__0
+            {
+            pushFollow(FOLLOW_rule__JvmLowerBound__Group__0_in_ruleJvmLowerBound5638);
+            rule__JvmLowerBound__Group__0();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getJvmLowerBoundAccess().getGroup()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleJvmLowerBound"
+
+
+    // $ANTLR start "entryRuleJvmLowerBoundAnded"
+    // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:2685:1: entryRuleJvmLowerBoundAnded : ruleJvmLowerBoundAnded EOF ;
+    public final void entryRuleJvmLowerBoundAnded() throws RecognitionException {
+        try {
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:2686:1: ( ruleJvmLowerBoundAnded EOF )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:2687:1: ruleJvmLowerBoundAnded EOF
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getJvmLowerBoundAndedRule()); 
+            }
+            pushFollow(FOLLOW_ruleJvmLowerBoundAnded_in_entryRuleJvmLowerBoundAnded5665);
+            ruleJvmLowerBoundAnded();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getJvmLowerBoundAndedRule()); 
+            }
+            match(input,EOF,FOLLOW_EOF_in_entryRuleJvmLowerBoundAnded5672); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleJvmLowerBoundAnded"
+
+
+    // $ANTLR start "ruleJvmLowerBoundAnded"
+    // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:2694:1: ruleJvmLowerBoundAnded : ( ( rule__JvmLowerBoundAnded__Group__0 ) ) ;
+    public final void ruleJvmLowerBoundAnded() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:2698:2: ( ( ( rule__JvmLowerBoundAnded__Group__0 ) ) )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:2699:1: ( ( rule__JvmLowerBoundAnded__Group__0 ) )
+            {
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:2699:1: ( ( rule__JvmLowerBoundAnded__Group__0 ) )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:2700:1: ( rule__JvmLowerBoundAnded__Group__0 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getJvmLowerBoundAndedAccess().getGroup()); 
+            }
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:2701:1: ( rule__JvmLowerBoundAnded__Group__0 )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:2701:2: rule__JvmLowerBoundAnded__Group__0
+            {
+            pushFollow(FOLLOW_rule__JvmLowerBoundAnded__Group__0_in_ruleJvmLowerBoundAnded5698);
+            rule__JvmLowerBoundAnded__Group__0();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getJvmLowerBoundAndedAccess().getGroup()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleJvmLowerBoundAnded"
+
+
+    // $ANTLR start "entryRuleQualifiedNameWithWildcard"
+    // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:2715:1: entryRuleQualifiedNameWithWildcard : ruleQualifiedNameWithWildcard EOF ;
+    public final void entryRuleQualifiedNameWithWildcard() throws RecognitionException {
+        try {
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:2716:1: ( ruleQualifiedNameWithWildcard EOF )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:2717:1: ruleQualifiedNameWithWildcard EOF
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getQualifiedNameWithWildcardRule()); 
+            }
+            pushFollow(FOLLOW_ruleQualifiedNameWithWildcard_in_entryRuleQualifiedNameWithWildcard5727);
+            ruleQualifiedNameWithWildcard();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getQualifiedNameWithWildcardRule()); 
+            }
+            match(input,EOF,FOLLOW_EOF_in_entryRuleQualifiedNameWithWildcard5734); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleQualifiedNameWithWildcard"
+
+
+    // $ANTLR start "ruleQualifiedNameWithWildcard"
+    // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:2724:1: ruleQualifiedNameWithWildcard : ( ( rule__QualifiedNameWithWildcard__Group__0 ) ) ;
+    public final void ruleQualifiedNameWithWildcard() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:2728:2: ( ( ( rule__QualifiedNameWithWildcard__Group__0 ) ) )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:2729:1: ( ( rule__QualifiedNameWithWildcard__Group__0 ) )
+            {
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:2729:1: ( ( rule__QualifiedNameWithWildcard__Group__0 ) )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:2730:1: ( rule__QualifiedNameWithWildcard__Group__0 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getQualifiedNameWithWildcardAccess().getGroup()); 
+            }
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:2731:1: ( rule__QualifiedNameWithWildcard__Group__0 )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:2731:2: rule__QualifiedNameWithWildcard__Group__0
+            {
+            pushFollow(FOLLOW_rule__QualifiedNameWithWildcard__Group__0_in_ruleQualifiedNameWithWildcard5760);
+            rule__QualifiedNameWithWildcard__Group__0();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getQualifiedNameWithWildcardAccess().getGroup()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleQualifiedNameWithWildcard"
+
+
+    // $ANTLR start "entryRuleXImportDeclaration"
+    // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:2745:1: entryRuleXImportDeclaration : ruleXImportDeclaration EOF ;
+    public final void entryRuleXImportDeclaration() throws RecognitionException {
+        try {
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:2746:1: ( ruleXImportDeclaration EOF )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:2747:1: ruleXImportDeclaration EOF
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXImportDeclarationRule()); 
+            }
+            pushFollow(FOLLOW_ruleXImportDeclaration_in_entryRuleXImportDeclaration5789);
+            ruleXImportDeclaration();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXImportDeclarationRule()); 
+            }
+            match(input,EOF,FOLLOW_EOF_in_entryRuleXImportDeclaration5796); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleXImportDeclaration"
+
+
+    // $ANTLR start "ruleXImportDeclaration"
+    // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:2754:1: ruleXImportDeclaration : ( ( rule__XImportDeclaration__Group__0 ) ) ;
+    public final void ruleXImportDeclaration() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:2758:2: ( ( ( rule__XImportDeclaration__Group__0 ) ) )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:2759:1: ( ( rule__XImportDeclaration__Group__0 ) )
+            {
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:2759:1: ( ( rule__XImportDeclaration__Group__0 ) )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:2760:1: ( rule__XImportDeclaration__Group__0 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getXImportDeclarationAccess().getGroup()); 
+            }
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:2761:1: ( rule__XImportDeclaration__Group__0 )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:2761:2: rule__XImportDeclaration__Group__0
+            {
+            pushFollow(FOLLOW_rule__XImportDeclaration__Group__0_in_ruleXImportDeclaration5822);
+            rule__XImportDeclaration__Group__0();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getXImportDeclarationAccess().getGroup()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleXImportDeclaration"
+
+
+    // $ANTLR start "entryRuleQualifiedNameInStaticImport"
+    // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:2773:1: entryRuleQualifiedNameInStaticImport : ruleQualifiedNameInStaticImport EOF ;
+    public final void entryRuleQualifiedNameInStaticImport() throws RecognitionException {
+        try {
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:2774:1: ( ruleQualifiedNameInStaticImport EOF )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:2775:1: ruleQualifiedNameInStaticImport EOF
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getQualifiedNameInStaticImportRule()); 
+            }
+            pushFollow(FOLLOW_ruleQualifiedNameInStaticImport_in_entryRuleQualifiedNameInStaticImport5849);
+            ruleQualifiedNameInStaticImport();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getQualifiedNameInStaticImportRule()); 
+            }
+            match(input,EOF,FOLLOW_EOF_in_entryRuleQualifiedNameInStaticImport5856); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleQualifiedNameInStaticImport"
+
+
+    // $ANTLR start "ruleQualifiedNameInStaticImport"
+    // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:2782:1: ruleQualifiedNameInStaticImport : ( ( ( rule__QualifiedNameInStaticImport__Group__0 ) ) ( ( rule__QualifiedNameInStaticImport__Group__0 )* ) ) ;
+    public final void ruleQualifiedNameInStaticImport() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:2786:2: ( ( ( ( rule__QualifiedNameInStaticImport__Group__0 ) ) ( ( rule__QualifiedNameInStaticImport__Group__0 )* ) ) )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:2787:1: ( ( ( rule__QualifiedNameInStaticImport__Group__0 ) ) ( ( rule__QualifiedNameInStaticImport__Group__0 )* ) )
+            {
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:2787:1: ( ( ( rule__QualifiedNameInStaticImport__Group__0 ) ) ( ( rule__QualifiedNameInStaticImport__Group__0 )* ) )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:2788:1: ( ( rule__QualifiedNameInStaticImport__Group__0 ) ) ( ( rule__QualifiedNameInStaticImport__Group__0 )* )
+            {
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:2788:1: ( ( rule__QualifiedNameInStaticImport__Group__0 ) )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:2789:1: ( rule__QualifiedNameInStaticImport__Group__0 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getQualifiedNameInStaticImportAccess().getGroup()); 
+            }
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:2790:1: ( rule__QualifiedNameInStaticImport__Group__0 )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:2790:2: rule__QualifiedNameInStaticImport__Group__0
+            {
+            pushFollow(FOLLOW_rule__QualifiedNameInStaticImport__Group__0_in_ruleQualifiedNameInStaticImport5884);
+            rule__QualifiedNameInStaticImport__Group__0();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getQualifiedNameInStaticImportAccess().getGroup()); 
+            }
+
+            }
+
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:2793:1: ( ( rule__QualifiedNameInStaticImport__Group__0 )* )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:2794:1: ( rule__QualifiedNameInStaticImport__Group__0 )*
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getQualifiedNameInStaticImportAccess().getGroup()); 
+            }
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:2795:1: ( rule__QualifiedNameInStaticImport__Group__0 )*
+            loop2:
+            do {
+                int alt2=2;
+                int LA2_0 = input.LA(1);
+
+                if ( (LA2_0==RULE_ID) ) {
+                    int LA2_2 = input.LA(2);
+
+                    if ( (LA2_2==45) ) {
+                        alt2=1;
+                    }
+
+
+                }
+
+
+                switch (alt2) {
+            	case 1 :
+            	    // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:2795:2: rule__QualifiedNameInStaticImport__Group__0
+            	    {
+            	    pushFollow(FOLLOW_rule__QualifiedNameInStaticImport__Group__0_in_ruleQualifiedNameInStaticImport5896);
+            	    rule__QualifiedNameInStaticImport__Group__0();
+
+            	    state._fsp--;
+            	    if (state.failed) return ;
+
+            	    }
+            	    break;
+
+            	default :
+            	    break loop2;
+                }
+            } while (true);
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getQualifiedNameInStaticImportAccess().getGroup()); 
+            }
+
+            }
+
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleQualifiedNameInStaticImport"
+
+
+    // $ANTLR start "ruleTaskActionEnum"
+    // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:2809:1: ruleTaskActionEnum : ( ( rule__TaskActionEnum__Alternatives ) ) ;
+    public final void ruleTaskActionEnum() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:2813:1: ( ( ( rule__TaskActionEnum__Alternatives ) ) )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:2814:1: ( ( rule__TaskActionEnum__Alternatives ) )
+            {
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:2814:1: ( ( rule__TaskActionEnum__Alternatives ) )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:2815:1: ( rule__TaskActionEnum__Alternatives )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTaskActionEnumAccess().getAlternatives()); 
+            }
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:2816:1: ( rule__TaskActionEnum__Alternatives )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:2816:2: rule__TaskActionEnum__Alternatives
+            {
+            pushFollow(FOLLOW_rule__TaskActionEnum__Alternatives_in_ruleTaskActionEnum5936);
+            rule__TaskActionEnum__Alternatives();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTaskActionEnumAccess().getAlternatives()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleTaskActionEnum"
+
+
+    // $ANTLR start "ruleSelectWorkloadActionEnum"
+    // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:2828:1: ruleSelectWorkloadActionEnum : ( ( rule__SelectWorkloadActionEnum__Alternatives ) ) ;
+    public final void ruleSelectWorkloadActionEnum() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:2832:1: ( ( ( rule__SelectWorkloadActionEnum__Alternatives ) ) )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:2833:1: ( ( rule__SelectWorkloadActionEnum__Alternatives ) )
+            {
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:2833:1: ( ( rule__SelectWorkloadActionEnum__Alternatives ) )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:2834:1: ( rule__SelectWorkloadActionEnum__Alternatives )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getSelectWorkloadActionEnumAccess().getAlternatives()); 
+            }
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:2835:1: ( rule__SelectWorkloadActionEnum__Alternatives )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:2835:2: rule__SelectWorkloadActionEnum__Alternatives
+            {
+            pushFollow(FOLLOW_rule__SelectWorkloadActionEnum__Alternatives_in_ruleSelectWorkloadActionEnum5972);
+            rule__SelectWorkloadActionEnum__Alternatives();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getSelectWorkloadActionEnumAccess().getAlternatives()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleSelectWorkloadActionEnum"
+
+
+    // $ANTLR start "ruleDialogActionEnum"
+    // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:2847:1: ruleDialogActionEnum : ( ( rule__DialogActionEnum__Alternatives ) ) ;
+    public final void ruleDialogActionEnum() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:2851:1: ( ( ( rule__DialogActionEnum__Alternatives ) ) )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:2852:1: ( ( rule__DialogActionEnum__Alternatives ) )
+            {
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:2852:1: ( ( rule__DialogActionEnum__Alternatives ) )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:2853:1: ( rule__DialogActionEnum__Alternatives )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getDialogActionEnumAccess().getAlternatives()); 
+            }
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:2854:1: ( rule__DialogActionEnum__Alternatives )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:2854:2: rule__DialogActionEnum__Alternatives
+            {
+            pushFollow(FOLLOW_rule__DialogActionEnum__Alternatives_in_ruleDialogActionEnum6008);
+            rule__DialogActionEnum__Alternatives();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getDialogActionEnumAccess().getAlternatives()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleDialogActionEnum"
+
+
+    // $ANTLR start "ruleReportActionEnum"
+    // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:2866:1: ruleReportActionEnum : ( ( rule__ReportActionEnum__Alternatives ) ) ;
+    public final void ruleReportActionEnum() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:2870:1: ( ( ( rule__ReportActionEnum__Alternatives ) ) )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:2871:1: ( ( rule__ReportActionEnum__Alternatives ) )
+            {
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:2871:1: ( ( rule__ReportActionEnum__Alternatives ) )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:2872:1: ( rule__ReportActionEnum__Alternatives )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getReportActionEnumAccess().getAlternatives()); 
+            }
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:2873:1: ( rule__ReportActionEnum__Alternatives )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:2873:2: rule__ReportActionEnum__Alternatives
+            {
+            pushFollow(FOLLOW_rule__ReportActionEnum__Alternatives_in_ruleReportActionEnum6044);
+            rule__ReportActionEnum__Alternatives();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getReportActionEnumAccess().getAlternatives()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleReportActionEnum"
+
+
+    // $ANTLR start "ruleChartActionEnum"
+    // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:2885:1: ruleChartActionEnum : ( ( 'Download' ) ) ;
+    public final void ruleChartActionEnum() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:2889:1: ( ( ( 'Download' ) ) )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:2890:1: ( ( 'Download' ) )
+            {
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:2890:1: ( ( 'Download' ) )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:2891:1: ( 'Download' )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getChartActionEnumAccess().getCHART_ACTION_DOWNLOADEnumLiteralDeclaration()); 
+            }
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:2892:1: ( 'Download' )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:2892:3: 'Download'
+            {
+            match(input,16,FOLLOW_16_in_ruleChartActionEnum6081); if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getChartActionEnumAccess().getCHART_ACTION_DOWNLOADEnumLiteralDeclaration()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleChartActionEnum"
+
+
+    // $ANTLR start "ruleWorkflowActionEnum"
+    // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:2905:1: ruleWorkflowActionEnum : ( ( 'Start' ) ) ;
+    public final void ruleWorkflowActionEnum() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:2909:1: ( ( ( 'Start' ) ) )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:2910:1: ( ( 'Start' ) )
+            {
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:2910:1: ( ( 'Start' ) )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:2911:1: ( 'Start' )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getWorkflowActionEnumAccess().getWORKFLOW_ACTION_STARTEnumLiteralDeclaration()); 
+            }
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:2912:1: ( 'Start' )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:2912:3: 'Start'
+            {
+            match(input,17,FOLLOW_17_in_ruleWorkflowActionEnum6120); if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getWorkflowActionEnumAccess().getWORKFLOW_ACTION_STARTEnumLiteralDeclaration()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleWorkflowActionEnum"
+
+
+    // $ANTLR start "ruleDatainterchangeActionEnum"
+    // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:2925:1: ruleDatainterchangeActionEnum : ( ( rule__DatainterchangeActionEnum__Alternatives ) ) ;
+    public final void ruleDatainterchangeActionEnum() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:2929:1: ( ( ( rule__DatainterchangeActionEnum__Alternatives ) ) )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:2930:1: ( ( rule__DatainterchangeActionEnum__Alternatives ) )
+            {
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:2930:1: ( ( rule__DatainterchangeActionEnum__Alternatives ) )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:2931:1: ( rule__DatainterchangeActionEnum__Alternatives )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getDatainterchangeActionEnumAccess().getAlternatives()); 
+            }
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:2932:1: ( rule__DatainterchangeActionEnum__Alternatives )
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:2932:2: rule__DatainterchangeActionEnum__Alternatives
+            {
+            pushFollow(FOLLOW_rule__DatainterchangeActionEnum__Alternatives_in_ruleDatainterchangeActionEnum6158);
+            rule__DatainterchangeActionEnum__Alternatives();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getDatainterchangeActionEnumAccess().getAlternatives()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleDatainterchangeActionEnum"
+
+
+    // $ANTLR start "rule__ActionType__Alternatives"
+    // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:2943:1: rule__ActionType__Alternatives : ( ( ruleActionTask ) | ( ruleActionSelectWorkload ) | ( ruleActionDialog ) | ( ruleActionReport ) | ( ruleActionChart ) | ( ruleActionWorkflow ) | ( ruleActionGeneric ) | ( ruleActionDatainterchange ) );
+    public final void rule__ActionType__Alternatives() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:2947:1: ( ( ruleActionTask ) | ( ruleActionSelectWorkload ) | ( ruleActionDialog ) | ( ruleActionReport ) | ( ruleActionChart ) | ( ruleActionWorkflow ) | ( ruleActionGeneric ) | ( ruleActionDatainterchange ) )
+            int alt3=8;
+            switch ( input.LA(1) ) {
+            case 87:
+                {
+                alt3=1;
+                }
+                break;
+            case 88:
+                {
+                alt3=2;
+                }
+                break;
+            case 89:
+                {
+                alt3=3;
+                }
+                break;
+            case 90:
+                {
+                alt3=4;
+                }
+                break;
+            case 91:
+                {
+                alt3=5;
+                }
+                break;
+            case 92:
+                {
+                alt3=6;
+                }
+                break;
+            case 94:
+                {
+                alt3=7;
+                }
+                break;
+            case 93:
+                {
+                alt3=8;
+                }
+                break;
+            default:
+                if (state.backtracking>0) {state.failed=true; return ;}
+                NoViableAltException nvae =
+                    new NoViableAltException("", 3, 0, input);
+
+                throw nvae;
+            }
+
+            switch (alt3) {
+                case 1 :
+                    // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:2948:1: ( ruleActionTask )
+                    {
+                    // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:2948:1: ( ruleActionTask )
+                    // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:2949:1: ruleActionTask
+                    {
+                    if ( state.backtracking==0 ) {
+                       before(grammarAccess.getActionTypeAccess().getActionTaskParserRuleCall_0()); 
+                    }
+                    pushFollow(FOLLOW_ruleActionTask_in_rule__ActionType__Alternatives6193);
+                    ruleActionTask();
+
+                    state._fsp--;
+                    if (state.failed) return ;
+                    if ( state.backtracking==0 ) {
+                       after(grammarAccess.getActionTypeAccess().getActionTaskParserRuleCall_0()); 
+                    }
+
+                    }
+
+
+                    }
+                    break;
+                case 2 :
+                    // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:2954:6: ( ruleActionSelectWorkload )
+                    {
+                    // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:2954:6: ( ruleActionSelectWorkload )
+                    // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:2955:1: ruleActionSelectWorkload
+                    {
+                    if ( state.backtracking==0 ) {
+                       before(grammarAccess.getActionTypeAccess().getActionSelectWorkloadParserRuleCall_1()); 
+                    }
+                    pushFollow(FOLLOW_ruleActionSelectWorkload_in_rule__ActionType__Alternatives6210);
+                    ruleActionSelectWorkload();
+
+                    state._fsp--;
+                    if (state.failed) return ;
+                    if ( state.backtracking==0 ) {
+                       after(grammarAccess.getActionTypeAccess().getActionSelectWorkloadParserRuleCall_1()); 
+                    }
+
+                    }
+
+
+                    }
+                    break;
+                case 3 :
+                    // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:2960:6: ( ruleActionDialog )
+                    {
+                    // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:2960:6: ( ruleActionDialog )
+                    // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:2961:1: ruleActionDialog
+                    {
+                    if ( state.backtracking==0 ) {
+                       before(grammarAccess.getActionTypeAccess().getActionDialogParserRuleCall_2()); 
+                    }
+                    pushFollow(FOLLOW_ruleActionDialog_in_rule__ActionType__Alternatives6227);
+                    ruleActionDialog();
+
+                    state._fsp--;
+                    if (state.failed) return ;
+                    if ( state.backtracking==0 ) {
+                       after(grammarAccess.getActionTypeAccess().getActionDialogParserRuleCall_2()); 
+                    }
+
+                    }
+
+
+                    }
+                    break;
+                case 4 :
+                    // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:2966:6: ( ruleActionReport )
+                    {
+                    // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:2966:6: ( ruleActionReport )
+                    // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:2967:1: ruleActionReport
+                    {
+                    if ( state.backtracking==0 ) {
+                       before(grammarAccess.getActionTypeAccess().getActionReportParserRuleCall_3()); 
+                    }
+                    pushFollow(FOLLOW_ruleActionReport_in_rule__ActionType__Alternatives6244);
+                    ruleActionReport();
+
+                    state._fsp--;
+                    if (state.failed) return ;
+                    if ( state.backtracking==0 ) {
+                       after(grammarAccess.getActionTypeAccess().getActionReportParserRuleCall_3()); 
+                    }
+
+                    }
+
+
+                    }
+                    break;
+                case 5 :
+                    // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:2972:6: ( ruleActionChart )
+                    {
+                    // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:2972:6: ( ruleActionChart )
+                    // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:2973:1: ruleActionChart
+                    {
+                    if ( state.backtracking==0 ) {
+                       before(grammarAccess.getActionTypeAccess().getActionChartParserRuleCall_4()); 
+                    }
+                    pushFollow(FOLLOW_ruleActionChart_in_rule__ActionType__Alternatives6261);
+                    ruleActionChart();
+
+                    state._fsp--;
+                    if (state.failed) return ;
+                    if ( state.backtracking==0 ) {
+                       after(grammarAccess.getActionTypeAccess().getActionChartParserRuleCall_4()); 
+                    }
+
+                    }
+
+
+                    }
+                    break;
+                case 6 :
+                    // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:2978:6: ( ruleActionWorkflow )
+                    {
+                    // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:2978:6: ( ruleActionWorkflow )
+                    // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:2979:1: ruleActionWorkflow
+                    {
+                    if ( state.backtracking==0 ) {
+                       before(grammarAccess.getActionTypeAccess().getActionWorkflowParserRuleCall_5()); 
+                    }
+                    pushFollow(FOLLOW_ruleActionWorkflow_in_rule__ActionType__Alternatives6278);
+                    ruleActionWorkflow();
+
+                    state._fsp--;
+                    if (state.failed) return ;
+                    if ( state.backtracking==0 ) {
+                       after(grammarAccess.getActionTypeAccess().getActionWorkflowParserRuleCall_5()); 
+                    }
+
+                    }
+
+
+                    }
+                    break;
+                case 7 :
+                    // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:2984:6: ( ruleActionGeneric )
+                    {
+                    // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:2984:6: ( ruleActionGeneric )
+                    // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:2985:1: ruleActionGeneric
+                    {
+                    if ( state.backtracking==0 ) {
+                       before(grammarAccess.getActionTypeAccess().getActionGenericParserRuleCall_6()); 
+                    }
+                    pushFollow(FOLLOW_ruleActionGeneric_in_rule__ActionType__Alternatives6295);
+                    ruleActionGeneric();
+
+                    state._fsp--;
+                    if (state.failed) return ;
+                    if ( state.backtracking==0 ) {
+                       after(grammarAccess.getActionTypeAccess().getActionGenericParserRuleCall_6()); 
+                    }
+
+                    }
+
+
+                    }
+                    break;
+                case 8 :
+                    // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:2990:6: ( ruleActionDatainterchange )
+                    {
+                    // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:2990:6: ( ruleActionDatainterchange )
+                    // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:2991:1: ruleActionDatainterchange
+                    {
+                    if ( state.backtracking==0 ) {
+                       before(grammarAccess.getActionTypeAccess().getActionDatainterchangeParserRuleCall_7()); 
+                    }
+                    pushFollow(FOLLOW_ruleActionDatainterchange_in_rule__ActionType__Alternatives6312);
+                    ruleActionDatainterchange();
+
+                    state._fsp--;
+                    if (state.failed) return ;
+                    if ( state.backtracking==0 ) {
+                       after(grammarAccess.getActionTypeAccess().getActionDatainterchangeParserRuleCall_7()); 
+                    }
+
+                    }
+
+
+                    }
+                    break;
+
+            }
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ActionType__Alternatives"
+
+
+    // $ANTLR start "rule__XAnnotation__Alternatives_3_1"
+    // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:3001:1: rule__XAnnotation__Alternatives_3_1 : ( ( ( rule__XAnnotation__Group_3_1_0__0 ) ) | ( ( rule__XAnnotation__ValueAssignment_3_1_1 ) ) );
+    public final void rule__XAnnotation__Alternatives_3_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:3005:1: ( ( ( rule__XAnnotation__Group_3_1_0__0 ) ) | ( ( rule__XAnnotation__ValueAssignment_3_1_1 ) ) )
+            int alt4=2;
+            alt4 = dfa4.predict(input);
+            switch (alt4) {
+                case 1 :
+                    // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:3006:1: ( ( rule__XAnnotation__Group_3_1_0__0 ) )
+                    {
+                    // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:3006:1: ( ( rule__XAnnotation__Group_3_1_0__0 ) )
+                    // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:3007:1: ( rule__XAnnotation__Group_3_1_0__0 )
+                    {
+                    if ( state.backtracking==0 ) {
+                       before(grammarAccess.getXAnnotationAccess().getGroup_3_1_0()); 
+                    }
+                    // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:3008:1: ( rule__XAnnotation__Group_3_1_0__0 )
+                    // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:3008:2: rule__XAnnotation__Group_3_1_0__0
+                    {
+                    pushFollow(FOLLOW_rule__XAnnotation__Group_3_1_0__0_in_rule__XAnnotation__Alternatives_3_16344);
+                    rule__XAnnotation__Group_3_1_0__0();
+
+                    state._fsp--;
+                    if (state.failed) return ;
+
+                    }
+
+                    if ( state.backtracking==0 ) {
+                       after(grammarAccess.getXAnnotationAccess().getGroup_3_1_0()); 
+                    }
+
+                    }
+
+
+                    }
+                    break;
+                case 2 :
+                    // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:3012:6: ( ( rule__XAnnotation__ValueAssignment_3_1_1 ) )
+                    {
+                    // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:3012:6: ( ( rule__XAnnotation__ValueAssignment_3_1_1 ) )
+                    // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:3013:1: ( rule__XAnnotation__ValueAssignment_3_1_1 )
+                    {
+                    if ( state.backtracking==0 ) {
+                       before(grammarAccess.getXAnnotationAccess().getValueAssignment_3_1_1()); 
+                    }
+                    // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:3014:1: ( rule__XAnnotation__ValueAssignment_3_1_1 )
+                    // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:3014:2: rule__XAnnotation__ValueAssignment_3_1_1
+                    {
+                    pushFollow(FOLLOW_rule__XAnnotation__ValueAssignment_3_1_1_in_rule__XAnnotation__Alternatives_3_16362);
+                    rule__XAnnotation__ValueAssignment_3_1_1();
+
+                    state._fsp--;
+                    if (state.failed) return ;
+
+                    }
+
+                    if ( state.backtracking==0 ) {
+                       after(grammarAccess.getXAnnotationAccess().getValueAssignment_3_1_1()); 
+                    }
+
+                    }
+
+
+                    }
+                    break;
+
+            }
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XAnnotation__Alternatives_3_1"
+
+
+    // $ANTLR start "rule__XAnnotationElementValueOrCommaList__Alternatives"
+    // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:3023:1: rule__XAnnotationElementValueOrCommaList__Alternatives : ( ( ( rule__XAnnotationElementValueOrCommaList__Group_0__0 ) ) | ( ( rule__XAnnotationElementValueOrCommaList__Group_1__0 ) ) );
+    public final void rule__XAnnotationElementValueOrCommaList__Alternatives() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:3027:1: ( ( ( rule__XAnnotationElementValueOrCommaList__Group_0__0 ) ) | ( ( rule__XAnnotationElementValueOrCommaList__Group_1__0 ) ) )
+            int alt5=2;
+            alt5 = dfa5.predict(input);
+            switch (alt5) {
+                case 1 :
+                    // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:3028:1: ( ( rule__XAnnotationElementValueOrCommaList__Group_0__0 ) )
+                    {
+                    // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:3028:1: ( ( rule__XAnnotationElementValueOrCommaList__Group_0__0 ) )
+                    // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:3029:1: ( rule__XAnnotationElementValueOrCommaList__Group_0__0 )
+                    {
+                    if ( state.backtracking==0 ) {
+                       before(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getGroup_0()); 
+                    }
+                    // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:3030:1: ( rule__XAnnotationElementValueOrCommaList__Group_0__0 )
+                    // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:3030:2: rule__XAnnotationElementValueOrCommaList__Group_0__0
+                    {
+                    pushFollow(FOLLOW_rule__XAnnotationElementValueOrCommaList__Group_0__0_in_rule__XAnnotationElementValueOrCommaList__Alternatives6395);
+                    rule__XAnnotationElementValueOrCommaList__Group_0__0();
+
+                    state._fsp--;
+                    if (state.failed) return ;
+
+                    }
+
+                    if ( state.backtracking==0 ) {
+                       after(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getGroup_0()); 
+                    }
+
+                    }
+
+
+                    }
+                    break;
+                case 2 :
+                    // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:3034:6: ( ( rule__XAnnotationElementValueOrCommaList__Group_1__0 ) )
+                    {
+                    // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:3034:6: ( ( rule__XAnnotationElementValueOrCommaList__Group_1__0 ) )
+                    // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:3035:1: ( rule__XAnnotationElementValueOrCommaList__Group_1__0 )
+                    {
+                    if ( state.backtracking==0 ) {
+                       before(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getGroup_1()); 
+                    }
+                    // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:3036:1: ( rule__XAnnotationElementValueOrCommaList__Group_1__0 )
+                    // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:3036:2: rule__XAnnotationElementValueOrCommaList__Group_1__0
+                    {
+                    pushFollow(FOLLOW_rule__XAnnotationElementValueOrCommaList__Group_1__0_in_rule__XAnnotationElementValueOrCommaList__Alternatives6413);
+                    rule__XAnnotationElementValueOrCommaList__Group_1__0();
+
+                    state._fsp--;
+                    if (state.failed) return ;
+
+                    }
+
+                    if ( state.backtracking==0 ) {
+                       after(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getGroup_1()); 
+                    }
+
+                    }
+
+
+                    }
+                    break;
+
+            }
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XAnnotationElementValueOrCommaList__Alternatives"
+
+
+    // $ANTLR start "rule__XAnnotationElementValue__Alternatives"
+    // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:3045:1: rule__XAnnotationElementValue__Alternatives : ( ( ( rule__XAnnotationElementValue__Group_0__0 ) ) | ( ruleXAnnotationOrExpression ) );
+    public final void rule__XAnnotationElementValue__Alternatives() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:3049:1: ( ( ( rule__XAnnotationElementValue__Group_0__0 ) ) | ( ruleXAnnotationOrExpression ) )
+            int alt6=2;
+            alt6 = dfa6.predict(input);
+            switch (alt6) {
+                case 1 :
+                    // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:3050:1: ( ( rule__XAnnotationElementValue__Group_0__0 ) )
+                    {
+                    // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:3050:1: ( ( rule__XAnnotationElementValue__Group_0__0 ) )
+                    // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:3051:1: ( rule__XAnnotationElementValue__Group_0__0 )
+                    {
+                    if ( state.backtracking==0 ) {
+                       before(grammarAccess.getXAnnotationElementValueAccess().getGroup_0()); 
+                    }
+                    // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:3052:1: ( rule__XAnnotationElementValue__Group_0__0 )
+                    // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:3052:2: rule__XAnnotationElementValue__Group_0__0
+                    {
+                    pushFollow(FOLLOW_rule__XAnnotationElementValue__Group_0__0_in_rule__XAnnotationElementValue__Alternatives6446);
+                    rule__XAnnotationElementValue__Group_0__0();
+
+                    state._fsp--;
+                    if (state.failed) return ;
+
+                    }
+
+                    if ( state.backtracking==0 ) {
+                       after(grammarAccess.getXAnnotationElementValueAccess().getGroup_0()); 
+                    }
+
+                    }
+
+
+                    }
+                    break;
+                case 2 :
+                    // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:3056:6: ( ruleXAnnotationOrExpression )
+                    {
+                    // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:3056:6: ( ruleXAnnotationOrExpression )
+                    // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:3057:1: ruleXAnnotationOrExpression
+                    {
+                    if ( state.backtracking==0 ) {
+                       before(grammarAccess.getXAnnotationElementValueAccess().getXAnnotationOrExpressionParserRuleCall_1()); 
+                    }
+                    pushFollow(FOLLOW_ruleXAnnotationOrExpression_in_rule__XAnnotationElementValue__Alternatives6464);
+                    ruleXAnnotationOrExpression();
+
+                    state._fsp--;
+                    if (state.failed) return ;
+                    if ( state.backtracking==0 ) {
+                       after(grammarAccess.getXAnnotationElementValueAccess().getXAnnotationOrExpressionParserRuleCall_1()); 
+                    }
+
+                    }
+
+
+                    }
+                    break;
+
+            }
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XAnnotationElementValue__Alternatives"
+
+
+    // $ANTLR start "rule__XAnnotationOrExpression__Alternatives"
+    // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:3067:1: rule__XAnnotationOrExpression__Alternatives : ( ( ruleXAnnotation ) | ( ruleXExpression ) );
+    public final void rule__XAnnotationOrExpression__Alternatives() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:3071:1: ( ( ruleXAnnotation ) | ( ruleXExpression ) )
+            int alt7=2;
+            int LA7_0 = input.LA(1);
+
+            if ( (LA7_0==95) ) {
+                alt7=1;
+            }
+            else if ( ((LA7_0>=RULE_ID && LA7_0<=RULE_DECIMAL)||LA7_0==29||(LA7_0>=36 && LA7_0<=37)||LA7_0==42||(LA7_0>=47 && LA7_0<=52)||LA7_0==77||LA7_0==96||(LA7_0>=100 && LA7_0<=101)||LA7_0==105||LA7_0==107||(LA7_0>=111 && LA7_0<=119)||LA7_0==121||LA7_0==130) ) {
+                alt7=2;
+            }
+            else {
+                if (state.backtracking>0) {state.failed=true; return ;}
+                NoViableAltException nvae =
+                    new NoViableAltException("", 7, 0, input);
+
+                throw nvae;
+            }
+            switch (alt7) {
+                case 1 :
+                    // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:3072:1: ( ruleXAnnotation )
+                    {
+                    // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:3072:1: ( ruleXAnnotation )
+                    // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:3073:1: ruleXAnnotation
+                    {
+                    if ( state.backtracking==0 ) {
+                       before(grammarAccess.getXAnnotationOrExpressionAccess().getXAnnotationParserRuleCall_0()); 
+                    }
+                    pushFollow(FOLLOW_ruleXAnnotation_in_rule__XAnnotationOrExpression__Alternatives6496);
+                    ruleXAnnotation();
+
+                    state._fsp--;
+                    if (state.failed) return ;
+                    if ( state.backtracking==0 ) {
+                       after(grammarAccess.getXAnnotationOrExpressionAccess().getXAnnotationParserRuleCall_0()); 
+                    }
+
+                    }
+
+
+                    }
+                    break;
+                case 2 :
+                    // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:3078:6: ( ruleXExpression )
+                    {
+                    // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:3078:6: ( ruleXExpression )
+                    // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:3079:1: ruleXExpression
+                    {
+                    if ( state.backtracking==0 ) {
+                       before(grammarAccess.getXAnnotationOrExpressionAccess().getXExpressionParserRuleCall_1()); 
+                    }
+                    pushFollow(FOLLOW_ruleXExpression_in_rule__XAnnotationOrExpression__Alternatives6513);
+                    ruleXExpression();
+
+                    state._fsp--;
+                    if (state.failed) return ;
+                    if ( state.backtracking==0 ) {
+                       after(grammarAccess.getXAnnotationOrExpressionAccess().getXExpressionParserRuleCall_1()); 
+                    }
+
+                    }
+
+
+                    }
+                    break;
+
+            }
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XAnnotationOrExpression__Alternatives"
+
+
+    // $ANTLR start "rule__XAssignment__Alternatives"
+    // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:3089:1: rule__XAssignment__Alternatives : ( ( ( rule__XAssignment__Group_0__0 ) ) | ( ( rule__XAssignment__Group_1__0 ) ) );
+    public final void rule__XAssignment__Alternatives() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:3093:1: ( ( ( rule__XAssignment__Group_0__0 ) ) | ( ( rule__XAssignment__Group_1__0 ) ) )
+            int alt8=2;
+            switch ( input.LA(1) ) {
+            case RULE_ID:
+                {
+                int LA8_1 = input.LA(2);
+
+                if ( (LA8_1==13) ) {
+                    alt8=1;
+                }
+                else if ( (LA8_1==EOF||(LA8_1>=RULE_ID && LA8_1<=RULE_DECIMAL)||(LA8_1>=14 && LA8_1<=15)||(LA8_1>=18 && LA8_1<=52)||(LA8_1>=77 && LA8_1<=78)||(LA8_1>=96 && LA8_1<=122)||(LA8_1>=126 && LA8_1<=127)||(LA8_1>=129 && LA8_1<=130)) ) {
+                    alt8=2;
+                }
+                else {
+                    if (state.backtracking>0) {state.failed=true; return ;}
+                    NoViableAltException nvae =
+                        new NoViableAltException("", 8, 1, input);
+
+                    throw nvae;
+                }
+                }
+                break;
+            case 47:
+                {
+                int LA8_2 = input.LA(2);
+
+                if ( (LA8_2==13) ) {
+                    alt8=1;
+                }
+                else if ( (LA8_2==EOF||(LA8_2>=RULE_ID && LA8_2<=RULE_DECIMAL)||(LA8_2>=14 && LA8_2<=15)||(LA8_2>=18 && LA8_2<=52)||(LA8_2>=77 && LA8_2<=78)||(LA8_2>=96 && LA8_2<=122)||(LA8_2>=126 && LA8_2<=127)||(LA8_2>=129 && LA8_2<=130)) ) {
+                    alt8=2;
+                }
+                else {
+                    if (state.backtracking>0) {state.failed=true; return ;}
+                    NoViableAltException nvae =
+                        new NoViableAltException("", 8, 2, input);
+
+                    throw nvae;
+                }
+                }
+                break;
+            case 48:
+                {
+                int LA8_3 = input.LA(2);
+
+                if ( (LA8_3==13) ) {
+                    alt8=1;
+                }
+                else if ( (LA8_3==EOF||(LA8_3>=RULE_ID && LA8_3<=RULE_DECIMAL)||(LA8_3>=14 && LA8_3<=15)||(LA8_3>=18 && LA8_3<=52)||(LA8_3>=77 && LA8_3<=78)||(LA8_3>=96 && LA8_3<=122)||(LA8_3>=126 && LA8_3<=127)||(LA8_3>=129 && LA8_3<=130)) ) {
+                    alt8=2;
+                }
+                else {
+                    if (state.backtracking>0) {state.failed=true; return ;}
+                    NoViableAltException nvae =
+                        new NoViableAltException("", 8, 3, input);
+
+                    throw nvae;
+                }
+                }
+                break;
+            case 49:
+                {
+                int LA8_4 = input.LA(2);
+
+                if ( (LA8_4==EOF||(LA8_4>=RULE_ID && LA8_4<=RULE_DECIMAL)||(LA8_4>=14 && LA8_4<=15)||(LA8_4>=18 && LA8_4<=52)||(LA8_4>=77 && LA8_4<=78)||(LA8_4>=96 && LA8_4<=122)||(LA8_4>=126 && LA8_4<=127)||(LA8_4>=129 && LA8_4<=130)) ) {
+                    alt8=2;
+                }
+                else if ( (LA8_4==13) ) {
+                    alt8=1;
+                }
+                else {
+                    if (state.backtracking>0) {state.failed=true; return ;}
+                    NoViableAltException nvae =
+                        new NoViableAltException("", 8, 4, input);
+
+                    throw nvae;
+                }
+                }
+                break;
+            case 50:
+                {
+                int LA8_5 = input.LA(2);
+
+                if ( (LA8_5==13) ) {
+                    alt8=1;
+                }
+                else if ( (LA8_5==EOF||(LA8_5>=RULE_ID && LA8_5<=RULE_DECIMAL)||(LA8_5>=14 && LA8_5<=15)||(LA8_5>=18 && LA8_5<=52)||(LA8_5>=77 && LA8_5<=78)||(LA8_5>=96 && LA8_5<=122)||(LA8_5>=126 && LA8_5<=127)||(LA8_5>=129 && LA8_5<=130)) ) {
+                    alt8=2;
+                }
+                else {
+                    if (state.backtracking>0) {state.failed=true; return ;}
+                    NoViableAltException nvae =
+                        new NoViableAltException("", 8, 5, input);
+
+                    throw nvae;
+                }
+                }
+                break;
+            case RULE_STRING:
+            case RULE_HEX:
+            case RULE_INT:
+            case RULE_DECIMAL:
+            case 29:
+            case 36:
+            case 37:
+            case 42:
+            case 51:
+            case 52:
+            case 77:
+            case 96:
+            case 100:
+            case 101:
+            case 105:
+            case 107:
+            case 111:
+            case 112:
+            case 113:
+            case 114:
+            case 115:
+            case 116:
+            case 117:
+            case 118:
+            case 119:
+            case 121:
+            case 130:
+                {
+                alt8=2;
+                }
+                break;
+            default:
+                if (state.backtracking>0) {state.failed=true; return ;}
+                NoViableAltException nvae =
+                    new NoViableAltException("", 8, 0, input);
+
+                throw nvae;
+            }
+
+            switch (alt8) {
+                case 1 :
+                    // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:3094:1: ( ( rule__XAssignment__Group_0__0 ) )
+                    {
+                    // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:3094:1: ( ( rule__XAssignment__Group_0__0 ) )
+                    // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:3095:1: ( rule__XAssignment__Group_0__0 )
+                    {
+                    if ( state.backtracking==0 ) {
+                       before(grammarAccess.getXAssignmentAccess().getGroup_0()); 
+                    }
+                    // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:3096:1: ( rule__XAssignment__Group_0__0 )
+                    // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:3096:2: rule__XAssignment__Group_0__0
+                    {
+                    pushFollow(FOLLOW_rule__XAssignment__Group_0__0_in_rule__XAssignment__Alternatives6545);
+                    rule__XAssignment__Group_0__0();
+
+                    state._fsp--;
+                    if (state.failed) return ;
+
+                    }
+
+                    if ( state.backtracking==0 ) {
+                       after(grammarAccess.getXAssignmentAccess().getGroup_0()); 
+                    }
+
+                    }
+
+
+                    }
+                    break;
+                case 2 :
+                    // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:3100:6: ( ( rule__XAssignment__Group_1__0 ) )
+                    {
+                    // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:3100:6: ( ( rule__XAssignment__Group_1__0 ) )
+                    // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:3101:1: ( rule__XAssignment__Group_1__0 )
+                    {
+                    if ( state.backtracking==0 ) {
+                       before(grammarAccess.getXAssignmentAccess().getGroup_1()); 
+                    }
+                    // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:3102:1: ( rule__XAssignment__Group_1__0 )
+                    // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:3102:2: rule__XAssignment__Group_1__0
+                    {
+                    pushFollow(FOLLOW_rule__XAssignment__Group_1__0_in_rule__XAssignment__Alternatives6563);
+                    rule__XAssignment__Group_1__0();
+
+                    state._fsp--;
+                    if (state.failed) return ;
+
+                    }
+
+                    if ( state.backtracking==0 ) {
+                       after(grammarAccess.getXAssignmentAccess().getGroup_1()); 
+                    }
+
+                    }
+
+
+                    }
+                    break;
+
+            }
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__XAssignment__Alternatives"
+
+
+    // $ANTLR start "rule__OpMultiAssign__Alternatives"
+    // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:3111:1: rule__OpMultiAssign__Alternatives : ( ( '+=' ) | ( '-=' ) | ( '*=' ) | ( '/=' ) | ( '%=' ) | ( ( rule__OpMultiAssign__Group_5__0 ) ) | ( ( rule__OpMultiAssign__Group_6__0 ) ) );
+    public final void rule__OpMultiAssign__Alternatives() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:3115:1: ( ( '+=' ) | ( '-=' ) | ( '*=' ) | ( '/=' ) | ( '%=' ) | ( ( rule__OpMultiAssign__Group_5__0 ) ) | ( ( rule__OpMultiAssign__Group_6__0 ) ) )
+            int alt9=7;
+            switch ( input.LA(1) ) {
+            case 18:
+                {
+                alt9=1;
+                }
+                break;
+            case 19:
+                {
+                alt9=2;
+                }
+                break;
+            case 20:
+                {
+                alt9=3;
+                }
+                break;
+            case 21:
+                {
+                alt9=4;
+                }
+                break;
+            case 22:
+                {
+                alt9=5;
+                }
+                break;
+            case 29:
+                {
+                alt9=6;
+                }
+                break;
+            case 28:
+                {
+                alt9=7;
+                }
+                break;
+            default:
+                if (state.backtracking>0) {state.failed=true; return ;}
+                NoViableAltException nvae =
+                    new NoViableAltException("", 9, 0, input);
+
+                throw nvae;
+            }
+
+            switch (alt9) {
+                case 1 :
+                    // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:3116:1: ( '+=' )
+                    {
+                    // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:3116:1: ( '+=' )
+                    // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:3117:1: '+='
+                    {
+                    if ( state.backtracking==0 ) {
+                       before(grammarAccess.getOpMultiAssignAccess().getPlusSignEqualsSignKeyword_0()); 
+                    }
+                    match(input,18,FOLLOW_18_in_rule__OpMultiAssign__Alternatives6597); if (state.failed) return ;
+                    if ( state.backtracking==0 ) {
+                       after(grammarAccess.getOpMultiAssignAccess().getPlusSignEqualsSignKeyword_0()); 
+                    }
+
+                    }
+
+
+                    }
+                    break;
+                case 2 :
+                    // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:3124:6: ( '-=' )
+                    {
+                    // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:3124:6: ( '-=' )
+                    // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:3125:1: '-='
+                    {
+                    if ( state.backtracking==0 ) {
+                       before(grammarAccess.getOpMultiAssignAccess().getHyphenMinusEqualsSignKeyword_1()); 
+                    }
+                    match(input,19,FOLLOW_19_in_rule__OpMultiAssign__Alternatives6617); if (state.failed) return ;
+                    if ( state.backtracking==0 ) {
+                       after(grammarAccess.getOpMultiAssignAccess().getHyphenMinusEqualsSignKeyword_1()); 
+                    }
+
+                    }
+
+
+                    }
+                    break;
+                case 3 :
+                    // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:3132:6: ( '*=' )
+                    {
+                    // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:3132:6: ( '*=' )
+                    // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:3133:1: '*='
+                    {
+                    if ( state.backtracking==0 ) {
+                       before(grammarAccess.getOpMultiAssignAccess().getAsteriskEqualsSignKeyword_2()); 
+                    }
+                    match(input,20,FOLLOW_20_in_rule__OpMultiAssign__Alternatives6637); if (state.failed) return ;
+                    if ( state.backtracking==0 ) {
+                       after(grammarAccess.getOpMultiAssignAccess().getAsteriskEqualsSignKeyword_2()); 
+                    }
+
+                    }
+
+
+                    }
+                    break;
+                case 4 :
+                    // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:3140:6: ( '/=' )
+                    {
+                    // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:3140:6: ( '/=' )
+                    // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:3141:1: '/='
+                    {
+                    if ( state.backtracking==0 ) {
+                       before(grammarAccess.getOpMultiAssignAccess().getSolidusEqualsSignKeyword_3()); 
+                    }
+                    match(input,21,FOLLOW_21_in_rule__OpMultiAssign__Alternatives6657); if (state.failed) return ;
+                    if ( state.backtracking==0 ) {
+                       after(grammarAccess.getOpMultiAssignAccess().getSolidusEqualsSignKeyword_3()); 
+                    }
+
+                    }
+
+
+                    }
+                    break;
+                case 5 :
+                    // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:3148:6: ( '%=' )
+                    {
+                    // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:3148:6: ( '%=' )
+                    // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:3149:1: '%='
+                    {
+                    if ( state.backtracking==0 ) {
+                       before(grammarAccess.getOpMultiAssignAccess().getPercentSignEqualsSignKeyword_4()); 
+                    }
+                    match(input,22,FOLLOW_22_in_rule__OpMultiAssign__Alternatives6677); if (state.failed) return ;
+                    if ( state.backtracking==0 ) {
+                       after(grammarAccess.getOpMultiAssignAccess().getPercentSignEqualsSignKeyword_4()); 
+                    }
+
+                    }
+
+
+                    }
+                    break;
+                case 6 :
+                    // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:3156:6: ( ( rule__OpMultiAssign__Group_5__0 ) )
+                    {
+                    // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:3156:6: ( ( rule__OpMultiAssign__Group_5__0 ) )
+                    // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:3157:1: ( rule__OpMultiAssign__Group_5__0 )
+                    {
+                    if ( state.backtracking==0 ) {
+                       before(grammarAccess.getOpMultiAssignAccess().getGroup_5()); 
+                    }
+                    // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:3158:1: ( rule__OpMultiAssign__Group_5__0 )
+                    // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:3158:2: rule__OpMultiAssign__Group_5__0
+                    {
+                    pushFollow(FOLLOW_rule__OpMultiAssign__Group_5__0_in_rule__OpMultiAssign__Alternatives6696);
+                    rule__OpMultiAssign__Group_5__0();
+
+                    state._fsp--;
+                    if (state.failed) return ;
+
+                    }
+
+                    if ( state.backtracking==0 ) {
+                       after(grammarAccess.getOpMultiAssignAccess().getGroup_5()); 
+                    }
+
+                    }
+
+
+                    }
+                    break;
+                case 7 :
+                    // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:3162:6: ( ( rule__OpMultiAssign__Group_6__0 ) )
+                    {
+                    // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:3162:6: ( ( rule__OpMultiAssign__Group_6__0 ) )
+                    // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:3163:1: ( rule__OpMultiAssign__Group_6__0 )
+                    {
+                    if ( state.backtracking==0 ) {
+                       before(grammarAccess.getOpMultiAssignAccess().getGroup_6()); 
+                    }
+                    // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:3164:1: ( rule__OpMultiAssign__Group_6__0 )
+                    // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:3164:2: rule__OpMultiAssign__Group_6__0
+                    {
+                    pushFollow(FOLLOW_rule__OpMultiAssign__Group_6__0_in_rule__OpMultiAssign__Alternatives6714);
+                    rule__OpMultiAssign__Group_6__0();
+
+                    state._fsp--;
+                    if (state.failed) return ;
+
+                    }
+
+                    if ( state.backtracking==0 ) {
+                       after(grammarAccess.getOpMultiAssignAccess().getGroup_6()); 
+                    }
+
+                    }
+
+
+                    }
+                    break;
+
+            }
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__OpMultiAssign__Alternatives"
+
+
+    // $ANTLR start "rule__OpEquality__Alternatives"
+    // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:3173:1: rule__OpEquality__Alternatives : ( ( '==' ) | ( '!=' ) | ( '===' ) | ( '!==' ) );
+    public final void rule__OpEquality__Alternatives() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:3177:1: ( ( '==' ) | ( '!=' ) | ( '===' ) | ( '!==' ) )
+            int alt10=4;
+            switch ( input.LA(1) ) {
+            case 23:
+                {
+                alt10=1;
+                }
+                break;
+            case 24:
+                {
+                alt10=2;
+                }
+                break;
+            case 25:
+                {
+                alt10=3;
+                }
+                break;
+            case 26:
+                {
+                alt10=4;
+                }
+                break;
+            default:
+                if (state.backtracking>0) {state.failed=true; return ;}
+                NoViableAltException nvae =
+                    new NoViableAltException("", 10, 0, input);
+
+                throw nvae;
+            }
+
+            switch (alt10) {
+                case 1 :
+                    // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:3178:1: ( '==' )
+                    {
+                    // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:3178:1: ( '==' )
+                    // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:3179:1: '=='
+                    {
+                    if ( state.backtracking==0 ) {
+                       before(grammarAccess.getOpEqualityAccess().getEqualsSignEqualsSignKeyword_0()); 
+                    }
+                    match(input,23,FOLLOW_23_in_rule__OpEquality__Alternatives6748); if (state.failed) return ;
+                    if ( state.backtracking==0 ) {
+                       after(grammarAccess.getOpEqualityAccess().getEqualsSignEqualsSignKeyword_0()); 
+                    }
+
+                    }
+
+
+                    }
+                    break;
+                case 2 :
+                    // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:3186:6: ( '!=' )
+                    {
+                    // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:3186:6: ( '!=' )
+                    // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:3187:1: '!='
+                    {
+                    if ( state.backtracking==0 ) {
+                       before(grammarAccess.getOpEqualityAccess().getExclamationMarkEqualsSignKeyword_1()); 
+                    }
+                    match(input,24,FOLLOW_24_in_rule__OpEquality__Alternatives6768); if (state.failed) return ;
+                    if ( state.backtracking==0 ) {
+                       after(grammarAccess.getOpEqualityAccess().getExclamationMarkEqualsSignKeyword_1()); 
+                    }
+
+                    }
+
+
+                    }
+                    break;
+                case 3 :
+                    // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:3194:6: ( '===' )
+                    {
+                    // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:3194:6: ( '===' )
+                    // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:3195:1: '==='
+                    {
+                    if ( state.backtracking==0 ) {
+                       before(grammarAccess.getOpEqualityAccess().getEqualsSignEqualsSignEqualsSignKeyword_2()); 
+                    }
+                    match(input,25,FOLLOW_25_in_rule__OpEquality__Alternatives6788); if (state.failed) return ;
+                    if ( state.backtracking==0 ) {
+                       after(grammarAccess.getOpEqualityAccess().getEqualsSignEqualsSignEqualsSignKeyword_2()); 
+                    }
+
+                    }
+
+
+                    }
+                    break;
+                case 4 :
+                    // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:3202:6: ( '!==' )
+                    {
+                    // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:3202:6: ( '!==' )
+                    // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:3203:1: '!=='
+                    {
+                    if ( state.backtracking==0 ) {
+                       before(grammarAccess.getOpEqualityAccess().getExclamationMarkEqualsSignEqualsSignKeyword_3()); 
+                    }
+                    match(input,26,FOLLOW_26_in_rule__OpEquality__Alternatives6808); if (state.failed) return ;
+                    if ( state.backtracking==0 ) {
+                       after(grammarAccess.getOpEqualityAccess().getExclamationMarkEqualsSignEqualsSignKeyword_3()); 
+                    }
+
+                    }
+
+
+                    }
+                    break;
+
+            }
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__OpEquality__Alternatives"
+
+
+    // $ANTLR start "rule__XRelationalExpression__Alternatives_1"
+    // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:3215:1: rule__XRelationalExpression__Alternatives_1 : ( ( ( rule__XRelationalExpression__Group_1_0__0 ) ) | ( ( rule__XRelationalExpression__Group_1_1__0 ) ) );
+    public final void rule__XRelationalExpression__Alternatives_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+            
+        try {
+            // ../org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/contentassist/antlr/internal/InternalActionDSL.g:3219:1: ( ( ( rule__XRelationalExpression__Group_1_0__0 ) ) | ( ( rule__XRelationalExpression__Group_1_1__0 ) ) )
+            int alt11=2;
+            int LA11_0 = input.LA(1);
+
+            if ( (LA11_0==102) ) {
+                alt11=1;
+            }
+            else if ( ((LA11_0>=27 && LA11_0<=29)) ) {
+                alt11=2;
+            }
+            else {
+                if (state.backtracking>0) {state.failed=true; return ;}
+                NoViableAltException nvae =
+                    new NoViableAltException("", 11, 0, input);
+
+                throw nvae;
+            }
+            switch (alt11) {
diff --git a/org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/internal/ActionDSLActivator.java b/org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/internal/ActionDSLActivator.java
new file mode 100644
index 0000000..c39e989
--- /dev/null
+++ b/org.eclipse.osbp.xtext.action.ui/src-gen/org/eclipse/osbp/xtext/action/ui/internal/ActionDSLActivator.java
@@ -0,0 +1,105 @@
+/**
+ *                                                                            
+ *  Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) 
+ *                                                                            
+ *  All rights reserved. This program and the accompanying materials           
+ *  are made available under the 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.action.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 ActionDSLActivator extends AbstractUIPlugin {
+	
+	public static final String ORG_ECLIPSE_OSBP_XTEXT_ACTION_ACTIONDSL = "org.eclipse.osbp.xtext.action.ActionDSL";
+	
+	private static final Logger logger = Logger.getLogger(ActionDSLActivator.class);
+	
+	private static ActionDSLActivator 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 ActionDSLActivator 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_ACTION_ACTIONDSL.equals(grammar)) {
+			return new org.eclipse.osbp.xtext.action.ActionDSLRuntimeModule();
+		}
+		
+		throw new IllegalArgumentException(grammar);
+	}
+	
+	protected Module getUiModule(String grammar) {
+		if (ORG_ECLIPSE_OSBP_XTEXT_ACTION_ACTIONDSL.equals(grammar)) {
+			return new org.eclipse.osbp.xtext.action.ui.ActionDSLUiModule(this);
+		}
+		
+		throw new IllegalArgumentException(grammar);
+	}
+	
+	protected Module getSharedStateModule() {
+		return new SharedStateModule();
+	}
+	
+}
diff --git a/org.eclipse.osbp.xtext.action.ui/src/org/eclipse/osbp/xtext/action/ui/ActionDSLDocumentationTranslator.java b/org.eclipse.osbp.xtext.action.ui/src/org/eclipse/osbp/xtext/action/ui/ActionDSLDocumentationTranslator.java
new file mode 100644
index 0000000..055fd86
--- /dev/null
+++ b/org.eclipse.osbp.xtext.action.ui/src/org/eclipse/osbp/xtext/action/ui/ActionDSLDocumentationTranslator.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                                 
+ *                                                                            
+ * Contributors:   
+ * Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation 
+ */
+package org.eclipse.osbp.xtext.action.ui;
+
+import java.util.ResourceBundle;
+
+import org.eclipse.osbp.utils.constants.GeneratorConstants;
+import org.eclipse.osbp.xtext.basic.ui.BasicDSLDocumentationTranslator;
+
+public class ActionDSLDocumentationTranslator extends BasicDSLDocumentationTranslator {
+	 
+    private static ActionDSLDocumentationTranslator INSTANCE = new ActionDSLDocumentationTranslator();
+
+    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.action.ui/src/org/eclipse/osbp/xtext/action/ui/ActionDSLEObjectHover.java b/org.eclipse.osbp.xtext.action.ui/src/org/eclipse/osbp/xtext/action/ui/ActionDSLEObjectHover.java
new file mode 100644
index 0000000..af5c82f
--- /dev/null
+++ b/org.eclipse.osbp.xtext.action.ui/src/org/eclipse/osbp/xtext/action/ui/ActionDSLEObjectHover.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.action.ui;
+
+import org.eclipse.xtext.ui.editor.hover.IEObjectHoverProvider;
+
+import org.eclipse.osbp.xtext.basic.ui.BasicDSLEObjectHover;
+
+public class ActionDSLEObjectHover extends BasicDSLEObjectHover {
+	
+	@Override
+	public IEObjectHoverProvider getHoverProvider() {
+		return ActionDSLEObjectHoverProvider.instance();
+	}
+}
diff --git a/org.eclipse.osbp.xtext.action.ui/src/org/eclipse/osbp/xtext/action/ui/ActionDSLEObjectHoverDocumentationProvider.java b/org.eclipse.osbp.xtext.action.ui/src/org/eclipse/osbp/xtext/action/ui/ActionDSLEObjectHoverDocumentationProvider.java
new file mode 100644
index 0000000..55891ef
--- /dev/null
+++ b/org.eclipse.osbp.xtext.action.ui/src/org/eclipse/osbp/xtext/action/ui/ActionDSLEObjectHoverDocumentationProvider.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.action.ui;
+
+import org.eclipse.osbp.xtext.basic.ui.BasicDSLDocumentationTranslator;
+import org.eclipse.osbp.xtext.basic.ui.BasicDSLEObjectHoverDocumentationProvider;
+
+public class ActionDSLEObjectHoverDocumentationProvider extends BasicDSLEObjectHoverDocumentationProvider {
+	 
+    private static ActionDSLEObjectHoverDocumentationProvider INSTANCE;
+
+    public static ActionDSLEObjectHoverDocumentationProvider instance() {
+        return INSTANCE;
+    }
+
+    public ActionDSLEObjectHoverDocumentationProvider() {
+        super();
+        INSTANCE = this;
+    }
+    
+    @Override
+    protected BasicDSLDocumentationTranslator getTranslator() {
+        return ActionDSLDocumentationTranslator.instance();
+    }
+}
diff --git a/org.eclipse.osbp.xtext.action.ui/src/org/eclipse/osbp/xtext/action/ui/ActionDSLEObjectHoverProvider.java b/org.eclipse.osbp.xtext.action.ui/src/org/eclipse/osbp/xtext/action/ui/ActionDSLEObjectHoverProvider.java
new file mode 100644
index 0000000..1c26fa9
--- /dev/null
+++ b/org.eclipse.osbp.xtext.action.ui/src/org/eclipse/osbp/xtext/action/ui/ActionDSLEObjectHoverProvider.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.action.ui;
+
+import org.eclipse.xtext.ui.editor.hover.html.IEObjectHoverDocumentationProvider;
+
+import org.eclipse.osbp.xtext.basic.ui.BasicDSLEObjectHoverDocumentationProvider;
+import org.eclipse.osbp.xtext.basic.ui.BasicDSLEObjectHoverProvider;
+
+public class ActionDSLEObjectHoverProvider extends BasicDSLEObjectHoverProvider {
+	 
+    private static ActionDSLEObjectHoverProvider INSTANCE;
+
+    public static ActionDSLEObjectHoverProvider instance() {
+        return INSTANCE;
+    }
+
+    public ActionDSLEObjectHoverProvider() {
+        super();
+        INSTANCE = this;
+    }
+    
+    @Override
+    public IEObjectHoverDocumentationProvider getDocumentationHoverProvider() {
+        return ActionDSLEObjectHoverDocumentationProvider.instance();
+    }
+}
diff --git a/org.eclipse.osbp.xtext.action.ui/src/org/eclipse/osbp/xtext/action/ui/ActionDSLUiModule.java b/org.eclipse.osbp.xtext.action.ui/src/org/eclipse/osbp/xtext/action/ui/ActionDSLUiModule.java
new file mode 100644
index 0000000..48bec98
--- /dev/null
+++ b/org.eclipse.osbp.xtext.action.ui/src/org/eclipse/osbp/xtext/action/ui/ActionDSLUiModule.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.action.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 ActionDSLUiModule extends org.eclipse.osbp.xtext.action.ui.AbstractActionDSLUiModule {
+	
+	private static Logger LOGGER = LoggerFactory.getLogger(ActionDSLUiModule.class);
+	
+	public ActionDSLUiModule(AbstractUIPlugin plugin) {
+		super(plugin);
+	    BasicDSLUiModuleHelper.unitTestTemplates(plugin, LOGGER);
+	}
+	
+	@Override
+	public Class<? extends IEObjectHover> bindIEObjectHover() {
+	    return ActionDSLEObjectHover.class;
+	}
+	
+	@Override
+	public Class<? extends IEObjectHoverProvider> bindIEObjectHoverProvider() {
+	    return ActionDSLEObjectHoverProvider.class;
+	}
+	
+	@Override
+	public Class<? extends IEObjectHoverDocumentationProvider> bindIEObjectHoverDocumentationProvider() {
+	    return ActionDSLEObjectHoverDocumentationProvider.class;
+	}
+}
diff --git a/org.eclipse.osbp.xtext.action.ui/src/org/eclipse/osbp/xtext/action/ui/contentassist/ActionDSLProposalProvider.xtend b/org.eclipse.osbp.xtext.action.ui/src/org/eclipse/osbp/xtext/action/ui/contentassist/ActionDSLProposalProvider.xtend
new file mode 100644
index 0000000..2c573a7
--- /dev/null
+++ b/org.eclipse.osbp.xtext.action.ui/src/org/eclipse/osbp/xtext/action/ui/contentassist/ActionDSLProposalProvider.xtend
@@ -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
+ * 
+ * 
+ *  This copyright notice shows up in the generated Java code
+ *
+ */
+ 
+package org.eclipse.osbp.xtext.action.ui.contentassist
+
+import com.google.inject.Inject
+import org.eclipse.emf.ecore.EObject
+import org.eclipse.jface.viewers.StyledString
+import org.eclipse.osbp.fork.mihalis.opal.widgets.ImageSelectorDialog
+import org.eclipse.osbp.xtext.action.ui.ActionDSLDocumentationTranslator
+import org.eclipse.osbp.xtext.basic.ui.contentassist.BasicDSLProposalProviderHelper
+import org.eclipse.swt.graphics.Point
+import org.eclipse.swt.layout.FillLayout
+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
+import org.eclipse.xtext.ui.editor.contentassist.PrefixMatcher
+import org.eclipse.xtext.util.Strings
+import org.eclipse.xtext.GrammarUtil
+
+class ImageFileNameTextApplier extends ReplacementTextApplier {
+	var ContentAssistContext context
+	var String[] extensions
+
+	def setContext(ContentAssistContext context) {
+		this.context = context
+	}
+
+	def setExtensions(String[] fileExtensions) {
+		extensions = fileExtensions
+	}
+
+	// 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.setLocation(new Point(display.activeShell.location.x + 30, display.activeShell.location.y + 30))
+		shell.setLayout(new FillLayout());
+		var imageSelectorDialog = new ImageSelectorDialog(shell, 16);
+		imageSelectorDialog.setFilterExtensions(extensions)
+		var imageFileName = imageSelectorDialog.open(true);
+		return "\"".concat(imageFileName).concat("\"");
+	}
+}
+
+class ActionDSLProposalProvider extends AbstractActionDSLProposalProvider {
+
+	@Inject TerminalsProposalProvider provider
+	@Inject BasicDSLProposalProviderHelper providerHelper
+
+	var imageSelectionPrompt = "Select image file..."
+
+	override protected StyledString getKeywordDisplayString(Keyword keyword) {
+		return BasicDSLProposalProviderHelper.getKeywordDisplayString(keyword,
+			ActionDSLDocumentationTranslator.instance())
+	}
+
+	/**
+	 * This override will enable 1 length non letter characters as keyword.
+	 */
+	override protected boolean isKeywordWorthyToPropose(Keyword keyword) {
+		return true
+	}
+
+	def imageFilePickerProposal(EObject model, Assignment assignment, ContentAssistContext context,
+		ICompletionProposalAcceptor acceptor, String fileExtensions) {
+		var fileName = createCompletionProposal(imageSelectionPrompt, context) as ConfigurableCompletionProposal
+		if (fileName != null) {
+			var applier = new ImageFileNameTextApplier()
+			applier.setExtensions(fileExtensions.split(","))
+			applier.setContext(context)
+			fileName.setTextApplier = applier
+		}
+		acceptor.accept(fileName)
+	}
+
+	override completeActionButton_IconURI(EObject model, Assignment assignment, ContentAssistContext context,
+		ICompletionProposalAcceptor acceptor) {
+		imageFilePickerProposal(model, assignment, context, acceptor, ".jpg,.jpeg,.png")
+	}
+
+	/**
+	 * This method decided which proposals will be valid. 
+	 */
+	override protected boolean isValidProposal(String proposal, String prefix, ContentAssistContext context) {
+		var result = super.isValidProposal(proposal, prefix, context)
+		return result
+	}
+
+	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_ActionQualifiedNameWithWildCard(EObject model, RuleCall ruleCall, ContentAssistContext context,
+		ICompletionProposalAcceptor acceptor) {
+		providerHelper.complete_PackageName(model, ruleCall, context, acceptor, this)
+	}
+
+	// ------------------------ delegates to TerminalsProposalProvider -----------------
+	override public void complete_TRANSLATABLESTRING(EObject model, RuleCall ruleCall, ContentAssistContext context,
+		ICompletionProposalAcceptor acceptor) {
+		provider.complete_STRING(model, ruleCall, context, acceptor)
+	}
+
+	override public void complete_TRANSLATABLEID(EObject model, RuleCall ruleCall, ContentAssistContext context,
+		ICompletionProposalAcceptor acceptor) {
+		provider.complete_ID(model, ruleCall, context, acceptor)
+	}
+
+	override public void complete_ID(EObject model, RuleCall ruleCall, ContentAssistContext context,
+		ICompletionProposalAcceptor acceptor) {
+		provider.complete_ID(model, ruleCall, context, acceptor)
+	}
+}
diff --git a/org.eclipse.osbp.xtext.action.ui/src/org/eclipse/osbp/xtext/action/ui/labeling/ActionDSLDescriptionLabelProvider.xtend b/org.eclipse.osbp.xtext.action.ui/src/org/eclipse/osbp/xtext/action/ui/labeling/ActionDSLDescriptionLabelProvider.xtend
new file mode 100644
index 0000000..ab625ce
--- /dev/null
+++ b/org.eclipse.osbp.xtext.action.ui/src/org/eclipse/osbp/xtext/action/ui/labeling/ActionDSLDescriptionLabelProvider.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.action.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 ActionDSLDescriptionLabelProvider extends org.eclipse.xtext.xbase.ui.labeling.XbaseDescriptionLabelProvider {
+
+	// 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.action.ui/src/org/eclipse/osbp/xtext/action/ui/labeling/ActionDSLLabelProvider.xtend b/org.eclipse.osbp.xtext.action.ui/src/org/eclipse/osbp/xtext/action/ui/labeling/ActionDSLLabelProvider.xtend
new file mode 100644
index 0000000..ee431ba
--- /dev/null
+++ b/org.eclipse.osbp.xtext.action.ui/src/org/eclipse/osbp/xtext/action/ui/labeling/ActionDSLLabelProvider.xtend
@@ -0,0 +1,44 @@
+/**
+ *                                                                            
+ *  Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) 
+ *                                                                            
+ *  All rights reserved. This program and the accompanying materials           
+ *  are made available under the 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.action.ui.labeling
+
+import com.google.inject.Inject
+import org.eclipse.osbp.xtext.basic.ui.labeling.BasicDSLLabelProvider
+
+/**
+ * Provides labels for a EObjects.
+ * 
+ * see http://www.eclipse.org/Xtext/documentation.html#labelProvider
+ */
+class ActionDSLLabelProvider extends BasicDSLLabelProvider {
+
+	@Inject
+	new(org.eclipse.emf.edit.ui.provider.AdapterFactoryLabelProvider delegate) {
+		super(delegate);
+	}
+
+	// Labels and icons can be computed like this:
+	
+//	def text(Greeting ele) {
+//		'A greeting to ' + ele.name
+//	}
+//
+//	def image(Greeting ele) {
+//		'Greeting.gif'
+//	}
+}
diff --git a/org.eclipse.osbp.xtext.action.ui/src/org/eclipse/osbp/xtext/action/ui/outline/ActionDSLOutlineTreeProvider.xtend b/org.eclipse.osbp.xtext.action.ui/src/org/eclipse/osbp/xtext/action/ui/outline/ActionDSLOutlineTreeProvider.xtend
new file mode 100644
index 0000000..dbe3eb6
--- /dev/null
+++ b/org.eclipse.osbp.xtext.action.ui/src/org/eclipse/osbp/xtext/action/ui/outline/ActionDSLOutlineTreeProvider.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.action.ui.outline
+
+/**
+ * Customization of the default outline structure.
+ *
+ * see http://www.eclipse.org/Xtext/documentation.html#outline
+ */
+class ActionDSLOutlineTreeProvider extends org.eclipse.xtext.ui.editor.outline.impl.DefaultOutlineTreeProvider {
+	
+}
diff --git a/org.eclipse.osbp.xtext.action.ui/src/org/eclipse/osbp/xtext/action/ui/quickfix/ActionDSLQuickfixProvider.xtend b/org.eclipse.osbp.xtext.action.ui/src/org/eclipse/osbp/xtext/action/ui/quickfix/ActionDSLQuickfixProvider.xtend
new file mode 100644
index 0000000..e85b0dc
--- /dev/null
+++ b/org.eclipse.osbp.xtext.action.ui/src/org/eclipse/osbp/xtext/action/ui/quickfix/ActionDSLQuickfixProvider.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.action.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 ActionDSLQuickfixProvider extends org.eclipse.xtext.xbase.annotations.ui.quickfix.XbaseWithAnnotationsQuickfixProvider {
+
+//	@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.action.ui/templates/templates.xml b/org.eclipse.osbp.xtext.action.ui/templates/templates.xml
new file mode 100644
index 0000000..07a788c
--- /dev/null
+++ b/org.eclipse.osbp.xtext.action.ui/templates/templates.xml
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?><templates>
+</templates>
\ No newline at end of file
diff --git a/org.eclipse.osbp.xtext.action.ui/xtend-gen/org/eclipse/osbp/xtext/action/ui/contentassist/ActionDSLProposalProvider.java b/org.eclipse.osbp.xtext.action.ui/xtend-gen/org/eclipse/osbp/xtext/action/ui/contentassist/ActionDSLProposalProvider.java
new file mode 100644
index 0000000..30f8add
--- /dev/null
+++ b/org.eclipse.osbp.xtext.action.ui/xtend-gen/org/eclipse/osbp/xtext/action/ui/contentassist/ActionDSLProposalProvider.java
@@ -0,0 +1,102 @@
+/**
+ * Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 
+ *  All rights reserved. This program and the accompanying materials
+ *  are made available under the 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.action.ui.contentassist;
+
+import com.google.common.base.Objects;
+import com.google.inject.Inject;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.jface.text.contentassist.ICompletionProposal;
+import org.eclipse.jface.viewers.StyledString;
+import org.eclipse.osbp.xtext.action.ui.ActionDSLDocumentationTranslator;
+import org.eclipse.osbp.xtext.action.ui.contentassist.AbstractActionDSLProposalProvider;
+import org.eclipse.osbp.xtext.action.ui.contentassist.ImageFileNameTextApplier;
+import org.eclipse.osbp.xtext.basic.ui.BasicDSLDocumentationTranslator;
+import org.eclipse.osbp.xtext.basic.ui.contentassist.BasicDSLProposalProviderHelper;
+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;
+
+@SuppressWarnings("all")
+public class ActionDSLProposalProvider extends AbstractActionDSLProposalProvider {
+  @Inject
+  private TerminalsProposalProvider provider;
+  
+  @Inject
+  private BasicDSLProposalProviderHelper providerHelper;
+  
+  private String imageSelectionPrompt = "Select image file...";
+  
+  protected StyledString getKeywordDisplayString(final Keyword keyword) {
+    BasicDSLDocumentationTranslator _instance = ActionDSLDocumentationTranslator.instance();
+    return BasicDSLProposalProviderHelper.getKeywordDisplayString(keyword, _instance);
+  }
+  
+  /**
+   * This override will enable 1 length non letter characters as keyword.
+   */
+  protected boolean isKeywordWorthyToPropose(final Keyword keyword) {
+    return true;
+  }
+  
+  public void imageFilePickerProposal(final EObject model, final Assignment assignment, final ContentAssistContext context, final ICompletionProposalAcceptor acceptor, final String fileExtensions) {
+    ICompletionProposal _createCompletionProposal = this.createCompletionProposal(this.imageSelectionPrompt, context);
+    ConfigurableCompletionProposal fileName = ((ConfigurableCompletionProposal) _createCompletionProposal);
+    boolean _notEquals = (!Objects.equal(fileName, null));
+    if (_notEquals) {
+      ImageFileNameTextApplier applier = new ImageFileNameTextApplier();
+      String[] _split = fileExtensions.split(",");
+      applier.setExtensions(_split);
+      applier.setContext(context);
+      fileName.setTextApplier(applier);
+    }
+    acceptor.accept(fileName);
+  }
+  
+  public void completeActionButton_IconURI(final EObject model, final Assignment assignment, final ContentAssistContext context, final ICompletionProposalAcceptor acceptor) {
+    this.imageFilePickerProposal(model, assignment, context, acceptor, ".jpg,.jpeg,.png");
+  }
+  
+  /**
+   * This method decided which proposals will be valid.
+   */
+  protected boolean isValidProposal(final String proposal, final String prefix, final ContentAssistContext context) {
+    boolean result = super.isValidProposal(proposal, prefix, context);
+    return result;
+  }
+  
+  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_ActionQualifiedNameWithWildCard(final EObject model, final RuleCall ruleCall, final ContentAssistContext context, final ICompletionProposalAcceptor acceptor) {
+    this.providerHelper.complete_PackageName(model, ruleCall, context, acceptor, this);
+  }
+  
+  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 complete_TRANSLATABLEID(final EObject model, final RuleCall ruleCall, final ContentAssistContext context, final ICompletionProposalAcceptor acceptor) {
+    this.provider.complete_ID(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);
+  }
+}
diff --git a/org.eclipse.osbp.xtext.action.ui/xtend-gen/org/eclipse/osbp/xtext/action/ui/contentassist/ImageFileNameTextApplier.java b/org.eclipse.osbp.xtext.action.ui/xtend-gen/org/eclipse/osbp/xtext/action/ui/contentassist/ImageFileNameTextApplier.java
new file mode 100644
index 0000000..9396a9d
--- /dev/null
+++ b/org.eclipse.osbp.xtext.action.ui/xtend-gen/org/eclipse/osbp/xtext/action/ui/contentassist/ImageFileNameTextApplier.java
@@ -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.action.ui.contentassist;
+
+import org.eclipse.jface.text.ITextViewer;
+import org.eclipse.osbp.fork.mihalis.opal.widgets.ImageSelectorDialog;
+import org.eclipse.swt.custom.StyledText;
+import org.eclipse.swt.graphics.Point;
+import org.eclipse.swt.layout.FillLayout;
+import org.eclipse.swt.widgets.Display;
+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 ImageFileNameTextApplier extends ReplacementTextApplier {
+  private ContentAssistContext context;
+  
+  private String[] extensions;
+  
+  public ContentAssistContext setContext(final ContentAssistContext context) {
+    return this.context = context;
+  }
+  
+  public String[] setExtensions(final String[] fileExtensions) {
+    return this.extensions = fileExtensions;
+  }
+  
+  public String getActualReplacementString(final ConfigurableCompletionProposal proposal) {
+    ITextViewer _viewer = this.context.getViewer();
+    StyledText _textWidget = _viewer.getTextWidget();
+    Display display = _textWidget.getDisplay();
+    Shell shell = new Shell(display);
+    Point _point = new Point((display.getActiveShell().getLocation().x + 30), (display.getActiveShell().getLocation().y + 30));
+    shell.setLocation(_point);
+    FillLayout _fillLayout = new FillLayout();
+    shell.setLayout(_fillLayout);
+    ImageSelectorDialog imageSelectorDialog = new ImageSelectorDialog(shell, 16);
+    imageSelectorDialog.setFilterExtensions(this.extensions);
+    String imageFileName = imageSelectorDialog.open(true);
+    String _concat = "\"".concat(imageFileName);
+    return _concat.concat("\"");
+  }
+}
diff --git a/org.eclipse.osbp.xtext.action.ui/xtend-gen/org/eclipse/osbp/xtext/action/ui/labeling/ActionDSLDescriptionLabelProvider.java b/org.eclipse.osbp.xtext.action.ui/xtend-gen/org/eclipse/osbp/xtext/action/ui/labeling/ActionDSLDescriptionLabelProvider.java
new file mode 100644
index 0000000..cc85c86
--- /dev/null
+++ b/org.eclipse.osbp.xtext.action.ui/xtend-gen/org/eclipse/osbp/xtext/action/ui/labeling/ActionDSLDescriptionLabelProvider.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.action.ui.labeling;
+
+import org.eclipse.xtext.xbase.ui.labeling.XbaseDescriptionLabelProvider;
+
+/**
+ * Provides labels for a IEObjectDescriptions and IResourceDescriptions.
+ * 
+ * see http://www.eclipse.org/Xtext/documentation.html#labelProvider
+ */
+@SuppressWarnings("all")
+public class ActionDSLDescriptionLabelProvider extends XbaseDescriptionLabelProvider {
+}
diff --git a/org.eclipse.osbp.xtext.action.ui/xtend-gen/org/eclipse/osbp/xtext/action/ui/labeling/ActionDSLLabelProvider.java b/org.eclipse.osbp.xtext.action.ui/xtend-gen/org/eclipse/osbp/xtext/action/ui/labeling/ActionDSLLabelProvider.java
new file mode 100644
index 0000000..bf171b6
--- /dev/null
+++ b/org.eclipse.osbp.xtext.action.ui/xtend-gen/org/eclipse/osbp/xtext/action/ui/labeling/ActionDSLLabelProvider.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
+ * 
+ *  Contributors:
+ * 	   Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
+ * 
+ * 
+ *  This copyright notice shows up in the generated Java code
+ */
+package org.eclipse.osbp.xtext.action.ui.labeling;
+
+import com.google.inject.Inject;
+import org.eclipse.emf.edit.ui.provider.AdapterFactoryLabelProvider;
+import org.eclipse.osbp.xtext.basic.ui.labeling.BasicDSLLabelProvider;
+
+/**
+ * Provides labels for a EObjects.
+ * 
+ * see http://www.eclipse.org/Xtext/documentation.html#labelProvider
+ */
+@SuppressWarnings("all")
+public class ActionDSLLabelProvider extends BasicDSLLabelProvider {
+  @Inject
+  public ActionDSLLabelProvider(final AdapterFactoryLabelProvider delegate) {
+    super(delegate);
+  }
+}
diff --git a/org.eclipse.osbp.xtext.action.ui/xtend-gen/org/eclipse/osbp/xtext/action/ui/outline/ActionDSLOutlineTreeProvider.java b/org.eclipse.osbp.xtext.action.ui/xtend-gen/org/eclipse/osbp/xtext/action/ui/outline/ActionDSLOutlineTreeProvider.java
new file mode 100644
index 0000000..190c330
--- /dev/null
+++ b/org.eclipse.osbp.xtext.action.ui/xtend-gen/org/eclipse/osbp/xtext/action/ui/outline/ActionDSLOutlineTreeProvider.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.action.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 ActionDSLOutlineTreeProvider extends DefaultOutlineTreeProvider {
+}
diff --git a/org.eclipse.osbp.xtext.action.ui/xtend-gen/org/eclipse/osbp/xtext/action/ui/quickfix/ActionDSLQuickfixProvider.java b/org.eclipse.osbp.xtext.action.ui/xtend-gen/org/eclipse/osbp/xtext/action/ui/quickfix/ActionDSLQuickfixProvider.java
new file mode 100644
index 0000000..0c6af6b
--- /dev/null
+++ b/org.eclipse.osbp.xtext.action.ui/xtend-gen/org/eclipse/osbp/xtext/action/ui/quickfix/ActionDSLQuickfixProvider.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.action.ui.quickfix;
+
+import org.eclipse.xtext.xbase.annotations.ui.quickfix.XbaseWithAnnotationsQuickfixProvider;
+
+/**
+ * Custom quickfixes.
+ * 
+ * see http://www.eclipse.org/Xtext/documentation.html#quickfixes
+ */
+@SuppressWarnings("all")
+public class ActionDSLQuickfixProvider extends XbaseWithAnnotationsQuickfixProvider {
+}
diff --git "a/org.eclipse.osbp.xtext.action/.launch/Generate Language Infrastructure \050org.eclipse.osbp.xtext.action\051.launch" "b/org.eclipse.osbp.xtext.action/.launch/Generate Language Infrastructure \050org.eclipse.osbp.xtext.action\051.launch"
new file mode 100644
index 0000000..7cc9a90
--- /dev/null
+++ "b/org.eclipse.osbp.xtext.action/.launch/Generate Language Infrastructure \050org.eclipse.osbp.xtext.action\051.launch"
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<launchConfiguration type="org.eclipse.emf.mwe2.launch.Mwe2LaunchConfigurationType">
+<stringAttribute key="org.eclipse.debug.core.ATTR_REFRESH_SCOPE" value="${working_set:&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;&#10;&lt;launchConfigurationWorkingSet factoryID=&quot;org.eclipse.ui.internal.WorkingSetFactory&quot; id=&quot;1299248699643_13&quot; label=&quot;working set&quot; name=&quot;working set&quot;&gt;&#10;&lt;item factoryID=&quot;org.eclipse.ui.internal.model.ResourceFactory&quot; path=&quot;/de.osbp.xtext.action&quot; type=&quot;4&quot;/&gt;&#10;&lt;item factoryID=&quot;org.eclipse.ui.internal.model.ResourceFactory&quot; path=&quot;/de.osbp.xtext.action.generator&quot; type=&quot;4&quot;/&gt;&#10;&lt;item factoryID=&quot;org.eclipse.ui.internal.model.ResourceFactory&quot; path=&quot;/de.osbp.xtext.action.tests&quot; type=&quot;4&quot;/&gt;&#10;&lt;item factoryID=&quot;org.eclipse.ui.internal.model.ResourceFactory&quot; path=&quot;/de.osbp.xtext.action.ui&quot; type=&quot;4&quot;/&gt;&#10;&lt;/launchConfigurationWorkingSet&gt;}"/>
+<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
+<listEntry value="/de.osbp.xtext.action"/>
+</listAttribute>
+<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES">
+<listEntry value="4"/>
+</listAttribute>
+<listAttribute key="org.eclipse.debug.ui.favoriteGroups">
+<listEntry value="org.eclipse.debug.ui.launchGroup.debug"/>
+<listEntry value="org.eclipse.debug.ui.launchGroup.run"/>
+</listAttribute>
+<stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value="org.eclipse.emf.mwe2.launch.runtime.Mwe2Launcher"/>
+<stringAttribute key="org.eclipse.jdt.launching.PROGRAM_ARGUMENTS" value="src/de/osbp/xtext/action/GenerateActionDsl.mwe2"/>
+<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="de.osbp.xtext.action"/>
+<stringAttribute key="org.eclipse.jdt.launching.VM_ARGUMENTS" value="-Xmx512m"/>
+</launchConfiguration>
diff --git a/org.eclipse.osbp.xtext.action/.project b/org.eclipse.osbp.xtext.action/.project
new file mode 100644
index 0000000..0b7c529
--- /dev/null
+++ b/org.eclipse.osbp.xtext.action/.project
@@ -0,0 +1,46 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>org.eclipse.osbp.xtext.action</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+		<buildCommand>
+			<name>org.eclipse.jdt.core.javabuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.pde.ManifestBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.pde.SchemaBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.xtext.ui.shared.xtextBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.babel.editor.rbeBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.m2e.core.maven2Builder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+	</buildSpec>
+	<natures>
+		<nature>org.eclipse.m2e.core.maven2Nature</nature>
+		<nature>org.eclipse.jdt.core.javanature</nature>
+		<nature>org.eclipse.pde.PluginNature</nature>
+		<nature>org.eclipse.xtext.ui.shared.xtextNature</nature>
+		<nature>org.eclipse.babel.editor.rbeNature</nature>
+	</natures>
+</projectDescription>
diff --git a/org.eclipse.osbp.xtext.action/LICENSE.txt b/org.eclipse.osbp.xtext.action/LICENSE.txt
new file mode 100644
index 0000000..ff42ad4
--- /dev/null
+++ b/org.eclipse.osbp.xtext.action/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.action/META-INF/MANIFEST.MF b/org.eclipse.osbp.xtext.action/META-INF/MANIFEST.MF
new file mode 100644
index 0000000..fb9a393
--- /dev/null
+++ b/org.eclipse.osbp.xtext.action/META-INF/MANIFEST.MF
@@ -0,0 +1,89 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: org.eclipse.osbp.xtext.action
+Bundle-Vendor: Eclipse OSBP
+Bundle-Localization: plugin
+Bundle-Version: 0.9.0.qualifier
+Bundle-ClassPath: .
+Bundle-SymbolicName: org.eclipse.osbp.xtext.action;singleton:=true
+Bundle-ActivationPolicy: lazy
+Require-Bundle: org.slf4j.api;bundle-version="1.7.2",
+ org.apache.xerces;bundle-version="2.9.0";resolution:=optional,
+ org.apache.commons.logging;bundle-version="1.0.4";resolution:=optional,
+ org.apache.log4j,
+ org.eclipse.e4.core.contexts,
+ org.eclipse.e4.ui.model.workbench,
+ org.eclipse.e4.core.services,
+ org.eclipse.core.runtime,
+ 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.eclipse.xtext.xbase.lib;bundle-version="[2.7.3,2.8.0)",
+ org.eclipse.emf.common,
+ org.eclipse.emf.ecore;visibility:=reexport,
+ org.eclipse.emf.ecore.xcore,
+ org.eclipse.emf.ecore.xcore.lib;bundle-version="1.1.0",
+ org.eclipse.emf.codegen.ecore;resolution:=optional,
+ org.eclipse.emf.mwe.utils;resolution:=optional,
+ org.eclipse.emf.mwe2.launch;resolution:=optional,
+ org.antlr.runtime,
+ mondrian.osgi;bundle-version="[3.5.0,3.5.1)",
+ org.objectweb.asm;bundle-version="[5.0.1,6.0.0)";resolution:=optional,
+ com.vaadin.shared;bundle-version="[7.5.7,7.7.0)",
+ com.vaadin.server;bundle-version="[7.5.7,7.7.0)",
+ org.eclipse.core.databinding,
+ org.eclipse.core.databinding.beans,
+ org.eclipse.osgi.util;bundle-version="3.3.0",
+ org.eclipse.e4.ui.services,
+ org.eclipse.osbp.runtime.common;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.dsl.common.xtext;bundle-version="[0.9.0,0.10.0)",
+ org.eclipse.osbp.dsl.entity.xtext;bundle-version="[0.9.0,0.10.0)",
+ org.eclipse.osbp.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.dsl.common.xtext;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.eclipse.osbp.dsl.mwe;bundle-version="[0.9.0,0.10.0)",
+ org.eclipse.osbp.xtext.functionlibrarydsl;bundle-version="[0.9.0,0.10.0)";visibility:=reexport,
+ org.eclipse.osbp.xtext.i18n;bundle-version="[0.9.0,0.10.0)",
+ org.eclipse.osbp.xtext.basic;bundle-version="[0.9.0,0.10.0)";resolution:=optional,
+ org.eclipse.osbp.gitinfo;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.messagedsl;bundle-version="[0.9.0,0.10.0)";visibility:=reexport,
+ org.apache.commons.lang;bundle-version="2.6.0";resolution:=optional,
+ org.eclipse.osbp.xtext.datainterchange;bundle-version="0.9.0",
+ org.eclipse.osbp.persistence;bundle-version="0.9.0",
+ org.eclipse.osbp.xtext.datainterchange.common;bundle-version="0.9.0"
+Import-Package: javax.validation,
+ javax.validation.constraints,
+ org.apache.log4j,
+ org.eclipse.e4.core.di.annotations,
+ org.eclipse.e4.core.di.extensions,
+ org.eclipse.e4.ui.workbench,
+ org.eclipse.osbp.bpm.api;version="0.9.0",
+ org.eclipse.osbp.eventbroker;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.constants;version="0.9.0",
+ org.eclipse.osbp.utils.theme;version="0.9.0",
+ org.eclipse.osbp.utils.xtext;version="0.9.0",
+ org.osgi.service.event;version="1.3.0"
+Bundle-RequiredExecutionEnvironment: JavaSE-1.8
+Export-Package: org.eclipse.osbp.xtext.action;version="0.9.0",
+ org.eclipse.osbp.xtext.action.common;version="0.9.0",
+ org.eclipse.osbp.xtext.action.formatting;version="0.9.0",
+ org.eclipse.osbp.xtext.action.impl;version="0.9.0",
+ org.eclipse.osbp.xtext.action.jvmmodel;version="0.9.0",
+ org.eclipse.osbp.xtext.action.parser.antlr;version="0.9.0",
+ org.eclipse.osbp.xtext.action.parser.antlr.internal;version="0.9.0",
+ org.eclipse.osbp.xtext.action.serializer;version="0.9.0",
+ org.eclipse.osbp.xtext.action.services;version="0.9.0",
+ org.eclipse.osbp.xtext.action.util;version="0.9.0",
+ org.eclipse.osbp.xtext.action.validation;version="0.9.0",
+ org.eclipse.osbp.xtext.action.valueconverter;version="0.9.0"
+Bundle-Activator: org.eclipse.osbp.xtext.action.Activator
diff --git a/org.eclipse.osbp.xtext.action/about.html b/org.eclipse.osbp.xtext.action/about.html
new file mode 100644
index 0000000..64c0598
--- /dev/null
+++ b/org.eclipse.osbp.xtext.action/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.action/about.ini b/org.eclipse.osbp.xtext.action/about.ini
new file mode 100644
index 0000000..7df671f
--- /dev/null
+++ b/org.eclipse.osbp.xtext.action/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.action/about.mappings b/org.eclipse.osbp.xtext.action/about.mappings
new file mode 100644
index 0000000..4511a0a
--- /dev/null
+++ b/org.eclipse.osbp.xtext.action/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.action/about.properties b/org.eclipse.osbp.xtext.action/about.properties
new file mode 100644
index 0000000..6ac150e
--- /dev/null
+++ b/org.eclipse.osbp.xtext.action/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.action
+
+################ 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.action/build.properties b/org.eclipse.osbp.xtext.action/build.properties
new file mode 100644
index 0000000..77bc647
--- /dev/null
+++ b/org.eclipse.osbp.xtext.action/build.properties
@@ -0,0 +1,19 @@
+# Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+#  All rights reserved.
+
+bin.includes = about.properties,  about.mappings,  about.ini,  about.html,  .,\
+               .settings/,\
+               model/,\
+               META-INF/,\
+               plugin.xml,\
+               plugin.properties,\
+               LICENSE.txt,\
+               license.html
+jars.compile.order = .
+source.. = emf-gen/,\
+		   xtend-gen/,\
+		   src-gen/,\
+		   src/
+output.. = target/classes
+src.includes = about.properties,  about.mappings,  about.ini,  about.html,  LICENSE.txt,\
+               license.html
diff --git a/org.eclipse.osbp.xtext.action/emf-gen/org/eclipse/osbp/xtext/action/ActionBase.java b/org.eclipse.osbp.xtext.action/emf-gen/org/eclipse/osbp/xtext/action/ActionBase.java
new file mode 100644
index 0000000..3fd07c8
--- /dev/null
+++ b/org.eclipse.osbp.xtext.action/emf-gen/org/eclipse/osbp/xtext/action/ActionBase.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
+ *  
+ *  Contributors:                                                      
+ *     Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
+ *  
+ *  generated from ActionDSL.xcore
+ * 
+ *  
+ */
+package org.eclipse.osbp.xtext.action;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Action Base</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.xtext.action.ActionBase#getName <em>Name</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.osbp.xtext.action.ActionDSLPackage#getActionBase()
+ * @model
+ * @generated
+ */
+public interface ActionBase extends ActionLazyResolver {
+	/**
+	 * 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.action.ActionDSLPackage#getActionBase_Name()
+	 * @model unique="false"
+	 * @generated
+	 */
+	String getName();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.xtext.action.ActionBase#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);
+
+} // ActionBase
diff --git a/org.eclipse.osbp.xtext.action/emf-gen/org/eclipse/osbp/xtext/action/ActionButton.java b/org.eclipse.osbp.xtext.action/emf-gen/org/eclipse/osbp/xtext/action/ActionButton.java
new file mode 100644
index 0000000..4ee0126
--- /dev/null
+++ b/org.eclipse.osbp.xtext.action/emf-gen/org/eclipse/osbp/xtext/action/ActionButton.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
+ *  
+ *  Contributors:                                                      
+ *     Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
+ *  
+ *  generated from ActionDSL.xcore
+ * 
+ *  
+ */
+package org.eclipse.osbp.xtext.action;
+
+import org.eclipse.osbp.xtext.functionlibrarydsl.FunctionLibraryFunction;
+import org.eclipse.osbp.xtext.functionlibrarydsl.FunctionLibraryGroup;
+
+import org.eclipse.osbp.xtext.messagedsl.MessageItem;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Action Button</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.xtext.action.ActionButton#isDescription <em>Description</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.action.ActionButton#getDescriptionValue <em>Description Value</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.action.ActionButton#getIconURI <em>Icon URI</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.action.ActionButton#getGroup <em>Group</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.action.ActionButton#getCanexecute <em>Canexecute</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.action.ActionButton#getExecuteparameter <em>Executeparameter</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.action.ActionButton#getActionType <em>Action Type</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.action.ActionButton#getMessage <em>Message</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.osbp.xtext.action.ActionDSLPackage#getActionButton()
+ * @model
+ * @generated
+ */
+public interface ActionButton extends ActionBase {
+	/**
+	 * 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.action.ActionDSLPackage#getActionButton_Description()
+	 * @model unique="false"
+	 * @generated
+	 */
+	boolean isDescription();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.xtext.action.ActionButton#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.action.ActionDSLPackage#getActionButton_DescriptionValue()
+	 * @model unique="false"
+	 * @generated
+	 */
+	String getDescriptionValue();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.xtext.action.ActionButton#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>Icon URI</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Icon 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>Icon URI</em>' attribute.
+	 * @see #setIconURI(String)
+	 * @see org.eclipse.osbp.xtext.action.ActionDSLPackage#getActionButton_IconURI()
+	 * @model unique="false"
+	 * @generated
+	 */
+	String getIconURI();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.xtext.action.ActionButton#getIconURI <em>Icon URI</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Icon URI</em>' attribute.
+	 * @see #getIconURI()
+	 * @generated
+	 */
+	void setIconURI(String value);
+
+	/**
+	 * Returns the value of the '<em><b>Group</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>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>Group</em>' reference.
+	 * @see #setGroup(FunctionLibraryGroup)
+	 * @see org.eclipse.osbp.xtext.action.ActionDSLPackage#getActionButton_Group()
+	 * @model
+	 * @generated
+	 */
+	FunctionLibraryGroup getGroup();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.xtext.action.ActionButton#getGroup <em>Group</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Group</em>' reference.
+	 * @see #getGroup()
+	 * @generated
+	 */
+	void setGroup(FunctionLibraryGroup value);
+
+	/**
+	 * Returns the value of the '<em><b>Canexecute</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Canexecute</em>' reference isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Canexecute</em>' reference.
+	 * @see #setCanexecute(FunctionLibraryFunction)
+	 * @see org.eclipse.osbp.xtext.action.ActionDSLPackage#getActionButton_Canexecute()
+	 * @model
+	 * @generated
+	 */
+	FunctionLibraryFunction getCanexecute();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.xtext.action.ActionButton#getCanexecute <em>Canexecute</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Canexecute</em>' reference.
+	 * @see #getCanexecute()
+	 * @generated
+	 */
+	void setCanexecute(FunctionLibraryFunction value);
+
+	/**
+	 * Returns the value of the '<em><b>Executeparameter</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Executeparameter</em>' reference isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Executeparameter</em>' reference.
+	 * @see #setExecuteparameter(FunctionLibraryFunction)
+	 * @see org.eclipse.osbp.xtext.action.ActionDSLPackage#getActionButton_Executeparameter()
+	 * @model
+	 * @generated
+	 */
+	FunctionLibraryFunction getExecuteparameter();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.xtext.action.ActionButton#getExecuteparameter <em>Executeparameter</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Executeparameter</em>' reference.
+	 * @see #getExecuteparameter()
+	 * @generated
+	 */
+	void setExecuteparameter(FunctionLibraryFunction value);
+
+	/**
+	 * Returns the value of the '<em><b>Action Type</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Action Type</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>Action Type</em>' containment reference.
+	 * @see #setActionType(ActionType)
+	 * @see org.eclipse.osbp.xtext.action.ActionDSLPackage#getActionButton_ActionType()
+	 * @model containment="true"
+	 * @generated
+	 */
+	ActionType getActionType();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.xtext.action.ActionButton#getActionType <em>Action Type</em>}' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Action Type</em>' containment reference.
+	 * @see #getActionType()
+	 * @generated
+	 */
+	void setActionType(ActionType value);
+
+	/**
+	 * Returns the value of the '<em><b>Message</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Message</em>' reference isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Message</em>' reference.
+	 * @see #setMessage(MessageItem)
+	 * @see org.eclipse.osbp.xtext.action.ActionDSLPackage#getActionButton_Message()
+	 * @model
+	 * @generated
+	 */
+	MessageItem getMessage();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.xtext.action.ActionButton#getMessage <em>Message</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Message</em>' reference.
+	 * @see #getMessage()
+	 * @generated
+	 */
+	void setMessage(MessageItem value);
+
+} // ActionButton
diff --git a/org.eclipse.osbp.xtext.action/emf-gen/org/eclipse/osbp/xtext/action/ActionChart.java b/org.eclipse.osbp.xtext.action/emf-gen/org/eclipse/osbp/xtext/action/ActionChart.java
new file mode 100644
index 0000000..463692a
--- /dev/null
+++ b/org.eclipse.osbp.xtext.action/emf-gen/org/eclipse/osbp/xtext/action/ActionChart.java
@@ -0,0 +1,64 @@
+/**
+ * Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ *  All rights reserved. This program and the accompanying materials
+ *  are made available under the terms of the Eclipse Public License v1.0
+ *  which accompanies this distribution, and is available at
+ *  http://www.eclipse.org/legal/epl-v10.html
+ *  
+ *  Contributors:                                                      
+ *     Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
+ *  
+ *  generated from ActionDSL.xcore
+ * 
+ *  
+ */
+package org.eclipse.osbp.xtext.action;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Action Chart</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.xtext.action.ActionChart#getAction <em>Action</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.osbp.xtext.action.ActionDSLPackage#getActionChart()
+ * @model
+ * @generated
+ */
+public interface ActionChart extends ActionType {
+	/**
+	 * Returns the value of the '<em><b>Action</b></em>' attribute.
+	 * The literals are from the enumeration {@link org.eclipse.osbp.xtext.action.ChartActionEnum}.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Action</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Action</em>' attribute.
+	 * @see org.eclipse.osbp.xtext.action.ChartActionEnum
+	 * @see #setAction(ChartActionEnum)
+	 * @see org.eclipse.osbp.xtext.action.ActionDSLPackage#getActionChart_Action()
+	 * @model unique="false"
+	 * @generated
+	 */
+	ChartActionEnum getAction();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.xtext.action.ActionChart#getAction <em>Action</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Action</em>' attribute.
+	 * @see org.eclipse.osbp.xtext.action.ChartActionEnum
+	 * @see #getAction()
+	 * @generated
+	 */
+	void setAction(ChartActionEnum value);
+
+} // ActionChart
diff --git a/org.eclipse.osbp.xtext.action/emf-gen/org/eclipse/osbp/xtext/action/ActionDSLFactory.java b/org.eclipse.osbp.xtext.action/emf-gen/org/eclipse/osbp/xtext/action/ActionDSLFactory.java
new file mode 100644
index 0000000..f61d44f
--- /dev/null
+++ b/org.eclipse.osbp.xtext.action/emf-gen/org/eclipse/osbp/xtext/action/ActionDSLFactory.java
@@ -0,0 +1,180 @@
+/**
+ * Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ *  All rights reserved. This program and the accompanying materials
+ *  are made available under the terms of the Eclipse Public License v1.0
+ *  which accompanies this distribution, and is available at
+ *  http://www.eclipse.org/legal/epl-v10.html
+ *  
+ *  Contributors:                                                      
+ *     Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
+ *  
+ *  generated from ActionDSL.xcore
+ * 
+ *  
+ */
+package org.eclipse.osbp.xtext.action;
+
+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.action.ActionDSLPackage
+ * @generated
+ */
+public interface ActionDSLFactory extends EFactory {
+	/**
+	 * The singleton instance of the factory.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	ActionDSLFactory eINSTANCE = org.eclipse.osbp.xtext.action.impl.ActionDSLFactoryImpl.init();
+
+	/**
+	 * Returns a new object of class '<em>Action Model</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Action Model</em>'.
+	 * @generated
+	 */
+	ActionModel createActionModel();
+
+	/**
+	 * Returns a new object of class '<em>Action Lazy Resolver</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Action Lazy Resolver</em>'.
+	 * @generated
+	 */
+	ActionLazyResolver createActionLazyResolver();
+
+	/**
+	 * Returns a new object of class '<em>Action Package</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Action Package</em>'.
+	 * @generated
+	 */
+	ActionPackage createActionPackage();
+
+	/**
+	 * Returns a new object of class '<em>Action Base</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Action Base</em>'.
+	 * @generated
+	 */
+	ActionBase createActionBase();
+
+	/**
+	 * Returns a new object of class '<em>Action Toolbar</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Action Toolbar</em>'.
+	 * @generated
+	 */
+	ActionToolbar createActionToolbar();
+
+	/**
+	 * Returns a new object of class '<em>Action Button</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Action Button</em>'.
+	 * @generated
+	 */
+	ActionButton createActionButton();
+
+	/**
+	 * Returns a new object of class '<em>Action Task</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Action Task</em>'.
+	 * @generated
+	 */
+	ActionTask createActionTask();
+
+	/**
+	 * Returns a new object of class '<em>Action Select Workload</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Action Select Workload</em>'.
+	 * @generated
+	 */
+	ActionSelectWorkload createActionSelectWorkload();
+
+	/**
+	 * Returns a new object of class '<em>Action Dialog</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Action Dialog</em>'.
+	 * @generated
+	 */
+	ActionDialog createActionDialog();
+
+	/**
+	 * Returns a new object of class '<em>Action Report</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Action Report</em>'.
+	 * @generated
+	 */
+	ActionReport createActionReport();
+
+	/**
+	 * Returns a new object of class '<em>Action Chart</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Action Chart</em>'.
+	 * @generated
+	 */
+	ActionChart createActionChart();
+
+	/**
+	 * Returns a new object of class '<em>Action Workflow</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Action Workflow</em>'.
+	 * @generated
+	 */
+	ActionWorkflow createActionWorkflow();
+
+	/**
+	 * Returns a new object of class '<em>Action Datainterchange</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Action Datainterchange</em>'.
+	 * @generated
+	 */
+	ActionDatainterchange createActionDatainterchange();
+
+	/**
+	 * Returns a new object of class '<em>Action Generic</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Action Generic</em>'.
+	 * @generated
+	 */
+	ActionGeneric createActionGeneric();
+
+	/**
+	 * Returns a new object of class '<em>Action Parameter</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Action Parameter</em>'.
+	 * @generated
+	 */
+	ActionParameter createActionParameter();
+
+	/**
+	 * Returns the package supported by this factory.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the package supported by this factory.
+	 * @generated
+	 */
+	ActionDSLPackage getActionDSLPackage();
+
+} //ActionDSLFactory
diff --git a/org.eclipse.osbp.xtext.action/emf-gen/org/eclipse/osbp/xtext/action/ActionDSLPackage.java b/org.eclipse.osbp.xtext.action/emf-gen/org/eclipse/osbp/xtext/action/ActionDSLPackage.java
new file mode 100644
index 0000000..a36678f
--- /dev/null
+++ b/org.eclipse.osbp.xtext.action/emf-gen/org/eclipse/osbp/xtext/action/ActionDSLPackage.java
@@ -0,0 +1,1983 @@
+/**
+ * Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ *  All rights reserved. This program and the accompanying materials
+ *  are made available under the terms of the Eclipse Public License v1.0
+ *  which accompanies this distribution, and is available at
+ *  http://www.eclipse.org/legal/epl-v10.html
+ *  
+ *  Contributors:                                                      
+ *     Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
+ *  
+ *  generated from ActionDSL.xcore
+ * 
+ *  
+ */
+package org.eclipse.osbp.xtext.action;
+
+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 -->
+ * @see org.eclipse.osbp.xtext.action.ActionDSLFactory
+ * @model kind="package"
+ *        annotation="http://www.eclipse.org/emf/2002/GenModel fileExtensions='action' modelName='ActionDSL' prefix='ActionDSL' 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 Contributors:                                                      \r\n    Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation\r\n \r\n generated from ActionDSL.xcore\r\n\r\n ' updateClasspath='false' basePackage='org.eclipse.osbp.xtext'"
+ *        annotation="http://www.eclipse.org/emf/2002/Ecore rootPackage='actiondsl'"
+ * @generated
+ */
+public interface ActionDSLPackage extends EPackage {
+	/**
+	 * The package name.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	String eNAME = "action";
+
+	/**
+	 * The package namespace URI.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	String eNS_URI = "http://osbp.eclipse.org/xtext/action/ActionDSL";
+
+	/**
+	 * The package namespace name.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	String eNS_PREFIX = "actiondsl";
+
+	/**
+	 * The singleton instance of the package.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	ActionDSLPackage eINSTANCE = org.eclipse.osbp.xtext.action.impl.ActionDSLPackageImpl.init();
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.osbp.xtext.action.impl.ActionModelImpl <em>Action Model</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.osbp.xtext.action.impl.ActionModelImpl
+	 * @see org.eclipse.osbp.xtext.action.impl.ActionDSLPackageImpl#getActionModel()
+	 * @generated
+	 */
+	int ACTION_MODEL = 0;
+
+	/**
+	 * The feature id for the '<em><b>Packages</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ACTION_MODEL__PACKAGES = 0;
+
+	/**
+	 * The number of structural features of the '<em>Action Model</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ACTION_MODEL_FEATURE_COUNT = 1;
+
+	/**
+	 * The number of operations of the '<em>Action Model</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ACTION_MODEL_OPERATION_COUNT = 0;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.osbp.xtext.action.impl.ActionLazyResolverImpl <em>Action Lazy Resolver</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.osbp.xtext.action.impl.ActionLazyResolverImpl
+	 * @see org.eclipse.osbp.xtext.action.impl.ActionDSLPackageImpl#getActionLazyResolver()
+	 * @generated
+	 */
+	int ACTION_LAZY_RESOLVER = 1;
+
+	/**
+	 * The number of structural features of the '<em>Action Lazy Resolver</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ACTION_LAZY_RESOLVER_FEATURE_COUNT = 0;
+
+	/**
+	 * The operation id for the '<em>EResolve Proxy</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ACTION_LAZY_RESOLVER___ERESOLVE_PROXY__INTERNALEOBJECT = 0;
+
+	/**
+	 * The number of operations of the '<em>Action Lazy Resolver</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ACTION_LAZY_RESOLVER_OPERATION_COUNT = 1;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.osbp.xtext.action.impl.ActionPackageImpl <em>Action Package</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.osbp.xtext.action.impl.ActionPackageImpl
+	 * @see org.eclipse.osbp.xtext.action.impl.ActionDSLPackageImpl#getActionPackage()
+	 * @generated
+	 */
+	int ACTION_PACKAGE = 2;
+
+	/**
+	 * The feature id for the '<em><b>Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ACTION_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 ACTION_PACKAGE__IMPORTS = OSBPTypesPackage.LPACKAGE__IMPORTS;
+
+	/**
+	 * The feature id for the '<em><b>Toolbars</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ACTION_PACKAGE__TOOLBARS = OSBPTypesPackage.LPACKAGE_FEATURE_COUNT + 0;
+
+	/**
+	 * The number of structural features of the '<em>Action Package</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ACTION_PACKAGE_FEATURE_COUNT = OSBPTypesPackage.LPACKAGE_FEATURE_COUNT + 1;
+
+	/**
+	 * The operation id for the '<em>EResolve Proxy</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ACTION_PACKAGE___ERESOLVE_PROXY__INTERNALEOBJECT = OSBPTypesPackage.LPACKAGE___ERESOLVE_PROXY__INTERNALEOBJECT;
+
+	/**
+	 * The number of operations of the '<em>Action Package</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ACTION_PACKAGE_OPERATION_COUNT = OSBPTypesPackage.LPACKAGE_OPERATION_COUNT + 0;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.osbp.xtext.action.impl.ActionBaseImpl <em>Action Base</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.osbp.xtext.action.impl.ActionBaseImpl
+	 * @see org.eclipse.osbp.xtext.action.impl.ActionDSLPackageImpl#getActionBase()
+	 * @generated
+	 */
+	int ACTION_BASE = 3;
+
+	/**
+	 * The feature id for the '<em><b>Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ACTION_BASE__NAME = ACTION_LAZY_RESOLVER_FEATURE_COUNT + 0;
+
+	/**
+	 * The number of structural features of the '<em>Action Base</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ACTION_BASE_FEATURE_COUNT = ACTION_LAZY_RESOLVER_FEATURE_COUNT + 1;
+
+	/**
+	 * The operation id for the '<em>EResolve Proxy</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ACTION_BASE___ERESOLVE_PROXY__INTERNALEOBJECT = ACTION_LAZY_RESOLVER___ERESOLVE_PROXY__INTERNALEOBJECT;
+
+	/**
+	 * The number of operations of the '<em>Action Base</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ACTION_BASE_OPERATION_COUNT = ACTION_LAZY_RESOLVER_OPERATION_COUNT + 0;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.osbp.xtext.action.impl.ActionToolbarImpl <em>Action Toolbar</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.osbp.xtext.action.impl.ActionToolbarImpl
+	 * @see org.eclipse.osbp.xtext.action.impl.ActionDSLPackageImpl#getActionToolbar()
+	 * @generated
+	 */
+	int ACTION_TOOLBAR = 4;
+
+	/**
+	 * The feature id for the '<em><b>Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ACTION_TOOLBAR__NAME = ACTION_BASE__NAME;
+
+	/**
+	 * The feature id for the '<em><b>Description</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ACTION_TOOLBAR__DESCRIPTION = ACTION_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 ACTION_TOOLBAR__DESCRIPTION_VALUE = ACTION_BASE_FEATURE_COUNT + 1;
+
+	/**
+	 * The feature id for the '<em><b>Actions</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ACTION_TOOLBAR__ACTIONS = ACTION_BASE_FEATURE_COUNT + 2;
+
+	/**
+	 * The number of structural features of the '<em>Action Toolbar</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ACTION_TOOLBAR_FEATURE_COUNT = ACTION_BASE_FEATURE_COUNT + 3;
+
+	/**
+	 * The operation id for the '<em>EResolve Proxy</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ACTION_TOOLBAR___ERESOLVE_PROXY__INTERNALEOBJECT = ACTION_BASE___ERESOLVE_PROXY__INTERNALEOBJECT;
+
+	/**
+	 * The number of operations of the '<em>Action Toolbar</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ACTION_TOOLBAR_OPERATION_COUNT = ACTION_BASE_OPERATION_COUNT + 0;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.osbp.xtext.action.impl.ActionButtonImpl <em>Action Button</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.osbp.xtext.action.impl.ActionButtonImpl
+	 * @see org.eclipse.osbp.xtext.action.impl.ActionDSLPackageImpl#getActionButton()
+	 * @generated
+	 */
+	int ACTION_BUTTON = 5;
+
+	/**
+	 * The feature id for the '<em><b>Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ACTION_BUTTON__NAME = ACTION_BASE__NAME;
+
+	/**
+	 * The feature id for the '<em><b>Description</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ACTION_BUTTON__DESCRIPTION = ACTION_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 ACTION_BUTTON__DESCRIPTION_VALUE = ACTION_BASE_FEATURE_COUNT + 1;
+
+	/**
+	 * The feature id for the '<em><b>Icon URI</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ACTION_BUTTON__ICON_URI = ACTION_BASE_FEATURE_COUNT + 2;
+
+	/**
+	 * The feature id for the '<em><b>Group</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ACTION_BUTTON__GROUP = ACTION_BASE_FEATURE_COUNT + 3;
+
+	/**
+	 * The feature id for the '<em><b>Canexecute</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ACTION_BUTTON__CANEXECUTE = ACTION_BASE_FEATURE_COUNT + 4;
+
+	/**
+	 * The feature id for the '<em><b>Executeparameter</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ACTION_BUTTON__EXECUTEPARAMETER = ACTION_BASE_FEATURE_COUNT + 5;
+
+	/**
+	 * The feature id for the '<em><b>Action Type</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ACTION_BUTTON__ACTION_TYPE = ACTION_BASE_FEATURE_COUNT + 6;
+
+	/**
+	 * The feature id for the '<em><b>Message</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ACTION_BUTTON__MESSAGE = ACTION_BASE_FEATURE_COUNT + 7;
+
+	/**
+	 * The number of structural features of the '<em>Action Button</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ACTION_BUTTON_FEATURE_COUNT = ACTION_BASE_FEATURE_COUNT + 8;
+
+	/**
+	 * The operation id for the '<em>EResolve Proxy</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ACTION_BUTTON___ERESOLVE_PROXY__INTERNALEOBJECT = ACTION_BASE___ERESOLVE_PROXY__INTERNALEOBJECT;
+
+	/**
+	 * The number of operations of the '<em>Action Button</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ACTION_BUTTON_OPERATION_COUNT = ACTION_BASE_OPERATION_COUNT + 0;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.osbp.xtext.action.ActionType <em>Action Type</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.osbp.xtext.action.ActionType
+	 * @see org.eclipse.osbp.xtext.action.impl.ActionDSLPackageImpl#getActionType()
+	 * @generated
+	 */
+	int ACTION_TYPE = 6;
+
+	/**
+	 * The number of structural features of the '<em>Action Type</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ACTION_TYPE_FEATURE_COUNT = ACTION_LAZY_RESOLVER_FEATURE_COUNT + 0;
+
+	/**
+	 * The operation id for the '<em>EResolve Proxy</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ACTION_TYPE___ERESOLVE_PROXY__INTERNALEOBJECT = ACTION_LAZY_RESOLVER___ERESOLVE_PROXY__INTERNALEOBJECT;
+
+	/**
+	 * The number of operations of the '<em>Action Type</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ACTION_TYPE_OPERATION_COUNT = ACTION_LAZY_RESOLVER_OPERATION_COUNT + 0;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.osbp.xtext.action.impl.ActionTaskImpl <em>Action Task</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.osbp.xtext.action.impl.ActionTaskImpl
+	 * @see org.eclipse.osbp.xtext.action.impl.ActionDSLPackageImpl#getActionTask()
+	 * @generated
+	 */
+	int ACTION_TASK = 7;
+
+	/**
+	 * The feature id for the '<em><b>Action</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ACTION_TASK__ACTION = ACTION_TYPE_FEATURE_COUNT + 0;
+
+	/**
+	 * The number of structural features of the '<em>Action Task</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ACTION_TASK_FEATURE_COUNT = ACTION_TYPE_FEATURE_COUNT + 1;
+
+	/**
+	 * The operation id for the '<em>EResolve Proxy</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ACTION_TASK___ERESOLVE_PROXY__INTERNALEOBJECT = ACTION_TYPE___ERESOLVE_PROXY__INTERNALEOBJECT;
+
+	/**
+	 * The number of operations of the '<em>Action Task</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ACTION_TASK_OPERATION_COUNT = ACTION_TYPE_OPERATION_COUNT + 0;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.osbp.xtext.action.impl.ActionSelectWorkloadImpl <em>Action Select Workload</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.osbp.xtext.action.impl.ActionSelectWorkloadImpl
+	 * @see org.eclipse.osbp.xtext.action.impl.ActionDSLPackageImpl#getActionSelectWorkload()
+	 * @generated
+	 */
+	int ACTION_SELECT_WORKLOAD = 8;
+
+	/**
+	 * The feature id for the '<em><b>Action</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ACTION_SELECT_WORKLOAD__ACTION = ACTION_TYPE_FEATURE_COUNT + 0;
+
+	/**
+	 * The number of structural features of the '<em>Action Select Workload</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ACTION_SELECT_WORKLOAD_FEATURE_COUNT = ACTION_TYPE_FEATURE_COUNT + 1;
+
+	/**
+	 * The operation id for the '<em>EResolve Proxy</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ACTION_SELECT_WORKLOAD___ERESOLVE_PROXY__INTERNALEOBJECT = ACTION_TYPE___ERESOLVE_PROXY__INTERNALEOBJECT;
+
+	/**
+	 * The number of operations of the '<em>Action Select Workload</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ACTION_SELECT_WORKLOAD_OPERATION_COUNT = ACTION_TYPE_OPERATION_COUNT + 0;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.osbp.xtext.action.impl.ActionDialogImpl <em>Action Dialog</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.osbp.xtext.action.impl.ActionDialogImpl
+	 * @see org.eclipse.osbp.xtext.action.impl.ActionDSLPackageImpl#getActionDialog()
+	 * @generated
+	 */
+	int ACTION_DIALOG = 9;
+
+	/**
+	 * The feature id for the '<em><b>Action</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ACTION_DIALOG__ACTION = ACTION_TYPE_FEATURE_COUNT + 0;
+
+	/**
+	 * The number of structural features of the '<em>Action Dialog</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ACTION_DIALOG_FEATURE_COUNT = ACTION_TYPE_FEATURE_COUNT + 1;
+
+	/**
+	 * The operation id for the '<em>EResolve Proxy</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ACTION_DIALOG___ERESOLVE_PROXY__INTERNALEOBJECT = ACTION_TYPE___ERESOLVE_PROXY__INTERNALEOBJECT;
+
+	/**
+	 * The number of operations of the '<em>Action Dialog</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ACTION_DIALOG_OPERATION_COUNT = ACTION_TYPE_OPERATION_COUNT + 0;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.osbp.xtext.action.impl.ActionReportImpl <em>Action Report</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.osbp.xtext.action.impl.ActionReportImpl
+	 * @see org.eclipse.osbp.xtext.action.impl.ActionDSLPackageImpl#getActionReport()
+	 * @generated
+	 */
+	int ACTION_REPORT = 10;
+
+	/**
+	 * The feature id for the '<em><b>Action</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ACTION_REPORT__ACTION = ACTION_TYPE_FEATURE_COUNT + 0;
+
+	/**
+	 * The number of structural features of the '<em>Action Report</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ACTION_REPORT_FEATURE_COUNT = ACTION_TYPE_FEATURE_COUNT + 1;
+
+	/**
+	 * The operation id for the '<em>EResolve Proxy</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ACTION_REPORT___ERESOLVE_PROXY__INTERNALEOBJECT = ACTION_TYPE___ERESOLVE_PROXY__INTERNALEOBJECT;
+
+	/**
+	 * The number of operations of the '<em>Action Report</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ACTION_REPORT_OPERATION_COUNT = ACTION_TYPE_OPERATION_COUNT + 0;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.osbp.xtext.action.impl.ActionChartImpl <em>Action Chart</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.osbp.xtext.action.impl.ActionChartImpl
+	 * @see org.eclipse.osbp.xtext.action.impl.ActionDSLPackageImpl#getActionChart()
+	 * @generated
+	 */
+	int ACTION_CHART = 11;
+
+	/**
+	 * The feature id for the '<em><b>Action</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ACTION_CHART__ACTION = ACTION_TYPE_FEATURE_COUNT + 0;
+
+	/**
+	 * The number of structural features of the '<em>Action Chart</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ACTION_CHART_FEATURE_COUNT = ACTION_TYPE_FEATURE_COUNT + 1;
+
+	/**
+	 * The operation id for the '<em>EResolve Proxy</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ACTION_CHART___ERESOLVE_PROXY__INTERNALEOBJECT = ACTION_TYPE___ERESOLVE_PROXY__INTERNALEOBJECT;
+
+	/**
+	 * The number of operations of the '<em>Action Chart</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ACTION_CHART_OPERATION_COUNT = ACTION_TYPE_OPERATION_COUNT + 0;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.osbp.xtext.action.impl.ActionWorkflowImpl <em>Action Workflow</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.osbp.xtext.action.impl.ActionWorkflowImpl
+	 * @see org.eclipse.osbp.xtext.action.impl.ActionDSLPackageImpl#getActionWorkflow()
+	 * @generated
+	 */
+	int ACTION_WORKFLOW = 12;
+
+	/**
+	 * The feature id for the '<em><b>Action</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ACTION_WORKFLOW__ACTION = ACTION_TYPE_FEATURE_COUNT + 0;
+
+	/**
+	 * The number of structural features of the '<em>Action Workflow</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ACTION_WORKFLOW_FEATURE_COUNT = ACTION_TYPE_FEATURE_COUNT + 1;
+
+	/**
+	 * The operation id for the '<em>EResolve Proxy</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ACTION_WORKFLOW___ERESOLVE_PROXY__INTERNALEOBJECT = ACTION_TYPE___ERESOLVE_PROXY__INTERNALEOBJECT;
+
+	/**
+	 * The number of operations of the '<em>Action Workflow</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ACTION_WORKFLOW_OPERATION_COUNT = ACTION_TYPE_OPERATION_COUNT + 0;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.osbp.xtext.action.impl.ActionDatainterchangeImpl <em>Action Datainterchange</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.osbp.xtext.action.impl.ActionDatainterchangeImpl
+	 * @see org.eclipse.osbp.xtext.action.impl.ActionDSLPackageImpl#getActionDatainterchange()
+	 * @generated
+	 */
+	int ACTION_DATAINTERCHANGE = 13;
+
+	/**
+	 * The feature id for the '<em><b>Action</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ACTION_DATAINTERCHANGE__ACTION = ACTION_TYPE_FEATURE_COUNT + 0;
+
+	/**
+	 * The feature id for the '<em><b>Data Ref</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ACTION_DATAINTERCHANGE__DATA_REF = ACTION_TYPE_FEATURE_COUNT + 1;
+
+	/**
+	 * The number of structural features of the '<em>Action Datainterchange</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ACTION_DATAINTERCHANGE_FEATURE_COUNT = ACTION_TYPE_FEATURE_COUNT + 2;
+
+	/**
+	 * The operation id for the '<em>EResolve Proxy</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ACTION_DATAINTERCHANGE___ERESOLVE_PROXY__INTERNALEOBJECT = ACTION_TYPE___ERESOLVE_PROXY__INTERNALEOBJECT;
+
+	/**
+	 * The number of operations of the '<em>Action Datainterchange</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ACTION_DATAINTERCHANGE_OPERATION_COUNT = ACTION_TYPE_OPERATION_COUNT + 0;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.osbp.xtext.action.impl.ActionGenericImpl <em>Action Generic</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.osbp.xtext.action.impl.ActionGenericImpl
+	 * @see org.eclipse.osbp.xtext.action.impl.ActionDSLPackageImpl#getActionGeneric()
+	 * @generated
+	 */
+	int ACTION_GENERIC = 14;
+
+	/**
+	 * The feature id for the '<em><b>Action</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ACTION_GENERIC__ACTION = ACTION_TYPE_FEATURE_COUNT + 0;
+
+	/**
+	 * The number of structural features of the '<em>Action Generic</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ACTION_GENERIC_FEATURE_COUNT = ACTION_TYPE_FEATURE_COUNT + 1;
+
+	/**
+	 * The operation id for the '<em>EResolve Proxy</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ACTION_GENERIC___ERESOLVE_PROXY__INTERNALEOBJECT = ACTION_TYPE___ERESOLVE_PROXY__INTERNALEOBJECT;
+
+	/**
+	 * The number of operations of the '<em>Action Generic</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ACTION_GENERIC_OPERATION_COUNT = ACTION_TYPE_OPERATION_COUNT + 0;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.osbp.xtext.action.impl.ActionParameterImpl <em>Action Parameter</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.osbp.xtext.action.impl.ActionParameterImpl
+	 * @see org.eclipse.osbp.xtext.action.impl.ActionDSLPackageImpl#getActionParameter()
+	 * @generated
+	 */
+	int ACTION_PARAMETER = 15;
+
+	/**
+	 * The feature id for the '<em><b>Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ACTION_PARAMETER__NAME = ACTION_BASE__NAME;
+
+	/**
+	 * The feature id for the '<em><b>Parameter</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ACTION_PARAMETER__PARAMETER = ACTION_BASE_FEATURE_COUNT + 0;
+
+	/**
+	 * The number of structural features of the '<em>Action Parameter</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ACTION_PARAMETER_FEATURE_COUNT = ACTION_BASE_FEATURE_COUNT + 1;
+
+	/**
+	 * The operation id for the '<em>EResolve Proxy</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ACTION_PARAMETER___ERESOLVE_PROXY__INTERNALEOBJECT = ACTION_BASE___ERESOLVE_PROXY__INTERNALEOBJECT;
+
+	/**
+	 * The number of operations of the '<em>Action Parameter</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ACTION_PARAMETER_OPERATION_COUNT = ACTION_BASE_OPERATION_COUNT + 0;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.osbp.xtext.action.TaskActionEnum <em>Task Action Enum</em>}' enum.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.osbp.xtext.action.TaskActionEnum
+	 * @see org.eclipse.osbp.xtext.action.impl.ActionDSLPackageImpl#getTaskActionEnum()
+	 * @generated
+	 */
+	int TASK_ACTION_ENUM = 16;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.osbp.xtext.action.SelectWorkloadActionEnum <em>Select Workload Action Enum</em>}' enum.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.osbp.xtext.action.SelectWorkloadActionEnum
+	 * @see org.eclipse.osbp.xtext.action.impl.ActionDSLPackageImpl#getSelectWorkloadActionEnum()
+	 * @generated
+	 */
+	int SELECT_WORKLOAD_ACTION_ENUM = 17;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.osbp.xtext.action.DialogActionEnum <em>Dialog Action Enum</em>}' enum.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.osbp.xtext.action.DialogActionEnum
+	 * @see org.eclipse.osbp.xtext.action.impl.ActionDSLPackageImpl#getDialogActionEnum()
+	 * @generated
+	 */
+	int DIALOG_ACTION_ENUM = 18;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.osbp.xtext.action.ReportActionEnum <em>Report Action Enum</em>}' enum.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.osbp.xtext.action.ReportActionEnum
+	 * @see org.eclipse.osbp.xtext.action.impl.ActionDSLPackageImpl#getReportActionEnum()
+	 * @generated
+	 */
+	int REPORT_ACTION_ENUM = 19;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.osbp.xtext.action.ChartActionEnum <em>Chart Action Enum</em>}' enum.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.osbp.xtext.action.ChartActionEnum
+	 * @see org.eclipse.osbp.xtext.action.impl.ActionDSLPackageImpl#getChartActionEnum()
+	 * @generated
+	 */
+	int CHART_ACTION_ENUM = 20;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.osbp.xtext.action.WorkflowActionEnum <em>Workflow Action Enum</em>}' enum.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.osbp.xtext.action.WorkflowActionEnum
+	 * @see org.eclipse.osbp.xtext.action.impl.ActionDSLPackageImpl#getWorkflowActionEnum()
+	 * @generated
+	 */
+	int WORKFLOW_ACTION_ENUM = 21;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.osbp.xtext.action.DatainterchangeActionEnum <em>Datainterchange Action Enum</em>}' enum.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.osbp.xtext.action.DatainterchangeActionEnum
+	 * @see org.eclipse.osbp.xtext.action.impl.ActionDSLPackageImpl#getDatainterchangeActionEnum()
+	 * @generated
+	 */
+	int DATAINTERCHANGE_ACTION_ENUM = 22;
+
+	/**
+	 * 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.action.impl.ActionDSLPackageImpl#getInternalEObject()
+	 * @generated
+	 */
+	int INTERNAL_EOBJECT = 23;
+
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.osbp.xtext.action.ActionModel <em>Action Model</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Action Model</em>'.
+	 * @see org.eclipse.osbp.xtext.action.ActionModel
+	 * @generated
+	 */
+	EClass getActionModel();
+
+	/**
+	 * Returns the meta object for the containment reference list '{@link org.eclipse.osbp.xtext.action.ActionModel#getPackages <em>Packages</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the containment reference list '<em>Packages</em>'.
+	 * @see org.eclipse.osbp.xtext.action.ActionModel#getPackages()
+	 * @see #getActionModel()
+	 * @generated
+	 */
+	EReference getActionModel_Packages();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.osbp.xtext.action.ActionLazyResolver <em>Action Lazy Resolver</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Action Lazy Resolver</em>'.
+	 * @see org.eclipse.osbp.xtext.action.ActionLazyResolver
+	 * @generated
+	 */
+	EClass getActionLazyResolver();
+
+	/**
+	 * Returns the meta object for the '{@link org.eclipse.osbp.xtext.action.ActionLazyResolver#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.action.ActionLazyResolver#eResolveProxy(org.eclipse.emf.ecore.InternalEObject)
+	 * @generated
+	 */
+	EOperation getActionLazyResolver__EResolveProxy__InternalEObject();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.osbp.xtext.action.ActionPackage <em>Action Package</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Action Package</em>'.
+	 * @see org.eclipse.osbp.xtext.action.ActionPackage
+	 * @generated
+	 */
+	EClass getActionPackage();
+
+	/**
+	 * Returns the meta object for the containment reference list '{@link org.eclipse.osbp.xtext.action.ActionPackage#getToolbars <em>Toolbars</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the containment reference list '<em>Toolbars</em>'.
+	 * @see org.eclipse.osbp.xtext.action.ActionPackage#getToolbars()
+	 * @see #getActionPackage()
+	 * @generated
+	 */
+	EReference getActionPackage_Toolbars();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.osbp.xtext.action.ActionBase <em>Action Base</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Action Base</em>'.
+	 * @see org.eclipse.osbp.xtext.action.ActionBase
+	 * @generated
+	 */
+	EClass getActionBase();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.xtext.action.ActionBase#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.action.ActionBase#getName()
+	 * @see #getActionBase()
+	 * @generated
+	 */
+	EAttribute getActionBase_Name();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.osbp.xtext.action.ActionToolbar <em>Action Toolbar</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Action Toolbar</em>'.
+	 * @see org.eclipse.osbp.xtext.action.ActionToolbar
+	 * @generated
+	 */
+	EClass getActionToolbar();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.xtext.action.ActionToolbar#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.action.ActionToolbar#isDescription()
+	 * @see #getActionToolbar()
+	 * @generated
+	 */
+	EAttribute getActionToolbar_Description();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.xtext.action.ActionToolbar#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.action.ActionToolbar#getDescriptionValue()
+	 * @see #getActionToolbar()
+	 * @generated
+	 */
+	EAttribute getActionToolbar_DescriptionValue();
+
+	/**
+	 * Returns the meta object for the containment reference list '{@link org.eclipse.osbp.xtext.action.ActionToolbar#getActions <em>Actions</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the containment reference list '<em>Actions</em>'.
+	 * @see org.eclipse.osbp.xtext.action.ActionToolbar#getActions()
+	 * @see #getActionToolbar()
+	 * @generated
+	 */
+	EReference getActionToolbar_Actions();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.osbp.xtext.action.ActionButton <em>Action Button</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Action Button</em>'.
+	 * @see org.eclipse.osbp.xtext.action.ActionButton
+	 * @generated
+	 */
+	EClass getActionButton();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.xtext.action.ActionButton#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.action.ActionButton#isDescription()
+	 * @see #getActionButton()
+	 * @generated
+	 */
+	EAttribute getActionButton_Description();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.xtext.action.ActionButton#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.action.ActionButton#getDescriptionValue()
+	 * @see #getActionButton()
+	 * @generated
+	 */
+	EAttribute getActionButton_DescriptionValue();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.xtext.action.ActionButton#getIconURI <em>Icon URI</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Icon URI</em>'.
+	 * @see org.eclipse.osbp.xtext.action.ActionButton#getIconURI()
+	 * @see #getActionButton()
+	 * @generated
+	 */
+	EAttribute getActionButton_IconURI();
+
+	/**
+	 * Returns the meta object for the reference '{@link org.eclipse.osbp.xtext.action.ActionButton#getGroup <em>Group</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference '<em>Group</em>'.
+	 * @see org.eclipse.osbp.xtext.action.ActionButton#getGroup()
+	 * @see #getActionButton()
+	 * @generated
+	 */
+	EReference getActionButton_Group();
+
+	/**
+	 * Returns the meta object for the reference '{@link org.eclipse.osbp.xtext.action.ActionButton#getCanexecute <em>Canexecute</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference '<em>Canexecute</em>'.
+	 * @see org.eclipse.osbp.xtext.action.ActionButton#getCanexecute()
+	 * @see #getActionButton()
+	 * @generated
+	 */
+	EReference getActionButton_Canexecute();
+
+	/**
+	 * Returns the meta object for the reference '{@link org.eclipse.osbp.xtext.action.ActionButton#getExecuteparameter <em>Executeparameter</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference '<em>Executeparameter</em>'.
+	 * @see org.eclipse.osbp.xtext.action.ActionButton#getExecuteparameter()
+	 * @see #getActionButton()
+	 * @generated
+	 */
+	EReference getActionButton_Executeparameter();
+
+	/**
+	 * Returns the meta object for the containment reference '{@link org.eclipse.osbp.xtext.action.ActionButton#getActionType <em>Action Type</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the containment reference '<em>Action Type</em>'.
+	 * @see org.eclipse.osbp.xtext.action.ActionButton#getActionType()
+	 * @see #getActionButton()
+	 * @generated
+	 */
+	EReference getActionButton_ActionType();
+
+	/**
+	 * Returns the meta object for the reference '{@link org.eclipse.osbp.xtext.action.ActionButton#getMessage <em>Message</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference '<em>Message</em>'.
+	 * @see org.eclipse.osbp.xtext.action.ActionButton#getMessage()
+	 * @see #getActionButton()
+	 * @generated
+	 */
+	EReference getActionButton_Message();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.osbp.xtext.action.ActionType <em>Action Type</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Action Type</em>'.
+	 * @see org.eclipse.osbp.xtext.action.ActionType
+	 * @generated
+	 */
+	EClass getActionType();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.osbp.xtext.action.ActionTask <em>Action Task</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Action Task</em>'.
+	 * @see org.eclipse.osbp.xtext.action.ActionTask
+	 * @generated
+	 */
+	EClass getActionTask();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.xtext.action.ActionTask#getAction <em>Action</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Action</em>'.
+	 * @see org.eclipse.osbp.xtext.action.ActionTask#getAction()
+	 * @see #getActionTask()
+	 * @generated
+	 */
+	EAttribute getActionTask_Action();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.osbp.xtext.action.ActionSelectWorkload <em>Action Select Workload</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Action Select Workload</em>'.
+	 * @see org.eclipse.osbp.xtext.action.ActionSelectWorkload
+	 * @generated
+	 */
+	EClass getActionSelectWorkload();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.xtext.action.ActionSelectWorkload#getAction <em>Action</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Action</em>'.
+	 * @see org.eclipse.osbp.xtext.action.ActionSelectWorkload#getAction()
+	 * @see #getActionSelectWorkload()
+	 * @generated
+	 */
+	EAttribute getActionSelectWorkload_Action();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.osbp.xtext.action.ActionDialog <em>Action Dialog</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Action Dialog</em>'.
+	 * @see org.eclipse.osbp.xtext.action.ActionDialog
+	 * @generated
+	 */
+	EClass getActionDialog();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.xtext.action.ActionDialog#getAction <em>Action</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Action</em>'.
+	 * @see org.eclipse.osbp.xtext.action.ActionDialog#getAction()
+	 * @see #getActionDialog()
+	 * @generated
+	 */
+	EAttribute getActionDialog_Action();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.osbp.xtext.action.ActionReport <em>Action Report</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Action Report</em>'.
+	 * @see org.eclipse.osbp.xtext.action.ActionReport
+	 * @generated
+	 */
+	EClass getActionReport();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.xtext.action.ActionReport#getAction <em>Action</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Action</em>'.
+	 * @see org.eclipse.osbp.xtext.action.ActionReport#getAction()
+	 * @see #getActionReport()
+	 * @generated
+	 */
+	EAttribute getActionReport_Action();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.osbp.xtext.action.ActionChart <em>Action Chart</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Action Chart</em>'.
+	 * @see org.eclipse.osbp.xtext.action.ActionChart
+	 * @generated
+	 */
+	EClass getActionChart();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.xtext.action.ActionChart#getAction <em>Action</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Action</em>'.
+	 * @see org.eclipse.osbp.xtext.action.ActionChart#getAction()
+	 * @see #getActionChart()
+	 * @generated
+	 */
+	EAttribute getActionChart_Action();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.osbp.xtext.action.ActionWorkflow <em>Action Workflow</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Action Workflow</em>'.
+	 * @see org.eclipse.osbp.xtext.action.ActionWorkflow
+	 * @generated
+	 */
+	EClass getActionWorkflow();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.xtext.action.ActionWorkflow#getAction <em>Action</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Action</em>'.
+	 * @see org.eclipse.osbp.xtext.action.ActionWorkflow#getAction()
+	 * @see #getActionWorkflow()
+	 * @generated
+	 */
+	EAttribute getActionWorkflow_Action();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.osbp.xtext.action.ActionDatainterchange <em>Action Datainterchange</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Action Datainterchange</em>'.
+	 * @see org.eclipse.osbp.xtext.action.ActionDatainterchange
+	 * @generated
+	 */
+	EClass getActionDatainterchange();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.xtext.action.ActionDatainterchange#getAction <em>Action</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Action</em>'.
+	 * @see org.eclipse.osbp.xtext.action.ActionDatainterchange#getAction()
+	 * @see #getActionDatainterchange()
+	 * @generated
+	 */
+	EAttribute getActionDatainterchange_Action();
+
+	/**
+	 * Returns the meta object for the reference '{@link org.eclipse.osbp.xtext.action.ActionDatainterchange#getDataRef <em>Data Ref</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference '<em>Data Ref</em>'.
+	 * @see org.eclipse.osbp.xtext.action.ActionDatainterchange#getDataRef()
+	 * @see #getActionDatainterchange()
+	 * @generated
+	 */
+	EReference getActionDatainterchange_DataRef();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.osbp.xtext.action.ActionGeneric <em>Action Generic</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Action Generic</em>'.
+	 * @see org.eclipse.osbp.xtext.action.ActionGeneric
+	 * @generated
+	 */
+	EClass getActionGeneric();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.osbp.xtext.action.ActionGeneric#getAction <em>Action</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Action</em>'.
+	 * @see org.eclipse.osbp.xtext.action.ActionGeneric#getAction()
+	 * @see #getActionGeneric()
+	 * @generated
+	 */
+	EAttribute getActionGeneric_Action();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.osbp.xtext.action.ActionParameter <em>Action Parameter</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Action Parameter</em>'.
+	 * @see org.eclipse.osbp.xtext.action.ActionParameter
+	 * @generated
+	 */
+	EClass getActionParameter();
+
+	/**
+	 * Returns the meta object for the reference '{@link org.eclipse.osbp.xtext.action.ActionParameter#getParameter <em>Parameter</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference '<em>Parameter</em>'.
+	 * @see org.eclipse.osbp.xtext.action.ActionParameter#getParameter()
+	 * @see #getActionParameter()
+	 * @generated
+	 */
+	EReference getActionParameter_Parameter();
+
+	/**
+	 * Returns the meta object for enum '{@link org.eclipse.osbp.xtext.action.TaskActionEnum <em>Task Action Enum</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for enum '<em>Task Action Enum</em>'.
+	 * @see org.eclipse.osbp.xtext.action.TaskActionEnum
+	 * @generated
+	 */
+	EEnum getTaskActionEnum();
+
+	/**
+	 * Returns the meta object for enum '{@link org.eclipse.osbp.xtext.action.SelectWorkloadActionEnum <em>Select Workload Action Enum</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for enum '<em>Select Workload Action Enum</em>'.
+	 * @see org.eclipse.osbp.xtext.action.SelectWorkloadActionEnum
+	 * @generated
+	 */
+	EEnum getSelectWorkloadActionEnum();
+
+	/**
+	 * Returns the meta object for enum '{@link org.eclipse.osbp.xtext.action.DialogActionEnum <em>Dialog Action Enum</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for enum '<em>Dialog Action Enum</em>'.
+	 * @see org.eclipse.osbp.xtext.action.DialogActionEnum
+	 * @generated
+	 */
+	EEnum getDialogActionEnum();
+
+	/**
+	 * Returns the meta object for enum '{@link org.eclipse.osbp.xtext.action.ReportActionEnum <em>Report Action Enum</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for enum '<em>Report Action Enum</em>'.
+	 * @see org.eclipse.osbp.xtext.action.ReportActionEnum
+	 * @generated
+	 */
+	EEnum getReportActionEnum();
+
+	/**
+	 * Returns the meta object for enum '{@link org.eclipse.osbp.xtext.action.ChartActionEnum <em>Chart Action Enum</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for enum '<em>Chart Action Enum</em>'.
+	 * @see org.eclipse.osbp.xtext.action.ChartActionEnum
+	 * @generated
+	 */
+	EEnum getChartActionEnum();
+
+	/**
+	 * Returns the meta object for enum '{@link org.eclipse.osbp.xtext.action.WorkflowActionEnum <em>Workflow Action Enum</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for enum '<em>Workflow Action Enum</em>'.
+	 * @see org.eclipse.osbp.xtext.action.WorkflowActionEnum
+	 * @generated
+	 */
+	EEnum getWorkflowActionEnum();
+
+	/**
+	 * Returns the meta object for enum '{@link org.eclipse.osbp.xtext.action.DatainterchangeActionEnum <em>Datainterchange Action Enum</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for enum '<em>Datainterchange Action Enum</em>'.
+	 * @see org.eclipse.osbp.xtext.action.DatainterchangeActionEnum
+	 * @generated
+	 */
+	EEnum getDatainterchangeActionEnum();
+
+	/**
+	 * 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
+	 */
+	ActionDSLFactory getActionDSLFactory();
+
+	/**
+	 * <!-- 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.action.impl.ActionModelImpl <em>Action Model</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.osbp.xtext.action.impl.ActionModelImpl
+		 * @see org.eclipse.osbp.xtext.action.impl.ActionDSLPackageImpl#getActionModel()
+		 * @generated
+		 */
+		EClass ACTION_MODEL = eINSTANCE.getActionModel();
+
+		/**
+		 * The meta object literal for the '<em><b>Packages</b></em>' containment reference list feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference ACTION_MODEL__PACKAGES = eINSTANCE.getActionModel_Packages();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.osbp.xtext.action.impl.ActionLazyResolverImpl <em>Action Lazy Resolver</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.osbp.xtext.action.impl.ActionLazyResolverImpl
+		 * @see org.eclipse.osbp.xtext.action.impl.ActionDSLPackageImpl#getActionLazyResolver()
+		 * @generated
+		 */
+		EClass ACTION_LAZY_RESOLVER = eINSTANCE.getActionLazyResolver();
+
+		/**
+		 * The meta object literal for the '<em><b>EResolve Proxy</b></em>' operation.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EOperation ACTION_LAZY_RESOLVER___ERESOLVE_PROXY__INTERNALEOBJECT = eINSTANCE.getActionLazyResolver__EResolveProxy__InternalEObject();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.osbp.xtext.action.impl.ActionPackageImpl <em>Action Package</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.osbp.xtext.action.impl.ActionPackageImpl
+		 * @see org.eclipse.osbp.xtext.action.impl.ActionDSLPackageImpl#getActionPackage()
+		 * @generated
+		 */
+		EClass ACTION_PACKAGE = eINSTANCE.getActionPackage();
+
+		/**
+		 * The meta object literal for the '<em><b>Toolbars</b></em>' containment reference list feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference ACTION_PACKAGE__TOOLBARS = eINSTANCE.getActionPackage_Toolbars();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.osbp.xtext.action.impl.ActionBaseImpl <em>Action Base</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.osbp.xtext.action.impl.ActionBaseImpl
+		 * @see org.eclipse.osbp.xtext.action.impl.ActionDSLPackageImpl#getActionBase()
+		 * @generated
+		 */
+		EClass ACTION_BASE = eINSTANCE.getActionBase();
+
+		/**
+		 * The meta object literal for the '<em><b>Name</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute ACTION_BASE__NAME = eINSTANCE.getActionBase_Name();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.osbp.xtext.action.impl.ActionToolbarImpl <em>Action Toolbar</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.osbp.xtext.action.impl.ActionToolbarImpl
+		 * @see org.eclipse.osbp.xtext.action.impl.ActionDSLPackageImpl#getActionToolbar()
+		 * @generated
+		 */
+		EClass ACTION_TOOLBAR = eINSTANCE.getActionToolbar();
+
+		/**
+		 * The meta object literal for the '<em><b>Description</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute ACTION_TOOLBAR__DESCRIPTION = eINSTANCE.getActionToolbar_Description();
+
+		/**
+		 * The meta object literal for the '<em><b>Description Value</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute ACTION_TOOLBAR__DESCRIPTION_VALUE = eINSTANCE.getActionToolbar_DescriptionValue();
+
+		/**
+		 * The meta object literal for the '<em><b>Actions</b></em>' containment reference list feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference ACTION_TOOLBAR__ACTIONS = eINSTANCE.getActionToolbar_Actions();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.osbp.xtext.action.impl.ActionButtonImpl <em>Action Button</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.osbp.xtext.action.impl.ActionButtonImpl
+		 * @see org.eclipse.osbp.xtext.action.impl.ActionDSLPackageImpl#getActionButton()
+		 * @generated
+		 */
+		EClass ACTION_BUTTON = eINSTANCE.getActionButton();
+
+		/**
+		 * The meta object literal for the '<em><b>Description</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute ACTION_BUTTON__DESCRIPTION = eINSTANCE.getActionButton_Description();
+
+		/**
+		 * The meta object literal for the '<em><b>Description Value</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute ACTION_BUTTON__DESCRIPTION_VALUE = eINSTANCE.getActionButton_DescriptionValue();
+
+		/**
+		 * The meta object literal for the '<em><b>Icon URI</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute ACTION_BUTTON__ICON_URI = eINSTANCE.getActionButton_IconURI();
+
+		/**
+		 * The meta object literal for the '<em><b>Group</b></em>' reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference ACTION_BUTTON__GROUP = eINSTANCE.getActionButton_Group();
+
+		/**
+		 * The meta object literal for the '<em><b>Canexecute</b></em>' reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference ACTION_BUTTON__CANEXECUTE = eINSTANCE.getActionButton_Canexecute();
+
+		/**
+		 * The meta object literal for the '<em><b>Executeparameter</b></em>' reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference ACTION_BUTTON__EXECUTEPARAMETER = eINSTANCE.getActionButton_Executeparameter();
+
+		/**
+		 * The meta object literal for the '<em><b>Action Type</b></em>' containment reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference ACTION_BUTTON__ACTION_TYPE = eINSTANCE.getActionButton_ActionType();
+
+		/**
+		 * The meta object literal for the '<em><b>Message</b></em>' reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference ACTION_BUTTON__MESSAGE = eINSTANCE.getActionButton_Message();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.osbp.xtext.action.ActionType <em>Action Type</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.osbp.xtext.action.ActionType
+		 * @see org.eclipse.osbp.xtext.action.impl.ActionDSLPackageImpl#getActionType()
+		 * @generated
+		 */
+		EClass ACTION_TYPE = eINSTANCE.getActionType();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.osbp.xtext.action.impl.ActionTaskImpl <em>Action Task</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.osbp.xtext.action.impl.ActionTaskImpl
+		 * @see org.eclipse.osbp.xtext.action.impl.ActionDSLPackageImpl#getActionTask()
+		 * @generated
+		 */
+		EClass ACTION_TASK = eINSTANCE.getActionTask();
+
+		/**
+		 * The meta object literal for the '<em><b>Action</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute ACTION_TASK__ACTION = eINSTANCE.getActionTask_Action();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.osbp.xtext.action.impl.ActionSelectWorkloadImpl <em>Action Select Workload</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.osbp.xtext.action.impl.ActionSelectWorkloadImpl
+		 * @see org.eclipse.osbp.xtext.action.impl.ActionDSLPackageImpl#getActionSelectWorkload()
+		 * @generated
+		 */
+		EClass ACTION_SELECT_WORKLOAD = eINSTANCE.getActionSelectWorkload();
+
+		/**
+		 * The meta object literal for the '<em><b>Action</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute ACTION_SELECT_WORKLOAD__ACTION = eINSTANCE.getActionSelectWorkload_Action();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.osbp.xtext.action.impl.ActionDialogImpl <em>Action Dialog</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.osbp.xtext.action.impl.ActionDialogImpl
+		 * @see org.eclipse.osbp.xtext.action.impl.ActionDSLPackageImpl#getActionDialog()
+		 * @generated
+		 */
+		EClass ACTION_DIALOG = eINSTANCE.getActionDialog();
+
+		/**
+		 * The meta object literal for the '<em><b>Action</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute ACTION_DIALOG__ACTION = eINSTANCE.getActionDialog_Action();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.osbp.xtext.action.impl.ActionReportImpl <em>Action Report</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.osbp.xtext.action.impl.ActionReportImpl
+		 * @see org.eclipse.osbp.xtext.action.impl.ActionDSLPackageImpl#getActionReport()
+		 * @generated
+		 */
+		EClass ACTION_REPORT = eINSTANCE.getActionReport();
+
+		/**
+		 * The meta object literal for the '<em><b>Action</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute ACTION_REPORT__ACTION = eINSTANCE.getActionReport_Action();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.osbp.xtext.action.impl.ActionChartImpl <em>Action Chart</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.osbp.xtext.action.impl.ActionChartImpl
+		 * @see org.eclipse.osbp.xtext.action.impl.ActionDSLPackageImpl#getActionChart()
+		 * @generated
+		 */
+		EClass ACTION_CHART = eINSTANCE.getActionChart();
+
+		/**
+		 * The meta object literal for the '<em><b>Action</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute ACTION_CHART__ACTION = eINSTANCE.getActionChart_Action();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.osbp.xtext.action.impl.ActionWorkflowImpl <em>Action Workflow</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.osbp.xtext.action.impl.ActionWorkflowImpl
+		 * @see org.eclipse.osbp.xtext.action.impl.ActionDSLPackageImpl#getActionWorkflow()
+		 * @generated
+		 */
+		EClass ACTION_WORKFLOW = eINSTANCE.getActionWorkflow();
+
+		/**
+		 * The meta object literal for the '<em><b>Action</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute ACTION_WORKFLOW__ACTION = eINSTANCE.getActionWorkflow_Action();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.osbp.xtext.action.impl.ActionDatainterchangeImpl <em>Action Datainterchange</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.osbp.xtext.action.impl.ActionDatainterchangeImpl
+		 * @see org.eclipse.osbp.xtext.action.impl.ActionDSLPackageImpl#getActionDatainterchange()
+		 * @generated
+		 */
+		EClass ACTION_DATAINTERCHANGE = eINSTANCE.getActionDatainterchange();
+
+		/**
+		 * The meta object literal for the '<em><b>Action</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute ACTION_DATAINTERCHANGE__ACTION = eINSTANCE.getActionDatainterchange_Action();
+
+		/**
+		 * The meta object literal for the '<em><b>Data Ref</b></em>' reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference ACTION_DATAINTERCHANGE__DATA_REF = eINSTANCE.getActionDatainterchange_DataRef();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.osbp.xtext.action.impl.ActionGenericImpl <em>Action Generic</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.osbp.xtext.action.impl.ActionGenericImpl
+		 * @see org.eclipse.osbp.xtext.action.impl.ActionDSLPackageImpl#getActionGeneric()
+		 * @generated
+		 */
+		EClass ACTION_GENERIC = eINSTANCE.getActionGeneric();
+
+		/**
+		 * The meta object literal for the '<em><b>Action</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute ACTION_GENERIC__ACTION = eINSTANCE.getActionGeneric_Action();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.osbp.xtext.action.impl.ActionParameterImpl <em>Action Parameter</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.osbp.xtext.action.impl.ActionParameterImpl
+		 * @see org.eclipse.osbp.xtext.action.impl.ActionDSLPackageImpl#getActionParameter()
+		 * @generated
+		 */
+		EClass ACTION_PARAMETER = eINSTANCE.getActionParameter();
+
+		/**
+		 * The meta object literal for the '<em><b>Parameter</b></em>' reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference ACTION_PARAMETER__PARAMETER = eINSTANCE.getActionParameter_Parameter();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.osbp.xtext.action.TaskActionEnum <em>Task Action Enum</em>}' enum.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.osbp.xtext.action.TaskActionEnum
+		 * @see org.eclipse.osbp.xtext.action.impl.ActionDSLPackageImpl#getTaskActionEnum()
+		 * @generated
+		 */
+		EEnum TASK_ACTION_ENUM = eINSTANCE.getTaskActionEnum();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.osbp.xtext.action.SelectWorkloadActionEnum <em>Select Workload Action Enum</em>}' enum.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.osbp.xtext.action.SelectWorkloadActionEnum
+		 * @see org.eclipse.osbp.xtext.action.impl.ActionDSLPackageImpl#getSelectWorkloadActionEnum()
+		 * @generated
+		 */
+		EEnum SELECT_WORKLOAD_ACTION_ENUM = eINSTANCE.getSelectWorkloadActionEnum();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.osbp.xtext.action.DialogActionEnum <em>Dialog Action Enum</em>}' enum.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.osbp.xtext.action.DialogActionEnum
+		 * @see org.eclipse.osbp.xtext.action.impl.ActionDSLPackageImpl#getDialogActionEnum()
+		 * @generated
+		 */
+		EEnum DIALOG_ACTION_ENUM = eINSTANCE.getDialogActionEnum();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.osbp.xtext.action.ReportActionEnum <em>Report Action Enum</em>}' enum.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.osbp.xtext.action.ReportActionEnum
+		 * @see org.eclipse.osbp.xtext.action.impl.ActionDSLPackageImpl#getReportActionEnum()
+		 * @generated
+		 */
+		EEnum REPORT_ACTION_ENUM = eINSTANCE.getReportActionEnum();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.osbp.xtext.action.ChartActionEnum <em>Chart Action Enum</em>}' enum.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.osbp.xtext.action.ChartActionEnum
+		 * @see org.eclipse.osbp.xtext.action.impl.ActionDSLPackageImpl#getChartActionEnum()
+		 * @generated
+		 */
+		EEnum CHART_ACTION_ENUM = eINSTANCE.getChartActionEnum();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.osbp.xtext.action.WorkflowActionEnum <em>Workflow Action Enum</em>}' enum.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.osbp.xtext.action.WorkflowActionEnum
+		 * @see org.eclipse.osbp.xtext.action.impl.ActionDSLPackageImpl#getWorkflowActionEnum()
+		 * @generated
+		 */
+		EEnum WORKFLOW_ACTION_ENUM = eINSTANCE.getWorkflowActionEnum();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.osbp.xtext.action.DatainterchangeActionEnum <em>Datainterchange Action Enum</em>}' enum.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.osbp.xtext.action.DatainterchangeActionEnum
+		 * @see org.eclipse.osbp.xtext.action.impl.ActionDSLPackageImpl#getDatainterchangeActionEnum()
+		 * @generated
+		 */
+		EEnum DATAINTERCHANGE_ACTION_ENUM = eINSTANCE.getDatainterchangeActionEnum();
+
+		/**
+		 * 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.action.impl.ActionDSLPackageImpl#getInternalEObject()
+		 * @generated
+		 */
+		EDataType INTERNAL_EOBJECT = eINSTANCE.getInternalEObject();
+
+	}
+
+} //ActionDSLPackage
diff --git a/org.eclipse.osbp.xtext.action/emf-gen/org/eclipse/osbp/xtext/action/ActionDatainterchange.java b/org.eclipse.osbp.xtext.action/emf-gen/org/eclipse/osbp/xtext/action/ActionDatainterchange.java
new file mode 100644
index 0000000..a36785c
--- /dev/null
+++ b/org.eclipse.osbp.xtext.action/emf-gen/org/eclipse/osbp/xtext/action/ActionDatainterchange.java
@@ -0,0 +1,92 @@
+/**
+ * Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ *  All rights reserved. This program and the accompanying materials
+ *  are made available under the terms of the Eclipse Public License v1.0
+ *  which accompanies this distribution, and is available at
+ *  http://www.eclipse.org/legal/epl-v10.html
+ *  
+ *  Contributors:                                                      
+ *     Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
+ *  
+ *  generated from ActionDSL.xcore
+ * 
+ *  
+ */
+package org.eclipse.osbp.xtext.action;
+
+import org.eclipse.osbp.xtext.datainterchange.DataInterchange;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Action Datainterchange</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.xtext.action.ActionDatainterchange#getAction <em>Action</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.action.ActionDatainterchange#getDataRef <em>Data Ref</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.osbp.xtext.action.ActionDSLPackage#getActionDatainterchange()
+ * @model
+ * @generated
+ */
+public interface ActionDatainterchange extends ActionType {
+	/**
+	 * Returns the value of the '<em><b>Action</b></em>' attribute.
+	 * The literals are from the enumeration {@link org.eclipse.osbp.xtext.action.DatainterchangeActionEnum}.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Action</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Action</em>' attribute.
+	 * @see org.eclipse.osbp.xtext.action.DatainterchangeActionEnum
+	 * @see #setAction(DatainterchangeActionEnum)
+	 * @see org.eclipse.osbp.xtext.action.ActionDSLPackage#getActionDatainterchange_Action()
+	 * @model unique="false"
+	 * @generated
+	 */
+	DatainterchangeActionEnum getAction();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.xtext.action.ActionDatainterchange#getAction <em>Action</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Action</em>' attribute.
+	 * @see org.eclipse.osbp.xtext.action.DatainterchangeActionEnum
+	 * @see #getAction()
+	 * @generated
+	 */
+	void setAction(DatainterchangeActionEnum value);
+
+	/**
+	 * Returns the value of the '<em><b>Data Ref</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Data 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>Data Ref</em>' reference.
+	 * @see #setDataRef(DataInterchange)
+	 * @see org.eclipse.osbp.xtext.action.ActionDSLPackage#getActionDatainterchange_DataRef()
+	 * @model
+	 * @generated
+	 */
+	DataInterchange getDataRef();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.xtext.action.ActionDatainterchange#getDataRef <em>Data Ref</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Data Ref</em>' reference.
+	 * @see #getDataRef()
+	 * @generated
+	 */
+	void setDataRef(DataInterchange value);
+
+} // ActionDatainterchange
diff --git a/org.eclipse.osbp.xtext.action/emf-gen/org/eclipse/osbp/xtext/action/ActionDialog.java b/org.eclipse.osbp.xtext.action/emf-gen/org/eclipse/osbp/xtext/action/ActionDialog.java
new file mode 100644
index 0000000..0d3d30c
--- /dev/null
+++ b/org.eclipse.osbp.xtext.action/emf-gen/org/eclipse/osbp/xtext/action/ActionDialog.java
@@ -0,0 +1,64 @@
+/**
+ * Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ *  All rights reserved. This program and the accompanying materials
+ *  are made available under the terms of the Eclipse Public License v1.0
+ *  which accompanies this distribution, and is available at
+ *  http://www.eclipse.org/legal/epl-v10.html
+ *  
+ *  Contributors:                                                      
+ *     Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
+ *  
+ *  generated from ActionDSL.xcore
+ * 
+ *  
+ */
+package org.eclipse.osbp.xtext.action;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Action Dialog</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.xtext.action.ActionDialog#getAction <em>Action</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.osbp.xtext.action.ActionDSLPackage#getActionDialog()
+ * @model
+ * @generated
+ */
+public interface ActionDialog extends ActionType {
+	/**
+	 * Returns the value of the '<em><b>Action</b></em>' attribute.
+	 * The literals are from the enumeration {@link org.eclipse.osbp.xtext.action.DialogActionEnum}.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Action</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Action</em>' attribute.
+	 * @see org.eclipse.osbp.xtext.action.DialogActionEnum
+	 * @see #setAction(DialogActionEnum)
+	 * @see org.eclipse.osbp.xtext.action.ActionDSLPackage#getActionDialog_Action()
+	 * @model unique="false"
+	 * @generated
+	 */
+	DialogActionEnum getAction();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.xtext.action.ActionDialog#getAction <em>Action</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Action</em>' attribute.
+	 * @see org.eclipse.osbp.xtext.action.DialogActionEnum
+	 * @see #getAction()
+	 * @generated
+	 */
+	void setAction(DialogActionEnum value);
+
+} // ActionDialog
diff --git a/org.eclipse.osbp.xtext.action/emf-gen/org/eclipse/osbp/xtext/action/ActionGeneric.java b/org.eclipse.osbp.xtext.action/emf-gen/org/eclipse/osbp/xtext/action/ActionGeneric.java
new file mode 100644
index 0000000..cdec306
--- /dev/null
+++ b/org.eclipse.osbp.xtext.action/emf-gen/org/eclipse/osbp/xtext/action/ActionGeneric.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
+ *  
+ *  Contributors:                                                      
+ *     Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
+ *  
+ *  generated from ActionDSL.xcore
+ * 
+ *  
+ */
+package org.eclipse.osbp.xtext.action;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Action Generic</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.xtext.action.ActionGeneric#getAction <em>Action</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.osbp.xtext.action.ActionDSLPackage#getActionGeneric()
+ * @model
+ * @generated
+ */
+public interface ActionGeneric extends ActionType {
+	/**
+	 * Returns the value of the '<em><b>Action</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Action</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Action</em>' attribute.
+	 * @see #setAction(String)
+	 * @see org.eclipse.osbp.xtext.action.ActionDSLPackage#getActionGeneric_Action()
+	 * @model unique="false"
+	 * @generated
+	 */
+	String getAction();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.xtext.action.ActionGeneric#getAction <em>Action</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Action</em>' attribute.
+	 * @see #getAction()
+	 * @generated
+	 */
+	void setAction(String value);
+
+} // ActionGeneric
diff --git a/org.eclipse.osbp.xtext.action/emf-gen/org/eclipse/osbp/xtext/action/ActionLazyResolver.java b/org.eclipse.osbp.xtext.action/emf-gen/org/eclipse/osbp/xtext/action/ActionLazyResolver.java
new file mode 100644
index 0000000..3cd5ba8
--- /dev/null
+++ b/org.eclipse.osbp.xtext.action/emf-gen/org/eclipse/osbp/xtext/action/ActionLazyResolver.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
+ *  
+ *  generated from ActionDSL.xcore
+ * 
+ *  
+ */
+package org.eclipse.osbp.xtext.action;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.InternalEObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Action Lazy Resolver</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see org.eclipse.osbp.xtext.action.ActionDSLPackage#getActionLazyResolver()
+ * @model
+ * @generated
+ */
+public interface ActionLazyResolver extends EObject {
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @model unique="false" proxyDataType="org.eclipse.osbp.xtext.action.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);
+
+} // ActionLazyResolver
diff --git a/org.eclipse.osbp.xtext.action/emf-gen/org/eclipse/osbp/xtext/action/ActionModel.java b/org.eclipse.osbp.xtext.action/emf-gen/org/eclipse/osbp/xtext/action/ActionModel.java
new file mode 100644
index 0000000..1ec952f
--- /dev/null
+++ b/org.eclipse.osbp.xtext.action/emf-gen/org/eclipse/osbp/xtext/action/ActionModel.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
+ *  
+ *  generated from ActionDSL.xcore
+ * 
+ *  
+ */
+package org.eclipse.osbp.xtext.action;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Action Model</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.xtext.action.ActionModel#getPackages <em>Packages</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.osbp.xtext.action.ActionDSLPackage#getActionModel()
+ * @model
+ * @generated
+ */
+public interface ActionModel extends EObject {
+	/**
+	 * Returns the value of the '<em><b>Packages</b></em>' containment reference list.
+	 * The list contents are of type {@link org.eclipse.osbp.xtext.action.ActionPackage}.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Packages</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>Packages</em>' containment reference list.
+	 * @see org.eclipse.osbp.xtext.action.ActionDSLPackage#getActionModel_Packages()
+	 * @model containment="true"
+	 * @generated
+	 */
+	EList<ActionPackage> getPackages();
+
+} // ActionModel
diff --git a/org.eclipse.osbp.xtext.action/emf-gen/org/eclipse/osbp/xtext/action/ActionPackage.java b/org.eclipse.osbp.xtext.action/emf-gen/org/eclipse/osbp/xtext/action/ActionPackage.java
new file mode 100644
index 0000000..49ca726
--- /dev/null
+++ b/org.eclipse.osbp.xtext.action/emf-gen/org/eclipse/osbp/xtext/action/ActionPackage.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
+ *  
+ *  generated from ActionDSL.xcore
+ * 
+ *  
+ */
+package org.eclipse.osbp.xtext.action;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.osbp.dsl.semantic.common.types.LPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Action Package</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.xtext.action.ActionPackage#getToolbars <em>Toolbars</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.osbp.xtext.action.ActionDSLPackage#getActionPackage()
+ * @model
+ * @generated
+ */
+public interface ActionPackage extends LPackage {
+	/**
+	 * Returns the value of the '<em><b>Toolbars</b></em>' containment reference list.
+	 * The list contents are of type {@link org.eclipse.osbp.xtext.action.ActionToolbar}.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Toolbars</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>Toolbars</em>' containment reference list.
+	 * @see org.eclipse.osbp.xtext.action.ActionDSLPackage#getActionPackage_Toolbars()
+	 * @model containment="true"
+	 * @generated
+	 */
+	EList<ActionToolbar> getToolbars();
+
+} // ActionPackage
diff --git a/org.eclipse.osbp.xtext.action/emf-gen/org/eclipse/osbp/xtext/action/ActionParameter.java b/org.eclipse.osbp.xtext.action/emf-gen/org/eclipse/osbp/xtext/action/ActionParameter.java
new file mode 100644
index 0000000..3432f59
--- /dev/null
+++ b/org.eclipse.osbp.xtext.action/emf-gen/org/eclipse/osbp/xtext/action/ActionParameter.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
+ *  
+ *  generated from ActionDSL.xcore
+ * 
+ *  
+ */
+package org.eclipse.osbp.xtext.action;
+
+import org.eclipse.osbp.xtext.functionlibrarydsl.FunctionLibraryParameter;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Action Parameter</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.xtext.action.ActionParameter#getParameter <em>Parameter</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.osbp.xtext.action.ActionDSLPackage#getActionParameter()
+ * @model
+ * @generated
+ */
+public interface ActionParameter extends ActionBase {
+	/**
+	 * Returns the value of the '<em><b>Parameter</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Parameter</em>' reference isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Parameter</em>' reference.
+	 * @see #setParameter(FunctionLibraryParameter)
+	 * @see org.eclipse.osbp.xtext.action.ActionDSLPackage#getActionParameter_Parameter()
+	 * @model
+	 * @generated
+	 */
+	FunctionLibraryParameter getParameter();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.xtext.action.ActionParameter#getParameter <em>Parameter</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Parameter</em>' reference.
+	 * @see #getParameter()
+	 * @generated
+	 */
+	void setParameter(FunctionLibraryParameter value);
+
+} // ActionParameter
diff --git a/org.eclipse.osbp.xtext.action/emf-gen/org/eclipse/osbp/xtext/action/ActionReport.java b/org.eclipse.osbp.xtext.action/emf-gen/org/eclipse/osbp/xtext/action/ActionReport.java
new file mode 100644
index 0000000..c6b3829
--- /dev/null
+++ b/org.eclipse.osbp.xtext.action/emf-gen/org/eclipse/osbp/xtext/action/ActionReport.java
@@ -0,0 +1,64 @@
+/**
+ * Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ *  All rights reserved. This program and the accompanying materials
+ *  are made available under the terms of the Eclipse Public License v1.0
+ *  which accompanies this distribution, and is available at
+ *  http://www.eclipse.org/legal/epl-v10.html
+ *  
+ *  Contributors:                                                      
+ *     Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
+ *  
+ *  generated from ActionDSL.xcore
+ * 
+ *  
+ */
+package org.eclipse.osbp.xtext.action;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Action Report</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.xtext.action.ActionReport#getAction <em>Action</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.osbp.xtext.action.ActionDSLPackage#getActionReport()
+ * @model
+ * @generated
+ */
+public interface ActionReport extends ActionType {
+	/**
+	 * Returns the value of the '<em><b>Action</b></em>' attribute.
+	 * The literals are from the enumeration {@link org.eclipse.osbp.xtext.action.ReportActionEnum}.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Action</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Action</em>' attribute.
+	 * @see org.eclipse.osbp.xtext.action.ReportActionEnum
+	 * @see #setAction(ReportActionEnum)
+	 * @see org.eclipse.osbp.xtext.action.ActionDSLPackage#getActionReport_Action()
+	 * @model unique="false"
+	 * @generated
+	 */
+	ReportActionEnum getAction();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.xtext.action.ActionReport#getAction <em>Action</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Action</em>' attribute.
+	 * @see org.eclipse.osbp.xtext.action.ReportActionEnum
+	 * @see #getAction()
+	 * @generated
+	 */
+	void setAction(ReportActionEnum value);
+
+} // ActionReport
diff --git a/org.eclipse.osbp.xtext.action/emf-gen/org/eclipse/osbp/xtext/action/ActionSelectWorkload.java b/org.eclipse.osbp.xtext.action/emf-gen/org/eclipse/osbp/xtext/action/ActionSelectWorkload.java
new file mode 100644
index 0000000..112e570
--- /dev/null
+++ b/org.eclipse.osbp.xtext.action/emf-gen/org/eclipse/osbp/xtext/action/ActionSelectWorkload.java
@@ -0,0 +1,64 @@
+/**
+ * Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ *  All rights reserved. This program and the accompanying materials
+ *  are made available under the terms of the Eclipse Public License v1.0
+ *  which accompanies this distribution, and is available at
+ *  http://www.eclipse.org/legal/epl-v10.html
+ *  
+ *  Contributors:                                                      
+ *     Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
+ *  
+ *  generated from ActionDSL.xcore
+ * 
+ *  
+ */
+package org.eclipse.osbp.xtext.action;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Action Select Workload</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.xtext.action.ActionSelectWorkload#getAction <em>Action</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.osbp.xtext.action.ActionDSLPackage#getActionSelectWorkload()
+ * @model
+ * @generated
+ */
+public interface ActionSelectWorkload extends ActionType {
+	/**
+	 * Returns the value of the '<em><b>Action</b></em>' attribute.
+	 * The literals are from the enumeration {@link org.eclipse.osbp.xtext.action.SelectWorkloadActionEnum}.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Action</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Action</em>' attribute.
+	 * @see org.eclipse.osbp.xtext.action.SelectWorkloadActionEnum
+	 * @see #setAction(SelectWorkloadActionEnum)
+	 * @see org.eclipse.osbp.xtext.action.ActionDSLPackage#getActionSelectWorkload_Action()
+	 * @model unique="false"
+	 * @generated
+	 */
+	SelectWorkloadActionEnum getAction();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.xtext.action.ActionSelectWorkload#getAction <em>Action</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Action</em>' attribute.
+	 * @see org.eclipse.osbp.xtext.action.SelectWorkloadActionEnum
+	 * @see #getAction()
+	 * @generated
+	 */
+	void setAction(SelectWorkloadActionEnum value);
+
+} // ActionSelectWorkload
diff --git a/org.eclipse.osbp.xtext.action/emf-gen/org/eclipse/osbp/xtext/action/ActionTask.java b/org.eclipse.osbp.xtext.action/emf-gen/org/eclipse/osbp/xtext/action/ActionTask.java
new file mode 100644
index 0000000..7741ab2
--- /dev/null
+++ b/org.eclipse.osbp.xtext.action/emf-gen/org/eclipse/osbp/xtext/action/ActionTask.java
@@ -0,0 +1,64 @@
+/**
+ * Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ *  All rights reserved. This program and the accompanying materials
+ *  are made available under the terms of the Eclipse Public License v1.0
+ *  which accompanies this distribution, and is available at
+ *  http://www.eclipse.org/legal/epl-v10.html
+ *  
+ *  Contributors:                                                      
+ *     Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
+ *  
+ *  generated from ActionDSL.xcore
+ * 
+ *  
+ */
+package org.eclipse.osbp.xtext.action;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Action Task</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.xtext.action.ActionTask#getAction <em>Action</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.osbp.xtext.action.ActionDSLPackage#getActionTask()
+ * @model
+ * @generated
+ */
+public interface ActionTask extends ActionType {
+	/**
+	 * Returns the value of the '<em><b>Action</b></em>' attribute.
+	 * The literals are from the enumeration {@link org.eclipse.osbp.xtext.action.TaskActionEnum}.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Action</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Action</em>' attribute.
+	 * @see org.eclipse.osbp.xtext.action.TaskActionEnum
+	 * @see #setAction(TaskActionEnum)
+	 * @see org.eclipse.osbp.xtext.action.ActionDSLPackage#getActionTask_Action()
+	 * @model unique="false"
+	 * @generated
+	 */
+	TaskActionEnum getAction();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.xtext.action.ActionTask#getAction <em>Action</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Action</em>' attribute.
+	 * @see org.eclipse.osbp.xtext.action.TaskActionEnum
+	 * @see #getAction()
+	 * @generated
+	 */
+	void setAction(TaskActionEnum value);
+
+} // ActionTask
diff --git a/org.eclipse.osbp.xtext.action/emf-gen/org/eclipse/osbp/xtext/action/ActionToolbar.java b/org.eclipse.osbp.xtext.action/emf-gen/org/eclipse/osbp/xtext/action/ActionToolbar.java
new file mode 100644
index 0000000..a64eef9
--- /dev/null
+++ b/org.eclipse.osbp.xtext.action/emf-gen/org/eclipse/osbp/xtext/action/ActionToolbar.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
+ *  
+ *  generated from ActionDSL.xcore
+ * 
+ *  
+ */
+package org.eclipse.osbp.xtext.action;
+
+import org.eclipse.emf.common.util.EList;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Action Toolbar</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.xtext.action.ActionToolbar#isDescription <em>Description</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.action.ActionToolbar#getDescriptionValue <em>Description Value</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.action.ActionToolbar#getActions <em>Actions</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.osbp.xtext.action.ActionDSLPackage#getActionToolbar()
+ * @model
+ * @generated
+ */
+public interface ActionToolbar extends ActionBase {
+	/**
+	 * 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.action.ActionDSLPackage#getActionToolbar_Description()
+	 * @model unique="false"
+	 * @generated
+	 */
+	boolean isDescription();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.xtext.action.ActionToolbar#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.action.ActionDSLPackage#getActionToolbar_DescriptionValue()
+	 * @model unique="false"
+	 * @generated
+	 */
+	String getDescriptionValue();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.xtext.action.ActionToolbar#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>Actions</b></em>' containment reference list.
+	 * The list contents are of type {@link org.eclipse.osbp.xtext.action.ActionButton}.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Actions</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>Actions</em>' containment reference list.
+	 * @see org.eclipse.osbp.xtext.action.ActionDSLPackage#getActionToolbar_Actions()
+	 * @model containment="true"
+	 * @generated
+	 */
+	EList<ActionButton> getActions();
+
+} // ActionToolbar
diff --git a/org.eclipse.osbp.xtext.action/emf-gen/org/eclipse/osbp/xtext/action/ActionType.java b/org.eclipse.osbp.xtext.action/emf-gen/org/eclipse/osbp/xtext/action/ActionType.java
new file mode 100644
index 0000000..0f6ef55
--- /dev/null
+++ b/org.eclipse.osbp.xtext.action/emf-gen/org/eclipse/osbp/xtext/action/ActionType.java
@@ -0,0 +1,29 @@
+/**
+ * Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ *  All rights reserved. This program and the accompanying materials
+ *  are made available under the terms of the Eclipse Public License v1.0
+ *  which accompanies this distribution, and is available at
+ *  http://www.eclipse.org/legal/epl-v10.html
+ *  
+ *  Contributors:                                                      
+ *     Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
+ *  
+ *  generated from ActionDSL.xcore
+ * 
+ *  
+ */
+package org.eclipse.osbp.xtext.action;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Action Type</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see org.eclipse.osbp.xtext.action.ActionDSLPackage#getActionType()
+ * @model interface="true" abstract="true"
+ * @generated
+ */
+public interface ActionType extends ActionLazyResolver {
+} // ActionType
diff --git a/org.eclipse.osbp.xtext.action/emf-gen/org/eclipse/osbp/xtext/action/ActionWorkflow.java b/org.eclipse.osbp.xtext.action/emf-gen/org/eclipse/osbp/xtext/action/ActionWorkflow.java
new file mode 100644
index 0000000..c6bfb90
--- /dev/null
+++ b/org.eclipse.osbp.xtext.action/emf-gen/org/eclipse/osbp/xtext/action/ActionWorkflow.java
@@ -0,0 +1,64 @@
+/**
+ * Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ *  All rights reserved. This program and the accompanying materials
+ *  are made available under the terms of the Eclipse Public License v1.0
+ *  which accompanies this distribution, and is available at
+ *  http://www.eclipse.org/legal/epl-v10.html
+ *  
+ *  Contributors:                                                      
+ *     Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
+ *  
+ *  generated from ActionDSL.xcore
+ * 
+ *  
+ */
+package org.eclipse.osbp.xtext.action;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Action Workflow</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.xtext.action.ActionWorkflow#getAction <em>Action</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.osbp.xtext.action.ActionDSLPackage#getActionWorkflow()
+ * @model
+ * @generated
+ */
+public interface ActionWorkflow extends ActionType {
+	/**
+	 * Returns the value of the '<em><b>Action</b></em>' attribute.
+	 * The literals are from the enumeration {@link org.eclipse.osbp.xtext.action.WorkflowActionEnum}.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Action</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Action</em>' attribute.
+	 * @see org.eclipse.osbp.xtext.action.WorkflowActionEnum
+	 * @see #setAction(WorkflowActionEnum)
+	 * @see org.eclipse.osbp.xtext.action.ActionDSLPackage#getActionWorkflow_Action()
+	 * @model unique="false"
+	 * @generated
+	 */
+	WorkflowActionEnum getAction();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.osbp.xtext.action.ActionWorkflow#getAction <em>Action</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Action</em>' attribute.
+	 * @see org.eclipse.osbp.xtext.action.WorkflowActionEnum
+	 * @see #getAction()
+	 * @generated
+	 */
+	void setAction(WorkflowActionEnum value);
+
+} // ActionWorkflow
diff --git a/org.eclipse.osbp.xtext.action/emf-gen/org/eclipse/osbp/xtext/action/ChartActionEnum.java b/org.eclipse.osbp.xtext.action/emf-gen/org/eclipse/osbp/xtext/action/ChartActionEnum.java
new file mode 100644
index 0000000..2651b62
--- /dev/null
+++ b/org.eclipse.osbp.xtext.action/emf-gen/org/eclipse/osbp/xtext/action/ChartActionEnum.java
@@ -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
+ *  
+ *  generated from ActionDSL.xcore
+ * 
+ *  
+ */
+package org.eclipse.osbp.xtext.action;
+
+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>Chart Action Enum</b></em>',
+ * and utility methods for working with them.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.osbp.xtext.action.ActionDSLPackage#getChartActionEnum()
+ * @model
+ * @generated
+ */
+public enum ChartActionEnum implements Enumerator {
+	/**
+	 * The '<em><b>CHART ACTION DOWNLOAD</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #CHART_ACTION_DOWNLOAD_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	CHART_ACTION_DOWNLOAD(0, "CHART_ACTION_DOWNLOAD", "ChartDownload");
+
+	/**
+	 * The '<em><b>CHART ACTION DOWNLOAD</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>CHART ACTION DOWNLOAD</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @see #CHART_ACTION_DOWNLOAD
+	 * @model literal="ChartDownload"
+	 * @generated
+	 * @ordered
+	 */
+	public static final int CHART_ACTION_DOWNLOAD_VALUE = 0;
+
+	/**
+	 * An array of all the '<em><b>Chart Action Enum</b></em>' enumerators.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private static final ChartActionEnum[] VALUES_ARRAY =
+		new ChartActionEnum[] {
+			CHART_ACTION_DOWNLOAD,
+		};
+
+	/**
+	 * A public read-only list of all the '<em><b>Chart Action Enum</b></em>' enumerators.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static final List<ChartActionEnum> VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
+
+	/**
+	 * Returns the '<em><b>Chart Action Enum</b></em>' literal with the specified literal value.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static ChartActionEnum get(String literal) {
+		for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+			ChartActionEnum result = VALUES_ARRAY[i];
+			if (result.toString().equals(literal)) {
+				return result;
+			}
+		}
+		return null;
+	}
+
+	/**
+	 * Returns the '<em><b>Chart Action Enum</b></em>' literal with the specified name.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static ChartActionEnum getByName(String name) {
+		for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+			ChartActionEnum result = VALUES_ARRAY[i];
+			if (result.getName().equals(name)) {
+				return result;
+			}
+		}
+		return null;
+	}
+
+	/**
+	 * Returns the '<em><b>Chart Action Enum</b></em>' literal with the specified integer value.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static ChartActionEnum get(int value) {
+		switch (value) {
+			case CHART_ACTION_DOWNLOAD_VALUE: return CHART_ACTION_DOWNLOAD;
+		}
+		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 ChartActionEnum(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;
+	}
+	
+} //ChartActionEnum
diff --git a/org.eclipse.osbp.xtext.action/emf-gen/org/eclipse/osbp/xtext/action/DatainterchangeActionEnum.java b/org.eclipse.osbp.xtext.action/emf-gen/org/eclipse/osbp/xtext/action/DatainterchangeActionEnum.java
new file mode 100644
index 0000000..8683f19
--- /dev/null
+++ b/org.eclipse.osbp.xtext.action/emf-gen/org/eclipse/osbp/xtext/action/DatainterchangeActionEnum.java
@@ -0,0 +1,219 @@
+/**
+ * Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ *  All rights reserved. This program and the accompanying materials
+ *  are made available under the terms of the Eclipse Public License v1.0
+ *  which accompanies this distribution, and is available at
+ *  http://www.eclipse.org/legal/epl-v10.html
+ *  
+ *  Contributors:                                                      
+ *     Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
+ *  
+ *  generated from ActionDSL.xcore
+ * 
+ *  
+ */
+package org.eclipse.osbp.xtext.action;
+
+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>Datainterchange Action Enum</b></em>',
+ * and utility methods for working with them.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.osbp.xtext.action.ActionDSLPackage#getDatainterchangeActionEnum()
+ * @model
+ * @generated
+ */
+public enum DatainterchangeActionEnum implements Enumerator {
+	/**
+	 * The '<em><b>DATAINTERCHANGE ACTION IMPORT</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #DATAINTERCHANGE_ACTION_IMPORT_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	DATAINTERCHANGE_ACTION_IMPORT(0, "DATAINTERCHANGE_ACTION_IMPORT", "Import"),
+
+	/**
+	 * The '<em><b>DATAINTERCHANGE ACTION EXPORT</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #DATAINTERCHANGE_ACTION_EXPORT_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	DATAINTERCHANGE_ACTION_EXPORT(0, "DATAINTERCHANGE_ACTION_EXPORT", "Export");
+
+	/**
+	 * The '<em><b>DATAINTERCHANGE ACTION IMPORT</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>DATAINTERCHANGE ACTION IMPORT</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @see #DATAINTERCHANGE_ACTION_IMPORT
+	 * @model literal="Import"
+	 * @generated
+	 * @ordered
+	 */
+	public static final int DATAINTERCHANGE_ACTION_IMPORT_VALUE = 0;
+
+	/**
+	 * The '<em><b>DATAINTERCHANGE ACTION EXPORT</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>DATAINTERCHANGE ACTION EXPORT</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @see #DATAINTERCHANGE_ACTION_EXPORT
+	 * @model literal="Export"
+	 * @generated
+	 * @ordered
+	 */
+	public static final int DATAINTERCHANGE_ACTION_EXPORT_VALUE = 0;
+
+	/**
+	 * An array of all the '<em><b>Datainterchange Action Enum</b></em>' enumerators.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private static final DatainterchangeActionEnum[] VALUES_ARRAY =
+		new DatainterchangeActionEnum[] {
+			DATAINTERCHANGE_ACTION_IMPORT,
+			DATAINTERCHANGE_ACTION_EXPORT,
+		};
+
+	/**
+	 * A public read-only list of all the '<em><b>Datainterchange Action Enum</b></em>' enumerators.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static final List<DatainterchangeActionEnum> VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
+
+	/**
+	 * Returns the '<em><b>Datainterchange Action Enum</b></em>' literal with the specified literal value.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static DatainterchangeActionEnum get(String literal) {
+		for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+			DatainterchangeActionEnum result = VALUES_ARRAY[i];
+			if (result.toString().equals(literal)) {
+				return result;
+			}
+		}
+		return null;
+	}
+
+	/**
+	 * Returns the '<em><b>Datainterchange Action Enum</b></em>' literal with the specified name.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static DatainterchangeActionEnum getByName(String name) {
+		for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+			DatainterchangeActionEnum result = VALUES_ARRAY[i];
+			if (result.getName().equals(name)) {
+				return result;
+			}
+		}
+		return null;
+	}
+
+	/**
+	 * Returns the '<em><b>Datainterchange Action Enum</b></em>' literal with the specified integer value.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static DatainterchangeActionEnum get(int value) {
+		switch (value) {
+			case DATAINTERCHANGE_ACTION_IMPORT_VALUE: return DATAINTERCHANGE_ACTION_IMPORT;
+		}
+		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 DatainterchangeActionEnum(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;
+	}
+	
+} //DatainterchangeActionEnum
diff --git a/org.eclipse.osbp.xtext.action/emf-gen/org/eclipse/osbp/xtext/action/DialogActionEnum.java b/org.eclipse.osbp.xtext.action/emf-gen/org/eclipse/osbp/xtext/action/DialogActionEnum.java
new file mode 100644
index 0000000..1ef15fc
--- /dev/null
+++ b/org.eclipse.osbp.xtext.action/emf-gen/org/eclipse/osbp/xtext/action/DialogActionEnum.java
@@ -0,0 +1,274 @@
+/**
+ * Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ *  All rights reserved. This program and the accompanying materials
+ *  are made available under the terms of the Eclipse Public License v1.0
+ *  which accompanies this distribution, and is available at
+ *  http://www.eclipse.org/legal/epl-v10.html
+ *  
+ *  Contributors:                                                      
+ *     Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
+ *  
+ *  generated from ActionDSL.xcore
+ * 
+ *  
+ */
+package org.eclipse.osbp.xtext.action;
+
+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>Dialog Action Enum</b></em>',
+ * and utility methods for working with them.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.osbp.xtext.action.ActionDSLPackage#getDialogActionEnum()
+ * @model
+ * @generated
+ */
+public enum DialogActionEnum implements Enumerator {
+	/**
+	 * The '<em><b>DIALOG ACTION NEW</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #DIALOG_ACTION_NEW_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	DIALOG_ACTION_NEW(0, "DIALOG_ACTION_NEW", "New"),
+
+	/**
+	 * The '<em><b>DIALOG ACTION SAVE</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #DIALOG_ACTION_SAVE_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	DIALOG_ACTION_SAVE(1, "DIALOG_ACTION_SAVE", "Save"),
+
+	/**
+	 * The '<em><b>DIALOG ACTION DELETE</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #DIALOG_ACTION_DELETE_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	DIALOG_ACTION_DELETE(2, "DIALOG_ACTION_DELETE", "Delete"),
+
+	/**
+	 * The '<em><b>DIALOG ACTION CANCEL</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #DIALOG_ACTION_CANCEL_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	DIALOG_ACTION_CANCEL(3, "DIALOG_ACTION_CANCEL", "Cancel");
+
+	/**
+	 * The '<em><b>DIALOG ACTION NEW</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>DIALOG ACTION NEW</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @see #DIALOG_ACTION_NEW
+	 * @model literal="New"
+	 * @generated
+	 * @ordered
+	 */
+	public static final int DIALOG_ACTION_NEW_VALUE = 0;
+
+	/**
+	 * The '<em><b>DIALOG ACTION SAVE</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>DIALOG ACTION SAVE</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @see #DIALOG_ACTION_SAVE
+	 * @model literal="Save"
+	 * @generated
+	 * @ordered
+	 */
+	public static final int DIALOG_ACTION_SAVE_VALUE = 1;
+
+	/**
+	 * The '<em><b>DIALOG ACTION DELETE</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>DIALOG ACTION DELETE</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @see #DIALOG_ACTION_DELETE
+	 * @model literal="Delete"
+	 * @generated
+	 * @ordered
+	 */
+	public static final int DIALOG_ACTION_DELETE_VALUE = 2;
+
+	/**
+	 * The '<em><b>DIALOG ACTION CANCEL</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>DIALOG ACTION CANCEL</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @see #DIALOG_ACTION_CANCEL
+	 * @model literal="Cancel"
+	 * @generated
+	 * @ordered
+	 */
+	public static final int DIALOG_ACTION_CANCEL_VALUE = 3;
+
+	/**
+	 * An array of all the '<em><b>Dialog Action Enum</b></em>' enumerators.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private static final DialogActionEnum[] VALUES_ARRAY =
+		new DialogActionEnum[] {
+			DIALOG_ACTION_NEW,
+			DIALOG_ACTION_SAVE,
+			DIALOG_ACTION_DELETE,
+			DIALOG_ACTION_CANCEL,
+		};
+
+	/**
+	 * A public read-only list of all the '<em><b>Dialog Action Enum</b></em>' enumerators.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static final List<DialogActionEnum> VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
+
+	/**
+	 * Returns the '<em><b>Dialog Action Enum</b></em>' literal with the specified literal value.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static DialogActionEnum get(String literal) {
+		for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+			DialogActionEnum result = VALUES_ARRAY[i];
+			if (result.toString().equals(literal)) {
+				return result;
+			}
+		}
+		return null;
+	}
+
+	/**
+	 * Returns the '<em><b>Dialog Action Enum</b></em>' literal with the specified name.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static DialogActionEnum getByName(String name) {
+		for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+			DialogActionEnum result = VALUES_ARRAY[i];
+			if (result.getName().equals(name)) {
+				return result;
+			}
+		}
+		return null;
+	}
+
+	/**
+	 * Returns the '<em><b>Dialog Action Enum</b></em>' literal with the specified integer value.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static DialogActionEnum get(int value) {
+		switch (value) {
+			case DIALOG_ACTION_NEW_VALUE: return DIALOG_ACTION_NEW;
+			case DIALOG_ACTION_SAVE_VALUE: return DIALOG_ACTION_SAVE;
+			case DIALOG_ACTION_DELETE_VALUE: return DIALOG_ACTION_DELETE;
+			case DIALOG_ACTION_CANCEL_VALUE: return DIALOG_ACTION_CANCEL;
+		}
+		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 DialogActionEnum(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;
+	}
+	
+} //DialogActionEnum
diff --git a/org.eclipse.osbp.xtext.action/emf-gen/org/eclipse/osbp/xtext/action/ReportActionEnum.java b/org.eclipse.osbp.xtext.action/emf-gen/org/eclipse/osbp/xtext/action/ReportActionEnum.java
new file mode 100644
index 0000000..af3f54a
--- /dev/null
+++ b/org.eclipse.osbp.xtext.action/emf-gen/org/eclipse/osbp/xtext/action/ReportActionEnum.java
@@ -0,0 +1,220 @@
+/**
+ * Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ *  All rights reserved. This program and the accompanying materials
+ *  are made available under the terms of the Eclipse Public License v1.0
+ *  which accompanies this distribution, and is available at
+ *  http://www.eclipse.org/legal/epl-v10.html
+ *  
+ *  Contributors:                                                      
+ *     Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
+ *  
+ *  generated from ActionDSL.xcore
+ * 
+ *  
+ */
+package org.eclipse.osbp.xtext.action;
+
+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>Report Action Enum</b></em>',
+ * and utility methods for working with them.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.osbp.xtext.action.ActionDSLPackage#getReportActionEnum()
+ * @model
+ * @generated
+ */
+public enum ReportActionEnum implements Enumerator {
+	/**
+	 * The '<em><b>REPORT ACTION PRINT ON SERVER PDF</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #REPORT_ACTION_PRINT_ON_SERVER_PDF_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	REPORT_ACTION_PRINT_ON_SERVER_PDF(0, "REPORT_ACTION_PRINT_ON_SERVER_PDF", "PrintOnServer"),
+
+	/**
+	 * The '<em><b>REPORT ACTION DOWNLOAD PDF</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #REPORT_ACTION_DOWNLOAD_PDF_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	REPORT_ACTION_DOWNLOAD_PDF(1, "REPORT_ACTION_DOWNLOAD_PDF", "ReportDownload");
+
+	/**
+	 * The '<em><b>REPORT ACTION PRINT ON SERVER PDF</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>REPORT ACTION PRINT ON SERVER PDF</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @see #REPORT_ACTION_PRINT_ON_SERVER_PDF
+	 * @model literal="PrintOnServer"
+	 * @generated
+	 * @ordered
+	 */
+	public static final int REPORT_ACTION_PRINT_ON_SERVER_PDF_VALUE = 0;
+
+	/**
+	 * The '<em><b>REPORT ACTION DOWNLOAD PDF</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>REPORT ACTION DOWNLOAD PDF</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @see #REPORT_ACTION_DOWNLOAD_PDF
+	 * @model literal="ReportDownload"
+	 * @generated
+	 * @ordered
+	 */
+	public static final int REPORT_ACTION_DOWNLOAD_PDF_VALUE = 1;
+
+	/**
+	 * An array of all the '<em><b>Report Action Enum</b></em>' enumerators.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private static final ReportActionEnum[] VALUES_ARRAY =
+		new ReportActionEnum[] {
+			REPORT_ACTION_PRINT_ON_SERVER_PDF,
+			REPORT_ACTION_DOWNLOAD_PDF,
+		};
+
+	/**
+	 * A public read-only list of all the '<em><b>Report Action Enum</b></em>' enumerators.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static final List<ReportActionEnum> VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
+
+	/**
+	 * Returns the '<em><b>Report Action Enum</b></em>' literal with the specified literal value.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static ReportActionEnum get(String literal) {
+		for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+			ReportActionEnum result = VALUES_ARRAY[i];
+			if (result.toString().equals(literal)) {
+				return result;
+			}
+		}
+		return null;
+	}
+
+	/**
+	 * Returns the '<em><b>Report Action Enum</b></em>' literal with the specified name.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static ReportActionEnum getByName(String name) {
+		for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+			ReportActionEnum result = VALUES_ARRAY[i];
+			if (result.getName().equals(name)) {
+				return result;
+			}
+		}
+		return null;
+	}
+
+	/**
+	 * Returns the '<em><b>Report Action Enum</b></em>' literal with the specified integer value.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static ReportActionEnum get(int value) {
+		switch (value) {
+			case REPORT_ACTION_PRINT_ON_SERVER_PDF_VALUE: return REPORT_ACTION_PRINT_ON_SERVER_PDF;
+			case REPORT_ACTION_DOWNLOAD_PDF_VALUE: return REPORT_ACTION_DOWNLOAD_PDF;
+		}
+		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 ReportActionEnum(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;
+	}
+	
+} //ReportActionEnum
diff --git a/org.eclipse.osbp.xtext.action/emf-gen/org/eclipse/osbp/xtext/action/SelectWorkloadActionEnum.java b/org.eclipse.osbp.xtext.action/emf-gen/org/eclipse/osbp/xtext/action/SelectWorkloadActionEnum.java
new file mode 100644
index 0000000..ec8fa0e
--- /dev/null
+++ b/org.eclipse.osbp.xtext.action/emf-gen/org/eclipse/osbp/xtext/action/SelectWorkloadActionEnum.java
@@ -0,0 +1,220 @@
+/**
+ * Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ *  All rights reserved. This program and the accompanying materials
+ *  are made available under the terms of the Eclipse Public License v1.0
+ *  which accompanies this distribution, and is available at
+ *  http://www.eclipse.org/legal/epl-v10.html
+ *  
+ *  Contributors:                                                      
+ *     Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
+ *  
+ *  generated from ActionDSL.xcore
+ * 
+ *  
+ */
+package org.eclipse.osbp.xtext.action;
+
+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>Select Workload Action Enum</b></em>',
+ * and utility methods for working with them.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.osbp.xtext.action.ActionDSLPackage#getSelectWorkloadActionEnum()
+ * @model
+ * @generated
+ */
+public enum SelectWorkloadActionEnum implements Enumerator {
+	/**
+	 * The '<em><b>WORKLOAD SELECT ACTION REMOVE ALL</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #WORKLOAD_SELECT_ACTION_REMOVE_ALL_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	WORKLOAD_SELECT_ACTION_REMOVE_ALL(0, "WORKLOAD_SELECT_ACTION_REMOVE_ALL", "RemoveAll"),
+
+	/**
+	 * The '<em><b>WORKLOAD SELECT ACTION ADD ALL</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #WORKLOAD_SELECT_ACTION_ADD_ALL_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	WORKLOAD_SELECT_ACTION_ADD_ALL(1, "WORKLOAD_SELECT_ACTION_ADD_ALL", "AddAll");
+
+	/**
+	 * The '<em><b>WORKLOAD SELECT ACTION REMOVE ALL</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>WORKLOAD SELECT ACTION REMOVE ALL</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @see #WORKLOAD_SELECT_ACTION_REMOVE_ALL
+	 * @model literal="RemoveAll"
+	 * @generated
+	 * @ordered
+	 */
+	public static final int WORKLOAD_SELECT_ACTION_REMOVE_ALL_VALUE = 0;
+
+	/**
+	 * The '<em><b>WORKLOAD SELECT ACTION ADD ALL</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>WORKLOAD SELECT ACTION ADD ALL</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @see #WORKLOAD_SELECT_ACTION_ADD_ALL
+	 * @model literal="AddAll"
+	 * @generated
+	 * @ordered
+	 */
+	public static final int WORKLOAD_SELECT_ACTION_ADD_ALL_VALUE = 1;
+
+	/**
+	 * An array of all the '<em><b>Select Workload Action Enum</b></em>' enumerators.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private static final SelectWorkloadActionEnum[] VALUES_ARRAY =
+		new SelectWorkloadActionEnum[] {
+			WORKLOAD_SELECT_ACTION_REMOVE_ALL,
+			WORKLOAD_SELECT_ACTION_ADD_ALL,
+		};
+
+	/**
+	 * A public read-only list of all the '<em><b>Select Workload Action Enum</b></em>' enumerators.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static final List<SelectWorkloadActionEnum> VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
+
+	/**
+	 * Returns the '<em><b>Select Workload Action Enum</b></em>' literal with the specified literal value.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static SelectWorkloadActionEnum get(String literal) {
+		for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+			SelectWorkloadActionEnum result = VALUES_ARRAY[i];
+			if (result.toString().equals(literal)) {
+				return result;
+			}
+		}
+		return null;
+	}
+
+	/**
+	 * Returns the '<em><b>Select Workload Action Enum</b></em>' literal with the specified name.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static SelectWorkloadActionEnum getByName(String name) {
+		for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+			SelectWorkloadActionEnum result = VALUES_ARRAY[i];
+			if (result.getName().equals(name)) {
+				return result;
+			}
+		}
+		return null;
+	}
+
+	/**
+	 * Returns the '<em><b>Select Workload Action Enum</b></em>' literal with the specified integer value.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static SelectWorkloadActionEnum get(int value) {
+		switch (value) {
+			case WORKLOAD_SELECT_ACTION_REMOVE_ALL_VALUE: return WORKLOAD_SELECT_ACTION_REMOVE_ALL;
+			case WORKLOAD_SELECT_ACTION_ADD_ALL_VALUE: return WORKLOAD_SELECT_ACTION_ADD_ALL;
+		}
+		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 SelectWorkloadActionEnum(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;
+	}
+	
+} //SelectWorkloadActionEnum
diff --git a/org.eclipse.osbp.xtext.action/emf-gen/org/eclipse/osbp/xtext/action/TaskActionEnum.java b/org.eclipse.osbp.xtext.action/emf-gen/org/eclipse/osbp/xtext/action/TaskActionEnum.java
new file mode 100644
index 0000000..1612138
--- /dev/null
+++ b/org.eclipse.osbp.xtext.action/emf-gen/org/eclipse/osbp/xtext/action/TaskActionEnum.java
@@ -0,0 +1,571 @@
+/**
+ * Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ *  All rights reserved. This program and the accompanying materials
+ *  are made available under the terms of the Eclipse Public License v1.0
+ *  which accompanies this distribution, and is available at
+ *  http://www.eclipse.org/legal/epl-v10.html
+ *  
+ *  Contributors:                                                      
+ *     Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
+ *  
+ *  generated from ActionDSL.xcore
+ * 
+ *  
+ */
+package org.eclipse.osbp.xtext.action;
+
+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>Task Action Enum</b></em>',
+ * and utility methods for working with them.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.osbp.xtext.action.ActionDSLPackage#getTaskActionEnum()
+ * @model
+ * @generated
+ */
+public enum TaskActionEnum implements Enumerator {
+	/**
+	 * The '<em><b>TASK ACTION CLAIM</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #TASK_ACTION_CLAIM_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	TASK_ACTION_CLAIM(0, "TASK_ACTION_CLAIM", "Claim"),
+
+	/**
+	 * The '<em><b>TASK ACTION START</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #TASK_ACTION_START_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	TASK_ACTION_START(1, "TASK_ACTION_START", "Start"),
+
+	/**
+	 * The '<em><b>TASK ACTION STOP</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #TASK_ACTION_STOP_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	TASK_ACTION_STOP(2, "TASK_ACTION_STOP", "Stop"),
+
+	/**
+	 * The '<em><b>TASK ACTION RELEASE</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #TASK_ACTION_RELEASE_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	TASK_ACTION_RELEASE(3, "TASK_ACTION_RELEASE", "Release"),
+
+	/**
+	 * The '<em><b>TASK ACTION SUSPEND</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #TASK_ACTION_SUSPEND_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	TASK_ACTION_SUSPEND(4, "TASK_ACTION_SUSPEND", "Suspend"),
+
+	/**
+	 * The '<em><b>TASK ACTION RESUME</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #TASK_ACTION_RESUME_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	TASK_ACTION_RESUME(5, "TASK_ACTION_RESUME", "Resume"),
+
+	/**
+	 * The '<em><b>TASK ACTION SKIP</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #TASK_ACTION_SKIP_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	TASK_ACTION_SKIP(6, "TASK_ACTION_SKIP", "Skip"),
+
+	/**
+	 * The '<em><b>TASK ACTION COMPLETE</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #TASK_ACTION_COMPLETE_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	TASK_ACTION_COMPLETE(7, "TASK_ACTION_COMPLETE", "Complete"),
+
+	/**
+	 * The '<em><b>TASK ACTION DELEGATE</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #TASK_ACTION_DELEGATE_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	TASK_ACTION_DELEGATE(8, "TASK_ACTION_DELEGATE", "Delegate"),
+
+	/**
+	 * The '<em><b>TASK ACTION FORWARD</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #TASK_ACTION_FORWARD_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	TASK_ACTION_FORWARD(9, "TASK_ACTION_FORWARD", "Forward"),
+
+	/**
+	 * The '<em><b>TASK ACTION FAIL</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #TASK_ACTION_FAIL_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	TASK_ACTION_FAIL(10, "TASK_ACTION_FAIL", "Fail"),
+
+	/**
+	 * The '<em><b>TASK ACTION REGISTER</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #TASK_ACTION_REGISTER_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	TASK_ACTION_REGISTER(11, "TASK_ACTION_REGISTER", "Register"),
+
+	/**
+	 * The '<em><b>TASK ACTION REMOVE</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #TASK_ACTION_REMOVE_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	TASK_ACTION_REMOVE(12, "TASK_ACTION_REMOVE", "Remove"),
+
+	/**
+	 * The '<em><b>TASK ACTION ACTIVATE</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #TASK_ACTION_ACTIVATE_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	TASK_ACTION_ACTIVATE(13, "TASK_ACTION_ACTIVATE", "Activate"),
+
+	/**
+	 * The '<em><b>TASK ACTION EXIT</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #TASK_ACTION_EXIT_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	TASK_ACTION_EXIT(14, "TASK_ACTION_EXIT", "Exit");
+
+	/**
+	 * The '<em><b>TASK ACTION CLAIM</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>TASK ACTION CLAIM</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @see #TASK_ACTION_CLAIM
+	 * @model literal="Claim"
+	 * @generated
+	 * @ordered
+	 */
+	public static final int TASK_ACTION_CLAIM_VALUE = 0;
+
+	/**
+	 * The '<em><b>TASK ACTION START</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>TASK ACTION START</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @see #TASK_ACTION_START
+	 * @model literal="Start"
+	 * @generated
+	 * @ordered
+	 */
+	public static final int TASK_ACTION_START_VALUE = 1;
+
+	/**
+	 * The '<em><b>TASK ACTION STOP</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>TASK ACTION STOP</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @see #TASK_ACTION_STOP
+	 * @model literal="Stop"
+	 * @generated
+	 * @ordered
+	 */
+	public static final int TASK_ACTION_STOP_VALUE = 2;
+
+	/**
+	 * The '<em><b>TASK ACTION RELEASE</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>TASK ACTION RELEASE</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @see #TASK_ACTION_RELEASE
+	 * @model literal="Release"
+	 * @generated
+	 * @ordered
+	 */
+	public static final int TASK_ACTION_RELEASE_VALUE = 3;
+
+	/**
+	 * The '<em><b>TASK ACTION SUSPEND</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>TASK ACTION SUSPEND</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @see #TASK_ACTION_SUSPEND
+	 * @model literal="Suspend"
+	 * @generated
+	 * @ordered
+	 */
+	public static final int TASK_ACTION_SUSPEND_VALUE = 4;
+
+	/**
+	 * The '<em><b>TASK ACTION RESUME</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>TASK ACTION RESUME</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @see #TASK_ACTION_RESUME
+	 * @model literal="Resume"
+	 * @generated
+	 * @ordered
+	 */
+	public static final int TASK_ACTION_RESUME_VALUE = 5;
+
+	/**
+	 * The '<em><b>TASK ACTION SKIP</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>TASK ACTION SKIP</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @see #TASK_ACTION_SKIP
+	 * @model literal="Skip"
+	 * @generated
+	 * @ordered
+	 */
+	public static final int TASK_ACTION_SKIP_VALUE = 6;
+
+	/**
+	 * The '<em><b>TASK ACTION COMPLETE</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>TASK ACTION COMPLETE</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @see #TASK_ACTION_COMPLETE
+	 * @model literal="Complete"
+	 * @generated
+	 * @ordered
+	 */
+	public static final int TASK_ACTION_COMPLETE_VALUE = 7;
+
+	/**
+	 * The '<em><b>TASK ACTION DELEGATE</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>TASK ACTION DELEGATE</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @see #TASK_ACTION_DELEGATE
+	 * @model literal="Delegate"
+	 * @generated
+	 * @ordered
+	 */
+	public static final int TASK_ACTION_DELEGATE_VALUE = 8;
+
+	/**
+	 * The '<em><b>TASK ACTION FORWARD</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>TASK ACTION FORWARD</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @see #TASK_ACTION_FORWARD
+	 * @model literal="Forward"
+	 * @generated
+	 * @ordered
+	 */
+	public static final int TASK_ACTION_FORWARD_VALUE = 9;
+
+	/**
+	 * The '<em><b>TASK ACTION FAIL</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>TASK ACTION FAIL</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @see #TASK_ACTION_FAIL
+	 * @model literal="Fail"
+	 * @generated
+	 * @ordered
+	 */
+	public static final int TASK_ACTION_FAIL_VALUE = 10;
+
+	/**
+	 * The '<em><b>TASK ACTION REGISTER</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>TASK ACTION REGISTER</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @see #TASK_ACTION_REGISTER
+	 * @model literal="Register"
+	 * @generated
+	 * @ordered
+	 */
+	public static final int TASK_ACTION_REGISTER_VALUE = 11;
+
+	/**
+	 * The '<em><b>TASK ACTION REMOVE</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>TASK ACTION REMOVE</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @see #TASK_ACTION_REMOVE
+	 * @model literal="Remove"
+	 * @generated
+	 * @ordered
+	 */
+	public static final int TASK_ACTION_REMOVE_VALUE = 12;
+
+	/**
+	 * The '<em><b>TASK ACTION ACTIVATE</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>TASK ACTION ACTIVATE</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @see #TASK_ACTION_ACTIVATE
+	 * @model literal="Activate"
+	 * @generated
+	 * @ordered
+	 */
+	public static final int TASK_ACTION_ACTIVATE_VALUE = 13;
+
+	/**
+	 * The '<em><b>TASK ACTION EXIT</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>TASK ACTION EXIT</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @see #TASK_ACTION_EXIT
+	 * @model literal="Exit"
+	 * @generated
+	 * @ordered
+	 */
+	public static final int TASK_ACTION_EXIT_VALUE = 14;
+
+	/**
+	 * An array of all the '<em><b>Task Action Enum</b></em>' enumerators.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private static final TaskActionEnum[] VALUES_ARRAY =
+		new TaskActionEnum[] {
+			TASK_ACTION_CLAIM,
+			TASK_ACTION_START,
+			TASK_ACTION_STOP,
+			TASK_ACTION_RELEASE,
+			TASK_ACTION_SUSPEND,
+			TASK_ACTION_RESUME,
+			TASK_ACTION_SKIP,
+			TASK_ACTION_COMPLETE,
+			TASK_ACTION_DELEGATE,
+			TASK_ACTION_FORWARD,
+			TASK_ACTION_FAIL,
+			TASK_ACTION_REGISTER,
+			TASK_ACTION_REMOVE,
+			TASK_ACTION_ACTIVATE,
+			TASK_ACTION_EXIT,
+		};
+
+	/**
+	 * A public read-only list of all the '<em><b>Task Action Enum</b></em>' enumerators.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static final List<TaskActionEnum> VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
+
+	/**
+	 * Returns the '<em><b>Task Action Enum</b></em>' literal with the specified literal value.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static TaskActionEnum get(String literal) {
+		for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+			TaskActionEnum result = VALUES_ARRAY[i];
+			if (result.toString().equals(literal)) {
+				return result;
+			}
+		}
+		return null;
+	}
+
+	/**
+	 * Returns the '<em><b>Task Action Enum</b></em>' literal with the specified name.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static TaskActionEnum getByName(String name) {
+		for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+			TaskActionEnum result = VALUES_ARRAY[i];
+			if (result.getName().equals(name)) {
+				return result;
+			}
+		}
+		return null;
+	}
+
+	/**
+	 * Returns the '<em><b>Task Action Enum</b></em>' literal with the specified integer value.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static TaskActionEnum get(int value) {
+		switch (value) {
+			case TASK_ACTION_CLAIM_VALUE: return TASK_ACTION_CLAIM;
+			case TASK_ACTION_START_VALUE: return TASK_ACTION_START;
+			case TASK_ACTION_STOP_VALUE: return TASK_ACTION_STOP;
+			case TASK_ACTION_RELEASE_VALUE: return TASK_ACTION_RELEASE;
+			case TASK_ACTION_SUSPEND_VALUE: return TASK_ACTION_SUSPEND;
+			case TASK_ACTION_RESUME_VALUE: return TASK_ACTION_RESUME;
+			case TASK_ACTION_SKIP_VALUE: return TASK_ACTION_SKIP;
+			case TASK_ACTION_COMPLETE_VALUE: return TASK_ACTION_COMPLETE;
+			case TASK_ACTION_DELEGATE_VALUE: return TASK_ACTION_DELEGATE;
+			case TASK_ACTION_FORWARD_VALUE: return TASK_ACTION_FORWARD;
+			case TASK_ACTION_FAIL_VALUE: return TASK_ACTION_FAIL;
+			case TASK_ACTION_REGISTER_VALUE: return TASK_ACTION_REGISTER;
+			case TASK_ACTION_REMOVE_VALUE: return TASK_ACTION_REMOVE;
+			case TASK_ACTION_ACTIVATE_VALUE: return TASK_ACTION_ACTIVATE;
+			case TASK_ACTION_EXIT_VALUE: return TASK_ACTION_EXIT;
+		}
+		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 TaskActionEnum(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;
+	}
+	
+} //TaskActionEnum
diff --git a/org.eclipse.osbp.xtext.action/emf-gen/org/eclipse/osbp/xtext/action/WorkflowActionEnum.java b/org.eclipse.osbp.xtext.action/emf-gen/org/eclipse/osbp/xtext/action/WorkflowActionEnum.java
new file mode 100644
index 0000000..8f40a4c
--- /dev/null
+++ b/org.eclipse.osbp.xtext.action/emf-gen/org/eclipse/osbp/xtext/action/WorkflowActionEnum.java
@@ -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
+ *  
+ *  generated from ActionDSL.xcore
+ * 
+ *  
+ */
+package org.eclipse.osbp.xtext.action;
+
+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>Workflow Action Enum</b></em>',
+ * and utility methods for working with them.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.osbp.xtext.action.ActionDSLPackage#getWorkflowActionEnum()
+ * @model
+ * @generated
+ */
+public enum WorkflowActionEnum implements Enumerator {
+	/**
+	 * The '<em><b>WORKFLOW ACTION START</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #WORKFLOW_ACTION_START_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	WORKFLOW_ACTION_START(0, "WORKFLOW_ACTION_START", "Start");
+
+	/**
+	 * The '<em><b>WORKFLOW ACTION START</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>WORKFLOW ACTION START</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @see #WORKFLOW_ACTION_START
+	 * @model literal="Start"
+	 * @generated
+	 * @ordered
+	 */
+	public static final int WORKFLOW_ACTION_START_VALUE = 0;
+
+	/**
+	 * An array of all the '<em><b>Workflow Action Enum</b></em>' enumerators.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private static final WorkflowActionEnum[] VALUES_ARRAY =
+		new WorkflowActionEnum[] {
+			WORKFLOW_ACTION_START,
+		};
+
+	/**
+	 * A public read-only list of all the '<em><b>Workflow Action Enum</b></em>' enumerators.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static final List<WorkflowActionEnum> VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
+
+	/**
+	 * Returns the '<em><b>Workflow Action Enum</b></em>' literal with the specified literal value.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static WorkflowActionEnum get(String literal) {
+		for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+			WorkflowActionEnum result = VALUES_ARRAY[i];
+			if (result.toString().equals(literal)) {
+				return result;
+			}
+		}
+		return null;
+	}
+
+	/**
+	 * Returns the '<em><b>Workflow Action Enum</b></em>' literal with the specified name.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static WorkflowActionEnum getByName(String name) {
+		for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+			WorkflowActionEnum result = VALUES_ARRAY[i];
+			if (result.getName().equals(name)) {
+				return result;
+			}
+		}
+		return null;
+	}
+
+	/**
+	 * Returns the '<em><b>Workflow Action Enum</b></em>' literal with the specified integer value.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static WorkflowActionEnum get(int value) {
+		switch (value) {
+			case WORKFLOW_ACTION_START_VALUE: return WORKFLOW_ACTION_START;
+		}
+		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 WorkflowActionEnum(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;
+	}
+	
+} //WorkflowActionEnum
diff --git a/org.eclipse.osbp.xtext.action/emf-gen/org/eclipse/osbp/xtext/action/impl/ActionBaseImpl.java b/org.eclipse.osbp.xtext.action/emf-gen/org/eclipse/osbp/xtext/action/impl/ActionBaseImpl.java
new file mode 100644
index 0000000..d1982b2
--- /dev/null
+++ b/org.eclipse.osbp.xtext.action/emf-gen/org/eclipse/osbp/xtext/action/impl/ActionBaseImpl.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
+ *  
+ *  Contributors:                                                      
+ *     Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
+ *  
+ *  generated from ActionDSL.xcore
+ * 
+ *  
+ */
+package org.eclipse.osbp.xtext.action.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.action.ActionBase;
+import org.eclipse.osbp.xtext.action.ActionDSLPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Action Base</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.xtext.action.impl.ActionBaseImpl#getName <em>Name</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class ActionBaseImpl extends ActionLazyResolverImpl implements ActionBase {
+	/**
+	 * 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 ActionBaseImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return ActionDSLPackage.Literals.ACTION_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, ActionDSLPackage.ACTION_BASE__NAME, oldName, name));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case ActionDSLPackage.ACTION_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 ActionDSLPackage.ACTION_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 ActionDSLPackage.ACTION_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 ActionDSLPackage.ACTION_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();
+	}
+
+} //ActionBaseImpl
diff --git a/org.eclipse.osbp.xtext.action/emf-gen/org/eclipse/osbp/xtext/action/impl/ActionButtonImpl.java b/org.eclipse.osbp.xtext.action/emf-gen/org/eclipse/osbp/xtext/action/impl/ActionButtonImpl.java
new file mode 100644
index 0000000..f831122
--- /dev/null
+++ b/org.eclipse.osbp.xtext.action/emf-gen/org/eclipse/osbp/xtext/action/impl/ActionButtonImpl.java
@@ -0,0 +1,608 @@
+/**
+ * Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ *  All rights reserved. This program and the accompanying materials
+ *  are made available under the terms of the Eclipse Public License v1.0
+ *  which accompanies this distribution, and is available at
+ *  http://www.eclipse.org/legal/epl-v10.html
+ *  
+ *  Contributors:                                                      
+ *     Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
+ *  
+ *  generated from ActionDSL.xcore
+ * 
+ *  
+ */
+package org.eclipse.osbp.xtext.action.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.ActionButton;
+import org.eclipse.osbp.xtext.action.ActionDSLPackage;
+import org.eclipse.osbp.xtext.action.ActionType;
+
+import org.eclipse.osbp.xtext.functionlibrarydsl.FunctionLibraryFunction;
+import org.eclipse.osbp.xtext.functionlibrarydsl.FunctionLibraryGroup;
+
+import org.eclipse.osbp.xtext.messagedsl.MessageItem;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Action Button</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.xtext.action.impl.ActionButtonImpl#isDescription <em>Description</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.action.impl.ActionButtonImpl#getDescriptionValue <em>Description Value</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.action.impl.ActionButtonImpl#getIconURI <em>Icon URI</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.action.impl.ActionButtonImpl#getGroup <em>Group</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.action.impl.ActionButtonImpl#getCanexecute <em>Canexecute</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.action.impl.ActionButtonImpl#getExecuteparameter <em>Executeparameter</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.action.impl.ActionButtonImpl#getActionType <em>Action Type</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.action.impl.ActionButtonImpl#getMessage <em>Message</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class ActionButtonImpl extends ActionBaseImpl implements ActionButton {
+	/**
+	 * 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 default value of the '{@link #getIconURI() <em>Icon URI</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getIconURI()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String ICON_URI_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getIconURI() <em>Icon URI</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getIconURI()
+	 * @generated
+	 * @ordered
+	 */
+	protected String iconURI = ICON_URI_EDEFAULT;
+
+	/**
+	 * The cached value of the '{@link #getGroup() <em>Group</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getGroup()
+	 * @generated
+	 * @ordered
+	 */
+	protected FunctionLibraryGroup group;
+
+	/**
+	 * The cached value of the '{@link #getCanexecute() <em>Canexecute</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getCanexecute()
+	 * @generated
+	 * @ordered
+	 */
+	protected FunctionLibraryFunction canexecute;
+
+	/**
+	 * The cached value of the '{@link #getExecuteparameter() <em>Executeparameter</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getExecuteparameter()
+	 * @generated
+	 * @ordered
+	 */
+	protected FunctionLibraryFunction executeparameter;
+
+	/**
+	 * The cached value of the '{@link #getActionType() <em>Action Type</em>}' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getActionType()
+	 * @generated
+	 * @ordered
+	 */
+	protected ActionType actionType;
+
+	/**
+	 * The cached value of the '{@link #getMessage() <em>Message</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getMessage()
+	 * @generated
+	 * @ordered
+	 */
+	protected MessageItem message;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected ActionButtonImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return ActionDSLPackage.Literals.ACTION_BUTTON;
+	}
+
+	/**
+	 * <!-- 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, ActionDSLPackage.ACTION_BUTTON__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, ActionDSLPackage.ACTION_BUTTON__DESCRIPTION_VALUE, oldDescriptionValue, descriptionValue));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getIconURI() {
+		return iconURI;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setIconURI(String newIconURI) {
+		String oldIconURI = iconURI;
+		iconURI = newIconURI;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ActionDSLPackage.ACTION_BUTTON__ICON_URI, oldIconURI, iconURI));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public FunctionLibraryGroup getGroup() {
+		if (group != null && group.eIsProxy()) {
+			InternalEObject oldGroup = (InternalEObject)group;
+			group = (FunctionLibraryGroup)eResolveProxy(oldGroup);
+			if (group != oldGroup) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, ActionDSLPackage.ACTION_BUTTON__GROUP, oldGroup, group));
+			}
+		}
+		return group;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public FunctionLibraryGroup basicGetGroup() {
+		return group;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setGroup(FunctionLibraryGroup newGroup) {
+		FunctionLibraryGroup oldGroup = group;
+		group = newGroup;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ActionDSLPackage.ACTION_BUTTON__GROUP, oldGroup, group));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public FunctionLibraryFunction getCanexecute() {
+		if (canexecute != null && canexecute.eIsProxy()) {
+			InternalEObject oldCanexecute = (InternalEObject)canexecute;
+			canexecute = (FunctionLibraryFunction)eResolveProxy(oldCanexecute);
+			if (canexecute != oldCanexecute) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, ActionDSLPackage.ACTION_BUTTON__CANEXECUTE, oldCanexecute, canexecute));
+			}
+		}
+		return canexecute;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public FunctionLibraryFunction basicGetCanexecute() {
+		return canexecute;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setCanexecute(FunctionLibraryFunction newCanexecute) {
+		FunctionLibraryFunction oldCanexecute = canexecute;
+		canexecute = newCanexecute;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ActionDSLPackage.ACTION_BUTTON__CANEXECUTE, oldCanexecute, canexecute));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public FunctionLibraryFunction getExecuteparameter() {
+		if (executeparameter != null && executeparameter.eIsProxy()) {
+			InternalEObject oldExecuteparameter = (InternalEObject)executeparameter;
+			executeparameter = (FunctionLibraryFunction)eResolveProxy(oldExecuteparameter);
+			if (executeparameter != oldExecuteparameter) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, ActionDSLPackage.ACTION_BUTTON__EXECUTEPARAMETER, oldExecuteparameter, executeparameter));
+			}
+		}
+		return executeparameter;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public FunctionLibraryFunction basicGetExecuteparameter() {
+		return executeparameter;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setExecuteparameter(FunctionLibraryFunction newExecuteparameter) {
+		FunctionLibraryFunction oldExecuteparameter = executeparameter;
+		executeparameter = newExecuteparameter;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ActionDSLPackage.ACTION_BUTTON__EXECUTEPARAMETER, oldExecuteparameter, executeparameter));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public ActionType getActionType() {
+		return actionType;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public NotificationChain basicSetActionType(ActionType newActionType, NotificationChain msgs) {
+		ActionType oldActionType = actionType;
+		actionType = newActionType;
+		if (eNotificationRequired()) {
+			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, ActionDSLPackage.ACTION_BUTTON__ACTION_TYPE, oldActionType, newActionType);
+			if (msgs == null) msgs = notification; else msgs.add(notification);
+		}
+		return msgs;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setActionType(ActionType newActionType) {
+		if (newActionType != actionType) {
+			NotificationChain msgs = null;
+			if (actionType != null)
+				msgs = ((InternalEObject)actionType).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - ActionDSLPackage.ACTION_BUTTON__ACTION_TYPE, null, msgs);
+			if (newActionType != null)
+				msgs = ((InternalEObject)newActionType).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - ActionDSLPackage.ACTION_BUTTON__ACTION_TYPE, null, msgs);
+			msgs = basicSetActionType(newActionType, msgs);
+			if (msgs != null) msgs.dispatch();
+		}
+		else if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ActionDSLPackage.ACTION_BUTTON__ACTION_TYPE, newActionType, newActionType));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public MessageItem getMessage() {
+		if (message != null && message.eIsProxy()) {
+			InternalEObject oldMessage = (InternalEObject)message;
+			message = (MessageItem)eResolveProxy(oldMessage);
+			if (message != oldMessage) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, ActionDSLPackage.ACTION_BUTTON__MESSAGE, oldMessage, message));
+			}
+		}
+		return message;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public MessageItem basicGetMessage() {
+		return message;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setMessage(MessageItem newMessage) {
+		MessageItem oldMessage = message;
+		message = newMessage;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ActionDSLPackage.ACTION_BUTTON__MESSAGE, oldMessage, message));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+		switch (featureID) {
+			case ActionDSLPackage.ACTION_BUTTON__ACTION_TYPE:
+				return basicSetActionType(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 ActionDSLPackage.ACTION_BUTTON__DESCRIPTION:
+				return isDescription();
+			case ActionDSLPackage.ACTION_BUTTON__DESCRIPTION_VALUE:
+				return getDescriptionValue();
+			case ActionDSLPackage.ACTION_BUTTON__ICON_URI:
+				return getIconURI();
+			case ActionDSLPackage.ACTION_BUTTON__GROUP:
+				if (resolve) return getGroup();
+				return basicGetGroup();
+			case ActionDSLPackage.ACTION_BUTTON__CANEXECUTE:
+				if (resolve) return getCanexecute();
+				return basicGetCanexecute();
+			case ActionDSLPackage.ACTION_BUTTON__EXECUTEPARAMETER:
+				if (resolve) return getExecuteparameter();
+				return basicGetExecuteparameter();
+			case ActionDSLPackage.ACTION_BUTTON__ACTION_TYPE:
+				return getActionType();
+			case ActionDSLPackage.ACTION_BUTTON__MESSAGE:
+				if (resolve) return getMessage();
+				return basicGetMessage();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case ActionDSLPackage.ACTION_BUTTON__DESCRIPTION:
+				setDescription((Boolean)newValue);
+				return;
+			case ActionDSLPackage.ACTION_BUTTON__DESCRIPTION_VALUE:
+				setDescriptionValue((String)newValue);
+				return;
+			case ActionDSLPackage.ACTION_BUTTON__ICON_URI:
+				setIconURI((String)newValue);
+				return;
+			case ActionDSLPackage.ACTION_BUTTON__GROUP:
+				setGroup((FunctionLibraryGroup)newValue);
+				return;
+			case ActionDSLPackage.ACTION_BUTTON__CANEXECUTE:
+				setCanexecute((FunctionLibraryFunction)newValue);
+				return;
+			case ActionDSLPackage.ACTION_BUTTON__EXECUTEPARAMETER:
+				setExecuteparameter((FunctionLibraryFunction)newValue);
+				return;
+			case ActionDSLPackage.ACTION_BUTTON__ACTION_TYPE:
+				setActionType((ActionType)newValue);
+				return;
+			case ActionDSLPackage.ACTION_BUTTON__MESSAGE:
+				setMessage((MessageItem)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case ActionDSLPackage.ACTION_BUTTON__DESCRIPTION:
+				setDescription(DESCRIPTION_EDEFAULT);
+				return;
+			case ActionDSLPackage.ACTION_BUTTON__DESCRIPTION_VALUE:
+				setDescriptionValue(DESCRIPTION_VALUE_EDEFAULT);
+				return;
+			case ActionDSLPackage.ACTION_BUTTON__ICON_URI:
+				setIconURI(ICON_URI_EDEFAULT);
+				return;
+			case ActionDSLPackage.ACTION_BUTTON__GROUP:
+				setGroup((FunctionLibraryGroup)null);
+				return;
+			case ActionDSLPackage.ACTION_BUTTON__CANEXECUTE:
+				setCanexecute((FunctionLibraryFunction)null);
+				return;
+			case ActionDSLPackage.ACTION_BUTTON__EXECUTEPARAMETER:
+				setExecuteparameter((FunctionLibraryFunction)null);
+				return;
+			case ActionDSLPackage.ACTION_BUTTON__ACTION_TYPE:
+				setActionType((ActionType)null);
+				return;
+			case ActionDSLPackage.ACTION_BUTTON__MESSAGE:
+				setMessage((MessageItem)null);
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case ActionDSLPackage.ACTION_BUTTON__DESCRIPTION:
+				return description != DESCRIPTION_EDEFAULT;
+			case ActionDSLPackage.ACTION_BUTTON__DESCRIPTION_VALUE:
+				return DESCRIPTION_VALUE_EDEFAULT == null ? descriptionValue != null : !DESCRIPTION_VALUE_EDEFAULT.equals(descriptionValue);
+			case ActionDSLPackage.ACTION_BUTTON__ICON_URI:
+				return ICON_URI_EDEFAULT == null ? iconURI != null : !ICON_URI_EDEFAULT.equals(iconURI);
+			case ActionDSLPackage.ACTION_BUTTON__GROUP:
+				return group != null;
+			case ActionDSLPackage.ACTION_BUTTON__CANEXECUTE:
+				return canexecute != null;
+			case ActionDSLPackage.ACTION_BUTTON__EXECUTEPARAMETER:
+				return executeparameter != null;
+			case ActionDSLPackage.ACTION_BUTTON__ACTION_TYPE:
+				return actionType != null;
+			case ActionDSLPackage.ACTION_BUTTON__MESSAGE:
+				return message != 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(", iconURI: ");
+		result.append(iconURI);
+		result.append(')');
+		return result.toString();
+	}
+
+} //ActionButtonImpl
diff --git a/org.eclipse.osbp.xtext.action/emf-gen/org/eclipse/osbp/xtext/action/impl/ActionChartImpl.java b/org.eclipse.osbp.xtext.action/emf-gen/org/eclipse/osbp/xtext/action/impl/ActionChartImpl.java
new file mode 100644
index 0000000..b0de0c8
--- /dev/null
+++ b/org.eclipse.osbp.xtext.action/emf-gen/org/eclipse/osbp/xtext/action/impl/ActionChartImpl.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
+ *  
+ *  generated from ActionDSL.xcore
+ * 
+ *  
+ */
+package org.eclipse.osbp.xtext.action.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.action.ActionChart;
+import org.eclipse.osbp.xtext.action.ActionDSLPackage;
+import org.eclipse.osbp.xtext.action.ChartActionEnum;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Action Chart</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.xtext.action.impl.ActionChartImpl#getAction <em>Action</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class ActionChartImpl extends ActionLazyResolverImpl implements ActionChart {
+	/**
+	 * The default value of the '{@link #getAction() <em>Action</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getAction()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final ChartActionEnum ACTION_EDEFAULT = ChartActionEnum.CHART_ACTION_DOWNLOAD;
+
+	/**
+	 * The cached value of the '{@link #getAction() <em>Action</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getAction()
+	 * @generated
+	 * @ordered
+	 */
+	protected ChartActionEnum action = ACTION_EDEFAULT;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected ActionChartImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return ActionDSLPackage.Literals.ACTION_CHART;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public ChartActionEnum getAction() {
+		return action;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setAction(ChartActionEnum newAction) {
+		ChartActionEnum oldAction = action;
+		action = newAction == null ? ACTION_EDEFAULT : newAction;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ActionDSLPackage.ACTION_CHART__ACTION, oldAction, action));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case ActionDSLPackage.ACTION_CHART__ACTION:
+				return getAction();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case ActionDSLPackage.ACTION_CHART__ACTION:
+				setAction((ChartActionEnum)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case ActionDSLPackage.ACTION_CHART__ACTION:
+				setAction(ACTION_EDEFAULT);
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case ActionDSLPackage.ACTION_CHART__ACTION:
+				return action != ACTION_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(" (action: ");
+		result.append(action);
+		result.append(')');
+		return result.toString();
+	}
+
+} //ActionChartImpl
diff --git a/org.eclipse.osbp.xtext.action/emf-gen/org/eclipse/osbp/xtext/action/impl/ActionDSLFactoryImpl.java b/org.eclipse.osbp.xtext.action/emf-gen/org/eclipse/osbp/xtext/action/impl/ActionDSLFactoryImpl.java
new file mode 100644
index 0000000..8c3352a
--- /dev/null
+++ b/org.eclipse.osbp.xtext.action/emf-gen/org/eclipse/osbp/xtext/action/impl/ActionDSLFactoryImpl.java
@@ -0,0 +1,479 @@
+/**
+ * Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ *  All rights reserved. This program and the accompanying materials
+ *  are made available under the terms of the Eclipse Public License v1.0
+ *  which accompanies this distribution, and is available at
+ *  http://www.eclipse.org/legal/epl-v10.html
+ *  
+ *  Contributors:                                                      
+ *     Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
+ *  
+ *  generated from ActionDSL.xcore
+ * 
+ *  
+ */
+package org.eclipse.osbp.xtext.action.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.action.*;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model <b>Factory</b>.
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class ActionDSLFactoryImpl extends EFactoryImpl implements ActionDSLFactory {
+	/**
+	 * Creates the default factory implementation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static ActionDSLFactory init() {
+		try {
+			ActionDSLFactory theActionDSLFactory = (ActionDSLFactory)EPackage.Registry.INSTANCE.getEFactory(ActionDSLPackage.eNS_URI);
+			if (theActionDSLFactory != null) {
+				return theActionDSLFactory;
+			}
+		}
+		catch (Exception exception) {
+			EcorePlugin.INSTANCE.log(exception);
+		}
+		return new ActionDSLFactoryImpl();
+	}
+
+	/**
+	 * Creates an instance of the factory.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public ActionDSLFactoryImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public EObject create(EClass eClass) {
+		switch (eClass.getClassifierID()) {
+			case ActionDSLPackage.ACTION_MODEL: return createActionModel();
+			case ActionDSLPackage.ACTION_LAZY_RESOLVER: return createActionLazyResolver();
+			case ActionDSLPackage.ACTION_PACKAGE: return createActionPackage();
+			case ActionDSLPackage.ACTION_BASE: return createActionBase();
+			case ActionDSLPackage.ACTION_TOOLBAR: return createActionToolbar();
+			case ActionDSLPackage.ACTION_BUTTON: return createActionButton();
+			case ActionDSLPackage.ACTION_TASK: return createActionTask();
+			case ActionDSLPackage.ACTION_SELECT_WORKLOAD: return createActionSelectWorkload();
+			case ActionDSLPackage.ACTION_DIALOG: return createActionDialog();
+			case ActionDSLPackage.ACTION_REPORT: return createActionReport();
+			case ActionDSLPackage.ACTION_CHART: return createActionChart();
+			case ActionDSLPackage.ACTION_WORKFLOW: return createActionWorkflow();
+			case ActionDSLPackage.ACTION_DATAINTERCHANGE: return createActionDatainterchange();
+			case ActionDSLPackage.ACTION_GENERIC: return createActionGeneric();
+			case ActionDSLPackage.ACTION_PARAMETER: return createActionParameter();
+			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 ActionDSLPackage.TASK_ACTION_ENUM:
+				return createTaskActionEnumFromString(eDataType, initialValue);
+			case ActionDSLPackage.SELECT_WORKLOAD_ACTION_ENUM:
+				return createSelectWorkloadActionEnumFromString(eDataType, initialValue);
+			case ActionDSLPackage.DIALOG_ACTION_ENUM:
+				return createDialogActionEnumFromString(eDataType, initialValue);
+			case ActionDSLPackage.REPORT_ACTION_ENUM:
+				return createReportActionEnumFromString(eDataType, initialValue);
+			case ActionDSLPackage.CHART_ACTION_ENUM:
+				return createChartActionEnumFromString(eDataType, initialValue);
+			case ActionDSLPackage.WORKFLOW_ACTION_ENUM:
+				return createWorkflowActionEnumFromString(eDataType, initialValue);
+			case ActionDSLPackage.DATAINTERCHANGE_ACTION_ENUM:
+				return createDatainterchangeActionEnumFromString(eDataType, initialValue);
+			case ActionDSLPackage.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 ActionDSLPackage.TASK_ACTION_ENUM:
+				return convertTaskActionEnumToString(eDataType, instanceValue);
+			case ActionDSLPackage.SELECT_WORKLOAD_ACTION_ENUM:
+				return convertSelectWorkloadActionEnumToString(eDataType, instanceValue);
+			case ActionDSLPackage.DIALOG_ACTION_ENUM:
+				return convertDialogActionEnumToString(eDataType, instanceValue);
+			case ActionDSLPackage.REPORT_ACTION_ENUM:
+				return convertReportActionEnumToString(eDataType, instanceValue);
+			case ActionDSLPackage.CHART_ACTION_ENUM:
+				return convertChartActionEnumToString(eDataType, instanceValue);
+			case ActionDSLPackage.WORKFLOW_ACTION_ENUM:
+				return convertWorkflowActionEnumToString(eDataType, instanceValue);
+			case ActionDSLPackage.DATAINTERCHANGE_ACTION_ENUM:
+				return convertDatainterchangeActionEnumToString(eDataType, instanceValue);
+			case ActionDSLPackage.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 ActionModel createActionModel() {
+		ActionModelImpl actionModel = new ActionModelImpl();
+		return actionModel;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public ActionLazyResolver createActionLazyResolver() {
+		ActionLazyResolverImpl actionLazyResolver = new ActionLazyResolverImpl();
+		return actionLazyResolver;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public ActionPackage createActionPackage() {
+		ActionPackageImpl actionPackage = new ActionPackageImpl();
+		return actionPackage;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public ActionBase createActionBase() {
+		ActionBaseImpl actionBase = new ActionBaseImpl();
+		return actionBase;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public ActionToolbar createActionToolbar() {
+		ActionToolbarImpl actionToolbar = new ActionToolbarImpl();
+		return actionToolbar;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public ActionButton createActionButton() {
+		ActionButtonImpl actionButton = new ActionButtonImpl();
+		return actionButton;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public ActionTask createActionTask() {
+		ActionTaskImpl actionTask = new ActionTaskImpl();
+		return actionTask;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public ActionSelectWorkload createActionSelectWorkload() {
+		ActionSelectWorkloadImpl actionSelectWorkload = new ActionSelectWorkloadImpl();
+		return actionSelectWorkload;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public ActionDialog createActionDialog() {
+		ActionDialogImpl actionDialog = new ActionDialogImpl();
+		return actionDialog;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public ActionReport createActionReport() {
+		ActionReportImpl actionReport = new ActionReportImpl();
+		return actionReport;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public ActionChart createActionChart() {
+		ActionChartImpl actionChart = new ActionChartImpl();
+		return actionChart;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public ActionWorkflow createActionWorkflow() {
+		ActionWorkflowImpl actionWorkflow = new ActionWorkflowImpl();
+		return actionWorkflow;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public ActionDatainterchange createActionDatainterchange() {
+		ActionDatainterchangeImpl actionDatainterchange = new ActionDatainterchangeImpl();
+		return actionDatainterchange;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public ActionGeneric createActionGeneric() {
+		ActionGenericImpl actionGeneric = new ActionGenericImpl();
+		return actionGeneric;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public ActionParameter createActionParameter() {
+		ActionParameterImpl actionParameter = new ActionParameterImpl();
+		return actionParameter;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public TaskActionEnum createTaskActionEnumFromString(EDataType eDataType, String initialValue) {
+		TaskActionEnum result = TaskActionEnum.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 convertTaskActionEnumToString(EDataType eDataType, Object instanceValue) {
+		return instanceValue == null ? null : instanceValue.toString();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public SelectWorkloadActionEnum createSelectWorkloadActionEnumFromString(EDataType eDataType, String initialValue) {
+		SelectWorkloadActionEnum result = SelectWorkloadActionEnum.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 convertSelectWorkloadActionEnumToString(EDataType eDataType, Object instanceValue) {
+		return instanceValue == null ? null : instanceValue.toString();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public DialogActionEnum createDialogActionEnumFromString(EDataType eDataType, String initialValue) {
+		DialogActionEnum result = DialogActionEnum.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 convertDialogActionEnumToString(EDataType eDataType, Object instanceValue) {
+		return instanceValue == null ? null : instanceValue.toString();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public ReportActionEnum createReportActionEnumFromString(EDataType eDataType, String initialValue) {
+		ReportActionEnum result = ReportActionEnum.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 convertReportActionEnumToString(EDataType eDataType, Object instanceValue) {
+		return instanceValue == null ? null : instanceValue.toString();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public ChartActionEnum createChartActionEnumFromString(EDataType eDataType, String initialValue) {
+		ChartActionEnum result = ChartActionEnum.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 convertChartActionEnumToString(EDataType eDataType, Object instanceValue) {
+		return instanceValue == null ? null : instanceValue.toString();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public WorkflowActionEnum createWorkflowActionEnumFromString(EDataType eDataType, String initialValue) {
+		WorkflowActionEnum result = WorkflowActionEnum.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 convertWorkflowActionEnumToString(EDataType eDataType, Object instanceValue) {
+		return instanceValue == null ? null : instanceValue.toString();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public DatainterchangeActionEnum createDatainterchangeActionEnumFromString(EDataType eDataType, String initialValue) {
+		DatainterchangeActionEnum result = DatainterchangeActionEnum.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 convertDatainterchangeActionEnumToString(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 ActionDSLPackage getActionDSLPackage() {
+		return (ActionDSLPackage)getEPackage();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @deprecated
+	 * @generated
+	 */
+	@Deprecated
+	public static ActionDSLPackage getPackage() {
+		return ActionDSLPackage.eINSTANCE;
+	}
+
+} //ActionDSLFactoryImpl
diff --git a/org.eclipse.osbp.xtext.action/emf-gen/org/eclipse/osbp/xtext/action/impl/ActionDSLPackageImpl.java b/org.eclipse.osbp.xtext.action/emf-gen/org/eclipse/osbp/xtext/action/impl/ActionDSLPackageImpl.java
new file mode 100644
index 0000000..3b248ba
--- /dev/null
+++ b/org.eclipse.osbp.xtext.action/emf-gen/org/eclipse/osbp/xtext/action/impl/ActionDSLPackageImpl.java
@@ -0,0 +1,1022 @@
+/**
+ * Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ *  All rights reserved. This program and the accompanying materials
+ *  are made available under the terms of the Eclipse Public License v1.0
+ *  which accompanies this distribution, and is available at
+ *  http://www.eclipse.org/legal/epl-v10.html
+ *  
+ *  Contributors:                                                      
+ *     Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
+ *  
+ *  generated from ActionDSL.xcore
+ * 
+ *  
+ */
+package org.eclipse.osbp.xtext.action.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.ActionBase;
+import org.eclipse.osbp.xtext.action.ActionButton;
+import org.eclipse.osbp.xtext.action.ActionChart;
+import org.eclipse.osbp.xtext.action.ActionDSLFactory;
+import org.eclipse.osbp.xtext.action.ActionDSLPackage;
+import org.eclipse.osbp.xtext.action.ActionDatainterchange;
+import org.eclipse.osbp.xtext.action.ActionDialog;
+import org.eclipse.osbp.xtext.action.ActionGeneric;
+import org.eclipse.osbp.xtext.action.ActionLazyResolver;
+import org.eclipse.osbp.xtext.action.ActionModel;
+import org.eclipse.osbp.xtext.action.ActionPackage;
+import org.eclipse.osbp.xtext.action.ActionParameter;
+import org.eclipse.osbp.xtext.action.ActionReport;
+import org.eclipse.osbp.xtext.action.ActionSelectWorkload;
+import org.eclipse.osbp.xtext.action.ActionTask;
+import org.eclipse.osbp.xtext.action.ActionToolbar;
+import org.eclipse.osbp.xtext.action.ActionType;
+import org.eclipse.osbp.xtext.action.ActionWorkflow;
+import org.eclipse.osbp.xtext.action.ChartActionEnum;
+import org.eclipse.osbp.xtext.action.DatainterchangeActionEnum;
+import org.eclipse.osbp.xtext.action.DialogActionEnum;
+import org.eclipse.osbp.xtext.action.ReportActionEnum;
+import org.eclipse.osbp.xtext.action.SelectWorkloadActionEnum;
+import org.eclipse.osbp.xtext.action.TaskActionEnum;
+import org.eclipse.osbp.xtext.action.WorkflowActionEnum;
+
+import org.eclipse.osbp.xtext.datainterchange.DataDSLPackage;
+
+import org.eclipse.osbp.xtext.functionlibrarydsl.FunctionLibraryDSLPackage;
+
+import org.eclipse.osbp.xtext.messagedsl.MessageDSLPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model <b>Package</b>.
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class ActionDSLPackageImpl extends EPackageImpl implements ActionDSLPackage {
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass actionModelEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass actionLazyResolverEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass actionPackageEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass actionBaseEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass actionToolbarEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass actionButtonEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass actionTypeEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass actionTaskEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass actionSelectWorkloadEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass actionDialogEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass actionReportEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass actionChartEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass actionWorkflowEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass actionDatainterchangeEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass actionGenericEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass actionParameterEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EEnum taskActionEnumEEnum = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EEnum selectWorkloadActionEnumEEnum = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EEnum dialogActionEnumEEnum = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EEnum reportActionEnumEEnum = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EEnum chartActionEnumEEnum = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EEnum workflowActionEnumEEnum = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EEnum datainterchangeActionEnumEEnum = 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.action.ActionDSLPackage#eNS_URI
+	 * @see #init()
+	 * @generated
+	 */
+	private ActionDSLPackageImpl() {
+		super(eNS_URI, ActionDSLFactory.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 ActionDSLPackage#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 ActionDSLPackage init() {
+		if (isInited) return (ActionDSLPackage)EPackage.Registry.INSTANCE.getEPackage(ActionDSLPackage.eNS_URI);
+
+		// Obtain or create and register package
+		ActionDSLPackageImpl theActionDSLPackage = (ActionDSLPackageImpl)(EPackage.Registry.INSTANCE.get(eNS_URI) instanceof ActionDSLPackageImpl ? EPackage.Registry.INSTANCE.get(eNS_URI) : new ActionDSLPackageImpl());
+
+		isInited = true;
+
+		// Initialize simple dependencies
+		DataDSLPackage.eINSTANCE.eClass();
+		MessageDSLPackage.eINSTANCE.eClass();
+		FunctionLibraryDSLPackage.eINSTANCE.eClass();
+
+		// Create package meta-data objects
+		theActionDSLPackage.createPackageContents();
+
+		// Initialize created meta-data
+		theActionDSLPackage.initializePackageContents();
+
+		// Mark meta-data to indicate it can't be changed
+		theActionDSLPackage.freeze();
+
+  
+		// Update the registry and return the package
+		EPackage.Registry.INSTANCE.put(ActionDSLPackage.eNS_URI, theActionDSLPackage);
+		return theActionDSLPackage;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getActionModel() {
+		return actionModelEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getActionModel_Packages() {
+		return (EReference)actionModelEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getActionLazyResolver() {
+		return actionLazyResolverEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EOperation getActionLazyResolver__EResolveProxy__InternalEObject() {
+		return actionLazyResolverEClass.getEOperations().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getActionPackage() {
+		return actionPackageEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getActionPackage_Toolbars() {
+		return (EReference)actionPackageEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getActionBase() {
+		return actionBaseEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getActionBase_Name() {
+		return (EAttribute)actionBaseEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getActionToolbar() {
+		return actionToolbarEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getActionToolbar_Description() {
+		return (EAttribute)actionToolbarEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getActionToolbar_DescriptionValue() {
+		return (EAttribute)actionToolbarEClass.getEStructuralFeatures().get(1);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getActionToolbar_Actions() {
+		return (EReference)actionToolbarEClass.getEStructuralFeatures().get(2);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getActionButton() {
+		return actionButtonEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getActionButton_Description() {
+		return (EAttribute)actionButtonEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getActionButton_DescriptionValue() {
+		return (EAttribute)actionButtonEClass.getEStructuralFeatures().get(1);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getActionButton_IconURI() {
+		return (EAttribute)actionButtonEClass.getEStructuralFeatures().get(2);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getActionButton_Group() {
+		return (EReference)actionButtonEClass.getEStructuralFeatures().get(3);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getActionButton_Canexecute() {
+		return (EReference)actionButtonEClass.getEStructuralFeatures().get(4);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getActionButton_Executeparameter() {
+		return (EReference)actionButtonEClass.getEStructuralFeatures().get(5);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getActionButton_ActionType() {
+		return (EReference)actionButtonEClass.getEStructuralFeatures().get(6);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getActionButton_Message() {
+		return (EReference)actionButtonEClass.getEStructuralFeatures().get(7);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getActionType() {
+		return actionTypeEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getActionTask() {
+		return actionTaskEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getActionTask_Action() {
+		return (EAttribute)actionTaskEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getActionSelectWorkload() {
+		return actionSelectWorkloadEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getActionSelectWorkload_Action() {
+		return (EAttribute)actionSelectWorkloadEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getActionDialog() {
+		return actionDialogEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getActionDialog_Action() {
+		return (EAttribute)actionDialogEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getActionReport() {
+		return actionReportEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getActionReport_Action() {
+		return (EAttribute)actionReportEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getActionChart() {
+		return actionChartEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getActionChart_Action() {
+		return (EAttribute)actionChartEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getActionWorkflow() {
+		return actionWorkflowEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getActionWorkflow_Action() {
+		return (EAttribute)actionWorkflowEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getActionDatainterchange() {
+		return actionDatainterchangeEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getActionDatainterchange_Action() {
+		return (EAttribute)actionDatainterchangeEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getActionDatainterchange_DataRef() {
+		return (EReference)actionDatainterchangeEClass.getEStructuralFeatures().get(1);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getActionGeneric() {
+		return actionGenericEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getActionGeneric_Action() {
+		return (EAttribute)actionGenericEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getActionParameter() {
+		return actionParameterEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getActionParameter_Parameter() {
+		return (EReference)actionParameterEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EEnum getTaskActionEnum() {
+		return taskActionEnumEEnum;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EEnum getSelectWorkloadActionEnum() {
+		return selectWorkloadActionEnumEEnum;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EEnum getDialogActionEnum() {
+		return dialogActionEnumEEnum;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EEnum getReportActionEnum() {
+		return reportActionEnumEEnum;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EEnum getChartActionEnum() {
+		return chartActionEnumEEnum;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EEnum getWorkflowActionEnum() {
+		return workflowActionEnumEEnum;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EEnum getDatainterchangeActionEnum() {
+		return datainterchangeActionEnumEEnum;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EDataType getInternalEObject() {
+		return internalEObjectEDataType;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public ActionDSLFactory getActionDSLFactory() {
+		return (ActionDSLFactory)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
+		actionModelEClass = createEClass(ACTION_MODEL);
+		createEReference(actionModelEClass, ACTION_MODEL__PACKAGES);
+
+		actionLazyResolverEClass = createEClass(ACTION_LAZY_RESOLVER);
+		createEOperation(actionLazyResolverEClass, ACTION_LAZY_RESOLVER___ERESOLVE_PROXY__INTERNALEOBJECT);
+
+		actionPackageEClass = createEClass(ACTION_PACKAGE);
+		createEReference(actionPackageEClass, ACTION_PACKAGE__TOOLBARS);
+
+		actionBaseEClass = createEClass(ACTION_BASE);
+		createEAttribute(actionBaseEClass, ACTION_BASE__NAME);
+
+		actionToolbarEClass = createEClass(ACTION_TOOLBAR);
+		createEAttribute(actionToolbarEClass, ACTION_TOOLBAR__DESCRIPTION);
+		createEAttribute(actionToolbarEClass, ACTION_TOOLBAR__DESCRIPTION_VALUE);
+		createEReference(actionToolbarEClass, ACTION_TOOLBAR__ACTIONS);
+
+		actionButtonEClass = createEClass(ACTION_BUTTON);
+		createEAttribute(actionButtonEClass, ACTION_BUTTON__DESCRIPTION);
+		createEAttribute(actionButtonEClass, ACTION_BUTTON__DESCRIPTION_VALUE);
+		createEAttribute(actionButtonEClass, ACTION_BUTTON__ICON_URI);
+		createEReference(actionButtonEClass, ACTION_BUTTON__GROUP);
+		createEReference(actionButtonEClass, ACTION_BUTTON__CANEXECUTE);
+		createEReference(actionButtonEClass, ACTION_BUTTON__EXECUTEPARAMETER);
+		createEReference(actionButtonEClass, ACTION_BUTTON__ACTION_TYPE);
+		createEReference(actionButtonEClass, ACTION_BUTTON__MESSAGE);
+
+		actionTypeEClass = createEClass(ACTION_TYPE);
+
+		actionTaskEClass = createEClass(ACTION_TASK);
+		createEAttribute(actionTaskEClass, ACTION_TASK__ACTION);
+
+		actionSelectWorkloadEClass = createEClass(ACTION_SELECT_WORKLOAD);
+		createEAttribute(actionSelectWorkloadEClass, ACTION_SELECT_WORKLOAD__ACTION);
+
+		actionDialogEClass = createEClass(ACTION_DIALOG);
+		createEAttribute(actionDialogEClass, ACTION_DIALOG__ACTION);
+
+		actionReportEClass = createEClass(ACTION_REPORT);
+		createEAttribute(actionReportEClass, ACTION_REPORT__ACTION);
+
+		actionChartEClass = createEClass(ACTION_CHART);
+		createEAttribute(actionChartEClass, ACTION_CHART__ACTION);
+
+		actionWorkflowEClass = createEClass(ACTION_WORKFLOW);
+		createEAttribute(actionWorkflowEClass, ACTION_WORKFLOW__ACTION);
+
+		actionDatainterchangeEClass = createEClass(ACTION_DATAINTERCHANGE);
+		createEAttribute(actionDatainterchangeEClass, ACTION_DATAINTERCHANGE__ACTION);
+		createEReference(actionDatainterchangeEClass, ACTION_DATAINTERCHANGE__DATA_REF);
+
+		actionGenericEClass = createEClass(ACTION_GENERIC);
+		createEAttribute(actionGenericEClass, ACTION_GENERIC__ACTION);
+
+		actionParameterEClass = createEClass(ACTION_PARAMETER);
+		createEReference(actionParameterEClass, ACTION_PARAMETER__PARAMETER);
+
+		// Create enums
+		taskActionEnumEEnum = createEEnum(TASK_ACTION_ENUM);
+		selectWorkloadActionEnumEEnum = createEEnum(SELECT_WORKLOAD_ACTION_ENUM);
+		dialogActionEnumEEnum = createEEnum(DIALOG_ACTION_ENUM);
+		reportActionEnumEEnum = createEEnum(REPORT_ACTION_ENUM);
+		chartActionEnumEEnum = createEEnum(CHART_ACTION_ENUM);
+		workflowActionEnumEEnum = createEEnum(WORKFLOW_ACTION_ENUM);
+		datainterchangeActionEnumEEnum = createEEnum(DATAINTERCHANGE_ACTION_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);
+		FunctionLibraryDSLPackage theFunctionLibraryDSLPackage = (FunctionLibraryDSLPackage)EPackage.Registry.INSTANCE.getEPackage(FunctionLibraryDSLPackage.eNS_URI);
+		MessageDSLPackage theMessageDSLPackage = (MessageDSLPackage)EPackage.Registry.INSTANCE.getEPackage(MessageDSLPackage.eNS_URI);
+		DataDSLPackage theDataDSLPackage = (DataDSLPackage)EPackage.Registry.INSTANCE.getEPackage(DataDSLPackage.eNS_URI);
+
+		// Create type parameters
+
+		// Set bounds for type parameters
+
+		// Add supertypes to classes
+		actionPackageEClass.getESuperTypes().add(theOSBPTypesPackage.getLPackage());
+		actionBaseEClass.getESuperTypes().add(this.getActionLazyResolver());
+		actionToolbarEClass.getESuperTypes().add(this.getActionBase());
+		actionButtonEClass.getESuperTypes().add(this.getActionBase());
+		actionTypeEClass.getESuperTypes().add(this.getActionLazyResolver());
+		actionTaskEClass.getESuperTypes().add(this.getActionType());
+		actionSelectWorkloadEClass.getESuperTypes().add(this.getActionType());
+		actionDialogEClass.getESuperTypes().add(this.getActionType());
+		actionReportEClass.getESuperTypes().add(this.getActionType());
+		actionChartEClass.getESuperTypes().add(this.getActionType());
+		actionWorkflowEClass.getESuperTypes().add(this.getActionType());
+		actionDatainterchangeEClass.getESuperTypes().add(this.getActionType());
+		actionGenericEClass.getESuperTypes().add(this.getActionType());
+		actionParameterEClass.getESuperTypes().add(this.getActionBase());
+
+		// Initialize classes, features, and operations; add parameters
+		initEClass(actionModelEClass, ActionModel.class, "ActionModel", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEReference(getActionModel_Packages(), this.getActionPackage(), null, "packages", null, 0, -1, ActionModel.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+		initEClass(actionLazyResolverEClass, ActionLazyResolver.class, "ActionLazyResolver", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+
+		EOperation op = initEOperation(getActionLazyResolver__EResolveProxy__InternalEObject(), theEcorePackage.getEObject(), "eResolveProxy", 0, 1, !IS_UNIQUE, IS_ORDERED);
+		addEParameter(op, this.getInternalEObject(), "proxy", 0, 1, !IS_UNIQUE, IS_ORDERED);
+
+		initEClass(actionPackageEClass, ActionPackage.class, "ActionPackage", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEReference(getActionPackage_Toolbars(), this.getActionToolbar(), null, "toolbars", null, 0, -1, ActionPackage.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+		initEClass(actionBaseEClass, ActionBase.class, "ActionBase", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEAttribute(getActionBase_Name(), theEcorePackage.getEString(), "name", null, 0, 1, ActionBase.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+		initEClass(actionToolbarEClass, ActionToolbar.class, "ActionToolbar", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEAttribute(getActionToolbar_Description(), theEcorePackage.getEBoolean(), "description", null, 0, 1, ActionToolbar.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getActionToolbar_DescriptionValue(), theEcorePackage.getEString(), "descriptionValue", null, 0, 1, ActionToolbar.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEReference(getActionToolbar_Actions(), this.getActionButton(), null, "actions", null, 0, -1, ActionToolbar.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+		initEClass(actionButtonEClass, ActionButton.class, "ActionButton", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEAttribute(getActionButton_Description(), theEcorePackage.getEBoolean(), "description", null, 0, 1, ActionButton.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getActionButton_DescriptionValue(), theEcorePackage.getEString(), "descriptionValue", null, 0, 1, ActionButton.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getActionButton_IconURI(), theEcorePackage.getEString(), "iconURI", null, 0, 1, ActionButton.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEReference(getActionButton_Group(), theFunctionLibraryDSLPackage.getFunctionLibraryGroup(), null, "group", null, 0, 1, ActionButton.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEReference(getActionButton_Canexecute(), theFunctionLibraryDSLPackage.getFunctionLibraryFunction(), null, "canexecute", null, 0, 1, ActionButton.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEReference(getActionButton_Executeparameter(), theFunctionLibraryDSLPackage.getFunctionLibraryFunction(), null, "executeparameter", null, 0, 1, ActionButton.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEReference(getActionButton_ActionType(), this.getActionType(), null, "actionType", null, 0, 1, ActionButton.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEReference(getActionButton_Message(), theMessageDSLPackage.getMessageItem(), null, "message", null, 0, 1, ActionButton.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+		initEClass(actionTypeEClass, ActionType.class, "ActionType", IS_ABSTRACT, IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+
+		initEClass(actionTaskEClass, ActionTask.class, "ActionTask", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEAttribute(getActionTask_Action(), this.getTaskActionEnum(), "action", null, 0, 1, ActionTask.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+		initEClass(actionSelectWorkloadEClass, ActionSelectWorkload.class, "ActionSelectWorkload", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEAttribute(getActionSelectWorkload_Action(), this.getSelectWorkloadActionEnum(), "action", null, 0, 1, ActionSelectWorkload.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+		initEClass(actionDialogEClass, ActionDialog.class, "ActionDialog", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEAttribute(getActionDialog_Action(), this.getDialogActionEnum(), "action", null, 0, 1, ActionDialog.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+		initEClass(actionReportEClass, ActionReport.class, "ActionReport", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEAttribute(getActionReport_Action(), this.getReportActionEnum(), "action", null, 0, 1, ActionReport.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+		initEClass(actionChartEClass, ActionChart.class, "ActionChart", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEAttribute(getActionChart_Action(), this.getChartActionEnum(), "action", null, 0, 1, ActionChart.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+		initEClass(actionWorkflowEClass, ActionWorkflow.class, "ActionWorkflow", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEAttribute(getActionWorkflow_Action(), this.getWorkflowActionEnum(), "action", null, 0, 1, ActionWorkflow.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+		initEClass(actionDatainterchangeEClass, ActionDatainterchange.class, "ActionDatainterchange", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEAttribute(getActionDatainterchange_Action(), this.getDatainterchangeActionEnum(), "action", null, 0, 1, ActionDatainterchange.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEReference(getActionDatainterchange_DataRef(), theDataDSLPackage.getDataInterchange(), null, "dataRef", null, 0, 1, ActionDatainterchange.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+		initEClass(actionGenericEClass, ActionGeneric.class, "ActionGeneric", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEAttribute(getActionGeneric_Action(), theEcorePackage.getEString(), "action", null, 0, 1, ActionGeneric.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+		initEClass(actionParameterEClass, ActionParameter.class, "ActionParameter", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEReference(getActionParameter_Parameter(), theFunctionLibraryDSLPackage.getFunctionLibraryParameter(), null, "parameter", null, 0, 1, ActionParameter.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+		// Initialize enums and add enum literals
+		initEEnum(taskActionEnumEEnum, TaskActionEnum.class, "TaskActionEnum");
+		addEEnumLiteral(taskActionEnumEEnum, TaskActionEnum.TASK_ACTION_CLAIM);
+		addEEnumLiteral(taskActionEnumEEnum, TaskActionEnum.TASK_ACTION_START);
+		addEEnumLiteral(taskActionEnumEEnum, TaskActionEnum.TASK_ACTION_STOP);
+		addEEnumLiteral(taskActionEnumEEnum, TaskActionEnum.TASK_ACTION_RELEASE);
+		addEEnumLiteral(taskActionEnumEEnum, TaskActionEnum.TASK_ACTION_SUSPEND);
+		addEEnumLiteral(taskActionEnumEEnum, TaskActionEnum.TASK_ACTION_RESUME);
+		addEEnumLiteral(taskActionEnumEEnum, TaskActionEnum.TASK_ACTION_SKIP);
+		addEEnumLiteral(taskActionEnumEEnum, TaskActionEnum.TASK_ACTION_COMPLETE);
+		addEEnumLiteral(taskActionEnumEEnum, TaskActionEnum.TASK_ACTION_DELEGATE);
+		addEEnumLiteral(taskActionEnumEEnum, TaskActionEnum.TASK_ACTION_FORWARD);
+		addEEnumLiteral(taskActionEnumEEnum, TaskActionEnum.TASK_ACTION_FAIL);
+		addEEnumLiteral(taskActionEnumEEnum, TaskActionEnum.TASK_ACTION_REGISTER);
+		addEEnumLiteral(taskActionEnumEEnum, TaskActionEnum.TASK_ACTION_REMOVE);
+		addEEnumLiteral(taskActionEnumEEnum, TaskActionEnum.TASK_ACTION_ACTIVATE);
+		addEEnumLiteral(taskActionEnumEEnum, TaskActionEnum.TASK_ACTION_EXIT);
+
+		initEEnum(selectWorkloadActionEnumEEnum, SelectWorkloadActionEnum.class, "SelectWorkloadActionEnum");
+		addEEnumLiteral(selectWorkloadActionEnumEEnum, SelectWorkloadActionEnum.WORKLOAD_SELECT_ACTION_REMOVE_ALL);
+		addEEnumLiteral(selectWorkloadActionEnumEEnum, SelectWorkloadActionEnum.WORKLOAD_SELECT_ACTION_ADD_ALL);
+
+		initEEnum(dialogActionEnumEEnum, DialogActionEnum.class, "DialogActionEnum");
+		addEEnumLiteral(dialogActionEnumEEnum, DialogActionEnum.DIALOG_ACTION_NEW);
+		addEEnumLiteral(dialogActionEnumEEnum, DialogActionEnum.DIALOG_ACTION_SAVE);
+		addEEnumLiteral(dialogActionEnumEEnum, DialogActionEnum.DIALOG_ACTION_DELETE);
+		addEEnumLiteral(dialogActionEnumEEnum, DialogActionEnum.DIALOG_ACTION_CANCEL);
+
+		initEEnum(reportActionEnumEEnum, ReportActionEnum.class, "ReportActionEnum");
+		addEEnumLiteral(reportActionEnumEEnum, ReportActionEnum.REPORT_ACTION_PRINT_ON_SERVER_PDF);
+		addEEnumLiteral(reportActionEnumEEnum, ReportActionEnum.REPORT_ACTION_DOWNLOAD_PDF);
+
+		initEEnum(chartActionEnumEEnum, ChartActionEnum.class, "ChartActionEnum");
+		addEEnumLiteral(chartActionEnumEEnum, ChartActionEnum.CHART_ACTION_DOWNLOAD);
+
+		initEEnum(workflowActionEnumEEnum, WorkflowActionEnum.class, "WorkflowActionEnum");
+		addEEnumLiteral(workflowActionEnumEEnum, WorkflowActionEnum.WORKFLOW_ACTION_START);
+
+		initEEnum(datainterchangeActionEnumEEnum, DatainterchangeActionEnum.class, "DatainterchangeActionEnum");
+		addEEnumLiteral(datainterchangeActionEnumEEnum, DatainterchangeActionEnum.DATAINTERCHANGE_ACTION_IMPORT);
+		addEEnumLiteral(datainterchangeActionEnumEEnum, DatainterchangeActionEnum.DATAINTERCHANGE_ACTION_EXPORT);
+
+		// 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", "actiondsl"
+		   });
+	}
+
+} //ActionDSLPackageImpl
diff --git a/org.eclipse.osbp.xtext.action/emf-gen/org/eclipse/osbp/xtext/action/impl/ActionDatainterchangeImpl.java b/org.eclipse.osbp.xtext.action/emf-gen/org/eclipse/osbp/xtext/action/impl/ActionDatainterchangeImpl.java
new file mode 100644
index 0000000..afc95ca
--- /dev/null
+++ b/org.eclipse.osbp.xtext.action/emf-gen/org/eclipse/osbp/xtext/action/impl/ActionDatainterchangeImpl.java
@@ -0,0 +1,238 @@
+/**
+ * Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ *  All rights reserved. This program and the accompanying materials
+ *  are made available under the terms of the Eclipse Public License v1.0
+ *  which accompanies this distribution, and is available at
+ *  http://www.eclipse.org/legal/epl-v10.html
+ *  
+ *  Contributors:                                                      
+ *     Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
+ *  
+ *  generated from ActionDSL.xcore
+ * 
+ *  
+ */
+package org.eclipse.osbp.xtext.action.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.action.ActionDSLPackage;
+import org.eclipse.osbp.xtext.action.ActionDatainterchange;
+import org.eclipse.osbp.xtext.action.DatainterchangeActionEnum;
+
+import org.eclipse.osbp.xtext.datainterchange.DataInterchange;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Action Datainterchange</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.xtext.action.impl.ActionDatainterchangeImpl#getAction <em>Action</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.action.impl.ActionDatainterchangeImpl#getDataRef <em>Data Ref</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class ActionDatainterchangeImpl extends ActionLazyResolverImpl implements ActionDatainterchange {
+	/**
+	 * The default value of the '{@link #getAction() <em>Action</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getAction()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final DatainterchangeActionEnum ACTION_EDEFAULT = DatainterchangeActionEnum.DATAINTERCHANGE_ACTION_IMPORT;
+
+	/**
+	 * The cached value of the '{@link #getAction() <em>Action</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getAction()
+	 * @generated
+	 * @ordered
+	 */
+	protected DatainterchangeActionEnum action = ACTION_EDEFAULT;
+
+	/**
+	 * The cached value of the '{@link #getDataRef() <em>Data Ref</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getDataRef()
+	 * @generated
+	 * @ordered
+	 */
+	protected DataInterchange dataRef;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected ActionDatainterchangeImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return ActionDSLPackage.Literals.ACTION_DATAINTERCHANGE;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public DatainterchangeActionEnum getAction() {
+		return action;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setAction(DatainterchangeActionEnum newAction) {
+		DatainterchangeActionEnum oldAction = action;
+		action = newAction == null ? ACTION_EDEFAULT : newAction;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ActionDSLPackage.ACTION_DATAINTERCHANGE__ACTION, oldAction, action));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public DataInterchange getDataRef() {
+		if (dataRef != null && dataRef.eIsProxy()) {
+			InternalEObject oldDataRef = (InternalEObject)dataRef;
+			dataRef = (DataInterchange)eResolveProxy(oldDataRef);
+			if (dataRef != oldDataRef) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, ActionDSLPackage.ACTION_DATAINTERCHANGE__DATA_REF, oldDataRef, dataRef));
+			}
+		}
+		return dataRef;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public DataInterchange basicGetDataRef() {
+		return dataRef;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setDataRef(DataInterchange newDataRef) {
+		DataInterchange oldDataRef = dataRef;
+		dataRef = newDataRef;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ActionDSLPackage.ACTION_DATAINTERCHANGE__DATA_REF, oldDataRef, dataRef));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case ActionDSLPackage.ACTION_DATAINTERCHANGE__ACTION:
+				return getAction();
+			case ActionDSLPackage.ACTION_DATAINTERCHANGE__DATA_REF:
+				if (resolve) return getDataRef();
+				return basicGetDataRef();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case ActionDSLPackage.ACTION_DATAINTERCHANGE__ACTION:
+				setAction((DatainterchangeActionEnum)newValue);
+				return;
+			case ActionDSLPackage.ACTION_DATAINTERCHANGE__DATA_REF:
+				setDataRef((DataInterchange)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case ActionDSLPackage.ACTION_DATAINTERCHANGE__ACTION:
+				setAction(ACTION_EDEFAULT);
+				return;
+			case ActionDSLPackage.ACTION_DATAINTERCHANGE__DATA_REF:
+				setDataRef((DataInterchange)null);
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case ActionDSLPackage.ACTION_DATAINTERCHANGE__ACTION:
+				return action != ACTION_EDEFAULT;
+			case ActionDSLPackage.ACTION_DATAINTERCHANGE__DATA_REF:
+				return dataRef != 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(" (action: ");
+		result.append(action);
+		result.append(')');
+		return result.toString();
+	}
+
+} //ActionDatainterchangeImpl
diff --git a/org.eclipse.osbp.xtext.action/emf-gen/org/eclipse/osbp/xtext/action/impl/ActionDialogImpl.java b/org.eclipse.osbp.xtext.action/emf-gen/org/eclipse/osbp/xtext/action/impl/ActionDialogImpl.java
new file mode 100644
index 0000000..5352ff9
--- /dev/null
+++ b/org.eclipse.osbp.xtext.action/emf-gen/org/eclipse/osbp/xtext/action/impl/ActionDialogImpl.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
+ *  
+ *  generated from ActionDSL.xcore
+ * 
+ *  
+ */
+package org.eclipse.osbp.xtext.action.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.action.ActionDSLPackage;
+import org.eclipse.osbp.xtext.action.ActionDialog;
+import org.eclipse.osbp.xtext.action.DialogActionEnum;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Action Dialog</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.xtext.action.impl.ActionDialogImpl#getAction <em>Action</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class ActionDialogImpl extends ActionLazyResolverImpl implements ActionDialog {
+	/**
+	 * The default value of the '{@link #getAction() <em>Action</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getAction()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final DialogActionEnum ACTION_EDEFAULT = DialogActionEnum.DIALOG_ACTION_NEW;
+
+	/**
+	 * The cached value of the '{@link #getAction() <em>Action</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getAction()
+	 * @generated
+	 * @ordered
+	 */
+	protected DialogActionEnum action = ACTION_EDEFAULT;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected ActionDialogImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return ActionDSLPackage.Literals.ACTION_DIALOG;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public DialogActionEnum getAction() {
+		return action;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setAction(DialogActionEnum newAction) {
+		DialogActionEnum oldAction = action;
+		action = newAction == null ? ACTION_EDEFAULT : newAction;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ActionDSLPackage.ACTION_DIALOG__ACTION, oldAction, action));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case ActionDSLPackage.ACTION_DIALOG__ACTION:
+				return getAction();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case ActionDSLPackage.ACTION_DIALOG__ACTION:
+				setAction((DialogActionEnum)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case ActionDSLPackage.ACTION_DIALOG__ACTION:
+				setAction(ACTION_EDEFAULT);
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case ActionDSLPackage.ACTION_DIALOG__ACTION:
+				return action != ACTION_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(" (action: ");
+		result.append(action);
+		result.append(')');
+		return result.toString();
+	}
+
+} //ActionDialogImpl
diff --git a/org.eclipse.osbp.xtext.action/emf-gen/org/eclipse/osbp/xtext/action/impl/ActionGenericImpl.java b/org.eclipse.osbp.xtext.action/emf-gen/org/eclipse/osbp/xtext/action/impl/ActionGenericImpl.java
new file mode 100644
index 0000000..94dda5f
--- /dev/null
+++ b/org.eclipse.osbp.xtext.action/emf-gen/org/eclipse/osbp/xtext/action/impl/ActionGenericImpl.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
+ *  
+ *  Contributors:                                                      
+ *     Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
+ *  
+ *  generated from ActionDSL.xcore
+ * 
+ *  
+ */
+package org.eclipse.osbp.xtext.action.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.action.ActionDSLPackage;
+import org.eclipse.osbp.xtext.action.ActionGeneric;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Action Generic</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.xtext.action.impl.ActionGenericImpl#getAction <em>Action</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class ActionGenericImpl extends ActionLazyResolverImpl implements ActionGeneric {
+	/**
+	 * The default value of the '{@link #getAction() <em>Action</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getAction()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String ACTION_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getAction() <em>Action</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getAction()
+	 * @generated
+	 * @ordered
+	 */
+	protected String action = ACTION_EDEFAULT;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected ActionGenericImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return ActionDSLPackage.Literals.ACTION_GENERIC;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getAction() {
+		return action;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setAction(String newAction) {
+		String oldAction = action;
+		action = newAction;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ActionDSLPackage.ACTION_GENERIC__ACTION, oldAction, action));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case ActionDSLPackage.ACTION_GENERIC__ACTION:
+				return getAction();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case ActionDSLPackage.ACTION_GENERIC__ACTION:
+				setAction((String)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case ActionDSLPackage.ACTION_GENERIC__ACTION:
+				setAction(ACTION_EDEFAULT);
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case ActionDSLPackage.ACTION_GENERIC__ACTION:
+				return ACTION_EDEFAULT == null ? action != null : !ACTION_EDEFAULT.equals(action);
+		}
+		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(" (action: ");
+		result.append(action);
+		result.append(')');
+		return result.toString();
+	}
+
+} //ActionGenericImpl
diff --git a/org.eclipse.osbp.xtext.action/emf-gen/org/eclipse/osbp/xtext/action/impl/ActionLazyResolverImpl.java b/org.eclipse.osbp.xtext.action/emf-gen/org/eclipse/osbp/xtext/action/impl/ActionLazyResolverImpl.java
new file mode 100644
index 0000000..7239804
--- /dev/null
+++ b/org.eclipse.osbp.xtext.action/emf-gen/org/eclipse/osbp/xtext/action/impl/ActionLazyResolverImpl.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
+ *  
+ *  generated from ActionDSL.xcore
+ * 
+ *  
+ */
+package org.eclipse.osbp.xtext.action.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.action.ActionDSLPackage;
+import org.eclipse.osbp.xtext.action.ActionLazyResolver;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Action Lazy Resolver</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * </p>
+ *
+ * @generated
+ */
+public class ActionLazyResolverImpl extends MinimalEObjectImpl.Container implements ActionLazyResolver {
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected ActionLazyResolverImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return ActionDSLPackage.Literals.ACTION_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 ActionDSLPackage.ACTION_LAZY_RESOLVER___ERESOLVE_PROXY__INTERNALEOBJECT:
+				return eResolveProxy((InternalEObject)arguments.get(0));
+		}
+		return super.eInvoke(operationID, arguments);
+	}
+
+} //ActionLazyResolverImpl
diff --git a/org.eclipse.osbp.xtext.action/emf-gen/org/eclipse/osbp/xtext/action/impl/ActionModelImpl.java b/org.eclipse.osbp.xtext.action/emf-gen/org/eclipse/osbp/xtext/action/impl/ActionModelImpl.java
new file mode 100644
index 0000000..596aa82
--- /dev/null
+++ b/org.eclipse.osbp.xtext.action/emf-gen/org/eclipse/osbp/xtext/action/impl/ActionModelImpl.java
@@ -0,0 +1,164 @@
+/**
+ * Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ *  All rights reserved. This program and the accompanying materials
+ *  are made available under the terms of the Eclipse Public License v1.0
+ *  which accompanies this distribution, and is available at
+ *  http://www.eclipse.org/legal/epl-v10.html
+ *  
+ *  Contributors:                                                      
+ *     Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
+ *  
+ *  generated from ActionDSL.xcore
+ * 
+ *  
+ */
+package org.eclipse.osbp.xtext.action.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.action.ActionDSLPackage;
+import org.eclipse.osbp.xtext.action.ActionModel;
+import org.eclipse.osbp.xtext.action.ActionPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Action Model</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.xtext.action.impl.ActionModelImpl#getPackages <em>Packages</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class ActionModelImpl extends MinimalEObjectImpl.Container implements ActionModel {
+	/**
+	 * The cached value of the '{@link #getPackages() <em>Packages</em>}' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getPackages()
+	 * @generated
+	 * @ordered
+	 */
+	protected EList<ActionPackage> packages;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected ActionModelImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return ActionDSLPackage.Literals.ACTION_MODEL;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EList<ActionPackage> getPackages() {
+		if (packages == null) {
+			packages = new EObjectContainmentEList<ActionPackage>(ActionPackage.class, this, ActionDSLPackage.ACTION_MODEL__PACKAGES);
+		}
+		return packages;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+		switch (featureID) {
+			case ActionDSLPackage.ACTION_MODEL__PACKAGES:
+				return ((InternalEList<?>)getPackages()).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 ActionDSLPackage.ACTION_MODEL__PACKAGES:
+				return getPackages();
+		}
+		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 ActionDSLPackage.ACTION_MODEL__PACKAGES:
+				getPackages().clear();
+				getPackages().addAll((Collection<? extends ActionPackage>)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case ActionDSLPackage.ACTION_MODEL__PACKAGES:
+				getPackages().clear();
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case ActionDSLPackage.ACTION_MODEL__PACKAGES:
+				return packages != null && !packages.isEmpty();
+		}
+		return super.eIsSet(featureID);
+	}
+
+} //ActionModelImpl
diff --git a/org.eclipse.osbp.xtext.action/emf-gen/org/eclipse/osbp/xtext/action/impl/ActionPackageImpl.java b/org.eclipse.osbp.xtext.action/emf-gen/org/eclipse/osbp/xtext/action/impl/ActionPackageImpl.java
new file mode 100644
index 0000000..0698b17
--- /dev/null
+++ b/org.eclipse.osbp.xtext.action/emf-gen/org/eclipse/osbp/xtext/action/impl/ActionPackageImpl.java
@@ -0,0 +1,164 @@
+/**
+ * Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ *  All rights reserved. This program and the accompanying materials
+ *  are made available under the terms of the Eclipse Public License v1.0
+ *  which accompanies this distribution, and is available at
+ *  http://www.eclipse.org/legal/epl-v10.html
+ *  
+ *  Contributors:                                                      
+ *     Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
+ *  
+ *  generated from ActionDSL.xcore
+ * 
+ *  
+ */
+package org.eclipse.osbp.xtext.action.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.dsl.semantic.common.types.impl.LPackageImpl;
+
+import org.eclipse.osbp.xtext.action.ActionDSLPackage;
+import org.eclipse.osbp.xtext.action.ActionPackage;
+import org.eclipse.osbp.xtext.action.ActionToolbar;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Action Package</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.xtext.action.impl.ActionPackageImpl#getToolbars <em>Toolbars</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class ActionPackageImpl extends LPackageImpl implements ActionPackage {
+	/**
+	 * The cached value of the '{@link #getToolbars() <em>Toolbars</em>}' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getToolbars()
+	 * @generated
+	 * @ordered
+	 */
+	protected EList<ActionToolbar> toolbars;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected ActionPackageImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return ActionDSLPackage.Literals.ACTION_PACKAGE;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EList<ActionToolbar> getToolbars() {
+		if (toolbars == null) {
+			toolbars = new EObjectContainmentEList<ActionToolbar>(ActionToolbar.class, this, ActionDSLPackage.ACTION_PACKAGE__TOOLBARS);
+		}
+		return toolbars;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+		switch (featureID) {
+			case ActionDSLPackage.ACTION_PACKAGE__TOOLBARS:
+				return ((InternalEList<?>)getToolbars()).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 ActionDSLPackage.ACTION_PACKAGE__TOOLBARS:
+				return getToolbars();
+		}
+		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 ActionDSLPackage.ACTION_PACKAGE__TOOLBARS:
+				getToolbars().clear();
+				getToolbars().addAll((Collection<? extends ActionToolbar>)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case ActionDSLPackage.ACTION_PACKAGE__TOOLBARS:
+				getToolbars().clear();
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case ActionDSLPackage.ACTION_PACKAGE__TOOLBARS:
+				return toolbars != null && !toolbars.isEmpty();
+		}
+		return super.eIsSet(featureID);
+	}
+
+} //ActionPackageImpl
diff --git a/org.eclipse.osbp.xtext.action/emf-gen/org/eclipse/osbp/xtext/action/impl/ActionParameterImpl.java b/org.eclipse.osbp.xtext.action/emf-gen/org/eclipse/osbp/xtext/action/impl/ActionParameterImpl.java
new file mode 100644
index 0000000..1ea2509
--- /dev/null
+++ b/org.eclipse.osbp.xtext.action/emf-gen/org/eclipse/osbp/xtext/action/impl/ActionParameterImpl.java
@@ -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:                                                      
+ *     Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
+ *  
+ *  generated from ActionDSL.xcore
+ * 
+ *  
+ */
+package org.eclipse.osbp.xtext.action.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.action.ActionDSLPackage;
+import org.eclipse.osbp.xtext.action.ActionParameter;
+
+import org.eclipse.osbp.xtext.functionlibrarydsl.FunctionLibraryParameter;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Action Parameter</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.xtext.action.impl.ActionParameterImpl#getParameter <em>Parameter</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class ActionParameterImpl extends ActionBaseImpl implements ActionParameter {
+	/**
+	 * The cached value of the '{@link #getParameter() <em>Parameter</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getParameter()
+	 * @generated
+	 * @ordered
+	 */
+	protected FunctionLibraryParameter parameter;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected ActionParameterImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return ActionDSLPackage.Literals.ACTION_PARAMETER;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public FunctionLibraryParameter getParameter() {
+		if (parameter != null && parameter.eIsProxy()) {
+			InternalEObject oldParameter = (InternalEObject)parameter;
+			parameter = (FunctionLibraryParameter)eResolveProxy(oldParameter);
+			if (parameter != oldParameter) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, ActionDSLPackage.ACTION_PARAMETER__PARAMETER, oldParameter, parameter));
+			}
+		}
+		return parameter;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public FunctionLibraryParameter basicGetParameter() {
+		return parameter;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setParameter(FunctionLibraryParameter newParameter) {
+		FunctionLibraryParameter oldParameter = parameter;
+		parameter = newParameter;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ActionDSLPackage.ACTION_PARAMETER__PARAMETER, oldParameter, parameter));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case ActionDSLPackage.ACTION_PARAMETER__PARAMETER:
+				if (resolve) return getParameter();
+				return basicGetParameter();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case ActionDSLPackage.ACTION_PARAMETER__PARAMETER:
+				setParameter((FunctionLibraryParameter)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case ActionDSLPackage.ACTION_PARAMETER__PARAMETER:
+				setParameter((FunctionLibraryParameter)null);
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case ActionDSLPackage.ACTION_PARAMETER__PARAMETER:
+				return parameter != null;
+		}
+		return super.eIsSet(featureID);
+	}
+
+} //ActionParameterImpl
diff --git a/org.eclipse.osbp.xtext.action/emf-gen/org/eclipse/osbp/xtext/action/impl/ActionReportImpl.java b/org.eclipse.osbp.xtext.action/emf-gen/org/eclipse/osbp/xtext/action/impl/ActionReportImpl.java
new file mode 100644
index 0000000..109086b
--- /dev/null
+++ b/org.eclipse.osbp.xtext.action/emf-gen/org/eclipse/osbp/xtext/action/impl/ActionReportImpl.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
+ *  
+ *  generated from ActionDSL.xcore
+ * 
+ *  
+ */
+package org.eclipse.osbp.xtext.action.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.action.ActionDSLPackage;
+import org.eclipse.osbp.xtext.action.ActionReport;
+import org.eclipse.osbp.xtext.action.ReportActionEnum;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Action Report</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.xtext.action.impl.ActionReportImpl#getAction <em>Action</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class ActionReportImpl extends ActionLazyResolverImpl implements ActionReport {
+	/**
+	 * The default value of the '{@link #getAction() <em>Action</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getAction()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final ReportActionEnum ACTION_EDEFAULT = ReportActionEnum.REPORT_ACTION_PRINT_ON_SERVER_PDF;
+
+	/**
+	 * The cached value of the '{@link #getAction() <em>Action</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getAction()
+	 * @generated
+	 * @ordered
+	 */
+	protected ReportActionEnum action = ACTION_EDEFAULT;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected ActionReportImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return ActionDSLPackage.Literals.ACTION_REPORT;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public ReportActionEnum getAction() {
+		return action;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setAction(ReportActionEnum newAction) {
+		ReportActionEnum oldAction = action;
+		action = newAction == null ? ACTION_EDEFAULT : newAction;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ActionDSLPackage.ACTION_REPORT__ACTION, oldAction, action));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case ActionDSLPackage.ACTION_REPORT__ACTION:
+				return getAction();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case ActionDSLPackage.ACTION_REPORT__ACTION:
+				setAction((ReportActionEnum)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case ActionDSLPackage.ACTION_REPORT__ACTION:
+				setAction(ACTION_EDEFAULT);
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case ActionDSLPackage.ACTION_REPORT__ACTION:
+				return action != ACTION_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(" (action: ");
+		result.append(action);
+		result.append(')');
+		return result.toString();
+	}
+
+} //ActionReportImpl
diff --git a/org.eclipse.osbp.xtext.action/emf-gen/org/eclipse/osbp/xtext/action/impl/ActionSelectWorkloadImpl.java b/org.eclipse.osbp.xtext.action/emf-gen/org/eclipse/osbp/xtext/action/impl/ActionSelectWorkloadImpl.java
new file mode 100644
index 0000000..c972e8c
--- /dev/null
+++ b/org.eclipse.osbp.xtext.action/emf-gen/org/eclipse/osbp/xtext/action/impl/ActionSelectWorkloadImpl.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
+ *  
+ *  generated from ActionDSL.xcore
+ * 
+ *  
+ */
+package org.eclipse.osbp.xtext.action.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.action.ActionDSLPackage;
+import org.eclipse.osbp.xtext.action.ActionSelectWorkload;
+import org.eclipse.osbp.xtext.action.SelectWorkloadActionEnum;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Action Select Workload</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.xtext.action.impl.ActionSelectWorkloadImpl#getAction <em>Action</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class ActionSelectWorkloadImpl extends ActionLazyResolverImpl implements ActionSelectWorkload {
+	/**
+	 * The default value of the '{@link #getAction() <em>Action</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getAction()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final SelectWorkloadActionEnum ACTION_EDEFAULT = SelectWorkloadActionEnum.WORKLOAD_SELECT_ACTION_REMOVE_ALL;
+
+	/**
+	 * The cached value of the '{@link #getAction() <em>Action</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getAction()
+	 * @generated
+	 * @ordered
+	 */
+	protected SelectWorkloadActionEnum action = ACTION_EDEFAULT;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected ActionSelectWorkloadImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return ActionDSLPackage.Literals.ACTION_SELECT_WORKLOAD;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public SelectWorkloadActionEnum getAction() {
+		return action;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setAction(SelectWorkloadActionEnum newAction) {
+		SelectWorkloadActionEnum oldAction = action;
+		action = newAction == null ? ACTION_EDEFAULT : newAction;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ActionDSLPackage.ACTION_SELECT_WORKLOAD__ACTION, oldAction, action));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case ActionDSLPackage.ACTION_SELECT_WORKLOAD__ACTION:
+				return getAction();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case ActionDSLPackage.ACTION_SELECT_WORKLOAD__ACTION:
+				setAction((SelectWorkloadActionEnum)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case ActionDSLPackage.ACTION_SELECT_WORKLOAD__ACTION:
+				setAction(ACTION_EDEFAULT);
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case ActionDSLPackage.ACTION_SELECT_WORKLOAD__ACTION:
+				return action != ACTION_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(" (action: ");
+		result.append(action);
+		result.append(')');
+		return result.toString();
+	}
+
+} //ActionSelectWorkloadImpl
diff --git a/org.eclipse.osbp.xtext.action/emf-gen/org/eclipse/osbp/xtext/action/impl/ActionTaskImpl.java b/org.eclipse.osbp.xtext.action/emf-gen/org/eclipse/osbp/xtext/action/impl/ActionTaskImpl.java
new file mode 100644
index 0000000..045bdc1
--- /dev/null
+++ b/org.eclipse.osbp.xtext.action/emf-gen/org/eclipse/osbp/xtext/action/impl/ActionTaskImpl.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
+ *  
+ *  generated from ActionDSL.xcore
+ * 
+ *  
+ */
+package org.eclipse.osbp.xtext.action.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.action.ActionDSLPackage;
+import org.eclipse.osbp.xtext.action.ActionTask;
+import org.eclipse.osbp.xtext.action.TaskActionEnum;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Action Task</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.xtext.action.impl.ActionTaskImpl#getAction <em>Action</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class ActionTaskImpl extends ActionLazyResolverImpl implements ActionTask {
+	/**
+	 * The default value of the '{@link #getAction() <em>Action</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getAction()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final TaskActionEnum ACTION_EDEFAULT = TaskActionEnum.TASK_ACTION_CLAIM;
+
+	/**
+	 * The cached value of the '{@link #getAction() <em>Action</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getAction()
+	 * @generated
+	 * @ordered
+	 */
+	protected TaskActionEnum action = ACTION_EDEFAULT;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected ActionTaskImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return ActionDSLPackage.Literals.ACTION_TASK;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public TaskActionEnum getAction() {
+		return action;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setAction(TaskActionEnum newAction) {
+		TaskActionEnum oldAction = action;
+		action = newAction == null ? ACTION_EDEFAULT : newAction;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ActionDSLPackage.ACTION_TASK__ACTION, oldAction, action));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case ActionDSLPackage.ACTION_TASK__ACTION:
+				return getAction();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case ActionDSLPackage.ACTION_TASK__ACTION:
+				setAction((TaskActionEnum)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case ActionDSLPackage.ACTION_TASK__ACTION:
+				setAction(ACTION_EDEFAULT);
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case ActionDSLPackage.ACTION_TASK__ACTION:
+				return action != ACTION_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(" (action: ");
+		result.append(action);
+		result.append(')');
+		return result.toString();
+	}
+
+} //ActionTaskImpl
diff --git a/org.eclipse.osbp.xtext.action/emf-gen/org/eclipse/osbp/xtext/action/impl/ActionToolbarImpl.java b/org.eclipse.osbp.xtext.action/emf-gen/org/eclipse/osbp/xtext/action/impl/ActionToolbarImpl.java
new file mode 100644
index 0000000..adebd3b
--- /dev/null
+++ b/org.eclipse.osbp.xtext.action/emf-gen/org/eclipse/osbp/xtext/action/impl/ActionToolbarImpl.java
@@ -0,0 +1,287 @@
+/**
+ * Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ *  All rights reserved. This program and the accompanying materials
+ *  are made available under the terms of the Eclipse Public License v1.0
+ *  which accompanies this distribution, and is available at
+ *  http://www.eclipse.org/legal/epl-v10.html
+ *  
+ *  Contributors:                                                      
+ *     Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
+ *  
+ *  generated from ActionDSL.xcore
+ * 
+ *  
+ */
+package org.eclipse.osbp.xtext.action.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.action.ActionButton;
+import org.eclipse.osbp.xtext.action.ActionDSLPackage;
+import org.eclipse.osbp.xtext.action.ActionToolbar;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Action Toolbar</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.xtext.action.impl.ActionToolbarImpl#isDescription <em>Description</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.action.impl.ActionToolbarImpl#getDescriptionValue <em>Description Value</em>}</li>
+ *   <li>{@link org.eclipse.osbp.xtext.action.impl.ActionToolbarImpl#getActions <em>Actions</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class ActionToolbarImpl extends ActionBaseImpl implements ActionToolbar {
+	/**
+	 * 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 #getActions() <em>Actions</em>}' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getActions()
+	 * @generated
+	 * @ordered
+	 */
+	protected EList<ActionButton> actions;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected ActionToolbarImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return ActionDSLPackage.Literals.ACTION_TOOLBAR;
+	}
+
+	/**
+	 * <!-- 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, ActionDSLPackage.ACTION_TOOLBAR__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, ActionDSLPackage.ACTION_TOOLBAR__DESCRIPTION_VALUE, oldDescriptionValue, descriptionValue));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EList<ActionButton> getActions() {
+		if (actions == null) {
+			actions = new EObjectContainmentEList<ActionButton>(ActionButton.class, this, ActionDSLPackage.ACTION_TOOLBAR__ACTIONS);
+		}
+		return actions;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+		switch (featureID) {
+			case ActionDSLPackage.ACTION_TOOLBAR__ACTIONS:
+				return ((InternalEList<?>)getActions()).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 ActionDSLPackage.ACTION_TOOLBAR__DESCRIPTION:
+				return isDescription();
+			case ActionDSLPackage.ACTION_TOOLBAR__DESCRIPTION_VALUE:
+				return getDescriptionValue();
+			case ActionDSLPackage.ACTION_TOOLBAR__ACTIONS:
+				return getActions();
+		}
+		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 ActionDSLPackage.ACTION_TOOLBAR__DESCRIPTION:
+				setDescription((Boolean)newValue);
+				return;
+			case ActionDSLPackage.ACTION_TOOLBAR__DESCRIPTION_VALUE:
+				setDescriptionValue((String)newValue);
+				return;
+			case ActionDSLPackage.ACTION_TOOLBAR__ACTIONS:
+				getActions().clear();
+				getActions().addAll((Collection<? extends ActionButton>)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case ActionDSLPackage.ACTION_TOOLBAR__DESCRIPTION:
+				setDescription(DESCRIPTION_EDEFAULT);
+				return;
+			case ActionDSLPackage.ACTION_TOOLBAR__DESCRIPTION_VALUE:
+				setDescriptionValue(DESCRIPTION_VALUE_EDEFAULT);
+				return;
+			case ActionDSLPackage.ACTION_TOOLBAR__ACTIONS:
+				getActions().clear();
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case ActionDSLPackage.ACTION_TOOLBAR__DESCRIPTION:
+				return description != DESCRIPTION_EDEFAULT;
+			case ActionDSLPackage.ACTION_TOOLBAR__DESCRIPTION_VALUE:
+				return DESCRIPTION_VALUE_EDEFAULT == null ? descriptionValue != null : !DESCRIPTION_VALUE_EDEFAULT.equals(descriptionValue);
+			case ActionDSLPackage.ACTION_TOOLBAR__ACTIONS:
+				return actions != null && !actions.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(" (description: ");
+		result.append(description);
+		result.append(", descriptionValue: ");
+		result.append(descriptionValue);
+		result.append(')');
+		return result.toString();
+	}
+
+} //ActionToolbarImpl
diff --git a/org.eclipse.osbp.xtext.action/emf-gen/org/eclipse/osbp/xtext/action/impl/ActionWorkflowImpl.java b/org.eclipse.osbp.xtext.action/emf-gen/org/eclipse/osbp/xtext/action/impl/ActionWorkflowImpl.java
new file mode 100644
index 0000000..3db1632
--- /dev/null
+++ b/org.eclipse.osbp.xtext.action/emf-gen/org/eclipse/osbp/xtext/action/impl/ActionWorkflowImpl.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
+ *  
+ *  generated from ActionDSL.xcore
+ * 
+ *  
+ */
+package org.eclipse.osbp.xtext.action.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.action.ActionDSLPackage;
+import org.eclipse.osbp.xtext.action.ActionWorkflow;
+import org.eclipse.osbp.xtext.action.WorkflowActionEnum;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Action Workflow</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ *   <li>{@link org.eclipse.osbp.xtext.action.impl.ActionWorkflowImpl#getAction <em>Action</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class ActionWorkflowImpl extends ActionLazyResolverImpl implements ActionWorkflow {
+	/**
+	 * The default value of the '{@link #getAction() <em>Action</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getAction()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final WorkflowActionEnum ACTION_EDEFAULT = WorkflowActionEnum.WORKFLOW_ACTION_START;
+
+	/**
+	 * The cached value of the '{@link #getAction() <em>Action</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getAction()
+	 * @generated
+	 * @ordered
+	 */
+	protected WorkflowActionEnum action = ACTION_EDEFAULT;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected ActionWorkflowImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return ActionDSLPackage.Literals.ACTION_WORKFLOW;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public WorkflowActionEnum getAction() {
+		return action;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setAction(WorkflowActionEnum newAction) {
+		WorkflowActionEnum oldAction = action;
+		action = newAction == null ? ACTION_EDEFAULT : newAction;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, ActionDSLPackage.ACTION_WORKFLOW__ACTION, oldAction, action));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case ActionDSLPackage.ACTION_WORKFLOW__ACTION:
+				return getAction();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case ActionDSLPackage.ACTION_WORKFLOW__ACTION:
+				setAction((WorkflowActionEnum)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case ActionDSLPackage.ACTION_WORKFLOW__ACTION:
+				setAction(ACTION_EDEFAULT);
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case ActionDSLPackage.ACTION_WORKFLOW__ACTION:
+				return action != ACTION_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(" (action: ");
+		result.append(action);
+		result.append(')');
+		return result.toString();
+	}
+
+} //ActionWorkflowImpl
diff --git a/org.eclipse.osbp.xtext.action/emf-gen/org/eclipse/osbp/xtext/action/util/ActionDSLAdapterFactory.java b/org.eclipse.osbp.xtext.action/emf-gen/org/eclipse/osbp/xtext/action/util/ActionDSLAdapterFactory.java
new file mode 100644
index 0000000..16adbed
--- /dev/null
+++ b/org.eclipse.osbp.xtext.action/emf-gen/org/eclipse/osbp/xtext/action/util/ActionDSLAdapterFactory.java
@@ -0,0 +1,441 @@
+/**
+ * Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ *  All rights reserved. This program and the accompanying materials
+ *  are made available under the terms of the Eclipse Public License v1.0
+ *  which accompanies this distribution, and is available at
+ *  http://www.eclipse.org/legal/epl-v10.html
+ *  
+ *  Contributors:                                                      
+ *     Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
+ *  
+ *  generated from ActionDSL.xcore
+ * 
+ *  
+ */
+package org.eclipse.osbp.xtext.action.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.action.*;
+
+/**
+ * <!-- 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.action.ActionDSLPackage
+ * @generated
+ */
+public class ActionDSLAdapterFactory extends AdapterFactoryImpl {
+	/**
+	 * The cached model package.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected static ActionDSLPackage modelPackage;
+
+	/**
+	 * Creates an instance of the adapter factory.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public ActionDSLAdapterFactory() {
+		if (modelPackage == null) {
+			modelPackage = ActionDSLPackage.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 ActionDSLSwitch<Adapter> modelSwitch =
+		new ActionDSLSwitch<Adapter>() {
+			@Override
+			public Adapter caseActionModel(ActionModel object) {
+				return createActionModelAdapter();
+			}
+			@Override
+			public Adapter caseActionLazyResolver(ActionLazyResolver object) {
+				return createActionLazyResolverAdapter();
+			}
+			@Override
+			public Adapter caseActionPackage(ActionPackage object) {
+				return createActionPackageAdapter();
+			}
+			@Override
+			public Adapter caseActionBase(ActionBase object) {
+				return createActionBaseAdapter();
+			}
+			@Override
+			public Adapter caseActionToolbar(ActionToolbar object) {
+				return createActionToolbarAdapter();
+			}
+			@Override
+			public Adapter caseActionButton(ActionButton object) {
+				return createActionButtonAdapter();
+			}
+			@Override
+			public Adapter caseActionType(ActionType object) {
+				return createActionTypeAdapter();
+			}
+			@Override
+			public Adapter caseActionTask(ActionTask object) {
+				return createActionTaskAdapter();
+			}
+			@Override
+			public Adapter caseActionSelectWorkload(ActionSelectWorkload object) {
+				return createActionSelectWorkloadAdapter();
+			}
+			@Override
+			public Adapter caseActionDialog(ActionDialog object) {
+				return createActionDialogAdapter();
+			}
+			@Override
+			public Adapter caseActionReport(ActionReport object) {
+				return createActionReportAdapter();
+			}
+			@Override
+			public Adapter caseActionChart(ActionChart object) {
+				return createActionChartAdapter();
+			}
+			@Override
+			public Adapter caseActionWorkflow(ActionWorkflow object) {
+				return createActionWorkflowAdapter();
+			}
+			@Override
+			public Adapter caseActionDatainterchange(ActionDatainterchange object) {
+				return createActionDatainterchangeAdapter();
+			}
+			@Override
+			public Adapter caseActionGeneric(ActionGeneric object) {
+				return createActionGenericAdapter();
+			}
+			@Override
+			public Adapter caseActionParameter(ActionParameter object) {
+				return createActionParameterAdapter();
+			}
+			@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.action.ActionModel <em>Action 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.action.ActionModel
+	 * @generated
+	 */
+	public Adapter createActionModelAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.osbp.xtext.action.ActionLazyResolver <em>Action 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.action.ActionLazyResolver
+	 * @generated
+	 */
+	public Adapter createActionLazyResolverAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.osbp.xtext.action.ActionPackage <em>Action 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.action.ActionPackage
+	 * @generated
+	 */
+	public Adapter createActionPackageAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.osbp.xtext.action.ActionBase <em>Action 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.action.ActionBase
+	 * @generated
+	 */
+	public Adapter createActionBaseAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.osbp.xtext.action.ActionToolbar <em>Action Toolbar</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.action.ActionToolbar
+	 * @generated
+	 */
+	public Adapter createActionToolbarAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.osbp.xtext.action.ActionButton <em>Action Button</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.action.ActionButton
+	 * @generated
+	 */
+	public Adapter createActionButtonAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.osbp.xtext.action.ActionType <em>Action Type</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.action.ActionType
+	 * @generated
+	 */
+	public Adapter createActionTypeAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.osbp.xtext.action.ActionTask <em>Action Task</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.action.ActionTask
+	 * @generated
+	 */
+	public Adapter createActionTaskAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.osbp.xtext.action.ActionSelectWorkload <em>Action Select Workload</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.action.ActionSelectWorkload
+	 * @generated
+	 */
+	public Adapter createActionSelectWorkloadAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.osbp.xtext.action.ActionDialog <em>Action Dialog</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.action.ActionDialog
+	 * @generated
+	 */
+	public Adapter createActionDialogAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.osbp.xtext.action.ActionReport <em>Action 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.action.ActionReport
+	 * @generated
+	 */
+	public Adapter createActionReportAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.osbp.xtext.action.ActionChart <em>Action Chart</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.action.ActionChart
+	 * @generated
+	 */
+	public Adapter createActionChartAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.osbp.xtext.action.ActionWorkflow <em>Action Workflow</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.action.ActionWorkflow
+	 * @generated
+	 */
+	public Adapter createActionWorkflowAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.osbp.xtext.action.ActionDatainterchange <em>Action Datainterchange</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.action.ActionDatainterchange
+	 * @generated
+	 */
+	public Adapter createActionDatainterchangeAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.osbp.xtext.action.ActionGeneric <em>Action Generic</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.action.ActionGeneric
+	 * @generated
+	 */
+	public Adapter createActionGenericAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.osbp.xtext.action.ActionParameter <em>Action Parameter</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.action.ActionParameter
+	 * @generated
+	 */
+	public Adapter createActionParameterAdapter() {
+		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;
+	}
+
+} //ActionDSLAdapterFactory
diff --git a/org.eclipse.osbp.xtext.action/emf-gen/org/eclipse/osbp/xtext/action/util/ActionDSLSwitch.java b/org.eclipse.osbp.xtext.action/emf-gen/org/eclipse/osbp/xtext/action/util/ActionDSLSwitch.java
new file mode 100644
index 0000000..0592990
--- /dev/null
+++ b/org.eclipse.osbp.xtext.action/emf-gen/org/eclipse/osbp/xtext/action/util/ActionDSLSwitch.java
@@ -0,0 +1,496 @@
+/**
+ * Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ *  All rights reserved. This program and the accompanying materials
+ *  are made available under the terms of the Eclipse Public License v1.0
+ *  which accompanies this distribution, and is available at
+ *  http://www.eclipse.org/legal/epl-v10.html
+ *  
+ *  Contributors:                                                      
+ *     Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
+ *  
+ *  generated from ActionDSL.xcore
+ * 
+ *  
+ */
+package org.eclipse.osbp.xtext.action.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.action.*;
+
+/**
+ * <!-- 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.action.ActionDSLPackage
+ * @generated
+ */
+public class ActionDSLSwitch<T> extends Switch<T> {
+	/**
+	 * The cached model package
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected static ActionDSLPackage modelPackage;
+
+	/**
+	 * Creates an instance of the switch.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public ActionDSLSwitch() {
+		if (modelPackage == null) {
+			modelPackage = ActionDSLPackage.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 ActionDSLPackage.ACTION_MODEL: {
+				ActionModel actionModel = (ActionModel)theEObject;
+				T result = caseActionModel(actionModel);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case ActionDSLPackage.ACTION_LAZY_RESOLVER: {
+				ActionLazyResolver actionLazyResolver = (ActionLazyResolver)theEObject;
+				T result = caseActionLazyResolver(actionLazyResolver);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case ActionDSLPackage.ACTION_PACKAGE: {
+				ActionPackage actionPackage = (ActionPackage)theEObject;
+				T result = caseActionPackage(actionPackage);
+				if (result == null) result = caseLPackage(actionPackage);
+				if (result == null) result = caseLLazyResolver(actionPackage);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case ActionDSLPackage.ACTION_BASE: {
+				ActionBase actionBase = (ActionBase)theEObject;
+				T result = caseActionBase(actionBase);
+				if (result == null) result = caseActionLazyResolver(actionBase);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case ActionDSLPackage.ACTION_TOOLBAR: {
+				ActionToolbar actionToolbar = (ActionToolbar)theEObject;
+				T result = caseActionToolbar(actionToolbar);
+				if (result == null) result = caseActionBase(actionToolbar);
+				if (result == null) result = caseActionLazyResolver(actionToolbar);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case ActionDSLPackage.ACTION_BUTTON: {
+				ActionButton actionButton = (ActionButton)theEObject;
+				T result = caseActionButton(actionButton);
+				if (result == null) result = caseActionBase(actionButton);
+				if (result == null) result = caseActionLazyResolver(actionButton);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case ActionDSLPackage.ACTION_TYPE: {
+				ActionType actionType = (ActionType)theEObject;
+				T result = caseActionType(actionType);
+				if (result == null) result = caseActionLazyResolver(actionType);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case ActionDSLPackage.ACTION_TASK: {
+				ActionTask actionTask = (ActionTask)theEObject;
+				T result = caseActionTask(actionTask);
+				if (result == null) result = caseActionType(actionTask);
+				if (result == null) result = caseActionLazyResolver(actionTask);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case ActionDSLPackage.ACTION_SELECT_WORKLOAD: {
+				ActionSelectWorkload actionSelectWorkload = (ActionSelectWorkload)theEObject;
+				T result = caseActionSelectWorkload(actionSelectWorkload);
+				if (result == null) result = caseActionType(actionSelectWorkload);
+				if (result == null) result = caseActionLazyResolver(actionSelectWorkload);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case ActionDSLPackage.ACTION_DIALOG: {
+				ActionDialog actionDialog = (ActionDialog)theEObject;
+				T result = caseActionDialog(actionDialog);
+				if (result == null) result = caseActionType(actionDialog);
+				if (result == null) result = caseActionLazyResolver(actionDialog);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case ActionDSLPackage.ACTION_REPORT: {
+				ActionReport actionReport = (ActionReport)theEObject;
+				T result = caseActionReport(actionReport);
+				if (result == null) result = caseActionType(actionReport);
+				if (result == null) result = caseActionLazyResolver(actionReport);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case ActionDSLPackage.ACTION_CHART: {
+				ActionChart actionChart = (ActionChart)theEObject;
+				T result = caseActionChart(actionChart);
+				if (result == null) result = caseActionType(actionChart);
+				if (result == null) result = caseActionLazyResolver(actionChart);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case ActionDSLPackage.ACTION_WORKFLOW: {
+				ActionWorkflow actionWorkflow = (ActionWorkflow)theEObject;
+				T result = caseActionWorkflow(actionWorkflow);
+				if (result == null) result = caseActionType(actionWorkflow);
+				if (result == null) result = caseActionLazyResolver(actionWorkflow);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case ActionDSLPackage.ACTION_DATAINTERCHANGE: {
+				ActionDatainterchange actionDatainterchange = (ActionDatainterchange)theEObject;
+				T result = caseActionDatainterchange(actionDatainterchange);
+				if (result == null) result = caseActionType(actionDatainterchange);
+				if (result == null) result = caseActionLazyResolver(actionDatainterchange);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case ActionDSLPackage.ACTION_GENERIC: {
+				ActionGeneric actionGeneric = (ActionGeneric)theEObject;
+				T result = caseActionGeneric(actionGeneric);
+				if (result == null) result = caseActionType(actionGeneric);
+				if (result == null) result = caseActionLazyResolver(actionGeneric);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case ActionDSLPackage.ACTION_PARAMETER: {
+				ActionParameter actionParameter = (ActionParameter)theEObject;
+				T result = caseActionParameter(actionParameter);
+				if (result == null) result = caseActionBase(actionParameter);
+				if (result == null) result = caseActionLazyResolver(actionParameter);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			default: return defaultCase(theEObject);
+		}
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Action 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>Action Model</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseActionModel(ActionModel object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Action 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>Action Lazy Resolver</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseActionLazyResolver(ActionLazyResolver object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Action 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>Action Package</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseActionPackage(ActionPackage object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Action 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>Action Base</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseActionBase(ActionBase object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Action Toolbar</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>Action Toolbar</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseActionToolbar(ActionToolbar object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Action Button</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>Action Button</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseActionButton(ActionButton object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Action Type</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>Action Type</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseActionType(ActionType object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Action Task</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>Action Task</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseActionTask(ActionTask object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Action Select Workload</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>Action Select Workload</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseActionSelectWorkload(ActionSelectWorkload object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Action Dialog</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>Action Dialog</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseActionDialog(ActionDialog object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Action 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>Action Report</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseActionReport(ActionReport object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Action Chart</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>Action Chart</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseActionChart(ActionChart object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Action Workflow</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>Action Workflow</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseActionWorkflow(ActionWorkflow object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Action Datainterchange</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>Action Datainterchange</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseActionDatainterchange(ActionDatainterchange object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Action Generic</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>Action Generic</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseActionGeneric(ActionGeneric object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Action Parameter</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>Action Parameter</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseActionParameter(ActionParameter 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;
+	}
+
+} //ActionDSLSwitch
diff --git a/org.eclipse.osbp.xtext.action/epl-v10.html b/org.eclipse.osbp.xtext.action/epl-v10.html
new file mode 100644
index 0000000..b398acc
--- /dev/null
+++ b/org.eclipse.osbp.xtext.action/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.action/license.html b/org.eclipse.osbp.xtext.action/license.html
new file mode 100644
index 0000000..6e579a5
--- /dev/null
+++ b/org.eclipse.osbp.xtext.action/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.action/model/ActionDSL.xcore b/org.eclipse.osbp.xtext.action/model/ActionDSL.xcore
new file mode 100644
index 0000000..1a9f8ab
--- /dev/null
+++ b/org.eclipse.osbp.xtext.action/model/ActionDSL.xcore
@@ -0,0 +1,155 @@
+@GenModel(fileExtensions="action")
+@GenModel(modelName="ActionDSL")
+@GenModel(prefix="ActionDSL")
+@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
+ 
+ Contributors:                                                      
+    Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
+ 
+ generated from ActionDSL.xcore
+
+ ")
+@GenModel(updateClasspath="false")
+@Ecore(nsURI="http://osbp.eclipse.org/xtext/action/ActionDSL")
+@Ecore(nsPrefix="actiondsl")
+@Ecore(rootPackage="actiondsl")
+package org.eclipse.osbp.xtext.action
+
+import org.eclipse.emf.ecore.EObject
+import org.eclipse.emf.ecore.InternalEObject
+import org.eclipse.osbp.dsl.xtext.lazyresolver.api.EcoreUtil3
+import org.eclipse.osbp.dsl.semantic.common.types.LPackage
+import org.eclipse.osbp.xtext.datainterchange.DataInterchange
+import org.eclipse.osbp.xtext.functionlibrarydsl.FunctionLibraryFunction
+import org.eclipse.osbp.xtext.functionlibrarydsl.FunctionLibraryGroup
+import org.eclipse.osbp.xtext.functionlibrarydsl.FunctionLibraryParameter
+import org.eclipse.osbp.xtext.messagedsl.MessageItem
+
+class ActionModel{
+	contains ActionPackage[] packages
+}
+
+type InternalEObject wraps InternalEObject
+
+class ActionLazyResolver {
+	op EObject eResolveProxy(InternalEObject proxy) {
+		return EcoreUtil3.resolve(proxy, this.eResource().resourceSet);
+	}
+}
+
+class ActionPackage extends LPackage {
+	contains ActionToolbar[] toolbars
+}
+
+class ActionBase extends ActionLazyResolver{
+	String name
+}
+
+class ActionToolbar extends ActionBase{
+	boolean description
+	String descriptionValue
+	contains ActionButton[] actions
+}
+
+class ActionButton extends ActionBase{
+	boolean description
+	String descriptionValue
+	String iconURI
+	refers FunctionLibraryGroup group
+	refers FunctionLibraryFunction canexecute
+	refers FunctionLibraryFunction executeparameter
+	contains ActionType actionType
+	refers MessageItem message
+}
+
+interface ActionType extends ActionLazyResolver{
+}
+
+class ActionTask extends ActionType {
+	TaskActionEnum action
+}
+
+class ActionSelectWorkload extends ActionType {
+	SelectWorkloadActionEnum action
+}
+
+class ActionDialog extends ActionType {
+	DialogActionEnum action
+}
+
+class ActionReport extends ActionType {
+	ReportActionEnum action
+}
+
+class ActionChart extends ActionType {
+	ChartActionEnum action
+}
+
+class ActionWorkflow extends ActionType {
+	WorkflowActionEnum action
+}
+
+class ActionDatainterchange extends ActionType {
+	DatainterchangeActionEnum action
+	refers DataInterchange dataRef
+}
+
+class ActionGeneric extends ActionType {
+	String action
+}
+
+class ActionParameter extends ActionBase{
+	refers FunctionLibraryParameter parameter
+}
+
+enum TaskActionEnum{
+	TASK_ACTION_CLAIM as 'Claim' = 0
+	TASK_ACTION_START as 'Start' = 1
+	TASK_ACTION_STOP as 'Stop' = 2
+	TASK_ACTION_RELEASE as 'Release' = 3
+	TASK_ACTION_SUSPEND as 'Suspend' = 4
+	TASK_ACTION_RESUME as 'Resume' = 5
+	TASK_ACTION_SKIP as 'Skip' = 6
+	TASK_ACTION_COMPLETE as 'Complete' = 7
+	TASK_ACTION_DELEGATE as 'Delegate' = 8
+	TASK_ACTION_FORWARD as 'Forward' = 9
+	TASK_ACTION_FAIL as 'Fail' = 10
+	TASK_ACTION_REGISTER as 'Register' = 11
+	TASK_ACTION_REMOVE as 'Remove' = 12
+	TASK_ACTION_ACTIVATE as 'Activate' = 13
+	TASK_ACTION_EXIT as 'Exit' = 14
+}
+
+enum SelectWorkloadActionEnum{
+	WORKLOAD_SELECT_ACTION_REMOVE_ALL as 'RemoveAll' = 0
+	WORKLOAD_SELECT_ACTION_ADD_ALL as 'AddAll' = 1
+}
+
+enum DialogActionEnum{
+	DIALOG_ACTION_NEW as 'New' = 0
+	DIALOG_ACTION_SAVE as 'Save' = 1
+	DIALOG_ACTION_DELETE as 'Delete' = 2
+	DIALOG_ACTION_CANCEL as 'Cancel' = 3
+}
+
+enum ReportActionEnum{
+	REPORT_ACTION_PRINT_ON_SERVER_PDF as 'PrintOnServer' = 0
+	REPORT_ACTION_DOWNLOAD_PDF as 'ReportDownload' = 1
+}
+
+enum ChartActionEnum{
+	CHART_ACTION_DOWNLOAD as 'ChartDownload'
+}
+
+enum WorkflowActionEnum{
+	WORKFLOW_ACTION_START as 'Start'
+}
+
+enum DatainterchangeActionEnum {
+	DATAINTERCHANGE_ACTION_IMPORT as 'Import'
+	DATAINTERCHANGE_ACTION_EXPORT as 'Export'
+}	 
diff --git a/org.eclipse.osbp.xtext.action/plugin.properties b/org.eclipse.osbp.xtext.action/plugin.properties
new file mode 100644
index 0000000..1e99a89
--- /dev/null
+++ b/org.eclipse.osbp.xtext.action/plugin.properties
@@ -0,0 +1,3 @@
+
+pluginName = OSBP ActionDSL Model
+providerName = Loetz GmbH&Co.KG, 69115 Heidelberg, Germany
diff --git a/org.eclipse.osbp.xtext.action/plugin.xml b/org.eclipse.osbp.xtext.action/plugin.xml
new file mode 100644
index 0000000..edb503b
--- /dev/null
+++ b/org.eclipse.osbp.xtext.action/plugin.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.0"?>
+
+
+<plugin>
+
+   <extension point="org.eclipse.emf.ecore.generated_package">
+      <!-- @generated action -->
+      <package
+            uri="http://osbp.eclipse.org/xtext/action/ActionDSL"
+            class="org.eclipse.osbp.xtext.action.ActionDSLPackage"
+            genModel="model/ActionDSL.xcore"/>
+   </extension>
+
+</plugin>
diff --git a/org.eclipse.osbp.xtext.action/pom.xml b/org.eclipse.osbp.xtext.action/pom.xml
new file mode 100644
index 0000000..a5b6409
--- /dev/null
+++ b/org.eclipse.osbp.xtext.action/pom.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 -->
+<!--#======================================================================= -->
+
+<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.action</groupId>
+        <artifactId>org.eclipse.osbp.xtext.action.aggregator</artifactId>
+        <version>0.9.0-SNAPSHOT</version>
+        <relativePath>..</relativePath>
+    </parent>
+    <artifactId>org.eclipse.osbp.xtext.action</artifactId>
+    <build>
+        <sourceDirectory>emf-gen</sourceDirectory>
+        <resources>
+            <resource>
+                <directory>src</directory>
+                <excludes>
+                    <exclude>**/*.java</exclude>
+                </excludes>
+            </resource>
+            <resource>
+                <directory>src-gen</directory>
+                <excludes>
+                    <exclude>**/*.java</exclude>
+                </excludes>
+            </resource>
+            <resource>
+                <directory>xtend-gen</directory>
+                <excludes>
+                    <exclude>**/*.java</exclude>
+                </excludes>
+            </resource>
+        </resources>
+        <plugins>
+            <plugin>
+                <artifactId>maven-compiler-plugin</artifactId>
+                <version>3.1</version>
+                <configuration>
+                    <source>1.8</source>
+                    <target>1.8</target>
+                </configuration>
+            </plugin>
+        </plugins>
+    </build>
+    <packaging>eclipse-plugin</packaging>
+</project>
diff --git a/org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/AbstractActionDSLRuntimeModule.java b/org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/AbstractActionDSLRuntimeModule.java
new file mode 100644
index 0000000..a0f0cc3
--- /dev/null
+++ b/org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/AbstractActionDSLRuntimeModule.java
@@ -0,0 +1,352 @@
+/**
+ *                                                                            
+ *  Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) 
+ *                                                                            
+ *  All rights reserved. This program and the accompanying materials           
+ *  are made available under the 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.action;
+
+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.action.ActionDSLRuntimeModule}
+ */
+ @SuppressWarnings("all")
+public abstract class AbstractActionDSLRuntimeModule extends DefaultRuntimeModule {
+
+	protected Properties properties = null;
+
+	@Override
+	public void configure(Binder binder) {
+		properties = tryBindProperties(binder, "org/eclipse/osbp/xtext/action/ActionDSL.properties");
+		super.configure(binder);
+	}
+	
+	public void configureLanguageName(Binder binder) {
+		binder.bind(String.class).annotatedWith(Names.named(Constants.LANGUAGE_NAME)).toInstance("org.eclipse.osbp.xtext.action.ActionDSL");
+	}
+	
+	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("action");
+	}
+	
+	// contributed by org.eclipse.xtext.generator.serializer.SerializerFragment
+	public Class<? extends org.eclipse.xtext.serializer.sequencer.ISemanticSequencer> bindISemanticSequencer() {
+		return org.eclipse.osbp.xtext.action.serializer.ActionDSLSemanticSequencer.class;
+	}
+
+	// contributed by org.eclipse.xtext.generator.serializer.SerializerFragment
+	public Class<? extends org.eclipse.xtext.serializer.sequencer.ISyntacticSequencer> bindISyntacticSequencer() {
+		return org.eclipse.osbp.xtext.action.serializer.ActionDSLSyntacticSequencer.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.action.parser.antlr.ActionDSLParser.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.action.parser.antlr.ActionDSLAntlrTokenFileProvider.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.action.parser.antlr.internal.InternalActionDSLLexer.class;
+	}
+
+	// contributed by org.eclipse.xtext.generator.parser.antlr.XtextAntlrGeneratorFragment
+	public com.google.inject.Provider<org.eclipse.osbp.xtext.action.parser.antlr.internal.InternalActionDSLLexer> provideInternalActionDSLLexer() {
+		return org.eclipse.xtext.parser.antlr.LexerProvider.create(org.eclipse.osbp.xtext.action.parser.antlr.internal.InternalActionDSLLexer.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.action.parser.antlr.internal.InternalActionDSLLexer.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.action.validation.ActionDSLValidator> bindActionDSLValidator() {
+		return org.eclipse.osbp.xtext.action.validation.ActionDSLValidator.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.action.formatting.ActionDSLFormatter.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.action.jvmmodel.ActionDSLJvmModelInferrer.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.action.services.ActionDSLGrammarAccess.class;
+	}
+
+}
diff --git a/org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/ActionDSLStandaloneSetupGenerated.java b/org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/ActionDSLStandaloneSetupGenerated.java
new file mode 100644
index 0000000..354f9ba
--- /dev/null
+++ b/org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/ActionDSLStandaloneSetupGenerated.java
@@ -0,0 +1,52 @@
+/**
+ *                                                                            
+ *  Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) 
+ *                                                                            
+ *  All rights reserved. This program and the accompanying materials           
+ *  are made available under the 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.action;
+
+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 ActionDSLStandaloneSetupGenerated 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.action.ActionDSLRuntimeModule());
+	}
+	
+	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("action", resourceFactory);
+		org.eclipse.xtext.resource.IResourceServiceProvider.Registry.INSTANCE.getExtensionToFactoryMap().put("action", serviceProvider);
+		
+
+
+
+	}
+}
diff --git a/org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/ActionDSLAntlrTokenFileProvider.java b/org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/ActionDSLAntlrTokenFileProvider.java
new file mode 100644
index 0000000..6438a35
--- /dev/null
+++ b/org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/ActionDSLAntlrTokenFileProvider.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.action.parser.antlr;
+
+import java.io.InputStream;
+import org.eclipse.xtext.parser.antlr.IAntlrTokenFileProvider;
+
+public class ActionDSLAntlrTokenFileProvider implements IAntlrTokenFileProvider {
+	
+	public InputStream getAntlrTokenFile() {
+		ClassLoader classLoader = getClass().getClassLoader();
+    	return classLoader.getResourceAsStream("org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.tokens");
+	}
+}
diff --git a/org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/ActionDSLParser.java b/org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/ActionDSLParser.java
new file mode 100644
index 0000000..fa7d8b3
--- /dev/null
+++ b/org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/ActionDSLParser.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.action.parser.antlr;
+
+import com.google.inject.Inject;
+
+import org.eclipse.xtext.parser.antlr.XtextTokenStream;
+import org.eclipse.osbp.xtext.action.services.ActionDSLGrammarAccess;
+
+public class ActionDSLParser extends org.eclipse.xtext.parser.antlr.AbstractAntlrParser {
+	
+	@Inject
+	private ActionDSLGrammarAccess grammarAccess;
+	
+	@Override
+	protected void setInitialHiddenTokens(XtextTokenStream tokenStream) {
+		tokenStream.setInitialHiddenTokens("RULE_WS", "RULE_ML_COMMENT", "RULE_SL_COMMENT");
+	}
+	
+	@Override
+	protected org.eclipse.osbp.xtext.action.parser.antlr.internal.InternalActionDSLParser createParser(XtextTokenStream stream) {
+		return new org.eclipse.osbp.xtext.action.parser.antlr.internal.InternalActionDSLParser(stream, getGrammarAccess());
+	}
+	
+	@Override 
+	protected String getDefaultRuleName() {
+		return "ActionModel";
+	}
+	
+	public ActionDSLGrammarAccess getGrammarAccess() {
+		return this.grammarAccess;
+	}
+	
+	public void setGrammarAccess(ActionDSLGrammarAccess grammarAccess) {
+		this.grammarAccess = grammarAccess;
+	}
+	
+}
diff --git a/org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g b/org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g
new file mode 100644
index 0000000..606e86b
--- /dev/null
+++ b/org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g
@@ -0,0 +1,7782 @@
+/**
+ *                                                                            
+ *  Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) 
+ *                                                                            
+ *  All rights reserved. This program and the accompanying materials           
+ *  are made available under the 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 InternalActionDSL;
+
+options {
+	superClass=AbstractInternalAntlrParser;
+	
+}
+
+@lexer::header {
+package org.eclipse.osbp.xtext.action.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.action.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.action.services.ActionDSLGrammarAccess;
+
+}
+
+@parser::members {
+
+ 	private ActionDSLGrammarAccess grammarAccess;
+ 	
+    public InternalActionDSLParser(TokenStream input, ActionDSLGrammarAccess grammarAccess) {
+        this(input);
+        this.grammarAccess = grammarAccess;
+        registerRules(grammarAccess.getGrammar());
+    }
+    
+    @Override
+    protected String getFirstRuleName() {
+    	return "ActionModel";	
+   	}
+   	
+   	@Override
+   	protected ActionDSLGrammarAccess getGrammarAccess() {
+   		return grammarAccess;
+   	}
+}
+
+@rulecatch { 
+    catch (RecognitionException re) { 
+        recover(input,re); 
+        appendSkippedTokens();
+    } 
+}
+
+
+
+
+// Entry rule entryRuleActionModel
+entryRuleActionModel returns [EObject current=null] 
+	:
+	{ newCompositeNode(grammarAccess.getActionModelRule()); }
+	 iv_ruleActionModel=ruleActionModel 
+	 { $current=$iv_ruleActionModel.current; } 
+	 EOF 
+;
+
+// Rule ActionModel
+ruleActionModel returns [EObject current=null] 
+    @init { enterRule(); 
+    }
+    @after { leaveRule(); }:
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getActionModelAccess().getPackagesActionPackageParserRuleCall_0()); 
+	    }
+		lv_packages_0_0=ruleActionPackage		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getActionModelRule());
+	        }
+       		add(
+       			$current, 
+       			"packages",
+        		lv_packages_0_0, 
+        		"ActionPackage");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)*
+;
+
+
+
+
+
+// Entry rule entryRuleActionPackage
+entryRuleActionPackage returns [EObject current=null] 
+	:
+	{ newCompositeNode(grammarAccess.getActionPackageRule()); }
+	 iv_ruleActionPackage=ruleActionPackage 
+	 { $current=$iv_ruleActionPackage.current; } 
+	 EOF 
+;
+
+// Rule ActionPackage
+ruleActionPackage returns [EObject current=null] 
+    @init { enterRule(); 
+    }
+    @after { leaveRule(); }:
+((
+    {
+        $current = forceCreateModelElement(
+            grammarAccess.getActionPackageAccess().getActionPackageAction_0(),
+            $current);
+    }
+)	otherlv_1='package' 
+    {
+    	newLeafNode(otherlv_1, grammarAccess.getActionPackageAccess().getPackageKeyword_1());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getActionPackageAccess().getNameQualifiedNameParserRuleCall_2_0()); 
+	    }
+		lv_name_2_0=ruleQualifiedName		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getActionPackageRule());
+	        }
+       		set(
+       			$current, 
+       			"name",
+        		lv_name_2_0, 
+        		"QualifiedName");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)(	otherlv_3='{' 
+    {
+    	newLeafNode(otherlv_3, grammarAccess.getActionPackageAccess().getLeftCurlyBracketKeyword_3_0());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getActionPackageAccess().getImportsActionImportParserRuleCall_3_1_0()); 
+	    }
+		lv_imports_4_0=ruleActionImport		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getActionPackageRule());
+	        }
+       		add(
+       			$current, 
+       			"imports",
+        		lv_imports_4_0, 
+        		"ActionImport");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)*(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getActionPackageAccess().getToolbarsActionToolbarParserRuleCall_3_2_0()); 
+	    }
+		lv_toolbars_5_0=ruleActionToolbar		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getActionPackageRule());
+	        }
+       		add(
+       			$current, 
+       			"toolbars",
+        		lv_toolbars_5_0, 
+        		"ActionToolbar");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)*	otherlv_6='}' 
+    {
+    	newLeafNode(otherlv_6, grammarAccess.getActionPackageAccess().getRightCurlyBracketKeyword_3_3());
+    }
+)?)
+;
+
+
+
+
+
+// Entry rule entryRuleActionToolbar
+entryRuleActionToolbar returns [EObject current=null] 
+	:
+	{ newCompositeNode(grammarAccess.getActionToolbarRule()); }
+	 iv_ruleActionToolbar=ruleActionToolbar 
+	 { $current=$iv_ruleActionToolbar.current; } 
+	 EOF 
+;
+
+// Rule ActionToolbar
+ruleActionToolbar returns [EObject current=null] 
+    @init { enterRule(); 
+    }
+    @after { leaveRule(); }:
+((
+    {
+        $current = forceCreateModelElement(
+            grammarAccess.getActionToolbarAccess().getActionToolbarAction_0(),
+            $current);
+    }
+)	otherlv_1='toolbar' 
+    {
+    	newLeafNode(otherlv_1, grammarAccess.getActionToolbarAccess().getToolbarKeyword_1());
+    }
+(
+(
+		lv_name_2_0=RULE_ID
+		{
+			newLeafNode(lv_name_2_0, grammarAccess.getActionToolbarAccess().getNameIDTerminalRuleCall_2_0()); 
+		}
+		{
+	        if ($current==null) {
+	            $current = createModelElement(grammarAccess.getActionToolbarRule());
+	        }
+       		setWithLastConsumed(
+       			$current, 
+       			"name",
+        		lv_name_2_0, 
+        		"ID");
+	    }
+
+)
+)((
+(
+		lv_description_3_0=	'described by' 
+    {
+        newLeafNode(lv_description_3_0, grammarAccess.getActionToolbarAccess().getDescriptionDescribedByKeyword_3_0_0());
+    }
+ 
+	    {
+	        if ($current==null) {
+	            $current = createModelElement(grammarAccess.getActionToolbarRule());
+	        }
+       		setWithLastConsumed($current, "description", true, "described by");
+	    }
+
+)
+)(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getActionToolbarAccess().getDescriptionValueTRANSLATABLESTRINGParserRuleCall_3_1_0()); 
+	    }
+		lv_descriptionValue_4_0=ruleTRANSLATABLESTRING		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getActionToolbarRule());
+	        }
+       		set(
+       			$current, 
+       			"descriptionValue",
+        		lv_descriptionValue_4_0, 
+        		"TRANSLATABLESTRING");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+))?(	otherlv_5='items' 
+    {
+    	newLeafNode(otherlv_5, grammarAccess.getActionToolbarAccess().getItemsKeyword_4_0());
+    }
+	otherlv_6='{' 
+    {
+    	newLeafNode(otherlv_6, grammarAccess.getActionToolbarAccess().getLeftCurlyBracketKeyword_4_1());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getActionToolbarAccess().getActionsActionButtonParserRuleCall_4_2_0()); 
+	    }
+		lv_actions_7_0=ruleActionButton		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getActionToolbarRule());
+	        }
+       		add(
+       			$current, 
+       			"actions",
+        		lv_actions_7_0, 
+        		"ActionButton");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)*	otherlv_8='}' 
+    {
+    	newLeafNode(otherlv_8, grammarAccess.getActionToolbarAccess().getRightCurlyBracketKeyword_4_3());
+    }
+)?)
+;
+
+
+
+
+
+// Entry rule entryRuleActionButton
+entryRuleActionButton returns [EObject current=null] 
+	:
+	{ newCompositeNode(grammarAccess.getActionButtonRule()); }
+	 iv_ruleActionButton=ruleActionButton 
+	 { $current=$iv_ruleActionButton.current; } 
+	 EOF 
+;
+
+// Rule ActionButton
+ruleActionButton returns [EObject current=null] 
+    @init { enterRule(); 
+    }
+    @after { leaveRule(); }:
+((
+    {
+        $current = forceCreateModelElement(
+            grammarAccess.getActionButtonAccess().getActionButtonAction_0(),
+            $current);
+    }
+)	otherlv_1='item' 
+    {
+    	newLeafNode(otherlv_1, grammarAccess.getActionButtonAccess().getItemKeyword_1());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getActionButtonAccess().getNameTRANSLATABLEIDParserRuleCall_2_0()); 
+	    }
+		lv_name_2_0=ruleTRANSLATABLEID		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getActionButtonRule());
+	        }
+       		set(
+       			$current, 
+       			"name",
+        		lv_name_2_0, 
+        		"TRANSLATABLEID");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)((
+(
+		lv_description_3_0=	'described by' 
+    {
+        newLeafNode(lv_description_3_0, grammarAccess.getActionButtonAccess().getDescriptionDescribedByKeyword_3_0_0());
+    }
+ 
+	    {
+	        if ($current==null) {
+	            $current = createModelElement(grammarAccess.getActionButtonRule());
+	        }
+       		setWithLastConsumed($current, "description", true, "described by");
+	    }
+
+)
+)(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getActionButtonAccess().getDescriptionValueTRANSLATABLESTRINGParserRuleCall_3_1_0()); 
+	    }
+		lv_descriptionValue_4_0=ruleTRANSLATABLESTRING		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getActionButtonRule());
+	        }
+       		set(
+       			$current, 
+       			"descriptionValue",
+        		lv_descriptionValue_4_0, 
+        		"TRANSLATABLESTRING");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+))?(	otherlv_5='icon' 
+    {
+    	newLeafNode(otherlv_5, grammarAccess.getActionButtonAccess().getIconKeyword_4_0());
+    }
+(
+(
+		lv_iconURI_6_0=RULE_STRING
+		{
+			newLeafNode(lv_iconURI_6_0, grammarAccess.getActionButtonAccess().getIconURISTRINGTerminalRuleCall_4_1_0()); 
+		}
+		{
+	        if ($current==null) {
+	            $current = createModelElement(grammarAccess.getActionButtonRule());
+	        }
+       		setWithLastConsumed(
+       			$current, 
+       			"iconURI",
+        		lv_iconURI_6_0, 
+        		"STRING");
+	    }
+
+)
+))?(
+
+(
+	{ 
+	  getUnorderedGroupHelper().enter(grammarAccess.getActionButtonAccess().getUnorderedGroup_5());
+	}
+	(
+		(
+
+			( 
+				{getUnorderedGroupHelper().canSelect(grammarAccess.getActionButtonAccess().getUnorderedGroup_5(), 0)}?=>(
+					{ 
+	 				  getUnorderedGroupHelper().select(grammarAccess.getActionButtonAccess().getUnorderedGroup_5(), 0);
+	 				}
+					({true}?=>(	otherlv_8='group' 
+    {
+    	newLeafNode(otherlv_8, grammarAccess.getActionButtonAccess().getGroupKeyword_5_0_0());
+    }
+(
+(
+		{
+			if ($current==null) {
+	            $current = createModelElement(grammarAccess.getActionButtonRule());
+	        }
+        }
+	otherlv_9=RULE_ID
+	{
+		newLeafNode(otherlv_9, grammarAccess.getActionButtonAccess().getGroupFunctionLibraryGroupCrossReference_5_0_1_0()); 
+	}
+
+)
+)(	otherlv_10='canExecute' 
+    {
+    	newLeafNode(otherlv_10, grammarAccess.getActionButtonAccess().getCanExecuteKeyword_5_0_2_0());
+    }
+(
+(
+		{
+			if ($current==null) {
+	            $current = createModelElement(grammarAccess.getActionButtonRule());
+	        }
+        }
+	otherlv_11=RULE_ID
+	{
+		newLeafNode(otherlv_11, grammarAccess.getActionButtonAccess().getCanexecuteFunctionLibraryFunctionCrossReference_5_0_2_1_0()); 
+	}
+
+)
+))?))
+					{ 
+	 				  getUnorderedGroupHelper().returnFromSelection(grammarAccess.getActionButtonAccess().getUnorderedGroup_5());
+	 				}
+ 				)
+			)  |
+
+			( 
+				{getUnorderedGroupHelper().canSelect(grammarAccess.getActionButtonAccess().getUnorderedGroup_5(), 1)}?=>(
+					{ 
+	 				  getUnorderedGroupHelper().select(grammarAccess.getActionButtonAccess().getUnorderedGroup_5(), 1);
+	 				}
+					({true}?=>(	otherlv_12='executeParameter' 
+    {
+    	newLeafNode(otherlv_12, grammarAccess.getActionButtonAccess().getExecuteParameterKeyword_5_1_0());
+    }
+(
+(
+		{
+			if ($current==null) {
+	            $current = createModelElement(grammarAccess.getActionButtonRule());
+	        }
+        }
+	otherlv_13=RULE_ID
+	{
+		newLeafNode(otherlv_13, grammarAccess.getActionButtonAccess().getExecuteparameterFunctionLibraryFunctionCrossReference_5_1_1_0()); 
+	}
+
+)
+)))
+					{ 
+	 				  getUnorderedGroupHelper().returnFromSelection(grammarAccess.getActionButtonAccess().getUnorderedGroup_5());
+	 				}
+ 				)
+			)  
+
+		)+
+	  	{getUnorderedGroupHelper().canLeave(grammarAccess.getActionButtonAccess().getUnorderedGroup_5())}?	
+	)
+)
+	{ 
+	  getUnorderedGroupHelper().leave(grammarAccess.getActionButtonAccess().getUnorderedGroup_5());
+	}
+
+)?(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getActionButtonAccess().getActionTypeActionTypeParserRuleCall_6_0()); 
+	    }
+		lv_actionType_14_0=ruleActionType		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getActionButtonRule());
+	        }
+       		set(
+       			$current, 
+       			"actionType",
+        		lv_actionType_14_0, 
+        		"ActionType");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)(	otherlv_15='message' 
+    {
+    	newLeafNode(otherlv_15, grammarAccess.getActionButtonAccess().getMessageKeyword_7_0());
+    }
+(
+(
+		{
+			if ($current==null) {
+	            $current = createModelElement(grammarAccess.getActionButtonRule());
+	        }
+        }
+		{ 
+	        newCompositeNode(grammarAccess.getActionButtonAccess().getMessageMessageItemCrossReference_7_1_0()); 
+	    }
+		ruleQualifiedName		{ 
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+))?)
+;
+
+
+
+
+
+// Entry rule entryRuleActionType
+entryRuleActionType returns [EObject current=null] 
+	:
+	{ newCompositeNode(grammarAccess.getActionTypeRule()); }
+	 iv_ruleActionType=ruleActionType 
+	 { $current=$iv_ruleActionType.current; } 
+	 EOF 
+;
+
+// Rule ActionType
+ruleActionType returns [EObject current=null] 
+    @init { enterRule(); 
+    }
+    @after { leaveRule(); }:
+(
+    { 
+        newCompositeNode(grammarAccess.getActionTypeAccess().getActionTaskParserRuleCall_0()); 
+    }
+    this_ActionTask_0=ruleActionTask
+    { 
+        $current = $this_ActionTask_0.current; 
+        afterParserOrEnumRuleCall();
+    }
+
+    |
+    { 
+        newCompositeNode(grammarAccess.getActionTypeAccess().getActionSelectWorkloadParserRuleCall_1()); 
+    }
+    this_ActionSelectWorkload_1=ruleActionSelectWorkload
+    { 
+        $current = $this_ActionSelectWorkload_1.current; 
+        afterParserOrEnumRuleCall();
+    }
+
+    |
+    { 
+        newCompositeNode(grammarAccess.getActionTypeAccess().getActionDialogParserRuleCall_2()); 
+    }
+    this_ActionDialog_2=ruleActionDialog
+    { 
+        $current = $this_ActionDialog_2.current; 
+        afterParserOrEnumRuleCall();
+    }
+
+    |
+    { 
+        newCompositeNode(grammarAccess.getActionTypeAccess().getActionReportParserRuleCall_3()); 
+    }
+    this_ActionReport_3=ruleActionReport
+    { 
+        $current = $this_ActionReport_3.current; 
+        afterParserOrEnumRuleCall();
+    }
+
+    |
+    { 
+        newCompositeNode(grammarAccess.getActionTypeAccess().getActionChartParserRuleCall_4()); 
+    }
+    this_ActionChart_4=ruleActionChart
+    { 
+        $current = $this_ActionChart_4.current; 
+        afterParserOrEnumRuleCall();
+    }
+
+    |
+    { 
+        newCompositeNode(grammarAccess.getActionTypeAccess().getActionWorkflowParserRuleCall_5()); 
+    }
+    this_ActionWorkflow_5=ruleActionWorkflow
+    { 
+        $current = $this_ActionWorkflow_5.current; 
+        afterParserOrEnumRuleCall();
+    }
+
+    |
+    { 
+        newCompositeNode(grammarAccess.getActionTypeAccess().getActionGenericParserRuleCall_6()); 
+    }
+    this_ActionGeneric_6=ruleActionGeneric
+    { 
+        $current = $this_ActionGeneric_6.current; 
+        afterParserOrEnumRuleCall();
+    }
+
+    |
+    { 
+        newCompositeNode(grammarAccess.getActionTypeAccess().getActionDatainterchangeParserRuleCall_7()); 
+    }
+    this_ActionDatainterchange_7=ruleActionDatainterchange
+    { 
+        $current = $this_ActionDatainterchange_7.current; 
+        afterParserOrEnumRuleCall();
+    }
+)
+;
+
+
+
+
+
+// Entry rule entryRuleActionTask
+entryRuleActionTask returns [EObject current=null] 
+	:
+	{ newCompositeNode(grammarAccess.getActionTaskRule()); }
+	 iv_ruleActionTask=ruleActionTask 
+	 { $current=$iv_ruleActionTask.current; } 
+	 EOF 
+;
+
+// Rule ActionTask
+ruleActionTask returns [EObject current=null] 
+    @init { enterRule(); 
+    }
+    @after { leaveRule(); }:
+(	otherlv_0='taskAction' 
+    {
+    	newLeafNode(otherlv_0, grammarAccess.getActionTaskAccess().getTaskActionKeyword_0());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getActionTaskAccess().getActionTaskActionEnumEnumRuleCall_1_0()); 
+	    }
+		lv_action_1_0=ruleTaskActionEnum		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getActionTaskRule());
+	        }
+       		set(
+       			$current, 
+       			"action",
+        		lv_action_1_0, 
+        		"TaskActionEnum");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+))
+;
+
+
+
+
+
+// Entry rule entryRuleActionSelectWorkload
+entryRuleActionSelectWorkload returns [EObject current=null] 
+	:
+	{ newCompositeNode(grammarAccess.getActionSelectWorkloadRule()); }
+	 iv_ruleActionSelectWorkload=ruleActionSelectWorkload 
+	 { $current=$iv_ruleActionSelectWorkload.current; } 
+	 EOF 
+;
+
+// Rule ActionSelectWorkload
+ruleActionSelectWorkload returns [EObject current=null] 
+    @init { enterRule(); 
+    }
+    @after { leaveRule(); }:
+(	otherlv_0='selectWorkloadAction' 
+    {
+    	newLeafNode(otherlv_0, grammarAccess.getActionSelectWorkloadAccess().getSelectWorkloadActionKeyword_0());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getActionSelectWorkloadAccess().getActionSelectWorkloadActionEnumEnumRuleCall_1_0()); 
+	    }
+		lv_action_1_0=ruleSelectWorkloadActionEnum		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getActionSelectWorkloadRule());
+	        }
+       		set(
+       			$current, 
+       			"action",
+        		lv_action_1_0, 
+        		"SelectWorkloadActionEnum");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+))
+;
+
+
+
+
+
+// Entry rule entryRuleActionDialog
+entryRuleActionDialog returns [EObject current=null] 
+	:
+	{ newCompositeNode(grammarAccess.getActionDialogRule()); }
+	 iv_ruleActionDialog=ruleActionDialog 
+	 { $current=$iv_ruleActionDialog.current; } 
+	 EOF 
+;
+
+// Rule ActionDialog
+ruleActionDialog returns [EObject current=null] 
+    @init { enterRule(); 
+    }
+    @after { leaveRule(); }:
+(	otherlv_0='dialogAction' 
+    {
+    	newLeafNode(otherlv_0, grammarAccess.getActionDialogAccess().getDialogActionKeyword_0());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getActionDialogAccess().getActionDialogActionEnumEnumRuleCall_1_0()); 
+	    }
+		lv_action_1_0=ruleDialogActionEnum		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getActionDialogRule());
+	        }
+       		set(
+       			$current, 
+       			"action",
+        		lv_action_1_0, 
+        		"DialogActionEnum");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+))
+;
+
+
+
+
+
+// Entry rule entryRuleActionReport
+entryRuleActionReport returns [EObject current=null] 
+	:
+	{ newCompositeNode(grammarAccess.getActionReportRule()); }
+	 iv_ruleActionReport=ruleActionReport 
+	 { $current=$iv_ruleActionReport.current; } 
+	 EOF 
+;
+
+// Rule ActionReport
+ruleActionReport returns [EObject current=null] 
+    @init { enterRule(); 
+    }
+    @after { leaveRule(); }:
+(	otherlv_0='reportAction' 
+    {
+    	newLeafNode(otherlv_0, grammarAccess.getActionReportAccess().getReportActionKeyword_0());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getActionReportAccess().getActionReportActionEnumEnumRuleCall_1_0()); 
+	    }
+		lv_action_1_0=ruleReportActionEnum		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getActionReportRule());
+	        }
+       		set(
+       			$current, 
+       			"action",
+        		lv_action_1_0, 
+        		"ReportActionEnum");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+))
+;
+
+
+
+
+
+// Entry rule entryRuleActionChart
+entryRuleActionChart returns [EObject current=null] 
+	:
+	{ newCompositeNode(grammarAccess.getActionChartRule()); }
+	 iv_ruleActionChart=ruleActionChart 
+	 { $current=$iv_ruleActionChart.current; } 
+	 EOF 
+;
+
+// Rule ActionChart
+ruleActionChart returns [EObject current=null] 
+    @init { enterRule(); 
+    }
+    @after { leaveRule(); }:
+(	otherlv_0='chartAction' 
+    {
+    	newLeafNode(otherlv_0, grammarAccess.getActionChartAccess().getChartActionKeyword_0());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getActionChartAccess().getActionChartActionEnumEnumRuleCall_1_0()); 
+	    }
+		lv_action_1_0=ruleChartActionEnum		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getActionChartRule());
+	        }
+       		set(
+       			$current, 
+       			"action",
+        		lv_action_1_0, 
+        		"ChartActionEnum");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+))
+;
+
+
+
+
+
+// Entry rule entryRuleActionWorkflow
+entryRuleActionWorkflow returns [EObject current=null] 
+	:
+	{ newCompositeNode(grammarAccess.getActionWorkflowRule()); }
+	 iv_ruleActionWorkflow=ruleActionWorkflow 
+	 { $current=$iv_ruleActionWorkflow.current; } 
+	 EOF 
+;
+
+// Rule ActionWorkflow
+ruleActionWorkflow returns [EObject current=null] 
+    @init { enterRule(); 
+    }
+    @after { leaveRule(); }:
+(	otherlv_0='workflowAction' 
+    {
+    	newLeafNode(otherlv_0, grammarAccess.getActionWorkflowAccess().getWorkflowActionKeyword_0());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getActionWorkflowAccess().getActionWorkflowActionEnumEnumRuleCall_1_0()); 
+	    }
+		lv_action_1_0=ruleWorkflowActionEnum		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getActionWorkflowRule());
+	        }
+       		set(
+       			$current, 
+       			"action",
+        		lv_action_1_0, 
+        		"WorkflowActionEnum");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+))
+;
+
+
+
+
+
+// Entry rule entryRuleActionDatainterchange
+entryRuleActionDatainterchange returns [EObject current=null] 
+	:
+	{ newCompositeNode(grammarAccess.getActionDatainterchangeRule()); }
+	 iv_ruleActionDatainterchange=ruleActionDatainterchange 
+	 { $current=$iv_ruleActionDatainterchange.current; } 
+	 EOF 
+;
+
+// Rule ActionDatainterchange
+ruleActionDatainterchange returns [EObject current=null] 
+    @init { enterRule(); 
+    }
+    @after { leaveRule(); }:
+(	otherlv_0='datainterchangeAction' 
+    {
+    	newLeafNode(otherlv_0, grammarAccess.getActionDatainterchangeAccess().getDatainterchangeActionKeyword_0());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getActionDatainterchangeAccess().getActionDatainterchangeActionEnumEnumRuleCall_1_0()); 
+	    }
+		lv_action_1_0=ruleDatainterchangeActionEnum		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getActionDatainterchangeRule());
+	        }
+       		set(
+       			$current, 
+       			"action",
+        		lv_action_1_0, 
+        		"DatainterchangeActionEnum");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)(
+(
+		{
+			if ($current==null) {
+	            $current = createModelElement(grammarAccess.getActionDatainterchangeRule());
+	        }
+        }
+	otherlv_2=RULE_ID
+	{
+		newLeafNode(otherlv_2, grammarAccess.getActionDatainterchangeAccess().getDataRefDataInterchangeCrossReference_2_0()); 
+	}
+
+)
+))
+;
+
+
+
+
+
+// Entry rule entryRuleActionGeneric
+entryRuleActionGeneric returns [EObject current=null] 
+	:
+	{ newCompositeNode(grammarAccess.getActionGenericRule()); }
+	 iv_ruleActionGeneric=ruleActionGeneric 
+	 { $current=$iv_ruleActionGeneric.current; } 
+	 EOF 
+;
+
+// Rule ActionGeneric
+ruleActionGeneric returns [EObject current=null] 
+    @init { enterRule(); 
+    }
+    @after { leaveRule(); }:
+(	otherlv_0='genericAction' 
+    {
+    	newLeafNode(otherlv_0, grammarAccess.getActionGenericAccess().getGenericActionKeyword_0());
+    }
+(
+(
+		lv_action_1_0=RULE_STRING
+		{
+			newLeafNode(lv_action_1_0, grammarAccess.getActionGenericAccess().getActionSTRINGTerminalRuleCall_1_0()); 
+		}
+		{
+	        if ($current==null) {
+	            $current = createModelElement(grammarAccess.getActionGenericRule());
+	        }
+       		setWithLastConsumed(
+       			$current, 
+       			"action",
+        		lv_action_1_0, 
+        		"STRING");
+	    }
+
+)
+))
+;
+
+
+
+
+
+
+
+// Entry rule entryRuleActionImport
+entryRuleActionImport returns [EObject current=null] 
+	:
+	{ newCompositeNode(grammarAccess.getActionImportRule()); }
+	 iv_ruleActionImport=ruleActionImport 
+	 { $current=$iv_ruleActionImport.current; } 
+	 EOF 
+;
+
+// Rule ActionImport
+ruleActionImport returns [EObject current=null] 
+    @init { enterRule(); 
+    }
+    @after { leaveRule(); }:
+(	otherlv_0='import' 
+    {
+    	newLeafNode(otherlv_0, grammarAccess.getActionImportAccess().getImportKeyword_0());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getActionImportAccess().getImportedNamespaceActionQualifiedNameWithWildCardParserRuleCall_1_0()); 
+	    }
+		lv_importedNamespace_1_0=ruleActionQualifiedNameWithWildCard		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getActionImportRule());
+	        }
+       		set(
+       			$current, 
+       			"importedNamespace",
+        		lv_importedNamespace_1_0, 
+        		"ActionQualifiedNameWithWildCard");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+))
+;
+
+
+
+
+
+
+
+// Entry rule entryRuleActionQualifiedNameWithWildCard
+entryRuleActionQualifiedNameWithWildCard returns [String current=null] 
+	:
+	{ newCompositeNode(grammarAccess.getActionQualifiedNameWithWildCardRule()); } 
+	 iv_ruleActionQualifiedNameWithWildCard=ruleActionQualifiedNameWithWildCard 
+	 { $current=$iv_ruleActionQualifiedNameWithWildCard.current.getText(); }  
+	 EOF 
+;
+
+// Rule ActionQualifiedNameWithWildCard
+ruleActionQualifiedNameWithWildCard returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] 
+    @init { enterRule(); 
+    }
+    @after { leaveRule(); }:
+(
+    { 
+        newCompositeNode(grammarAccess.getActionQualifiedNameWithWildCardAccess().getQualifiedNameParserRuleCall_0()); 
+    }
+    this_QualifiedName_0=ruleQualifiedName    {
+		$current.merge(this_QualifiedName_0);
+    }
+
+    { 
+        afterParserOrEnumRuleCall();
+    }
+(
+	kw='.' 
+    {
+        $current.merge(kw);
+        newLeafNode(kw, grammarAccess.getActionQualifiedNameWithWildCardAccess().getFullStopKeyword_1_0()); 
+    }
+
+	kw='*' 
+    {
+        $current.merge(kw);
+        newLeafNode(kw, grammarAccess.getActionQualifiedNameWithWildCardAccess().getAsteriskKeyword_1_1()); 
+    }
+)?)
+    ;
+
+
+
+
+
+// Entry rule entryRuleQualifiedName
+entryRuleQualifiedName returns [String current=null] 
+	:
+	{ newCompositeNode(grammarAccess.getQualifiedNameRule()); } 
+	 iv_ruleQualifiedName=ruleQualifiedName 
+	 { $current=$iv_ruleQualifiedName.current.getText(); }  
+	 EOF 
+;
+
+// Rule QualifiedName
+ruleQualifiedName returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] 
+    @init { enterRule(); 
+    }
+    @after { leaveRule(); }:
+(
+    { 
+        newCompositeNode(grammarAccess.getQualifiedNameAccess().getValidIDParserRuleCall_0()); 
+    }
+    this_ValidID_0=ruleValidID    {
+		$current.merge(this_ValidID_0);
+    }
+
+    { 
+        afterParserOrEnumRuleCall();
+    }
+(((
+	'.' 
+)=>
+	kw='.' 
+    {
+        $current.merge(kw);
+        newLeafNode(kw, grammarAccess.getQualifiedNameAccess().getFullStopKeyword_1_0()); 
+    }
+)
+    { 
+        newCompositeNode(grammarAccess.getQualifiedNameAccess().getValidIDParserRuleCall_1_1()); 
+    }
+    this_ValidID_2=ruleValidID    {
+		$current.merge(this_ValidID_2);
+    }
+
+    { 
+        afterParserOrEnumRuleCall();
+    }
+)*)
+    ;
+
+
+
+
+
+// Entry rule entryRuleValidID
+entryRuleValidID returns [String current=null] 
+	:
+	{ newCompositeNode(grammarAccess.getValidIDRule()); } 
+	 iv_ruleValidID=ruleValidID 
+	 { $current=$iv_ruleValidID.current.getText(); }  
+	 EOF 
+;
+
+// Rule ValidID
+ruleValidID returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] 
+    @init { enterRule(); 
+    }
+    @after { leaveRule(); }:
+    this_ID_0=RULE_ID    {
+		$current.merge(this_ID_0);
+    }
+
+    { 
+    newLeafNode(this_ID_0, grammarAccess.getValidIDAccess().getIDTerminalRuleCall()); 
+    }
+
+    ;
+
+
+
+
+
+// Entry rule entryRuleTRANSLATABLEID
+entryRuleTRANSLATABLEID returns [String current=null] 
+	:
+	{ newCompositeNode(grammarAccess.getTRANSLATABLEIDRule()); } 
+	 iv_ruleTRANSLATABLEID=ruleTRANSLATABLEID 
+	 { $current=$iv_ruleTRANSLATABLEID.current.getText(); }  
+	 EOF 
+;
+
+// Rule TRANSLATABLEID
+ruleTRANSLATABLEID returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] 
+    @init { enterRule(); 
+    }
+    @after { leaveRule(); }:
+    this_ID_0=RULE_ID    {
+		$current.merge(this_ID_0);
+    }
+
+    { 
+    newLeafNode(this_ID_0, grammarAccess.getTRANSLATABLEIDAccess().getIDTerminalRuleCall()); 
+    }
+
+    ;
+
+
+
+
+
+// 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		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getXMemberFeatureCallRule());
+	        }
+       		set(
+       			$current, 
+       			"value",
+        		lv_value_6_0, 
+        		"XAssignment");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+))
+    |(((((
+)(	'.' 
+
+    |(
+(
+	'?.' 
+ 
+
+)
+)
+    |(
+(
+	'::' 
+ 
+
+)
+))))=>((
+    {
+        $current = forceCreateModelElementAndSet(
+            grammarAccess.getXMemberFeatureCallAccess().getXMemberFeatureCallMemberCallTargetAction_1_1_0_0_0(),
+            $current);
+    }
+)(	otherlv_8='.' 
+    {
+    	newLeafNode(otherlv_8, grammarAccess.getXMemberFeatureCallAccess().getFullStopKeyword_1_1_0_0_1_0());
+    }
+
+    |(
+(
+		lv_nullSafe_9_0=	'?.' 
+    {
+        newLeafNode(lv_nullSafe_9_0, grammarAccess.getXMemberFeatureCallAccess().getNullSafeQuestionMarkFullStopKeyword_1_1_0_0_1_1_0());
+    }
+ 
+	    {
+	        if ($current==null) {
+	            $current = createModelElement(grammarAccess.getXMemberFeatureCallRule());
+	        }
+       		setWithLastConsumed($current, "nullSafe", true, "?.");
+	    }
+
+)
+)
+    |(
+(
+		lv_explicitStatic_10_0=	'::' 
+    {
+        newLeafNode(lv_explicitStatic_10_0, grammarAccess.getXMemberFeatureCallAccess().getExplicitStaticColonColonKeyword_1_1_0_0_1_2_0());
+    }
+ 
+	    {
+	        if ($current==null) {
+	            $current = createModelElement(grammarAccess.getXMemberFeatureCallRule());
+	        }
+       		setWithLastConsumed($current, "explicitStatic", true, "::");
+	    }
+
+)
+))))(	otherlv_11='<' 
+    {
+    	newLeafNode(otherlv_11, grammarAccess.getXMemberFeatureCallAccess().getLessThanSignKeyword_1_1_1_0());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getXMemberFeatureCallAccess().getTypeArgumentsJvmArgumentTypeReferenceParserRuleCall_1_1_1_1_0()); 
+	    }
+		lv_typeArguments_12_0=ruleJvmArgumentTypeReference		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getXMemberFeatureCallRule());
+	        }
+       		add(
+       			$current, 
+       			"typeArguments",
+        		lv_typeArguments_12_0, 
+        		"JvmArgumentTypeReference");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)(	otherlv_13=',' 
+    {
+    	newLeafNode(otherlv_13, grammarAccess.getXMemberFeatureCallAccess().getCommaKeyword_1_1_1_2_0());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getXMemberFeatureCallAccess().getTypeArgumentsJvmArgumentTypeReferenceParserRuleCall_1_1_1_2_1_0()); 
+	    }
+		lv_typeArguments_14_0=ruleJvmArgumentTypeReference		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getXMemberFeatureCallRule());
+	        }
+       		add(
+       			$current, 
+       			"typeArguments",
+        		lv_typeArguments_14_0, 
+        		"JvmArgumentTypeReference");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+))*	otherlv_15='>' 
+    {
+    	newLeafNode(otherlv_15, grammarAccess.getXMemberFeatureCallAccess().getGreaterThanSignKeyword_1_1_1_3());
+    }
+)?(
+(
+		{
+			if ($current==null) {
+	            $current = createModelElement(grammarAccess.getXMemberFeatureCallRule());
+	        }
+        }
+		{ 
+	        newCompositeNode(grammarAccess.getXMemberFeatureCallAccess().getFeatureJvmIdentifiableElementCrossReference_1_1_2_0()); 
+	    }
+		ruleIdOrSuper		{ 
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)(((
+(
+	'(' 
+ 
+
+)
+)=>
+(
+		lv_explicitOperationCall_17_0=	'(' 
+    {
+        newLeafNode(lv_explicitOperationCall_17_0, grammarAccess.getXMemberFeatureCallAccess().getExplicitOperationCallLeftParenthesisKeyword_1_1_3_0_0());
+    }
+ 
+	    {
+	        if ($current==null) {
+	            $current = createModelElement(grammarAccess.getXMemberFeatureCallRule());
+	        }
+       		setWithLastConsumed($current, "explicitOperationCall", true, "(");
+	    }
+
+)
+)(((((
+)((
+(
+ruleJvmFormalParameter
+)
+)(	',' 
+(
+(
+ruleJvmFormalParameter
+)
+))*)?(
+(
+	'|' 
+ 
+
+)
+)))=>
+(
+		{ 
+	        newCompositeNode(grammarAccess.getXMemberFeatureCallAccess().getMemberCallArgumentsXShortClosureParserRuleCall_1_1_3_1_0_0()); 
+	    }
+		lv_memberCallArguments_18_0=ruleXShortClosure		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getXMemberFeatureCallRule());
+	        }
+       		add(
+       			$current, 
+       			"memberCallArguments",
+        		lv_memberCallArguments_18_0, 
+        		"XShortClosure");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)
+    |((
+(
+		{ 
+	        newCompositeNode(grammarAccess.getXMemberFeatureCallAccess().getMemberCallArgumentsXExpressionParserRuleCall_1_1_3_1_1_0_0()); 
+	    }
+		lv_memberCallArguments_19_0=ruleXExpression		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getXMemberFeatureCallRule());
+	        }
+       		add(
+       			$current, 
+       			"memberCallArguments",
+        		lv_memberCallArguments_19_0, 
+        		"XExpression");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)(	otherlv_20=',' 
+    {
+    	newLeafNode(otherlv_20, grammarAccess.getXMemberFeatureCallAccess().getCommaKeyword_1_1_3_1_1_1_0());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getXMemberFeatureCallAccess().getMemberCallArgumentsXExpressionParserRuleCall_1_1_3_1_1_1_1_0()); 
+	    }
+		lv_memberCallArguments_21_0=ruleXExpression		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getXMemberFeatureCallRule());
+	        }
+       		add(
+       			$current, 
+       			"memberCallArguments",
+        		lv_memberCallArguments_21_0, 
+        		"XExpression");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+))*))?	otherlv_22=')' 
+    {
+    	newLeafNode(otherlv_22, grammarAccess.getXMemberFeatureCallAccess().getRightParenthesisKeyword_1_1_3_2());
+    }
+)?((((
+)	'[' 
+))=>
+(
+		{ 
+	        newCompositeNode(grammarAccess.getXMemberFeatureCallAccess().getMemberCallArgumentsXClosureParserRuleCall_1_1_4_0()); 
+	    }
+		lv_memberCallArguments_23_0=ruleXClosure		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getXMemberFeatureCallRule());
+	        }
+       		add(
+       			$current, 
+       			"memberCallArguments",
+        		lv_memberCallArguments_23_0, 
+        		"XClosure");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)?))*)
+;
+
+
+
+
+
+// Entry rule entryRuleXPrimaryExpression
+entryRuleXPrimaryExpression returns [EObject current=null] 
+	:
+	{ newCompositeNode(grammarAccess.getXPrimaryExpressionRule()); }
+	 iv_ruleXPrimaryExpression=ruleXPrimaryExpression 
+	 { $current=$iv_ruleXPrimaryExpression.current; } 
+	 EOF 
+;
+
+// Rule XPrimaryExpression
+ruleXPrimaryExpression returns [EObject current=null] 
+    @init { enterRule(); 
+    }
+    @after { leaveRule(); }:
+(
+    { 
+        newCompositeNode(grammarAccess.getXPrimaryExpressionAccess().getXConstructorCallParserRuleCall_0()); 
+    }
+    this_XConstructorCall_0=ruleXConstructorCall
+    { 
+        $current = $this_XConstructorCall_0.current; 
+        afterParserOrEnumRuleCall();
+    }
+
+    |
+    { 
+        newCompositeNode(grammarAccess.getXPrimaryExpressionAccess().getXBlockExpressionParserRuleCall_1()); 
+    }
+    this_XBlockExpression_1=ruleXBlockExpression
+    { 
+        $current = $this_XBlockExpression_1.current; 
+        afterParserOrEnumRuleCall();
+    }
+
+    |
+    { 
+        newCompositeNode(grammarAccess.getXPrimaryExpressionAccess().getXSwitchExpressionParserRuleCall_2()); 
+    }
+    this_XSwitchExpression_2=ruleXSwitchExpression
+    { 
+        $current = $this_XSwitchExpression_2.current; 
+        afterParserOrEnumRuleCall();
+    }
+
+    |((((
+)	'synchronized' 
+	'(' 
+))=>
+    { 
+        newCompositeNode(grammarAccess.getXPrimaryExpressionAccess().getXSynchronizedExpressionParserRuleCall_3()); 
+    }
+    this_XSynchronizedExpression_3=ruleXSynchronizedExpression
+    { 
+        $current = $this_XSynchronizedExpression_3.current; 
+        afterParserOrEnumRuleCall();
+    }
+)
+    |
+    { 
+        newCompositeNode(grammarAccess.getXPrimaryExpressionAccess().getXFeatureCallParserRuleCall_4()); 
+    }
+    this_XFeatureCall_4=ruleXFeatureCall
+    { 
+        $current = $this_XFeatureCall_4.current; 
+        afterParserOrEnumRuleCall();
+    }
+
+    |
+    { 
+        newCompositeNode(grammarAccess.getXPrimaryExpressionAccess().getXLiteralParserRuleCall_5()); 
+    }
+    this_XLiteral_5=ruleXLiteral
+    { 
+        $current = $this_XLiteral_5.current; 
+        afterParserOrEnumRuleCall();
+    }
+
+    |
+    { 
+        newCompositeNode(grammarAccess.getXPrimaryExpressionAccess().getXIfExpressionParserRuleCall_6()); 
+    }
+    this_XIfExpression_6=ruleXIfExpression
+    { 
+        $current = $this_XIfExpression_6.current; 
+        afterParserOrEnumRuleCall();
+    }
+
+    |((((
+)	'for' 
+	'(' 
+(
+(
+ruleJvmFormalParameter
+)
+)	':' 
+))=>
+    { 
+        newCompositeNode(grammarAccess.getXPrimaryExpressionAccess().getXForLoopExpressionParserRuleCall_7()); 
+    }
+    this_XForLoopExpression_7=ruleXForLoopExpression
+    { 
+        $current = $this_XForLoopExpression_7.current; 
+        afterParserOrEnumRuleCall();
+    }
+)
+    |
+    { 
+        newCompositeNode(grammarAccess.getXPrimaryExpressionAccess().getXBasicForLoopExpressionParserRuleCall_8()); 
+    }
+    this_XBasicForLoopExpression_8=ruleXBasicForLoopExpression
+    { 
+        $current = $this_XBasicForLoopExpression_8.current; 
+        afterParserOrEnumRuleCall();
+    }
+
+    |
+    { 
+        newCompositeNode(grammarAccess.getXPrimaryExpressionAccess().getXWhileExpressionParserRuleCall_9()); 
+    }
+    this_XWhileExpression_9=ruleXWhileExpression
+    { 
+        $current = $this_XWhileExpression_9.current; 
+        afterParserOrEnumRuleCall();
+    }
+
+    |
+    { 
+        newCompositeNode(grammarAccess.getXPrimaryExpressionAccess().getXDoWhileExpressionParserRuleCall_10()); 
+    }
+    this_XDoWhileExpression_10=ruleXDoWhileExpression
+    { 
+        $current = $this_XDoWhileExpression_10.current; 
+        afterParserOrEnumRuleCall();
+    }
+
+    |
+    { 
+        newCompositeNode(grammarAccess.getXPrimaryExpressionAccess().getXThrowExpressionParserRuleCall_11()); 
+    }
+    this_XThrowExpression_11=ruleXThrowExpression
+    { 
+        $current = $this_XThrowExpression_11.current; 
+        afterParserOrEnumRuleCall();
+    }
+
+    |
+    { 
+        newCompositeNode(grammarAccess.getXPrimaryExpressionAccess().getXReturnExpressionParserRuleCall_12()); 
+    }
+    this_XReturnExpression_12=ruleXReturnExpression
+    { 
+        $current = $this_XReturnExpression_12.current; 
+        afterParserOrEnumRuleCall();
+    }
+
+    |
+    { 
+        newCompositeNode(grammarAccess.getXPrimaryExpressionAccess().getXTryCatchFinallyExpressionParserRuleCall_13()); 
+    }
+    this_XTryCatchFinallyExpression_13=ruleXTryCatchFinallyExpression
+    { 
+        $current = $this_XTryCatchFinallyExpression_13.current; 
+        afterParserOrEnumRuleCall();
+    }
+
+    |
+    { 
+        newCompositeNode(grammarAccess.getXPrimaryExpressionAccess().getXParenthesizedExpressionParserRuleCall_14()); 
+    }
+    this_XParenthesizedExpression_14=ruleXParenthesizedExpression
+    { 
+        $current = $this_XParenthesizedExpression_14.current; 
+        afterParserOrEnumRuleCall();
+    }
+)
+;
+
+
+
+
+
+// Entry rule entryRuleXLiteral
+entryRuleXLiteral returns [EObject current=null] 
+	:
+	{ newCompositeNode(grammarAccess.getXLiteralRule()); }
+	 iv_ruleXLiteral=ruleXLiteral 
+	 { $current=$iv_ruleXLiteral.current; } 
+	 EOF 
+;
+
+// Rule XLiteral
+ruleXLiteral returns [EObject current=null] 
+    @init { enterRule(); 
+    }
+    @after { leaveRule(); }:
+(
+    { 
+        newCompositeNode(grammarAccess.getXLiteralAccess().getXCollectionLiteralParserRuleCall_0()); 
+    }
+    this_XCollectionLiteral_0=ruleXCollectionLiteral
+    { 
+        $current = $this_XCollectionLiteral_0.current; 
+        afterParserOrEnumRuleCall();
+    }
+
+    |((((
+)	'[' 
+))=>
+    { 
+        newCompositeNode(grammarAccess.getXLiteralAccess().getXClosureParserRuleCall_1()); 
+    }
+    this_XClosure_1=ruleXClosure
+    { 
+        $current = $this_XClosure_1.current; 
+        afterParserOrEnumRuleCall();
+    }
+)
+    |
+    { 
+        newCompositeNode(grammarAccess.getXLiteralAccess().getXBooleanLiteralParserRuleCall_2()); 
+    }
+    this_XBooleanLiteral_2=ruleXBooleanLiteral
+    { 
+        $current = $this_XBooleanLiteral_2.current; 
+        afterParserOrEnumRuleCall();
+    }
+
+    |
+    { 
+        newCompositeNode(grammarAccess.getXLiteralAccess().getXNumberLiteralParserRuleCall_3()); 
+    }
+    this_XNumberLiteral_3=ruleXNumberLiteral
+    { 
+        $current = $this_XNumberLiteral_3.current; 
+        afterParserOrEnumRuleCall();
+    }
+
+    |
+    { 
+        newCompositeNode(grammarAccess.getXLiteralAccess().getXNullLiteralParserRuleCall_4()); 
+    }
+    this_XNullLiteral_4=ruleXNullLiteral
+    { 
+        $current = $this_XNullLiteral_4.current; 
+        afterParserOrEnumRuleCall();
+    }
+
+    |
+    { 
+        newCompositeNode(grammarAccess.getXLiteralAccess().getXStringLiteralParserRuleCall_5()); 
+    }
+    this_XStringLiteral_5=ruleXStringLiteral
+    { 
+        $current = $this_XStringLiteral_5.current; 
+        afterParserOrEnumRuleCall();
+    }
+
+    |
+    { 
+        newCompositeNode(grammarAccess.getXLiteralAccess().getXTypeLiteralParserRuleCall_6()); 
+    }
+    this_XTypeLiteral_6=ruleXTypeLiteral
+    { 
+        $current = $this_XTypeLiteral_6.current; 
+        afterParserOrEnumRuleCall();
+    }
+)
+;
+
+
+
+
+
+// Entry rule entryRuleXCollectionLiteral
+entryRuleXCollectionLiteral returns [EObject current=null] 
+	:
+	{ newCompositeNode(grammarAccess.getXCollectionLiteralRule()); }
+	 iv_ruleXCollectionLiteral=ruleXCollectionLiteral 
+	 { $current=$iv_ruleXCollectionLiteral.current; } 
+	 EOF 
+;
+
+// Rule XCollectionLiteral
+ruleXCollectionLiteral returns [EObject current=null] 
+    @init { enterRule(); 
+    }
+    @after { leaveRule(); }:
+(
+    { 
+        newCompositeNode(grammarAccess.getXCollectionLiteralAccess().getXSetLiteralParserRuleCall_0()); 
+    }
+    this_XSetLiteral_0=ruleXSetLiteral
+    { 
+        $current = $this_XSetLiteral_0.current; 
+        afterParserOrEnumRuleCall();
+    }
+
+    |
+    { 
+        newCompositeNode(grammarAccess.getXCollectionLiteralAccess().getXListLiteralParserRuleCall_1()); 
+    }
+    this_XListLiteral_1=ruleXListLiteral
+    { 
+        $current = $this_XListLiteral_1.current; 
+        afterParserOrEnumRuleCall();
+    }
+)
+;
+
+
+
+
+
+// Entry rule entryRuleXSetLiteral
+entryRuleXSetLiteral returns [EObject current=null] 
+	:
+	{ newCompositeNode(grammarAccess.getXSetLiteralRule()); }
+	 iv_ruleXSetLiteral=ruleXSetLiteral 
+	 { $current=$iv_ruleXSetLiteral.current; } 
+	 EOF 
+;
+
+// Rule XSetLiteral
+ruleXSetLiteral returns [EObject current=null] 
+    @init { enterRule(); 
+    }
+    @after { leaveRule(); }:
+((
+    {
+        $current = forceCreateModelElement(
+            grammarAccess.getXSetLiteralAccess().getXSetLiteralAction_0(),
+            $current);
+    }
+)	otherlv_1='#' 
+    {
+    	newLeafNode(otherlv_1, grammarAccess.getXSetLiteralAccess().getNumberSignKeyword_1());
+    }
+	otherlv_2='{' 
+    {
+    	newLeafNode(otherlv_2, grammarAccess.getXSetLiteralAccess().getLeftCurlyBracketKeyword_2());
+    }
+((
+(
+		{ 
+	        newCompositeNode(grammarAccess.getXSetLiteralAccess().getElementsXExpressionParserRuleCall_3_0_0()); 
+	    }
+		lv_elements_3_0=ruleXExpression		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getXSetLiteralRule());
+	        }
+       		add(
+       			$current, 
+       			"elements",
+        		lv_elements_3_0, 
+        		"XExpression");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)(	otherlv_4=',' 
+    {
+    	newLeafNode(otherlv_4, grammarAccess.getXSetLiteralAccess().getCommaKeyword_3_1_0());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getXSetLiteralAccess().getElementsXExpressionParserRuleCall_3_1_1_0()); 
+	    }
+		lv_elements_5_0=ruleXExpression		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getXSetLiteralRule());
+	        }
+       		add(
+       			$current, 
+       			"elements",
+        		lv_elements_5_0, 
+        		"XExpression");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+))*)?	otherlv_6='}' 
+    {
+    	newLeafNode(otherlv_6, grammarAccess.getXSetLiteralAccess().getRightCurlyBracketKeyword_4());
+    }
+)
+;
+
+
+
+
+
+// Entry rule entryRuleXListLiteral
+entryRuleXListLiteral returns [EObject current=null] 
+	:
+	{ newCompositeNode(grammarAccess.getXListLiteralRule()); }
+	 iv_ruleXListLiteral=ruleXListLiteral 
+	 { $current=$iv_ruleXListLiteral.current; } 
+	 EOF 
+;
+
+// Rule XListLiteral
+ruleXListLiteral returns [EObject current=null] 
+    @init { enterRule(); 
+    }
+    @after { leaveRule(); }:
+((
+    {
+        $current = forceCreateModelElement(
+            grammarAccess.getXListLiteralAccess().getXListLiteralAction_0(),
+            $current);
+    }
+)	otherlv_1='#' 
+    {
+    	newLeafNode(otherlv_1, grammarAccess.getXListLiteralAccess().getNumberSignKeyword_1());
+    }
+	otherlv_2='[' 
+    {
+    	newLeafNode(otherlv_2, grammarAccess.getXListLiteralAccess().getLeftSquareBracketKeyword_2());
+    }
+((
+(
+		{ 
+	        newCompositeNode(grammarAccess.getXListLiteralAccess().getElementsXExpressionParserRuleCall_3_0_0()); 
+	    }
+		lv_elements_3_0=ruleXExpression		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getXListLiteralRule());
+	        }
+       		add(
+       			$current, 
+       			"elements",
+        		lv_elements_3_0, 
+        		"XExpression");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)(	otherlv_4=',' 
+    {
+    	newLeafNode(otherlv_4, grammarAccess.getXListLiteralAccess().getCommaKeyword_3_1_0());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getXListLiteralAccess().getElementsXExpressionParserRuleCall_3_1_1_0()); 
+	    }
+		lv_elements_5_0=ruleXExpression		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getXListLiteralRule());
+	        }
+       		add(
+       			$current, 
+       			"elements",
+        		lv_elements_5_0, 
+        		"XExpression");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+))*)?	otherlv_6=']' 
+    {
+    	newLeafNode(otherlv_6, grammarAccess.getXListLiteralAccess().getRightSquareBracketKeyword_4());
+    }
+)
+;
+
+
+
+
+
+// Entry rule entryRuleXClosure
+entryRuleXClosure returns [EObject current=null] 
+	:
+	{ newCompositeNode(grammarAccess.getXClosureRule()); }
+	 iv_ruleXClosure=ruleXClosure 
+	 { $current=$iv_ruleXClosure.current; } 
+	 EOF 
+;
+
+// Rule XClosure
+ruleXClosure returns [EObject current=null] 
+    @init { enterRule(); 
+    }
+    @after { leaveRule(); }:
+(((((
+)	'[' 
+))=>((
+    {
+        $current = forceCreateModelElement(
+            grammarAccess.getXClosureAccess().getXClosureAction_0_0_0(),
+            $current);
+    }
+)	otherlv_1='[' 
+    {
+    	newLeafNode(otherlv_1, grammarAccess.getXClosureAccess().getLeftSquareBracketKeyword_0_0_1());
+    }
+))(((((
+(
+ruleJvmFormalParameter
+)
+)(	',' 
+(
+(
+ruleJvmFormalParameter
+)
+))*)?(
+(
+	'|' 
+ 
+
+)
+)))=>(((
+(
+		{ 
+	        newCompositeNode(grammarAccess.getXClosureAccess().getDeclaredFormalParametersJvmFormalParameterParserRuleCall_1_0_0_0_0()); 
+	    }
+		lv_declaredFormalParameters_2_0=ruleJvmFormalParameter		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getXClosureRule());
+	        }
+       		add(
+       			$current, 
+       			"declaredFormalParameters",
+        		lv_declaredFormalParameters_2_0, 
+        		"JvmFormalParameter");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)(	otherlv_3=',' 
+    {
+    	newLeafNode(otherlv_3, grammarAccess.getXClosureAccess().getCommaKeyword_1_0_0_1_0());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getXClosureAccess().getDeclaredFormalParametersJvmFormalParameterParserRuleCall_1_0_0_1_1_0()); 
+	    }
+		lv_declaredFormalParameters_4_0=ruleJvmFormalParameter		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getXClosureRule());
+	        }
+       		add(
+       			$current, 
+       			"declaredFormalParameters",
+        		lv_declaredFormalParameters_4_0, 
+        		"JvmFormalParameter");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+))*)?(
+(
+		lv_explicitSyntax_5_0=	'|' 
+    {
+        newLeafNode(lv_explicitSyntax_5_0, grammarAccess.getXClosureAccess().getExplicitSyntaxVerticalLineKeyword_1_0_1_0());
+    }
+ 
+	    {
+	        if ($current==null) {
+	            $current = createModelElement(grammarAccess.getXClosureRule());
+	        }
+       		setWithLastConsumed($current, "explicitSyntax", true, "|");
+	    }
+
+)
+)))?(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getXClosureAccess().getExpressionXExpressionInClosureParserRuleCall_2_0()); 
+	    }
+		lv_expression_6_0=ruleXExpressionInClosure		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getXClosureRule());
+	        }
+       		set(
+       			$current, 
+       			"expression",
+        		lv_expression_6_0, 
+        		"XExpressionInClosure");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)	otherlv_7=']' 
+    {
+    	newLeafNode(otherlv_7, grammarAccess.getXClosureAccess().getRightSquareBracketKeyword_3());
+    }
+)
+;
+
+
+
+
+
+// Entry rule entryRuleXExpressionInClosure
+entryRuleXExpressionInClosure returns [EObject current=null] 
+	:
+	{ newCompositeNode(grammarAccess.getXExpressionInClosureRule()); }
+	 iv_ruleXExpressionInClosure=ruleXExpressionInClosure 
+	 { $current=$iv_ruleXExpressionInClosure.current; } 
+	 EOF 
+;
+
+// Rule XExpressionInClosure
+ruleXExpressionInClosure returns [EObject current=null] 
+    @init { enterRule(); 
+    }
+    @after { leaveRule(); }:
+((
+    {
+        $current = forceCreateModelElement(
+            grammarAccess.getXExpressionInClosureAccess().getXBlockExpressionAction_0(),
+            $current);
+    }
+)((
+(
+		{ 
+	        newCompositeNode(grammarAccess.getXExpressionInClosureAccess().getExpressionsXExpressionOrVarDeclarationParserRuleCall_1_0_0()); 
+	    }
+		lv_expressions_1_0=ruleXExpressionOrVarDeclaration		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getXExpressionInClosureRule());
+	        }
+       		add(
+       			$current, 
+       			"expressions",
+        		lv_expressions_1_0, 
+        		"XExpressionOrVarDeclaration");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)(	otherlv_2=';' 
+    {
+    	newLeafNode(otherlv_2, grammarAccess.getXExpressionInClosureAccess().getSemicolonKeyword_1_1());
+    }
+)?)*)
+;
+
+
+
+
+
+// Entry rule entryRuleXShortClosure
+entryRuleXShortClosure returns [EObject current=null] 
+	:
+	{ newCompositeNode(grammarAccess.getXShortClosureRule()); }
+	 iv_ruleXShortClosure=ruleXShortClosure 
+	 { $current=$iv_ruleXShortClosure.current; } 
+	 EOF 
+;
+
+// Rule XShortClosure
+ruleXShortClosure returns [EObject current=null] 
+    @init { enterRule(); 
+    }
+    @after { leaveRule(); }:
+(((((
+)((
+(
+ruleJvmFormalParameter
+)
+)(	',' 
+(
+(
+ruleJvmFormalParameter
+)
+))*)?(
+(
+	'|' 
+ 
+
+)
+)))=>((
+    {
+        $current = forceCreateModelElement(
+            grammarAccess.getXShortClosureAccess().getXClosureAction_0_0_0(),
+            $current);
+    }
+)((
+(
+		{ 
+	        newCompositeNode(grammarAccess.getXShortClosureAccess().getDeclaredFormalParametersJvmFormalParameterParserRuleCall_0_0_1_0_0()); 
+	    }
+		lv_declaredFormalParameters_1_0=ruleJvmFormalParameter		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getXShortClosureRule());
+	        }
+       		add(
+       			$current, 
+       			"declaredFormalParameters",
+        		lv_declaredFormalParameters_1_0, 
+        		"JvmFormalParameter");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)(	otherlv_2=',' 
+    {
+    	newLeafNode(otherlv_2, grammarAccess.getXShortClosureAccess().getCommaKeyword_0_0_1_1_0());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getXShortClosureAccess().getDeclaredFormalParametersJvmFormalParameterParserRuleCall_0_0_1_1_1_0()); 
+	    }
+		lv_declaredFormalParameters_3_0=ruleJvmFormalParameter		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getXShortClosureRule());
+	        }
+       		add(
+       			$current, 
+       			"declaredFormalParameters",
+        		lv_declaredFormalParameters_3_0, 
+        		"JvmFormalParameter");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+))*)?(
+(
+		lv_explicitSyntax_4_0=	'|' 
+    {
+        newLeafNode(lv_explicitSyntax_4_0, grammarAccess.getXShortClosureAccess().getExplicitSyntaxVerticalLineKeyword_0_0_2_0());
+    }
+ 
+	    {
+	        if ($current==null) {
+	            $current = createModelElement(grammarAccess.getXShortClosureRule());
+	        }
+       		setWithLastConsumed($current, "explicitSyntax", true, "|");
+	    }
+
+)
+)))(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getXShortClosureAccess().getExpressionXExpressionParserRuleCall_1_0()); 
+	    }
+		lv_expression_5_0=ruleXExpression		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getXShortClosureRule());
+	        }
+       		set(
+       			$current, 
+       			"expression",
+        		lv_expression_5_0, 
+        		"XExpression");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+))
+;
+
+
+
+
+
+// Entry rule entryRuleXParenthesizedExpression
+entryRuleXParenthesizedExpression returns [EObject current=null] 
+	:
+	{ newCompositeNode(grammarAccess.getXParenthesizedExpressionRule()); }
+	 iv_ruleXParenthesizedExpression=ruleXParenthesizedExpression 
+	 { $current=$iv_ruleXParenthesizedExpression.current; } 
+	 EOF 
+;
+
+// Rule XParenthesizedExpression
+ruleXParenthesizedExpression returns [EObject current=null] 
+    @init { enterRule(); 
+    }
+    @after { leaveRule(); }:
+(	otherlv_0='(' 
+    {
+    	newLeafNode(otherlv_0, grammarAccess.getXParenthesizedExpressionAccess().getLeftParenthesisKeyword_0());
+    }
+
+    { 
+        newCompositeNode(grammarAccess.getXParenthesizedExpressionAccess().getXExpressionParserRuleCall_1()); 
+    }
+    this_XExpression_1=ruleXExpression
+    { 
+        $current = $this_XExpression_1.current; 
+        afterParserOrEnumRuleCall();
+    }
+	otherlv_2=')' 
+    {
+    	newLeafNode(otherlv_2, grammarAccess.getXParenthesizedExpressionAccess().getRightParenthesisKeyword_2());
+    }
+)
+;
+
+
+
+
+
+// Entry rule entryRuleXIfExpression
+entryRuleXIfExpression returns [EObject current=null] 
+	:
+	{ newCompositeNode(grammarAccess.getXIfExpressionRule()); }
+	 iv_ruleXIfExpression=ruleXIfExpression 
+	 { $current=$iv_ruleXIfExpression.current; } 
+	 EOF 
+;
+
+// Rule XIfExpression
+ruleXIfExpression returns [EObject current=null] 
+    @init { enterRule(); 
+    }
+    @after { leaveRule(); }:
+((
+    {
+        $current = forceCreateModelElement(
+            grammarAccess.getXIfExpressionAccess().getXIfExpressionAction_0(),
+            $current);
+    }
+)	otherlv_1='if' 
+    {
+    	newLeafNode(otherlv_1, grammarAccess.getXIfExpressionAccess().getIfKeyword_1());
+    }
+	otherlv_2='(' 
+    {
+    	newLeafNode(otherlv_2, grammarAccess.getXIfExpressionAccess().getLeftParenthesisKeyword_2());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getXIfExpressionAccess().getIfXExpressionParserRuleCall_3_0()); 
+	    }
+		lv_if_3_0=ruleXExpression		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getXIfExpressionRule());
+	        }
+       		set(
+       			$current, 
+       			"if",
+        		lv_if_3_0, 
+        		"XExpression");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)	otherlv_4=')' 
+    {
+    	newLeafNode(otherlv_4, grammarAccess.getXIfExpressionAccess().getRightParenthesisKeyword_4());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getXIfExpressionAccess().getThenXExpressionParserRuleCall_5_0()); 
+	    }
+		lv_then_5_0=ruleXExpression		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getXIfExpressionRule());
+	        }
+       		set(
+       			$current, 
+       			"then",
+        		lv_then_5_0, 
+        		"XExpression");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)(((	'else' 
+)=>	otherlv_6='else' 
+    {
+    	newLeafNode(otherlv_6, grammarAccess.getXIfExpressionAccess().getElseKeyword_6_0());
+    }
+)(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getXIfExpressionAccess().getElseXExpressionParserRuleCall_6_1_0()); 
+	    }
+		lv_else_7_0=ruleXExpression		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getXIfExpressionRule());
+	        }
+       		set(
+       			$current, 
+       			"else",
+        		lv_else_7_0, 
+        		"XExpression");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+))?)
+;
+
+
+
+
+
+// Entry rule entryRuleXSwitchExpression
+entryRuleXSwitchExpression returns [EObject current=null] 
+	:
+	{ newCompositeNode(grammarAccess.getXSwitchExpressionRule()); }
+	 iv_ruleXSwitchExpression=ruleXSwitchExpression 
+	 { $current=$iv_ruleXSwitchExpression.current; } 
+	 EOF 
+;
+
+// Rule XSwitchExpression
+ruleXSwitchExpression returns [EObject current=null] 
+    @init { enterRule(); 
+    }
+    @after { leaveRule(); }:
+((
+    {
+        $current = forceCreateModelElement(
+            grammarAccess.getXSwitchExpressionAccess().getXSwitchExpressionAction_0(),
+            $current);
+    }
+)	otherlv_1='switch' 
+    {
+    	newLeafNode(otherlv_1, grammarAccess.getXSwitchExpressionAccess().getSwitchKeyword_1());
+    }
+(((((	'(' 
+(
+(
+ruleJvmFormalParameter
+)
+)	':' 
+))=>(	otherlv_2='(' 
+    {
+    	newLeafNode(otherlv_2, grammarAccess.getXSwitchExpressionAccess().getLeftParenthesisKeyword_2_0_0_0_0());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getXSwitchExpressionAccess().getDeclaredParamJvmFormalParameterParserRuleCall_2_0_0_0_1_0()); 
+	    }
+		lv_declaredParam_3_0=ruleJvmFormalParameter		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getXSwitchExpressionRule());
+	        }
+       		set(
+       			$current, 
+       			"declaredParam",
+        		lv_declaredParam_3_0, 
+        		"JvmFormalParameter");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)	otherlv_4=':' 
+    {
+    	newLeafNode(otherlv_4, grammarAccess.getXSwitchExpressionAccess().getColonKeyword_2_0_0_0_2());
+    }
+))(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getXSwitchExpressionAccess().getSwitchXExpressionParserRuleCall_2_0_1_0()); 
+	    }
+		lv_switch_5_0=ruleXExpression		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getXSwitchExpressionRule());
+	        }
+       		set(
+       			$current, 
+       			"switch",
+        		lv_switch_5_0, 
+        		"XExpression");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)	otherlv_6=')' 
+    {
+    	newLeafNode(otherlv_6, grammarAccess.getXSwitchExpressionAccess().getRightParenthesisKeyword_2_0_2());
+    }
+)
+    |(((((
+(
+ruleJvmFormalParameter
+)
+)	':' 
+))=>((
+(
+		{ 
+	        newCompositeNode(grammarAccess.getXSwitchExpressionAccess().getDeclaredParamJvmFormalParameterParserRuleCall_2_1_0_0_0_0()); 
+	    }
+		lv_declaredParam_7_0=ruleJvmFormalParameter		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getXSwitchExpressionRule());
+	        }
+       		set(
+       			$current, 
+       			"declaredParam",
+        		lv_declaredParam_7_0, 
+        		"JvmFormalParameter");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)	otherlv_8=':' 
+    {
+    	newLeafNode(otherlv_8, grammarAccess.getXSwitchExpressionAccess().getColonKeyword_2_1_0_0_1());
+    }
+))?(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getXSwitchExpressionAccess().getSwitchXExpressionParserRuleCall_2_1_1_0()); 
+	    }
+		lv_switch_9_0=ruleXExpression		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getXSwitchExpressionRule());
+	        }
+       		set(
+       			$current, 
+       			"switch",
+        		lv_switch_9_0, 
+        		"XExpression");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)))	otherlv_10='{' 
+    {
+    	newLeafNode(otherlv_10, grammarAccess.getXSwitchExpressionAccess().getLeftCurlyBracketKeyword_3());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getXSwitchExpressionAccess().getCasesXCasePartParserRuleCall_4_0()); 
+	    }
+		lv_cases_11_0=ruleXCasePart		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getXSwitchExpressionRule());
+	        }
+       		add(
+       			$current, 
+       			"cases",
+        		lv_cases_11_0, 
+        		"XCasePart");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)*(	otherlv_12='default' 
+    {
+    	newLeafNode(otherlv_12, grammarAccess.getXSwitchExpressionAccess().getDefaultKeyword_5_0());
+    }
+	otherlv_13=':' 
+    {
+    	newLeafNode(otherlv_13, grammarAccess.getXSwitchExpressionAccess().getColonKeyword_5_1());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getXSwitchExpressionAccess().getDefaultXExpressionParserRuleCall_5_2_0()); 
+	    }
+		lv_default_14_0=ruleXExpression		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getXSwitchExpressionRule());
+	        }
+       		set(
+       			$current, 
+       			"default",
+        		lv_default_14_0, 
+        		"XExpression");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+))?	otherlv_15='}' 
+    {
+    	newLeafNode(otherlv_15, grammarAccess.getXSwitchExpressionAccess().getRightCurlyBracketKeyword_6());
+    }
+)
+;
+
+
+
+
+
+// Entry rule entryRuleXCasePart
+entryRuleXCasePart returns [EObject current=null] 
+	:
+	{ newCompositeNode(grammarAccess.getXCasePartRule()); }
+	 iv_ruleXCasePart=ruleXCasePart 
+	 { $current=$iv_ruleXCasePart.current; } 
+	 EOF 
+;
+
+// Rule XCasePart
+ruleXCasePart returns [EObject current=null] 
+    @init { enterRule(); 
+    }
+    @after { leaveRule(); }:
+((
+    {
+        $current = forceCreateModelElement(
+            grammarAccess.getXCasePartAccess().getXCasePartAction_0(),
+            $current);
+    }
+)(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getXCasePartAccess().getTypeGuardJvmTypeReferenceParserRuleCall_1_0()); 
+	    }
+		lv_typeGuard_1_0=ruleJvmTypeReference		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getXCasePartRule());
+	        }
+       		set(
+       			$current, 
+       			"typeGuard",
+        		lv_typeGuard_1_0, 
+        		"JvmTypeReference");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)?(	otherlv_2='case' 
+    {
+    	newLeafNode(otherlv_2, grammarAccess.getXCasePartAccess().getCaseKeyword_2_0());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getXCasePartAccess().getCaseXExpressionParserRuleCall_2_1_0()); 
+	    }
+		lv_case_3_0=ruleXExpression		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getXCasePartRule());
+	        }
+       		set(
+       			$current, 
+       			"case",
+        		lv_case_3_0, 
+        		"XExpression");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+))?((	otherlv_4=':' 
+    {
+    	newLeafNode(otherlv_4, grammarAccess.getXCasePartAccess().getColonKeyword_3_0_0());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getXCasePartAccess().getThenXExpressionParserRuleCall_3_0_1_0()); 
+	    }
+		lv_then_5_0=ruleXExpression		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getXCasePartRule());
+	        }
+       		set(
+       			$current, 
+       			"then",
+        		lv_then_5_0, 
+        		"XExpression");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+))
+    |(
+(
+		lv_fallThrough_6_0=	',' 
+    {
+        newLeafNode(lv_fallThrough_6_0, grammarAccess.getXCasePartAccess().getFallThroughCommaKeyword_3_1_0());
+    }
+ 
+	    {
+	        if ($current==null) {
+	            $current = createModelElement(grammarAccess.getXCasePartRule());
+	        }
+       		setWithLastConsumed($current, "fallThrough", true, ",");
+	    }
+
+)
+)))
+;
+
+
+
+
+
+// Entry rule entryRuleXForLoopExpression
+entryRuleXForLoopExpression returns [EObject current=null] 
+	:
+	{ newCompositeNode(grammarAccess.getXForLoopExpressionRule()); }
+	 iv_ruleXForLoopExpression=ruleXForLoopExpression 
+	 { $current=$iv_ruleXForLoopExpression.current; } 
+	 EOF 
+;
+
+// Rule XForLoopExpression
+ruleXForLoopExpression returns [EObject current=null] 
+    @init { enterRule(); 
+    }
+    @after { leaveRule(); }:
+(((((
+)	'for' 
+	'(' 
+(
+(
+ruleJvmFormalParameter
+)
+)	':' 
+))=>((
+    {
+        $current = forceCreateModelElement(
+            grammarAccess.getXForLoopExpressionAccess().getXForLoopExpressionAction_0_0_0(),
+            $current);
+    }
+)	otherlv_1='for' 
+    {
+    	newLeafNode(otherlv_1, grammarAccess.getXForLoopExpressionAccess().getForKeyword_0_0_1());
+    }
+	otherlv_2='(' 
+    {
+    	newLeafNode(otherlv_2, grammarAccess.getXForLoopExpressionAccess().getLeftParenthesisKeyword_0_0_2());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getXForLoopExpressionAccess().getDeclaredParamJvmFormalParameterParserRuleCall_0_0_3_0()); 
+	    }
+		lv_declaredParam_3_0=ruleJvmFormalParameter		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getXForLoopExpressionRule());
+	        }
+       		set(
+       			$current, 
+       			"declaredParam",
+        		lv_declaredParam_3_0, 
+        		"JvmFormalParameter");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)	otherlv_4=':' 
+    {
+    	newLeafNode(otherlv_4, grammarAccess.getXForLoopExpressionAccess().getColonKeyword_0_0_4());
+    }
+))(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getXForLoopExpressionAccess().getForExpressionXExpressionParserRuleCall_1_0()); 
+	    }
+		lv_forExpression_5_0=ruleXExpression		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getXForLoopExpressionRule());
+	        }
+       		set(
+       			$current, 
+       			"forExpression",
+        		lv_forExpression_5_0, 
+        		"XExpression");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)	otherlv_6=')' 
+    {
+    	newLeafNode(otherlv_6, grammarAccess.getXForLoopExpressionAccess().getRightParenthesisKeyword_2());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getXForLoopExpressionAccess().getEachExpressionXExpressionParserRuleCall_3_0()); 
+	    }
+		lv_eachExpression_7_0=ruleXExpression		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getXForLoopExpressionRule());
+	        }
+       		set(
+       			$current, 
+       			"eachExpression",
+        		lv_eachExpression_7_0, 
+        		"XExpression");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+))
+;
+
+
+
+
+
+// Entry rule entryRuleXBasicForLoopExpression
+entryRuleXBasicForLoopExpression returns [EObject current=null] 
+	:
+	{ newCompositeNode(grammarAccess.getXBasicForLoopExpressionRule()); }
+	 iv_ruleXBasicForLoopExpression=ruleXBasicForLoopExpression 
+	 { $current=$iv_ruleXBasicForLoopExpression.current; } 
+	 EOF 
+;
+
+// Rule XBasicForLoopExpression
+ruleXBasicForLoopExpression returns [EObject current=null] 
+    @init { enterRule(); 
+    }
+    @after { leaveRule(); }:
+((
+    {
+        $current = forceCreateModelElement(
+            grammarAccess.getXBasicForLoopExpressionAccess().getXBasicForLoopExpressionAction_0(),
+            $current);
+    }
+)	otherlv_1='for' 
+    {
+    	newLeafNode(otherlv_1, grammarAccess.getXBasicForLoopExpressionAccess().getForKeyword_1());
+    }
+	otherlv_2='(' 
+    {
+    	newLeafNode(otherlv_2, grammarAccess.getXBasicForLoopExpressionAccess().getLeftParenthesisKeyword_2());
+    }
+((
+(
+		{ 
+	        newCompositeNode(grammarAccess.getXBasicForLoopExpressionAccess().getInitExpressionsXExpressionOrVarDeclarationParserRuleCall_3_0_0()); 
+	    }
+		lv_initExpressions_3_0=ruleXExpressionOrVarDeclaration		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getXBasicForLoopExpressionRule());
+	        }
+       		add(
+       			$current, 
+       			"initExpressions",
+        		lv_initExpressions_3_0, 
+        		"XExpressionOrVarDeclaration");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)(	otherlv_4=',' 
+    {
+    	newLeafNode(otherlv_4, grammarAccess.getXBasicForLoopExpressionAccess().getCommaKeyword_3_1_0());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getXBasicForLoopExpressionAccess().getInitExpressionsXExpressionOrVarDeclarationParserRuleCall_3_1_1_0()); 
+	    }
+		lv_initExpressions_5_0=ruleXExpressionOrVarDeclaration		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getXBasicForLoopExpressionRule());
+	        }
+       		add(
+       			$current, 
+       			"initExpressions",
+        		lv_initExpressions_5_0, 
+        		"XExpressionOrVarDeclaration");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+))*)?	otherlv_6=';' 
+    {
+    	newLeafNode(otherlv_6, grammarAccess.getXBasicForLoopExpressionAccess().getSemicolonKeyword_4());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getXBasicForLoopExpressionAccess().getExpressionXExpressionParserRuleCall_5_0()); 
+	    }
+		lv_expression_7_0=ruleXExpression		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getXBasicForLoopExpressionRule());
+	        }
+       		set(
+       			$current, 
+       			"expression",
+        		lv_expression_7_0, 
+        		"XExpression");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)?	otherlv_8=';' 
+    {
+    	newLeafNode(otherlv_8, grammarAccess.getXBasicForLoopExpressionAccess().getSemicolonKeyword_6());
+    }
+((
+(
+		{ 
+	        newCompositeNode(grammarAccess.getXBasicForLoopExpressionAccess().getUpdateExpressionsXExpressionParserRuleCall_7_0_0()); 
+	    }
+		lv_updateExpressions_9_0=ruleXExpression		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getXBasicForLoopExpressionRule());
+	        }
+       		add(
+       			$current, 
+       			"updateExpressions",
+        		lv_updateExpressions_9_0, 
+        		"XExpression");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)(	otherlv_10=',' 
+    {
+    	newLeafNode(otherlv_10, grammarAccess.getXBasicForLoopExpressionAccess().getCommaKeyword_7_1_0());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getXBasicForLoopExpressionAccess().getUpdateExpressionsXExpressionParserRuleCall_7_1_1_0()); 
+	    }
+		lv_updateExpressions_11_0=ruleXExpression		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getXBasicForLoopExpressionRule());
+	        }
+       		add(
+       			$current, 
+       			"updateExpressions",
+        		lv_updateExpressions_11_0, 
+        		"XExpression");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+))*)?	otherlv_12=')' 
+    {
+    	newLeafNode(otherlv_12, grammarAccess.getXBasicForLoopExpressionAccess().getRightParenthesisKeyword_8());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getXBasicForLoopExpressionAccess().getEachExpressionXExpressionParserRuleCall_9_0()); 
+	    }
+		lv_eachExpression_13_0=ruleXExpression		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getXBasicForLoopExpressionRule());
+	        }
+       		set(
+       			$current, 
+       			"eachExpression",
+        		lv_eachExpression_13_0, 
+        		"XExpression");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+))
+;
+
+
+
+
+
+// Entry rule entryRuleXWhileExpression
+entryRuleXWhileExpression returns [EObject current=null] 
+	:
+	{ newCompositeNode(grammarAccess.getXWhileExpressionRule()); }
+	 iv_ruleXWhileExpression=ruleXWhileExpression 
+	 { $current=$iv_ruleXWhileExpression.current; } 
+	 EOF 
+;
+
+// Rule XWhileExpression
+ruleXWhileExpression returns [EObject current=null] 
+    @init { enterRule(); 
+    }
+    @after { leaveRule(); }:
+((
+    {
+        $current = forceCreateModelElement(
+            grammarAccess.getXWhileExpressionAccess().getXWhileExpressionAction_0(),
+            $current);
+    }
+)	otherlv_1='while' 
+    {
+    	newLeafNode(otherlv_1, grammarAccess.getXWhileExpressionAccess().getWhileKeyword_1());
+    }
+	otherlv_2='(' 
+    {
+    	newLeafNode(otherlv_2, grammarAccess.getXWhileExpressionAccess().getLeftParenthesisKeyword_2());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getXWhileExpressionAccess().getPredicateXExpressionParserRuleCall_3_0()); 
+	    }
+		lv_predicate_3_0=ruleXExpression		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getXWhileExpressionRule());
+	        }
+       		set(
+       			$current, 
+       			"predicate",
+        		lv_predicate_3_0, 
+        		"XExpression");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)	otherlv_4=')' 
+    {
+    	newLeafNode(otherlv_4, grammarAccess.getXWhileExpressionAccess().getRightParenthesisKeyword_4());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getXWhileExpressionAccess().getBodyXExpressionParserRuleCall_5_0()); 
+	    }
+		lv_body_5_0=ruleXExpression		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getXWhileExpressionRule());
+	        }
+       		set(
+       			$current, 
+       			"body",
+        		lv_body_5_0, 
+        		"XExpression");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+))
+;
+
+
+
+
+
+// Entry rule entryRuleXDoWhileExpression
+entryRuleXDoWhileExpression returns [EObject current=null] 
+	:
+	{ newCompositeNode(grammarAccess.getXDoWhileExpressionRule()); }
+	 iv_ruleXDoWhileExpression=ruleXDoWhileExpression 
+	 { $current=$iv_ruleXDoWhileExpression.current; } 
+	 EOF 
+;
+
+// Rule XDoWhileExpression
+ruleXDoWhileExpression returns [EObject current=null] 
+    @init { enterRule(); 
+    }
+    @after { leaveRule(); }:
+((
+    {
+        $current = forceCreateModelElement(
+            grammarAccess.getXDoWhileExpressionAccess().getXDoWhileExpressionAction_0(),
+            $current);
+    }
+)	otherlv_1='do' 
+    {
+    	newLeafNode(otherlv_1, grammarAccess.getXDoWhileExpressionAccess().getDoKeyword_1());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getXDoWhileExpressionAccess().getBodyXExpressionParserRuleCall_2_0()); 
+	    }
+		lv_body_2_0=ruleXExpression		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getXDoWhileExpressionRule());
+	        }
+       		set(
+       			$current, 
+       			"body",
+        		lv_body_2_0, 
+        		"XExpression");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)	otherlv_3='while' 
+    {
+    	newLeafNode(otherlv_3, grammarAccess.getXDoWhileExpressionAccess().getWhileKeyword_3());
+    }
+	otherlv_4='(' 
+    {
+    	newLeafNode(otherlv_4, grammarAccess.getXDoWhileExpressionAccess().getLeftParenthesisKeyword_4());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getXDoWhileExpressionAccess().getPredicateXExpressionParserRuleCall_5_0()); 
+	    }
+		lv_predicate_5_0=ruleXExpression		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getXDoWhileExpressionRule());
+	        }
+       		set(
+       			$current, 
+       			"predicate",
+        		lv_predicate_5_0, 
+        		"XExpression");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)	otherlv_6=')' 
+    {
+    	newLeafNode(otherlv_6, grammarAccess.getXDoWhileExpressionAccess().getRightParenthesisKeyword_6());
+    }
+)
+;
+
+
+
+
+
+// Entry rule entryRuleXBlockExpression
+entryRuleXBlockExpression returns [EObject current=null] 
+	:
+	{ newCompositeNode(grammarAccess.getXBlockExpressionRule()); }
+	 iv_ruleXBlockExpression=ruleXBlockExpression 
+	 { $current=$iv_ruleXBlockExpression.current; } 
+	 EOF 
+;
+
+// Rule XBlockExpression
+ruleXBlockExpression returns [EObject current=null] 
+    @init { enterRule(); 
+    }
+    @after { leaveRule(); }:
+((
+    {
+        $current = forceCreateModelElement(
+            grammarAccess.getXBlockExpressionAccess().getXBlockExpressionAction_0(),
+            $current);
+    }
+)	otherlv_1='{' 
+    {
+    	newLeafNode(otherlv_1, grammarAccess.getXBlockExpressionAccess().getLeftCurlyBracketKeyword_1());
+    }
+((
+(
+		{ 
+	        newCompositeNode(grammarAccess.getXBlockExpressionAccess().getExpressionsXExpressionOrVarDeclarationParserRuleCall_2_0_0()); 
+	    }
+		lv_expressions_2_0=ruleXExpressionOrVarDeclaration		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getXBlockExpressionRule());
+	        }
+       		add(
+       			$current, 
+       			"expressions",
+        		lv_expressions_2_0, 
+        		"XExpressionOrVarDeclaration");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)(	otherlv_3=';' 
+    {
+    	newLeafNode(otherlv_3, grammarAccess.getXBlockExpressionAccess().getSemicolonKeyword_2_1());
+    }
+)?)*	otherlv_4='}' 
+    {
+    	newLeafNode(otherlv_4, grammarAccess.getXBlockExpressionAccess().getRightCurlyBracketKeyword_3());
+    }
+)
+;
+
+
+
+
+
+// Entry rule entryRuleXExpressionOrVarDeclaration
+entryRuleXExpressionOrVarDeclaration returns [EObject current=null] 
+	:
+	{ newCompositeNode(grammarAccess.getXExpressionOrVarDeclarationRule()); }
+	 iv_ruleXExpressionOrVarDeclaration=ruleXExpressionOrVarDeclaration 
+	 { $current=$iv_ruleXExpressionOrVarDeclaration.current; } 
+	 EOF 
+;
+
+// Rule XExpressionOrVarDeclaration
+ruleXExpressionOrVarDeclaration returns [EObject current=null] 
+    @init { enterRule(); 
+    }
+    @after { leaveRule(); }:
+(
+    { 
+        newCompositeNode(grammarAccess.getXExpressionOrVarDeclarationAccess().getXVariableDeclarationParserRuleCall_0()); 
+    }
+    this_XVariableDeclaration_0=ruleXVariableDeclaration
+    { 
+        $current = $this_XVariableDeclaration_0.current; 
+        afterParserOrEnumRuleCall();
+    }
+
+    |
+    { 
+        newCompositeNode(grammarAccess.getXExpressionOrVarDeclarationAccess().getXExpressionParserRuleCall_1()); 
+    }
+    this_XExpression_1=ruleXExpression
+    { 
+        $current = $this_XExpression_1.current; 
+        afterParserOrEnumRuleCall();
+    }
+)
+;
+
+
+
+
+
+// Entry rule entryRuleXVariableDeclaration
+entryRuleXVariableDeclaration returns [EObject current=null] 
+	:
+	{ newCompositeNode(grammarAccess.getXVariableDeclarationRule()); }
+	 iv_ruleXVariableDeclaration=ruleXVariableDeclaration 
+	 { $current=$iv_ruleXVariableDeclaration.current; } 
+	 EOF 
+;
+
+// Rule XVariableDeclaration
+ruleXVariableDeclaration returns [EObject current=null] 
+    @init { enterRule(); 
+    }
+    @after { leaveRule(); }:
+((
+    {
+        $current = forceCreateModelElement(
+            grammarAccess.getXVariableDeclarationAccess().getXVariableDeclarationAction_0(),
+            $current);
+    }
+)((
+(
+		lv_writeable_1_0=	'var' 
+    {
+        newLeafNode(lv_writeable_1_0, grammarAccess.getXVariableDeclarationAccess().getWriteableVarKeyword_1_0_0());
+    }
+ 
+	    {
+	        if ($current==null) {
+	            $current = createModelElement(grammarAccess.getXVariableDeclarationRule());
+	        }
+       		setWithLastConsumed($current, "writeable", true, "var");
+	    }
+
+)
+)
+    |	otherlv_2='val' 
+    {
+    	newLeafNode(otherlv_2, grammarAccess.getXVariableDeclarationAccess().getValKeyword_1_1());
+    }
+)(((((
+(
+ruleJvmTypeReference
+)
+)(
+(
+ruleValidID
+)
+)))=>((
+(
+		{ 
+	        newCompositeNode(grammarAccess.getXVariableDeclarationAccess().getTypeJvmTypeReferenceParserRuleCall_2_0_0_0_0()); 
+	    }
+		lv_type_3_0=ruleJvmTypeReference		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getXVariableDeclarationRule());
+	        }
+       		set(
+       			$current, 
+       			"type",
+        		lv_type_3_0, 
+        		"JvmTypeReference");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getXVariableDeclarationAccess().getNameValidIDParserRuleCall_2_0_0_1_0()); 
+	    }
+		lv_name_4_0=ruleValidID		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getXVariableDeclarationRule());
+	        }
+       		set(
+       			$current, 
+       			"name",
+        		lv_name_4_0, 
+        		"ValidID");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)))
+    |(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getXVariableDeclarationAccess().getNameValidIDParserRuleCall_2_1_0()); 
+	    }
+		lv_name_5_0=ruleValidID		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getXVariableDeclarationRule());
+	        }
+       		set(
+       			$current, 
+       			"name",
+        		lv_name_5_0, 
+        		"ValidID");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+))(	otherlv_6='=' 
+    {
+    	newLeafNode(otherlv_6, grammarAccess.getXVariableDeclarationAccess().getEqualsSignKeyword_3_0());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getXVariableDeclarationAccess().getRightXExpressionParserRuleCall_3_1_0()); 
+	    }
+		lv_right_7_0=ruleXExpression		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getXVariableDeclarationRule());
+	        }
+       		set(
+       			$current, 
+       			"right",
+        		lv_right_7_0, 
+        		"XExpression");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+))?)
+;
+
+
+
+
+
+// Entry rule entryRuleJvmFormalParameter
+entryRuleJvmFormalParameter returns [EObject current=null] 
+	:
+	{ newCompositeNode(grammarAccess.getJvmFormalParameterRule()); }
+	 iv_ruleJvmFormalParameter=ruleJvmFormalParameter 
+	 { $current=$iv_ruleJvmFormalParameter.current; } 
+	 EOF 
+;
+
+// Rule JvmFormalParameter
+ruleJvmFormalParameter returns [EObject current=null] 
+    @init { enterRule(); 
+    }
+    @after { leaveRule(); }:
+((
+(
+		{ 
+	        newCompositeNode(grammarAccess.getJvmFormalParameterAccess().getParameterTypeJvmTypeReferenceParserRuleCall_0_0()); 
+	    }
+		lv_parameterType_0_0=ruleJvmTypeReference		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getJvmFormalParameterRule());
+	        }
+       		set(
+       			$current, 
+       			"parameterType",
+        		lv_parameterType_0_0, 
+        		"JvmTypeReference");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)?(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getJvmFormalParameterAccess().getNameValidIDParserRuleCall_1_0()); 
+	    }
+		lv_name_1_0=ruleValidID		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getJvmFormalParameterRule());
+	        }
+       		set(
+       			$current, 
+       			"name",
+        		lv_name_1_0, 
+        		"ValidID");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+))
+;
+
+
+
+
+
+// Entry rule entryRuleFullJvmFormalParameter
+entryRuleFullJvmFormalParameter returns [EObject current=null] 
+	:
+	{ newCompositeNode(grammarAccess.getFullJvmFormalParameterRule()); }
+	 iv_ruleFullJvmFormalParameter=ruleFullJvmFormalParameter 
+	 { $current=$iv_ruleFullJvmFormalParameter.current; } 
+	 EOF 
+;
+
+// Rule FullJvmFormalParameter
+ruleFullJvmFormalParameter returns [EObject current=null] 
+    @init { enterRule(); 
+    }
+    @after { leaveRule(); }:
+((
+(
+		{ 
+	        newCompositeNode(grammarAccess.getFullJvmFormalParameterAccess().getParameterTypeJvmTypeReferenceParserRuleCall_0_0()); 
+	    }
+		lv_parameterType_0_0=ruleJvmTypeReference		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getFullJvmFormalParameterRule());
+	        }
+       		set(
+       			$current, 
+       			"parameterType",
+        		lv_parameterType_0_0, 
+        		"JvmTypeReference");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getFullJvmFormalParameterAccess().getNameValidIDParserRuleCall_1_0()); 
+	    }
+		lv_name_1_0=ruleValidID		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getFullJvmFormalParameterRule());
+	        }
+       		set(
+       			$current, 
+       			"name",
+        		lv_name_1_0, 
+        		"ValidID");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+))
+;
+
+
+
+
+
+// Entry rule entryRuleXFeatureCall
+entryRuleXFeatureCall returns [EObject current=null] 
+	:
+	{ newCompositeNode(grammarAccess.getXFeatureCallRule()); }
+	 iv_ruleXFeatureCall=ruleXFeatureCall 
+	 { $current=$iv_ruleXFeatureCall.current; } 
+	 EOF 
+;
+
+// Rule XFeatureCall
+ruleXFeatureCall returns [EObject current=null] 
+    @init { enterRule(); 
+    }
+    @after { leaveRule(); }:
+((
+    {
+        $current = forceCreateModelElement(
+            grammarAccess.getXFeatureCallAccess().getXFeatureCallAction_0(),
+            $current);
+    }
+)(	otherlv_1='<' 
+    {
+    	newLeafNode(otherlv_1, grammarAccess.getXFeatureCallAccess().getLessThanSignKeyword_1_0());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getXFeatureCallAccess().getTypeArgumentsJvmArgumentTypeReferenceParserRuleCall_1_1_0()); 
+	    }
+		lv_typeArguments_2_0=ruleJvmArgumentTypeReference		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getXFeatureCallRule());
+	        }
+       		add(
+       			$current, 
+       			"typeArguments",
+        		lv_typeArguments_2_0, 
+        		"JvmArgumentTypeReference");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)(	otherlv_3=',' 
+    {
+    	newLeafNode(otherlv_3, grammarAccess.getXFeatureCallAccess().getCommaKeyword_1_2_0());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getXFeatureCallAccess().getTypeArgumentsJvmArgumentTypeReferenceParserRuleCall_1_2_1_0()); 
+	    }
+		lv_typeArguments_4_0=ruleJvmArgumentTypeReference		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getXFeatureCallRule());
+	        }
+       		add(
+       			$current, 
+       			"typeArguments",
+        		lv_typeArguments_4_0, 
+        		"JvmArgumentTypeReference");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+))*	otherlv_5='>' 
+    {
+    	newLeafNode(otherlv_5, grammarAccess.getXFeatureCallAccess().getGreaterThanSignKeyword_1_3());
+    }
+)?(
+(
+		{
+			if ($current==null) {
+	            $current = createModelElement(grammarAccess.getXFeatureCallRule());
+	        }
+        }
+		{ 
+	        newCompositeNode(grammarAccess.getXFeatureCallAccess().getFeatureJvmIdentifiableElementCrossReference_2_0()); 
+	    }
+		ruleIdOrSuper		{ 
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)(((
+(
+	'(' 
+ 
+
+)
+)=>
+(
+		lv_explicitOperationCall_7_0=	'(' 
+    {
+        newLeafNode(lv_explicitOperationCall_7_0, grammarAccess.getXFeatureCallAccess().getExplicitOperationCallLeftParenthesisKeyword_3_0_0());
+    }
+ 
+	    {
+	        if ($current==null) {
+	            $current = createModelElement(grammarAccess.getXFeatureCallRule());
+	        }
+       		setWithLastConsumed($current, "explicitOperationCall", true, "(");
+	    }
+
+)
+)(((((
+)((
+(
+ruleJvmFormalParameter
+)
+)(	',' 
+(
+(
+ruleJvmFormalParameter
+)
+))*)?(
+(
+	'|' 
+ 
+
+)
+)))=>
+(
+		{ 
+	        newCompositeNode(grammarAccess.getXFeatureCallAccess().getFeatureCallArgumentsXShortClosureParserRuleCall_3_1_0_0()); 
+	    }
+		lv_featureCallArguments_8_0=ruleXShortClosure		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getXFeatureCallRule());
+	        }
+       		add(
+       			$current, 
+       			"featureCallArguments",
+        		lv_featureCallArguments_8_0, 
+        		"XShortClosure");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)
+    |((
+(
+		{ 
+	        newCompositeNode(grammarAccess.getXFeatureCallAccess().getFeatureCallArgumentsXExpressionParserRuleCall_3_1_1_0_0()); 
+	    }
+		lv_featureCallArguments_9_0=ruleXExpression		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getXFeatureCallRule());
+	        }
+       		add(
+       			$current, 
+       			"featureCallArguments",
+        		lv_featureCallArguments_9_0, 
+        		"XExpression");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)(	otherlv_10=',' 
+    {
+    	newLeafNode(otherlv_10, grammarAccess.getXFeatureCallAccess().getCommaKeyword_3_1_1_1_0());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getXFeatureCallAccess().getFeatureCallArgumentsXExpressionParserRuleCall_3_1_1_1_1_0()); 
+	    }
+		lv_featureCallArguments_11_0=ruleXExpression		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getXFeatureCallRule());
+	        }
+       		add(
+       			$current, 
+       			"featureCallArguments",
+        		lv_featureCallArguments_11_0, 
+        		"XExpression");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+))*))?	otherlv_12=')' 
+    {
+    	newLeafNode(otherlv_12, grammarAccess.getXFeatureCallAccess().getRightParenthesisKeyword_3_2());
+    }
+)?((((
+)	'[' 
+))=>
+(
+		{ 
+	        newCompositeNode(grammarAccess.getXFeatureCallAccess().getFeatureCallArgumentsXClosureParserRuleCall_4_0()); 
+	    }
+		lv_featureCallArguments_13_0=ruleXClosure		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getXFeatureCallRule());
+	        }
+       		add(
+       			$current, 
+       			"featureCallArguments",
+        		lv_featureCallArguments_13_0, 
+        		"XClosure");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)?)
+;
+
+
+
+
+
+// Entry rule entryRuleFeatureCallID
+entryRuleFeatureCallID returns [String current=null] 
+	:
+	{ newCompositeNode(grammarAccess.getFeatureCallIDRule()); } 
+	 iv_ruleFeatureCallID=ruleFeatureCallID 
+	 { $current=$iv_ruleFeatureCallID.current.getText(); }  
+	 EOF 
+;
+
+// Rule FeatureCallID
+ruleFeatureCallID returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] 
+    @init { enterRule(); 
+    }
+    @after { leaveRule(); }:
+(
+    { 
+        newCompositeNode(grammarAccess.getFeatureCallIDAccess().getValidIDParserRuleCall_0()); 
+    }
+    this_ValidID_0=ruleValidID    {
+		$current.merge(this_ValidID_0);
+    }
+
+    { 
+        afterParserOrEnumRuleCall();
+    }
+
+    |
+	kw='extends' 
+    {
+        $current.merge(kw);
+        newLeafNode(kw, grammarAccess.getFeatureCallIDAccess().getExtendsKeyword_1()); 
+    }
+
+    |
+	kw='static' 
+    {
+        $current.merge(kw);
+        newLeafNode(kw, grammarAccess.getFeatureCallIDAccess().getStaticKeyword_2()); 
+    }
+
+    |
+	kw='import' 
+    {
+        $current.merge(kw);
+        newLeafNode(kw, grammarAccess.getFeatureCallIDAccess().getImportKeyword_3()); 
+    }
+
+    |
+	kw='extension' 
+    {
+        $current.merge(kw);
+        newLeafNode(kw, grammarAccess.getFeatureCallIDAccess().getExtensionKeyword_4()); 
+    }
+)
+    ;
+
+
+
+
+
+// Entry rule entryRuleIdOrSuper
+entryRuleIdOrSuper returns [String current=null] 
+	:
+	{ newCompositeNode(grammarAccess.getIdOrSuperRule()); } 
+	 iv_ruleIdOrSuper=ruleIdOrSuper 
+	 { $current=$iv_ruleIdOrSuper.current.getText(); }  
+	 EOF 
+;
+
+// Rule IdOrSuper
+ruleIdOrSuper returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] 
+    @init { enterRule(); 
+    }
+    @after { leaveRule(); }:
+(
+    { 
+        newCompositeNode(grammarAccess.getIdOrSuperAccess().getFeatureCallIDParserRuleCall_0()); 
+    }
+    this_FeatureCallID_0=ruleFeatureCallID    {
+		$current.merge(this_FeatureCallID_0);
+    }
+
+    { 
+        afterParserOrEnumRuleCall();
+    }
+
+    |
+	kw='super' 
+    {
+        $current.merge(kw);
+        newLeafNode(kw, grammarAccess.getIdOrSuperAccess().getSuperKeyword_1()); 
+    }
+)
+    ;
+
+
+
+
+
+// Entry rule entryRuleXConstructorCall
+entryRuleXConstructorCall returns [EObject current=null] 
+	:
+	{ newCompositeNode(grammarAccess.getXConstructorCallRule()); }
+	 iv_ruleXConstructorCall=ruleXConstructorCall 
+	 { $current=$iv_ruleXConstructorCall.current; } 
+	 EOF 
+;
+
+// Rule XConstructorCall
+ruleXConstructorCall returns [EObject current=null] 
+    @init { enterRule(); 
+    }
+    @after { leaveRule(); }:
+((
+    {
+        $current = forceCreateModelElement(
+            grammarAccess.getXConstructorCallAccess().getXConstructorCallAction_0(),
+            $current);
+    }
+)	otherlv_1='new' 
+    {
+    	newLeafNode(otherlv_1, grammarAccess.getXConstructorCallAccess().getNewKeyword_1());
+    }
+(
+(
+		{
+			if ($current==null) {
+	            $current = createModelElement(grammarAccess.getXConstructorCallRule());
+	        }
+        }
+		{ 
+	        newCompositeNode(grammarAccess.getXConstructorCallAccess().getConstructorJvmConstructorCrossReference_2_0()); 
+	    }
+		ruleQualifiedName		{ 
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)(((	'<' 
+)=>	otherlv_3='<' 
+    {
+    	newLeafNode(otherlv_3, grammarAccess.getXConstructorCallAccess().getLessThanSignKeyword_3_0());
+    }
+)(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getXConstructorCallAccess().getTypeArgumentsJvmArgumentTypeReferenceParserRuleCall_3_1_0()); 
+	    }
+		lv_typeArguments_4_0=ruleJvmArgumentTypeReference		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getXConstructorCallRule());
+	        }
+       		add(
+       			$current, 
+       			"typeArguments",
+        		lv_typeArguments_4_0, 
+        		"JvmArgumentTypeReference");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)(	otherlv_5=',' 
+    {
+    	newLeafNode(otherlv_5, grammarAccess.getXConstructorCallAccess().getCommaKeyword_3_2_0());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getXConstructorCallAccess().getTypeArgumentsJvmArgumentTypeReferenceParserRuleCall_3_2_1_0()); 
+	    }
+		lv_typeArguments_6_0=ruleJvmArgumentTypeReference		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getXConstructorCallRule());
+	        }
+       		add(
+       			$current, 
+       			"typeArguments",
+        		lv_typeArguments_6_0, 
+        		"JvmArgumentTypeReference");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+))*	otherlv_7='>' 
+    {
+    	newLeafNode(otherlv_7, grammarAccess.getXConstructorCallAccess().getGreaterThanSignKeyword_3_3());
+    }
+)?(((
+(
+	'(' 
+ 
+
+)
+)=>
+(
+		lv_explicitConstructorCall_8_0=	'(' 
+    {
+        newLeafNode(lv_explicitConstructorCall_8_0, grammarAccess.getXConstructorCallAccess().getExplicitConstructorCallLeftParenthesisKeyword_4_0_0());
+    }
+ 
+	    {
+	        if ($current==null) {
+	            $current = createModelElement(grammarAccess.getXConstructorCallRule());
+	        }
+       		setWithLastConsumed($current, "explicitConstructorCall", true, "(");
+	    }
+
+)
+)(((((
+)((
+(
+ruleJvmFormalParameter
+)
+)(	',' 
+(
+(
+ruleJvmFormalParameter
+)
+))*)?(
+(
+	'|' 
+ 
+
+)
+)))=>
+(
+		{ 
+	        newCompositeNode(grammarAccess.getXConstructorCallAccess().getArgumentsXShortClosureParserRuleCall_4_1_0_0()); 
+	    }
+		lv_arguments_9_0=ruleXShortClosure		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getXConstructorCallRule());
+	        }
+       		add(
+       			$current, 
+       			"arguments",
+        		lv_arguments_9_0, 
+        		"XShortClosure");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)
+    |((
+(
+		{ 
+	        newCompositeNode(grammarAccess.getXConstructorCallAccess().getArgumentsXExpressionParserRuleCall_4_1_1_0_0()); 
+	    }
+		lv_arguments_10_0=ruleXExpression		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getXConstructorCallRule());
+	        }
+       		add(
+       			$current, 
+       			"arguments",
+        		lv_arguments_10_0, 
+        		"XExpression");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)(	otherlv_11=',' 
+    {
+    	newLeafNode(otherlv_11, grammarAccess.getXConstructorCallAccess().getCommaKeyword_4_1_1_1_0());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getXConstructorCallAccess().getArgumentsXExpressionParserRuleCall_4_1_1_1_1_0()); 
+	    }
+		lv_arguments_12_0=ruleXExpression		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getXConstructorCallRule());
+	        }
+       		add(
+       			$current, 
+       			"arguments",
+        		lv_arguments_12_0, 
+        		"XExpression");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+))*))?	otherlv_13=')' 
+    {
+    	newLeafNode(otherlv_13, grammarAccess.getXConstructorCallAccess().getRightParenthesisKeyword_4_2());
+    }
+)?((((
+)	'[' 
+))=>
+(
+		{ 
+	        newCompositeNode(grammarAccess.getXConstructorCallAccess().getArgumentsXClosureParserRuleCall_5_0()); 
+	    }
+		lv_arguments_14_0=ruleXClosure		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getXConstructorCallRule());
+	        }
+       		add(
+       			$current, 
+       			"arguments",
+        		lv_arguments_14_0, 
+        		"XClosure");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)?)
+;
+
+
+
+
+
+// Entry rule entryRuleXBooleanLiteral
+entryRuleXBooleanLiteral returns [EObject current=null] 
+	:
+	{ newCompositeNode(grammarAccess.getXBooleanLiteralRule()); }
+	 iv_ruleXBooleanLiteral=ruleXBooleanLiteral 
+	 { $current=$iv_ruleXBooleanLiteral.current; } 
+	 EOF 
+;
+
+// Rule XBooleanLiteral
+ruleXBooleanLiteral returns [EObject current=null] 
+    @init { enterRule(); 
+    }
+    @after { leaveRule(); }:
+((
+    {
+        $current = forceCreateModelElement(
+            grammarAccess.getXBooleanLiteralAccess().getXBooleanLiteralAction_0(),
+            $current);
+    }
+)(	otherlv_1='false' 
+    {
+    	newLeafNode(otherlv_1, grammarAccess.getXBooleanLiteralAccess().getFalseKeyword_1_0());
+    }
+
+    |(
+(
+		lv_isTrue_2_0=	'true' 
+    {
+        newLeafNode(lv_isTrue_2_0, grammarAccess.getXBooleanLiteralAccess().getIsTrueTrueKeyword_1_1_0());
+    }
+ 
+	    {
+	        if ($current==null) {
+	            $current = createModelElement(grammarAccess.getXBooleanLiteralRule());
+	        }
+       		setWithLastConsumed($current, "isTrue", true, "true");
+	    }
+
+)
+)))
+;
+
+
+
+
+
+// Entry rule entryRuleXNullLiteral
+entryRuleXNullLiteral returns [EObject current=null] 
+	:
+	{ newCompositeNode(grammarAccess.getXNullLiteralRule()); }
+	 iv_ruleXNullLiteral=ruleXNullLiteral 
+	 { $current=$iv_ruleXNullLiteral.current; } 
+	 EOF 
+;
+
+// Rule XNullLiteral
+ruleXNullLiteral returns [EObject current=null] 
+    @init { enterRule(); 
+    }
+    @after { leaveRule(); }:
+((
+    {
+        $current = forceCreateModelElement(
+            grammarAccess.getXNullLiteralAccess().getXNullLiteralAction_0(),
+            $current);
+    }
+)	otherlv_1='null' 
+    {
+    	newLeafNode(otherlv_1, grammarAccess.getXNullLiteralAccess().getNullKeyword_1());
+    }
+)
+;
+
+
+
+
+
+// Entry rule entryRuleXNumberLiteral
+entryRuleXNumberLiteral returns [EObject current=null] 
+	:
+	{ newCompositeNode(grammarAccess.getXNumberLiteralRule()); }
+	 iv_ruleXNumberLiteral=ruleXNumberLiteral 
+	 { $current=$iv_ruleXNumberLiteral.current; } 
+	 EOF 
+;
+
+// Rule XNumberLiteral
+ruleXNumberLiteral returns [EObject current=null] 
+    @init { enterRule(); 
+    }
+    @after { leaveRule(); }:
+((
+    {
+        $current = forceCreateModelElement(
+            grammarAccess.getXNumberLiteralAccess().getXNumberLiteralAction_0(),
+            $current);
+    }
+)(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getXNumberLiteralAccess().getValueNumberParserRuleCall_1_0()); 
+	    }
+		lv_value_1_0=ruleNumber		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getXNumberLiteralRule());
+	        }
+       		set(
+       			$current, 
+       			"value",
+        		lv_value_1_0, 
+        		"Number");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+))
+;
+
+
+
+
+
+// Entry rule entryRuleXStringLiteral
+entryRuleXStringLiteral returns [EObject current=null] 
+	:
+	{ newCompositeNode(grammarAccess.getXStringLiteralRule()); }
+	 iv_ruleXStringLiteral=ruleXStringLiteral 
+	 { $current=$iv_ruleXStringLiteral.current; } 
+	 EOF 
+;
+
+// Rule XStringLiteral
+ruleXStringLiteral returns [EObject current=null] 
+    @init { enterRule(); 
+    }
+    @after { leaveRule(); }:
+((
+    {
+        $current = forceCreateModelElement(
+            grammarAccess.getXStringLiteralAccess().getXStringLiteralAction_0(),
+            $current);
+    }
+)(
+(
+		lv_value_1_0=RULE_STRING
+		{
+			newLeafNode(lv_value_1_0, grammarAccess.getXStringLiteralAccess().getValueSTRINGTerminalRuleCall_1_0()); 
+		}
+		{
+	        if ($current==null) {
+	            $current = createModelElement(grammarAccess.getXStringLiteralRule());
+	        }
+       		setWithLastConsumed(
+       			$current, 
+       			"value",
+        		lv_value_1_0, 
+        		"STRING");
+	    }
+
+)
+))
+;
+
+
+
+
+
+// Entry rule entryRuleXTypeLiteral
+entryRuleXTypeLiteral returns [EObject current=null] 
+	:
+	{ newCompositeNode(grammarAccess.getXTypeLiteralRule()); }
+	 iv_ruleXTypeLiteral=ruleXTypeLiteral 
+	 { $current=$iv_ruleXTypeLiteral.current; } 
+	 EOF 
+;
+
+// Rule XTypeLiteral
+ruleXTypeLiteral returns [EObject current=null] 
+    @init { enterRule(); 
+    }
+    @after { leaveRule(); }:
+((
+    {
+        $current = forceCreateModelElement(
+            grammarAccess.getXTypeLiteralAccess().getXTypeLiteralAction_0(),
+            $current);
+    }
+)	otherlv_1='typeof' 
+    {
+    	newLeafNode(otherlv_1, grammarAccess.getXTypeLiteralAccess().getTypeofKeyword_1());
+    }
+	otherlv_2='(' 
+    {
+    	newLeafNode(otherlv_2, grammarAccess.getXTypeLiteralAccess().getLeftParenthesisKeyword_2());
+    }
+(
+(
+		{
+			if ($current==null) {
+	            $current = createModelElement(grammarAccess.getXTypeLiteralRule());
+	        }
+        }
+		{ 
+	        newCompositeNode(grammarAccess.getXTypeLiteralAccess().getTypeJvmTypeCrossReference_3_0()); 
+	    }
+		ruleQualifiedName		{ 
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getXTypeLiteralAccess().getArrayDimensionsArrayBracketsParserRuleCall_4_0()); 
+	    }
+		lv_arrayDimensions_4_0=ruleArrayBrackets		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getXTypeLiteralRule());
+	        }
+       		add(
+       			$current, 
+       			"arrayDimensions",
+        		lv_arrayDimensions_4_0, 
+        		"ArrayBrackets");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)*	otherlv_5=')' 
+    {
+    	newLeafNode(otherlv_5, grammarAccess.getXTypeLiteralAccess().getRightParenthesisKeyword_5());
+    }
+)
+;
+
+
+
+
+
+// Entry rule entryRuleXThrowExpression
+entryRuleXThrowExpression returns [EObject current=null] 
+	:
+	{ newCompositeNode(grammarAccess.getXThrowExpressionRule()); }
+	 iv_ruleXThrowExpression=ruleXThrowExpression 
+	 { $current=$iv_ruleXThrowExpression.current; } 
+	 EOF 
+;
+
+// Rule XThrowExpression
+ruleXThrowExpression returns [EObject current=null] 
+    @init { enterRule(); 
+    }
+    @after { leaveRule(); }:
+((
+    {
+        $current = forceCreateModelElement(
+            grammarAccess.getXThrowExpressionAccess().getXThrowExpressionAction_0(),
+            $current);
+    }
+)	otherlv_1='throw' 
+    {
+    	newLeafNode(otherlv_1, grammarAccess.getXThrowExpressionAccess().getThrowKeyword_1());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getXThrowExpressionAccess().getExpressionXExpressionParserRuleCall_2_0()); 
+	    }
+		lv_expression_2_0=ruleXExpression		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getXThrowExpressionRule());
+	        }
+       		set(
+       			$current, 
+       			"expression",
+        		lv_expression_2_0, 
+        		"XExpression");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+))
+;
+
+
+
+
+
+// Entry rule entryRuleXReturnExpression
+entryRuleXReturnExpression returns [EObject current=null] 
+	:
+	{ newCompositeNode(grammarAccess.getXReturnExpressionRule()); }
+	 iv_ruleXReturnExpression=ruleXReturnExpression 
+	 { $current=$iv_ruleXReturnExpression.current; } 
+	 EOF 
+;
+
+// Rule XReturnExpression
+ruleXReturnExpression returns [EObject current=null] 
+    @init { enterRule(); 
+    }
+    @after { leaveRule(); }:
+((
+    {
+        $current = forceCreateModelElement(
+            grammarAccess.getXReturnExpressionAccess().getXReturnExpressionAction_0(),
+            $current);
+    }
+)	otherlv_1='return' 
+    {
+    	newLeafNode(otherlv_1, grammarAccess.getXReturnExpressionAccess().getReturnKeyword_1());
+    }
+((	'extends' 
+ | 	'static' 
+ | 	'import' 
+ | 	'extension' 
+ | 	'!' 
+ | 	'-' 
+ | 	'+' 
+ | 	'new' 
+ | 	'{' 
+ | 	'switch' 
+ | 	'synchronized' 
+ | 	'<' 
+ | 	'super' 
+ | 	'#' 
+ | 	'[' 
+ | 	'false' 
+ | 	'true' 
+ | 	'null' 
+ | 	'typeof' 
+ | 	'if' 
+ | 	'for' 
+ | 	'while' 
+ | 	'do' 
+ | 	'throw' 
+ | 	'return' 
+ | 	'try' 
+ | 	'(' 
+ | 	RULE_ID | 	RULE_HEX | 	RULE_INT | 	RULE_DECIMAL | 	RULE_STRING)=>
+(
+		{ 
+	        newCompositeNode(grammarAccess.getXReturnExpressionAccess().getExpressionXExpressionParserRuleCall_2_0()); 
+	    }
+		lv_expression_2_0=ruleXExpression		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getXReturnExpressionRule());
+	        }
+       		set(
+       			$current, 
+       			"expression",
+        		lv_expression_2_0, 
+        		"XExpression");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)?)
+;
+
+
+
+
+
+// Entry rule entryRuleXTryCatchFinallyExpression
+entryRuleXTryCatchFinallyExpression returns [EObject current=null] 
+	:
+	{ newCompositeNode(grammarAccess.getXTryCatchFinallyExpressionRule()); }
+	 iv_ruleXTryCatchFinallyExpression=ruleXTryCatchFinallyExpression 
+	 { $current=$iv_ruleXTryCatchFinallyExpression.current; } 
+	 EOF 
+;
+
+// Rule XTryCatchFinallyExpression
+ruleXTryCatchFinallyExpression returns [EObject current=null] 
+    @init { enterRule(); 
+    }
+    @after { leaveRule(); }:
+((
+    {
+        $current = forceCreateModelElement(
+            grammarAccess.getXTryCatchFinallyExpressionAccess().getXTryCatchFinallyExpressionAction_0(),
+            $current);
+    }
+)	otherlv_1='try' 
+    {
+    	newLeafNode(otherlv_1, grammarAccess.getXTryCatchFinallyExpressionAccess().getTryKeyword_1());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getXTryCatchFinallyExpressionAccess().getExpressionXExpressionParserRuleCall_2_0()); 
+	    }
+		lv_expression_2_0=ruleXExpression		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getXTryCatchFinallyExpressionRule());
+	        }
+       		set(
+       			$current, 
+       			"expression",
+        		lv_expression_2_0, 
+        		"XExpression");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)((((	'catch' 
+)=>
+(
+		{ 
+	        newCompositeNode(grammarAccess.getXTryCatchFinallyExpressionAccess().getCatchClausesXCatchClauseParserRuleCall_3_0_0_0()); 
+	    }
+		lv_catchClauses_3_0=ruleXCatchClause		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getXTryCatchFinallyExpressionRule());
+	        }
+       		add(
+       			$current, 
+       			"catchClauses",
+        		lv_catchClauses_3_0, 
+        		"XCatchClause");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)+(((	'finally' 
+)=>	otherlv_4='finally' 
+    {
+    	newLeafNode(otherlv_4, grammarAccess.getXTryCatchFinallyExpressionAccess().getFinallyKeyword_3_0_1_0());
+    }
+)(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getXTryCatchFinallyExpressionAccess().getFinallyExpressionXExpressionParserRuleCall_3_0_1_1_0()); 
+	    }
+		lv_finallyExpression_5_0=ruleXExpression		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getXTryCatchFinallyExpressionRule());
+	        }
+       		set(
+       			$current, 
+       			"finallyExpression",
+        		lv_finallyExpression_5_0, 
+        		"XExpression");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+))?)
+    |(	otherlv_6='finally' 
+    {
+    	newLeafNode(otherlv_6, grammarAccess.getXTryCatchFinallyExpressionAccess().getFinallyKeyword_3_1_0());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getXTryCatchFinallyExpressionAccess().getFinallyExpressionXExpressionParserRuleCall_3_1_1_0()); 
+	    }
+		lv_finallyExpression_7_0=ruleXExpression		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getXTryCatchFinallyExpressionRule());
+	        }
+       		set(
+       			$current, 
+       			"finallyExpression",
+        		lv_finallyExpression_7_0, 
+        		"XExpression");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+))))
+;
+
+
+
+
+
+// Entry rule entryRuleXSynchronizedExpression
+entryRuleXSynchronizedExpression returns [EObject current=null] 
+	:
+	{ newCompositeNode(grammarAccess.getXSynchronizedExpressionRule()); }
+	 iv_ruleXSynchronizedExpression=ruleXSynchronizedExpression 
+	 { $current=$iv_ruleXSynchronizedExpression.current; } 
+	 EOF 
+;
+
+// Rule XSynchronizedExpression
+ruleXSynchronizedExpression returns [EObject current=null] 
+    @init { enterRule(); 
+    }
+    @after { leaveRule(); }:
+(((((
+)	'synchronized' 
+	'(' 
+))=>((
+    {
+        $current = forceCreateModelElement(
+            grammarAccess.getXSynchronizedExpressionAccess().getXSynchronizedExpressionAction_0_0_0(),
+            $current);
+    }
+)	otherlv_1='synchronized' 
+    {
+    	newLeafNode(otherlv_1, grammarAccess.getXSynchronizedExpressionAccess().getSynchronizedKeyword_0_0_1());
+    }
+	otherlv_2='(' 
+    {
+    	newLeafNode(otherlv_2, grammarAccess.getXSynchronizedExpressionAccess().getLeftParenthesisKeyword_0_0_2());
+    }
+))(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getXSynchronizedExpressionAccess().getParamXExpressionParserRuleCall_1_0()); 
+	    }
+		lv_param_3_0=ruleXExpression		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getXSynchronizedExpressionRule());
+	        }
+       		set(
+       			$current, 
+       			"param",
+        		lv_param_3_0, 
+        		"XExpression");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)	otherlv_4=')' 
+    {
+    	newLeafNode(otherlv_4, grammarAccess.getXSynchronizedExpressionAccess().getRightParenthesisKeyword_2());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getXSynchronizedExpressionAccess().getExpressionXExpressionParserRuleCall_3_0()); 
+	    }
+		lv_expression_5_0=ruleXExpression		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getXSynchronizedExpressionRule());
+	        }
+       		set(
+       			$current, 
+       			"expression",
+        		lv_expression_5_0, 
+        		"XExpression");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+))
+;
+
+
+
+
+
+// Entry rule entryRuleXCatchClause
+entryRuleXCatchClause returns [EObject current=null] 
+	:
+	{ newCompositeNode(grammarAccess.getXCatchClauseRule()); }
+	 iv_ruleXCatchClause=ruleXCatchClause 
+	 { $current=$iv_ruleXCatchClause.current; } 
+	 EOF 
+;
+
+// Rule XCatchClause
+ruleXCatchClause returns [EObject current=null] 
+    @init { enterRule(); 
+    }
+    @after { leaveRule(); }:
+(((	'catch' 
+)=>	otherlv_0='catch' 
+    {
+    	newLeafNode(otherlv_0, grammarAccess.getXCatchClauseAccess().getCatchKeyword_0());
+    }
+)	otherlv_1='(' 
+    {
+    	newLeafNode(otherlv_1, grammarAccess.getXCatchClauseAccess().getLeftParenthesisKeyword_1());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getXCatchClauseAccess().getDeclaredParamFullJvmFormalParameterParserRuleCall_2_0()); 
+	    }
+		lv_declaredParam_2_0=ruleFullJvmFormalParameter		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getXCatchClauseRule());
+	        }
+       		set(
+       			$current, 
+       			"declaredParam",
+        		lv_declaredParam_2_0, 
+        		"FullJvmFormalParameter");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)	otherlv_3=')' 
+    {
+    	newLeafNode(otherlv_3, grammarAccess.getXCatchClauseAccess().getRightParenthesisKeyword_3());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getXCatchClauseAccess().getExpressionXExpressionParserRuleCall_4_0()); 
+	    }
+		lv_expression_4_0=ruleXExpression		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getXCatchClauseRule());
+	        }
+       		set(
+       			$current, 
+       			"expression",
+        		lv_expression_4_0, 
+        		"XExpression");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+))
+;
+
+
+
+
+
+// Entry rule entryRuleNumber
+entryRuleNumber returns [String current=null] 
+	@init { 
+		HiddenTokens myHiddenTokenState = ((XtextTokenStream)input).setHiddenTokens();
+	}
+	:
+	{ newCompositeNode(grammarAccess.getNumberRule()); } 
+	 iv_ruleNumber=ruleNumber 
+	 { $current=$iv_ruleNumber.current.getText(); }  
+	 EOF 
+;
+finally {
+	myHiddenTokenState.restore();
+}
+
+// Rule Number
+ruleNumber returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] 
+    @init { enterRule(); 
+		HiddenTokens myHiddenTokenState = ((XtextTokenStream)input).setHiddenTokens();
+    }
+    @after { leaveRule(); }:
+(    this_HEX_0=RULE_HEX    {
+		$current.merge(this_HEX_0);
+    }
+
+    { 
+    newLeafNode(this_HEX_0, grammarAccess.getNumberAccess().getHEXTerminalRuleCall_0()); 
+    }
+
+    |((    this_INT_1=RULE_INT    {
+		$current.merge(this_INT_1);
+    }
+
+    { 
+    newLeafNode(this_INT_1, grammarAccess.getNumberAccess().getINTTerminalRuleCall_1_0_0()); 
+    }
+
+    |    this_DECIMAL_2=RULE_DECIMAL    {
+		$current.merge(this_DECIMAL_2);
+    }
+
+    { 
+    newLeafNode(this_DECIMAL_2, grammarAccess.getNumberAccess().getDECIMALTerminalRuleCall_1_0_1()); 
+    }
+)(
+	kw='.' 
+    {
+        $current.merge(kw);
+        newLeafNode(kw, grammarAccess.getNumberAccess().getFullStopKeyword_1_1_0()); 
+    }
+(    this_INT_4=RULE_INT    {
+		$current.merge(this_INT_4);
+    }
+
+    { 
+    newLeafNode(this_INT_4, grammarAccess.getNumberAccess().getINTTerminalRuleCall_1_1_1_0()); 
+    }
+
+    |    this_DECIMAL_5=RULE_DECIMAL    {
+		$current.merge(this_DECIMAL_5);
+    }
+
+    { 
+    newLeafNode(this_DECIMAL_5, grammarAccess.getNumberAccess().getDECIMALTerminalRuleCall_1_1_1_1()); 
+    }
+))?))
+    ;
+finally {
+	myHiddenTokenState.restore();
+}
+
+
+
+
+
+
+
+// Entry rule entryRuleJvmTypeReference
+entryRuleJvmTypeReference returns [EObject current=null] 
+	:
+	{ newCompositeNode(grammarAccess.getJvmTypeReferenceRule()); }
+	 iv_ruleJvmTypeReference=ruleJvmTypeReference 
+	 { $current=$iv_ruleJvmTypeReference.current; } 
+	 EOF 
+;
+
+// Rule JvmTypeReference
+ruleJvmTypeReference returns [EObject current=null] 
+    @init { enterRule(); 
+    }
+    @after { leaveRule(); }:
+((
+    { 
+        newCompositeNode(grammarAccess.getJvmTypeReferenceAccess().getJvmParameterizedTypeReferenceParserRuleCall_0_0()); 
+    }
+    this_JvmParameterizedTypeReference_0=ruleJvmParameterizedTypeReference
+    { 
+        $current = $this_JvmParameterizedTypeReference_0.current; 
+        afterParserOrEnumRuleCall();
+    }
+((((
+)	ruleArrayBrackets))=>((
+    {
+        $current = forceCreateModelElementAndSet(
+            grammarAccess.getJvmTypeReferenceAccess().getJvmGenericArrayTypeReferenceComponentTypeAction_0_1_0_0(),
+            $current);
+    }
+)
+    { 
+        newCompositeNode(grammarAccess.getJvmTypeReferenceAccess().getArrayBracketsParserRuleCall_0_1_0_1()); 
+    }
+ruleArrayBrackets
+    { 
+        afterParserOrEnumRuleCall();
+    }
+))*)
+    |
+    { 
+        newCompositeNode(grammarAccess.getJvmTypeReferenceAccess().getXFunctionTypeRefParserRuleCall_1()); 
+    }
+    this_XFunctionTypeRef_3=ruleXFunctionTypeRef
+    { 
+        $current = $this_XFunctionTypeRef_3.current; 
+        afterParserOrEnumRuleCall();
+    }
+)
+;
+
+
+
+
+
+// Entry rule entryRuleArrayBrackets
+entryRuleArrayBrackets returns [String current=null] 
+	:
+	{ newCompositeNode(grammarAccess.getArrayBracketsRule()); } 
+	 iv_ruleArrayBrackets=ruleArrayBrackets 
+	 { $current=$iv_ruleArrayBrackets.current.getText(); }  
+	 EOF 
+;
+
+// Rule ArrayBrackets
+ruleArrayBrackets returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] 
+    @init { enterRule(); 
+    }
+    @after { leaveRule(); }:
+(
+	kw='[' 
+    {
+        $current.merge(kw);
+        newLeafNode(kw, grammarAccess.getArrayBracketsAccess().getLeftSquareBracketKeyword_0()); 
+    }
+
+	kw=']' 
+    {
+        $current.merge(kw);
+        newLeafNode(kw, grammarAccess.getArrayBracketsAccess().getRightSquareBracketKeyword_1()); 
+    }
+)
+    ;
+
+
+
+
+
+// Entry rule entryRuleXFunctionTypeRef
+entryRuleXFunctionTypeRef returns [EObject current=null] 
+	:
+	{ newCompositeNode(grammarAccess.getXFunctionTypeRefRule()); }
+	 iv_ruleXFunctionTypeRef=ruleXFunctionTypeRef 
+	 { $current=$iv_ruleXFunctionTypeRef.current; } 
+	 EOF 
+;
+
+// Rule XFunctionTypeRef
+ruleXFunctionTypeRef returns [EObject current=null] 
+    @init { enterRule(); 
+    }
+    @after { leaveRule(); }:
+((	otherlv_0='(' 
+    {
+    	newLeafNode(otherlv_0, grammarAccess.getXFunctionTypeRefAccess().getLeftParenthesisKeyword_0_0());
+    }
+((
+(
+		{ 
+	        newCompositeNode(grammarAccess.getXFunctionTypeRefAccess().getParamTypesJvmTypeReferenceParserRuleCall_0_1_0_0()); 
+	    }
+		lv_paramTypes_1_0=ruleJvmTypeReference		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getXFunctionTypeRefRule());
+	        }
+       		add(
+       			$current, 
+       			"paramTypes",
+        		lv_paramTypes_1_0, 
+        		"JvmTypeReference");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)(	otherlv_2=',' 
+    {
+    	newLeafNode(otherlv_2, grammarAccess.getXFunctionTypeRefAccess().getCommaKeyword_0_1_1_0());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getXFunctionTypeRefAccess().getParamTypesJvmTypeReferenceParserRuleCall_0_1_1_1_0()); 
+	    }
+		lv_paramTypes_3_0=ruleJvmTypeReference		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getXFunctionTypeRefRule());
+	        }
+       		add(
+       			$current, 
+       			"paramTypes",
+        		lv_paramTypes_3_0, 
+        		"JvmTypeReference");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+))*)?	otherlv_4=')' 
+    {
+    	newLeafNode(otherlv_4, grammarAccess.getXFunctionTypeRefAccess().getRightParenthesisKeyword_0_2());
+    }
+)?	otherlv_5='=>' 
+    {
+    	newLeafNode(otherlv_5, grammarAccess.getXFunctionTypeRefAccess().getEqualsSignGreaterThanSignKeyword_1());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getXFunctionTypeRefAccess().getReturnTypeJvmTypeReferenceParserRuleCall_2_0()); 
+	    }
+		lv_returnType_6_0=ruleJvmTypeReference		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getXFunctionTypeRefRule());
+	        }
+       		set(
+       			$current, 
+       			"returnType",
+        		lv_returnType_6_0, 
+        		"JvmTypeReference");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+))
+;
+
+
+
+
+
+// Entry rule entryRuleJvmParameterizedTypeReference
+entryRuleJvmParameterizedTypeReference returns [EObject current=null] 
+	:
+	{ newCompositeNode(grammarAccess.getJvmParameterizedTypeReferenceRule()); }
+	 iv_ruleJvmParameterizedTypeReference=ruleJvmParameterizedTypeReference 
+	 { $current=$iv_ruleJvmParameterizedTypeReference.current; } 
+	 EOF 
+;
+
+// Rule JvmParameterizedTypeReference
+ruleJvmParameterizedTypeReference returns [EObject current=null] 
+    @init { enterRule(); 
+    }
+    @after { leaveRule(); }:
+((
+(
+		{
+			if ($current==null) {
+	            $current = createModelElement(grammarAccess.getJvmParameterizedTypeReferenceRule());
+	        }
+        }
+		{ 
+	        newCompositeNode(grammarAccess.getJvmParameterizedTypeReferenceAccess().getTypeJvmTypeCrossReference_0_0()); 
+	    }
+		ruleQualifiedName		{ 
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)(((	'<' 
+)=>	otherlv_1='<' 
+    {
+    	newLeafNode(otherlv_1, grammarAccess.getJvmParameterizedTypeReferenceAccess().getLessThanSignKeyword_1_0());
+    }
+)(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getJvmParameterizedTypeReferenceAccess().getArgumentsJvmArgumentTypeReferenceParserRuleCall_1_1_0()); 
+	    }
+		lv_arguments_2_0=ruleJvmArgumentTypeReference		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getJvmParameterizedTypeReferenceRule());
+	        }
+       		add(
+       			$current, 
+       			"arguments",
+        		lv_arguments_2_0, 
+        		"JvmArgumentTypeReference");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)(	otherlv_3=',' 
+    {
+    	newLeafNode(otherlv_3, grammarAccess.getJvmParameterizedTypeReferenceAccess().getCommaKeyword_1_2_0());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getJvmParameterizedTypeReferenceAccess().getArgumentsJvmArgumentTypeReferenceParserRuleCall_1_2_1_0()); 
+	    }
+		lv_arguments_4_0=ruleJvmArgumentTypeReference		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getJvmParameterizedTypeReferenceRule());
+	        }
+       		add(
+       			$current, 
+       			"arguments",
+        		lv_arguments_4_0, 
+        		"JvmArgumentTypeReference");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+))*	otherlv_5='>' 
+    {
+    	newLeafNode(otherlv_5, grammarAccess.getJvmParameterizedTypeReferenceAccess().getGreaterThanSignKeyword_1_3());
+    }
+(((((
+)	'.' 
+))=>((
+    {
+        $current = forceCreateModelElementAndSet(
+            grammarAccess.getJvmParameterizedTypeReferenceAccess().getJvmInnerTypeReferenceOuterAction_1_4_0_0_0(),
+            $current);
+    }
+)	otherlv_7='.' 
+    {
+    	newLeafNode(otherlv_7, grammarAccess.getJvmParameterizedTypeReferenceAccess().getFullStopKeyword_1_4_0_0_1());
+    }
+))(
+(
+		{
+			if ($current==null) {
+	            $current = createModelElement(grammarAccess.getJvmParameterizedTypeReferenceRule());
+	        }
+        }
+		{ 
+	        newCompositeNode(grammarAccess.getJvmParameterizedTypeReferenceAccess().getTypeJvmTypeCrossReference_1_4_1_0()); 
+	    }
+		ruleValidID		{ 
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)(((	'<' 
+)=>	otherlv_9='<' 
+    {
+    	newLeafNode(otherlv_9, grammarAccess.getJvmParameterizedTypeReferenceAccess().getLessThanSignKeyword_1_4_2_0());
+    }
+)(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getJvmParameterizedTypeReferenceAccess().getArgumentsJvmArgumentTypeReferenceParserRuleCall_1_4_2_1_0()); 
+	    }
+		lv_arguments_10_0=ruleJvmArgumentTypeReference		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getJvmParameterizedTypeReferenceRule());
+	        }
+       		add(
+       			$current, 
+       			"arguments",
+        		lv_arguments_10_0, 
+        		"JvmArgumentTypeReference");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)(	otherlv_11=',' 
+    {
+    	newLeafNode(otherlv_11, grammarAccess.getJvmParameterizedTypeReferenceAccess().getCommaKeyword_1_4_2_2_0());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getJvmParameterizedTypeReferenceAccess().getArgumentsJvmArgumentTypeReferenceParserRuleCall_1_4_2_2_1_0()); 
+	    }
+		lv_arguments_12_0=ruleJvmArgumentTypeReference		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getJvmParameterizedTypeReferenceRule());
+	        }
+       		add(
+       			$current, 
+       			"arguments",
+        		lv_arguments_12_0, 
+        		"JvmArgumentTypeReference");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+))*	otherlv_13='>' 
+    {
+    	newLeafNode(otherlv_13, grammarAccess.getJvmParameterizedTypeReferenceAccess().getGreaterThanSignKeyword_1_4_2_3());
+    }
+)?)*)?)
+;
+
+
+
+
+
+// Entry rule entryRuleJvmArgumentTypeReference
+entryRuleJvmArgumentTypeReference returns [EObject current=null] 
+	:
+	{ newCompositeNode(grammarAccess.getJvmArgumentTypeReferenceRule()); }
+	 iv_ruleJvmArgumentTypeReference=ruleJvmArgumentTypeReference 
+	 { $current=$iv_ruleJvmArgumentTypeReference.current; } 
+	 EOF 
+;
+
+// Rule JvmArgumentTypeReference
+ruleJvmArgumentTypeReference returns [EObject current=null] 
+    @init { enterRule(); 
+    }
+    @after { leaveRule(); }:
+(
+    { 
+        newCompositeNode(grammarAccess.getJvmArgumentTypeReferenceAccess().getJvmTypeReferenceParserRuleCall_0()); 
+    }
+    this_JvmTypeReference_0=ruleJvmTypeReference
+    { 
+        $current = $this_JvmTypeReference_0.current; 
+        afterParserOrEnumRuleCall();
+    }
+
+    |
+    { 
+        newCompositeNode(grammarAccess.getJvmArgumentTypeReferenceAccess().getJvmWildcardTypeReferenceParserRuleCall_1()); 
+    }
+    this_JvmWildcardTypeReference_1=ruleJvmWildcardTypeReference
+    { 
+        $current = $this_JvmWildcardTypeReference_1.current; 
+        afterParserOrEnumRuleCall();
+    }
+)
+;
+
+
+
+
+
+// Entry rule entryRuleJvmWildcardTypeReference
+entryRuleJvmWildcardTypeReference returns [EObject current=null] 
+	:
+	{ newCompositeNode(grammarAccess.getJvmWildcardTypeReferenceRule()); }
+	 iv_ruleJvmWildcardTypeReference=ruleJvmWildcardTypeReference 
+	 { $current=$iv_ruleJvmWildcardTypeReference.current; } 
+	 EOF 
+;
+
+// Rule JvmWildcardTypeReference
+ruleJvmWildcardTypeReference returns [EObject current=null] 
+    @init { enterRule(); 
+    }
+    @after { leaveRule(); }:
+((
+    {
+        $current = forceCreateModelElement(
+            grammarAccess.getJvmWildcardTypeReferenceAccess().getJvmWildcardTypeReferenceAction_0(),
+            $current);
+    }
+)	otherlv_1='?' 
+    {
+    	newLeafNode(otherlv_1, grammarAccess.getJvmWildcardTypeReferenceAccess().getQuestionMarkKeyword_1());
+    }
+(((
+(
+		{ 
+	        newCompositeNode(grammarAccess.getJvmWildcardTypeReferenceAccess().getConstraintsJvmUpperBoundParserRuleCall_2_0_0_0()); 
+	    }
+		lv_constraints_2_0=ruleJvmUpperBound		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getJvmWildcardTypeReferenceRule());
+	        }
+       		add(
+       			$current, 
+       			"constraints",
+        		lv_constraints_2_0, 
+        		"JvmUpperBound");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getJvmWildcardTypeReferenceAccess().getConstraintsJvmUpperBoundAndedParserRuleCall_2_0_1_0()); 
+	    }
+		lv_constraints_3_0=ruleJvmUpperBoundAnded		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getJvmWildcardTypeReferenceRule());
+	        }
+       		add(
+       			$current, 
+       			"constraints",
+        		lv_constraints_3_0, 
+        		"JvmUpperBoundAnded");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)*)
+    |((
+(
+		{ 
+	        newCompositeNode(grammarAccess.getJvmWildcardTypeReferenceAccess().getConstraintsJvmLowerBoundParserRuleCall_2_1_0_0()); 
+	    }
+		lv_constraints_4_0=ruleJvmLowerBound		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getJvmWildcardTypeReferenceRule());
+	        }
+       		add(
+       			$current, 
+       			"constraints",
+        		lv_constraints_4_0, 
+        		"JvmLowerBound");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getJvmWildcardTypeReferenceAccess().getConstraintsJvmLowerBoundAndedParserRuleCall_2_1_1_0()); 
+	    }
+		lv_constraints_5_0=ruleJvmLowerBoundAnded		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getJvmWildcardTypeReferenceRule());
+	        }
+       		add(
+       			$current, 
+       			"constraints",
+        		lv_constraints_5_0, 
+        		"JvmLowerBoundAnded");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)*))?)
+;
+
+
+
+
+
+// Entry rule entryRuleJvmUpperBound
+entryRuleJvmUpperBound returns [EObject current=null] 
+	:
+	{ newCompositeNode(grammarAccess.getJvmUpperBoundRule()); }
+	 iv_ruleJvmUpperBound=ruleJvmUpperBound 
+	 { $current=$iv_ruleJvmUpperBound.current; } 
+	 EOF 
+;
+
+// Rule JvmUpperBound
+ruleJvmUpperBound returns [EObject current=null] 
+    @init { enterRule(); 
+    }
+    @after { leaveRule(); }:
+(	otherlv_0='extends' 
+    {
+    	newLeafNode(otherlv_0, grammarAccess.getJvmUpperBoundAccess().getExtendsKeyword_0());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getJvmUpperBoundAccess().getTypeReferenceJvmTypeReferenceParserRuleCall_1_0()); 
+	    }
+		lv_typeReference_1_0=ruleJvmTypeReference		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getJvmUpperBoundRule());
+	        }
+       		set(
+       			$current, 
+       			"typeReference",
+        		lv_typeReference_1_0, 
+        		"JvmTypeReference");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+))
+;
+
+
+
+
+
+// Entry rule entryRuleJvmUpperBoundAnded
+entryRuleJvmUpperBoundAnded returns [EObject current=null] 
+	:
+	{ newCompositeNode(grammarAccess.getJvmUpperBoundAndedRule()); }
+	 iv_ruleJvmUpperBoundAnded=ruleJvmUpperBoundAnded 
+	 { $current=$iv_ruleJvmUpperBoundAnded.current; } 
+	 EOF 
+;
+
+// Rule JvmUpperBoundAnded
+ruleJvmUpperBoundAnded returns [EObject current=null] 
+    @init { enterRule(); 
+    }
+    @after { leaveRule(); }:
+(	otherlv_0='&' 
+    {
+    	newLeafNode(otherlv_0, grammarAccess.getJvmUpperBoundAndedAccess().getAmpersandKeyword_0());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getJvmUpperBoundAndedAccess().getTypeReferenceJvmTypeReferenceParserRuleCall_1_0()); 
+	    }
+		lv_typeReference_1_0=ruleJvmTypeReference		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getJvmUpperBoundAndedRule());
+	        }
+       		set(
+       			$current, 
+       			"typeReference",
+        		lv_typeReference_1_0, 
+        		"JvmTypeReference");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+))
+;
+
+
+
+
+
+// Entry rule entryRuleJvmLowerBound
+entryRuleJvmLowerBound returns [EObject current=null] 
+	:
+	{ newCompositeNode(grammarAccess.getJvmLowerBoundRule()); }
+	 iv_ruleJvmLowerBound=ruleJvmLowerBound 
+	 { $current=$iv_ruleJvmLowerBound.current; } 
+	 EOF 
+;
+
+// Rule JvmLowerBound
+ruleJvmLowerBound returns [EObject current=null] 
+    @init { enterRule(); 
+    }
+    @after { leaveRule(); }:
+(	otherlv_0='super' 
+    {
+    	newLeafNode(otherlv_0, grammarAccess.getJvmLowerBoundAccess().getSuperKeyword_0());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getJvmLowerBoundAccess().getTypeReferenceJvmTypeReferenceParserRuleCall_1_0()); 
+	    }
+		lv_typeReference_1_0=ruleJvmTypeReference		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getJvmLowerBoundRule());
+	        }
+       		set(
+       			$current, 
+       			"typeReference",
+        		lv_typeReference_1_0, 
+        		"JvmTypeReference");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+))
+;
+
+
+
+
+
+// Entry rule entryRuleJvmLowerBoundAnded
+entryRuleJvmLowerBoundAnded returns [EObject current=null] 
+	:
+	{ newCompositeNode(grammarAccess.getJvmLowerBoundAndedRule()); }
+	 iv_ruleJvmLowerBoundAnded=ruleJvmLowerBoundAnded 
+	 { $current=$iv_ruleJvmLowerBoundAnded.current; } 
+	 EOF 
+;
+
+// Rule JvmLowerBoundAnded
+ruleJvmLowerBoundAnded returns [EObject current=null] 
+    @init { enterRule(); 
+    }
+    @after { leaveRule(); }:
+(	otherlv_0='&' 
+    {
+    	newLeafNode(otherlv_0, grammarAccess.getJvmLowerBoundAndedAccess().getAmpersandKeyword_0());
+    }
+(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getJvmLowerBoundAndedAccess().getTypeReferenceJvmTypeReferenceParserRuleCall_1_0()); 
+	    }
+		lv_typeReference_1_0=ruleJvmTypeReference		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getJvmLowerBoundAndedRule());
+	        }
+       		set(
+       			$current, 
+       			"typeReference",
+        		lv_typeReference_1_0, 
+        		"JvmTypeReference");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+))
+;
+
+
+
+
+
+
+
+// Entry rule entryRuleQualifiedNameWithWildcard
+entryRuleQualifiedNameWithWildcard returns [String current=null] 
+	:
+	{ newCompositeNode(grammarAccess.getQualifiedNameWithWildcardRule()); } 
+	 iv_ruleQualifiedNameWithWildcard=ruleQualifiedNameWithWildcard 
+	 { $current=$iv_ruleQualifiedNameWithWildcard.current.getText(); }  
+	 EOF 
+;
+
+// Rule QualifiedNameWithWildcard
+ruleQualifiedNameWithWildcard returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] 
+    @init { enterRule(); 
+    }
+    @after { leaveRule(); }:
+(
+    { 
+        newCompositeNode(grammarAccess.getQualifiedNameWithWildcardAccess().getQualifiedNameParserRuleCall_0()); 
+    }
+    this_QualifiedName_0=ruleQualifiedName    {
+		$current.merge(this_QualifiedName_0);
+    }
+
+    { 
+        afterParserOrEnumRuleCall();
+    }
+
+	kw='.' 
+    {
+        $current.merge(kw);
+        newLeafNode(kw, grammarAccess.getQualifiedNameWithWildcardAccess().getFullStopKeyword_1()); 
+    }
+
+	kw='*' 
+    {
+        $current.merge(kw);
+        newLeafNode(kw, grammarAccess.getQualifiedNameWithWildcardAccess().getAsteriskKeyword_2()); 
+    }
+)
+    ;
+
+
+
+
+
+
+
+// Entry rule entryRuleXImportDeclaration
+entryRuleXImportDeclaration returns [EObject current=null] 
+	:
+	{ newCompositeNode(grammarAccess.getXImportDeclarationRule()); }
+	 iv_ruleXImportDeclaration=ruleXImportDeclaration 
+	 { $current=$iv_ruleXImportDeclaration.current; } 
+	 EOF 
+;
+
+// Rule XImportDeclaration
+ruleXImportDeclaration returns [EObject current=null] 
+    @init { enterRule(); 
+    }
+    @after { leaveRule(); }:
+(	otherlv_0='import' 
+    {
+    	newLeafNode(otherlv_0, grammarAccess.getXImportDeclarationAccess().getImportKeyword_0());
+    }
+(((
+(
+		lv_static_1_0=	'static' 
+    {
+        newLeafNode(lv_static_1_0, grammarAccess.getXImportDeclarationAccess().getStaticStaticKeyword_1_0_0_0());
+    }
+ 
+	    {
+	        if ($current==null) {
+	            $current = createModelElement(grammarAccess.getXImportDeclarationRule());
+	        }
+       		setWithLastConsumed($current, "static", true, "static");
+	    }
+
+)
+)(
+(
+		lv_extension_2_0=	'extension' 
+    {
+        newLeafNode(lv_extension_2_0, grammarAccess.getXImportDeclarationAccess().getExtensionExtensionKeyword_1_0_1_0());
+    }
+ 
+	    {
+	        if ($current==null) {
+	            $current = createModelElement(grammarAccess.getXImportDeclarationRule());
+	        }
+       		setWithLastConsumed($current, "extension", true, "extension");
+	    }
+
+)
+)?(
+(
+		{
+			if ($current==null) {
+	            $current = createModelElement(grammarAccess.getXImportDeclarationRule());
+	        }
+        }
+		{ 
+	        newCompositeNode(grammarAccess.getXImportDeclarationAccess().getImportedTypeJvmDeclaredTypeCrossReference_1_0_2_0()); 
+	    }
+		ruleQualifiedNameInStaticImport		{ 
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)((
+(
+		lv_wildcard_4_0=	'*' 
+    {
+        newLeafNode(lv_wildcard_4_0, grammarAccess.getXImportDeclarationAccess().getWildcardAsteriskKeyword_1_0_3_0_0());
+    }
+ 
+	    {
+	        if ($current==null) {
+	            $current = createModelElement(grammarAccess.getXImportDeclarationRule());
+	        }
+       		setWithLastConsumed($current, "wildcard", true, "*");
+	    }
+
+)
+)
+    |(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getXImportDeclarationAccess().getMemberNameValidIDParserRuleCall_1_0_3_1_0()); 
+	    }
+		lv_memberName_5_0=ruleValidID		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getXImportDeclarationRule());
+	        }
+       		set(
+       			$current, 
+       			"memberName",
+        		lv_memberName_5_0, 
+        		"ValidID");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)))
+    |(
+(
+		{
+			if ($current==null) {
+	            $current = createModelElement(grammarAccess.getXImportDeclarationRule());
+	        }
+        }
+		{ 
+	        newCompositeNode(grammarAccess.getXImportDeclarationAccess().getImportedTypeJvmDeclaredTypeCrossReference_1_1_0()); 
+	    }
+		ruleQualifiedName		{ 
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+)
+    |(
+(
+		{ 
+	        newCompositeNode(grammarAccess.getXImportDeclarationAccess().getImportedNamespaceQualifiedNameWithWildcardParserRuleCall_1_2_0()); 
+	    }
+		lv_importedNamespace_7_0=ruleQualifiedNameWithWildcard		{
+	        if ($current==null) {
+	            $current = createModelElementForParent(grammarAccess.getXImportDeclarationRule());
+	        }
+       		set(
+       			$current, 
+       			"importedNamespace",
+        		lv_importedNamespace_7_0, 
+        		"QualifiedNameWithWildcard");
+	        afterParserOrEnumRuleCall();
+	    }
+
+)
+))(	otherlv_8=';' 
+    {
+    	newLeafNode(otherlv_8, grammarAccess.getXImportDeclarationAccess().getSemicolonKeyword_2());
+    }
+)?)
+;
+
+
+
+
+
+// Entry rule entryRuleQualifiedNameInStaticImport
+entryRuleQualifiedNameInStaticImport returns [String current=null] 
+	:
+	{ newCompositeNode(grammarAccess.getQualifiedNameInStaticImportRule()); } 
+	 iv_ruleQualifiedNameInStaticImport=ruleQualifiedNameInStaticImport 
+	 { $current=$iv_ruleQualifiedNameInStaticImport.current.getText(); }  
+	 EOF 
+;
+
+// Rule QualifiedNameInStaticImport
+ruleQualifiedNameInStaticImport returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] 
+    @init { enterRule(); 
+    }
+    @after { leaveRule(); }:
+(
+    { 
+        newCompositeNode(grammarAccess.getQualifiedNameInStaticImportAccess().getValidIDParserRuleCall_0()); 
+    }
+    this_ValidID_0=ruleValidID    {
+		$current.merge(this_ValidID_0);
+    }
+
+    { 
+        afterParserOrEnumRuleCall();
+    }
+
+	kw='.' 
+    {
+        $current.merge(kw);
+        newLeafNode(kw, grammarAccess.getQualifiedNameInStaticImportAccess().getFullStopKeyword_1()); 
+    }
+)+
+    ;
+
+
+
+
+
+// Rule TaskActionEnum
+ruleTaskActionEnum returns [Enumerator current=null] 
+    @init { enterRule(); }
+    @after { leaveRule(); }:
+((	enumLiteral_0='Claim' 
+	{
+        $current = grammarAccess.getTaskActionEnumAccess().getTASK_ACTION_CLAIMEnumLiteralDeclaration_0().getEnumLiteral().getInstance();
+        newLeafNode(enumLiteral_0, grammarAccess.getTaskActionEnumAccess().getTASK_ACTION_CLAIMEnumLiteralDeclaration_0()); 
+    }
+)
+    |(	enumLiteral_1='Start' 
+	{
+        $current = grammarAccess.getTaskActionEnumAccess().getTASK_ACTION_STARTEnumLiteralDeclaration_1().getEnumLiteral().getInstance();
+        newLeafNode(enumLiteral_1, grammarAccess.getTaskActionEnumAccess().getTASK_ACTION_STARTEnumLiteralDeclaration_1()); 
+    }
+)
+    |(	enumLiteral_2='Stop' 
+	{
+        $current = grammarAccess.getTaskActionEnumAccess().getTASK_ACTION_STOPEnumLiteralDeclaration_2().getEnumLiteral().getInstance();
+        newLeafNode(enumLiteral_2, grammarAccess.getTaskActionEnumAccess().getTASK_ACTION_STOPEnumLiteralDeclaration_2()); 
+    }
+)
+    |(	enumLiteral_3='Release' 
+	{
+        $current = grammarAccess.getTaskActionEnumAccess().getTASK_ACTION_RELEASEEnumLiteralDeclaration_3().getEnumLiteral().getInstance();
+        newLeafNode(enumLiteral_3, grammarAccess.getTaskActionEnumAccess().getTASK_ACTION_RELEASEEnumLiteralDeclaration_3()); 
+    }
+)
+    |(	enumLiteral_4='Suspend' 
+	{
+        $current = grammarAccess.getTaskActionEnumAccess().getTASK_ACTION_SUSPENDEnumLiteralDeclaration_4().getEnumLiteral().getInstance();
+        newLeafNode(enumLiteral_4, grammarAccess.getTaskActionEnumAccess().getTASK_ACTION_SUSPENDEnumLiteralDeclaration_4()); 
+    }
+)
+    |(	enumLiteral_5='Resume' 
+	{
+        $current = grammarAccess.getTaskActionEnumAccess().getTASK_ACTION_RESUMEEnumLiteralDeclaration_5().getEnumLiteral().getInstance();
+        newLeafNode(enumLiteral_5, grammarAccess.getTaskActionEnumAccess().getTASK_ACTION_RESUMEEnumLiteralDeclaration_5()); 
+    }
+)
+    |(	enumLiteral_6='Skip' 
+	{
+        $current = grammarAccess.getTaskActionEnumAccess().getTASK_ACTION_SKIPEnumLiteralDeclaration_6().getEnumLiteral().getInstance();
+        newLeafNode(enumLiteral_6, grammarAccess.getTaskActionEnumAccess().getTASK_ACTION_SKIPEnumLiteralDeclaration_6()); 
+    }
+)
+    |(	enumLiteral_7='Complete' 
+	{
+        $current = grammarAccess.getTaskActionEnumAccess().getTASK_ACTION_COMPLETEEnumLiteralDeclaration_7().getEnumLiteral().getInstance();
+        newLeafNode(enumLiteral_7, grammarAccess.getTaskActionEnumAccess().getTASK_ACTION_COMPLETEEnumLiteralDeclaration_7()); 
+    }
+)
+    |(	enumLiteral_8='Delegate' 
+	{
+        $current = grammarAccess.getTaskActionEnumAccess().getTASK_ACTION_DELEGATEEnumLiteralDeclaration_8().getEnumLiteral().getInstance();
+        newLeafNode(enumLiteral_8, grammarAccess.getTaskActionEnumAccess().getTASK_ACTION_DELEGATEEnumLiteralDeclaration_8()); 
+    }
+)
+    |(	enumLiteral_9='Forward' 
+	{
+        $current = grammarAccess.getTaskActionEnumAccess().getTASK_ACTION_FORWARDEnumLiteralDeclaration_9().getEnumLiteral().getInstance();
+        newLeafNode(enumLiteral_9, grammarAccess.getTaskActionEnumAccess().getTASK_ACTION_FORWARDEnumLiteralDeclaration_9()); 
+    }
+)
+    |(	enumLiteral_10='Fail' 
+	{
+        $current = grammarAccess.getTaskActionEnumAccess().getTASK_ACTION_FAILEnumLiteralDeclaration_10().getEnumLiteral().getInstance();
+        newLeafNode(enumLiteral_10, grammarAccess.getTaskActionEnumAccess().getTASK_ACTION_FAILEnumLiteralDeclaration_10()); 
+    }
+)
+    |(	enumLiteral_11='Register' 
+	{
+        $current = grammarAccess.getTaskActionEnumAccess().getTASK_ACTION_REGISTEREnumLiteralDeclaration_11().getEnumLiteral().getInstance();
+        newLeafNode(enumLiteral_11, grammarAccess.getTaskActionEnumAccess().getTASK_ACTION_REGISTEREnumLiteralDeclaration_11()); 
+    }
+)
+    |(	enumLiteral_12='Remove' 
+	{
+        $current = grammarAccess.getTaskActionEnumAccess().getTASK_ACTION_REMOVEEnumLiteralDeclaration_12().getEnumLiteral().getInstance();
+        newLeafNode(enumLiteral_12, grammarAccess.getTaskActionEnumAccess().getTASK_ACTION_REMOVEEnumLiteralDeclaration_12()); 
+    }
+)
+    |(	enumLiteral_13='Activate' 
+	{
+        $current = grammarAccess.getTaskActionEnumAccess().getTASK_ACTION_ACTIVATEEnumLiteralDeclaration_13().getEnumLiteral().getInstance();
+        newLeafNode(enumLiteral_13, grammarAccess.getTaskActionEnumAccess().getTASK_ACTION_ACTIVATEEnumLiteralDeclaration_13()); 
+    }
+)
+    |(	enumLiteral_14='Exit' 
+	{
+        $current = grammarAccess.getTaskActionEnumAccess().getTASK_ACTION_EXITEnumLiteralDeclaration_14().getEnumLiteral().getInstance();
+        newLeafNode(enumLiteral_14, grammarAccess.getTaskActionEnumAccess().getTASK_ACTION_EXITEnumLiteralDeclaration_14()); 
+    }
+));
+
+
+
+// Rule SelectWorkloadActionEnum
+ruleSelectWorkloadActionEnum returns [Enumerator current=null] 
+    @init { enterRule(); }
+    @after { leaveRule(); }:
+((	enumLiteral_0='RemoveAll' 
+	{
+        $current = grammarAccess.getSelectWorkloadActionEnumAccess().getWORKLOAD_SELECT_ACTION_REMOVE_ALLEnumLiteralDeclaration_0().getEnumLiteral().getInstance();
+        newLeafNode(enumLiteral_0, grammarAccess.getSelectWorkloadActionEnumAccess().getWORKLOAD_SELECT_ACTION_REMOVE_ALLEnumLiteralDeclaration_0()); 
+    }
+)
+    |(	enumLiteral_1='AddAll' 
+	{
+        $current = grammarAccess.getSelectWorkloadActionEnumAccess().getWORKLOAD_SELECT_ACTION_ADD_ALLEnumLiteralDeclaration_1().getEnumLiteral().getInstance();
+        newLeafNode(enumLiteral_1, grammarAccess.getSelectWorkloadActionEnumAccess().getWORKLOAD_SELECT_ACTION_ADD_ALLEnumLiteralDeclaration_1()); 
+    }
+));
+
+
+
+// Rule DialogActionEnum
+ruleDialogActionEnum returns [Enumerator current=null] 
+    @init { enterRule(); }
+    @after { leaveRule(); }:
+((	enumLiteral_0='New' 
+	{
+        $current = grammarAccess.getDialogActionEnumAccess().getDIALOG_ACTION_NEWEnumLiteralDeclaration_0().getEnumLiteral().getInstance();
+        newLeafNode(enumLiteral_0, grammarAccess.getDialogActionEnumAccess().getDIALOG_ACTION_NEWEnumLiteralDeclaration_0()); 
+    }
+)
+    |(	enumLiteral_1='Save' 
+	{
+        $current = grammarAccess.getDialogActionEnumAccess().getDIALOG_ACTION_SAVEEnumLiteralDeclaration_1().getEnumLiteral().getInstance();
+        newLeafNode(enumLiteral_1, grammarAccess.getDialogActionEnumAccess().getDIALOG_ACTION_SAVEEnumLiteralDeclaration_1()); 
+    }
+)
+    |(	enumLiteral_2='Delete' 
+	{
+        $current = grammarAccess.getDialogActionEnumAccess().getDIALOG_ACTION_DELETEEnumLiteralDeclaration_2().getEnumLiteral().getInstance();
+        newLeafNode(enumLiteral_2, grammarAccess.getDialogActionEnumAccess().getDIALOG_ACTION_DELETEEnumLiteralDeclaration_2()); 
+    }
+)
+    |(	enumLiteral_3='Cancel' 
+	{
+        $current = grammarAccess.getDialogActionEnumAccess().getDIALOG_ACTION_CANCELEnumLiteralDeclaration_3().getEnumLiteral().getInstance();
+        newLeafNode(enumLiteral_3, grammarAccess.getDialogActionEnumAccess().getDIALOG_ACTION_CANCELEnumLiteralDeclaration_3()); 
+    }
+));
+
+
+
+// Rule ReportActionEnum
+ruleReportActionEnum returns [Enumerator current=null] 
+    @init { enterRule(); }
+    @after { leaveRule(); }:
+((	enumLiteral_0='PrintOnServer' 
+	{
+        $current = grammarAccess.getReportActionEnumAccess().getREPORT_ACTION_PRINT_ON_SERVER_PDFEnumLiteralDeclaration_0().getEnumLiteral().getInstance();
+        newLeafNode(enumLiteral_0, grammarAccess.getReportActionEnumAccess().getREPORT_ACTION_PRINT_ON_SERVER_PDFEnumLiteralDeclaration_0()); 
+    }
+)
+    |(	enumLiteral_1='Download' 
+	{
+        $current = grammarAccess.getReportActionEnumAccess().getREPORT_ACTION_DOWNLOAD_PDFEnumLiteralDeclaration_1().getEnumLiteral().getInstance();
+        newLeafNode(enumLiteral_1, grammarAccess.getReportActionEnumAccess().getREPORT_ACTION_DOWNLOAD_PDFEnumLiteralDeclaration_1()); 
+    }
+));
+
+
+
+// Rule ChartActionEnum
+ruleChartActionEnum returns [Enumerator current=null] 
+    @init { enterRule(); }
+    @after { leaveRule(); }:
+(	enumLiteral_0='Download' 
+	{
+        $current = grammarAccess.getChartActionEnumAccess().getCHART_ACTION_DOWNLOADEnumLiteralDeclaration().getEnumLiteral().getInstance();
+        newLeafNode(enumLiteral_0, grammarAccess.getChartActionEnumAccess().getCHART_ACTION_DOWNLOADEnumLiteralDeclaration()); 
+    }
+);
+
+
+
+// Rule WorkflowActionEnum
+ruleWorkflowActionEnum returns [Enumerator current=null] 
+    @init { enterRule(); }
+    @after { leaveRule(); }:
+(	enumLiteral_0='Start' 
+	{
+        $current = grammarAccess.getWorkflowActionEnumAccess().getWORKFLOW_ACTION_STARTEnumLiteralDeclaration().getEnumLiteral().getInstance();
+        newLeafNode(enumLiteral_0, grammarAccess.getWorkflowActionEnumAccess().getWORKFLOW_ACTION_STARTEnumLiteralDeclaration()); 
+    }
+);
+
+
+
+// Rule DatainterchangeActionEnum
+ruleDatainterchangeActionEnum returns [Enumerator current=null] 
+    @init { enterRule(); }
+    @after { leaveRule(); }:
+((	enumLiteral_0='Import' 
+	{
+        $current = grammarAccess.getDatainterchangeActionEnumAccess().getDATAINTERCHANGE_ACTION_IMPORTEnumLiteralDeclaration_0().getEnumLiteral().getInstance();
+        newLeafNode(enumLiteral_0, grammarAccess.getDatainterchangeActionEnumAccess().getDATAINTERCHANGE_ACTION_IMPORTEnumLiteralDeclaration_0()); 
+    }
+)
+    |(	enumLiteral_1='Export' 
+	{
+        $current = grammarAccess.getDatainterchangeActionEnumAccess().getDATAINTERCHANGE_ACTION_EXPORTEnumLiteralDeclaration_1().getEnumLiteral().getInstance();
+        newLeafNode(enumLiteral_1, grammarAccess.getDatainterchangeActionEnumAccess().getDATAINTERCHANGE_ACTION_EXPORTEnumLiteralDeclaration_1()); 
+    }
+));
+
+
+
+RULE_HEX : ('0x'|'0X') ('0'..'9'|'a'..'f'|'A'..'F'|'_')+ ('#' (('b'|'B') ('i'|'I')|('l'|'L')))?;
+
+RULE_INT : '0'..'9' ('0'..'9'|'_')*;
+
+RULE_DECIMAL : RULE_INT (('e'|'E') ('+'|'-')? RULE_INT)? (('b'|'B') ('i'|'I'|'d'|'D')|('l'|'L'|'d'|'D'|'f'|'F'))?;
+
+RULE_ID : '^'? ('a'..'z'|'A'..'Z'|'$'|'_') ('a'..'z'|'A'..'Z'|'$'|'_'|'0'..'9')*;
+
+RULE_STRING : ('"' ('\\' .|~(('\\'|'"')))* '"'?|'\'' ('\\' .|~(('\\'|'\'')))* '\''?);
+
+RULE_ML_COMMENT : '/*' ( options {greedy=false;} : . )*'*/';
+
+RULE_SL_COMMENT : '//' ~(('\n'|'\r'))* ('\r'? '\n')?;
+
+RULE_WS : (' '|'\t'|'\r'|'\n')+;
+
+RULE_ANY_OTHER : .;
+
+
diff --git a/org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.tokens b/org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.tokens
new file mode 100644
index 0000000..4d5170c
--- /dev/null
+++ b/org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.tokens
@@ -0,0 +1,245 @@
+'!'=70
+'!='=55
+'!=='=57
+'#'=41
+'%'=69
+'%='=48
+'&&'=53
+'&'=105
+'('=37
+')'=39
+'*'=35
+'**'=67
+'*='=46
+'+'=65
+'++'=72
+'+='=44
+','=38
+'-'=66
+'--'=73
+'-='=45
+'->'=59
+'.'=34
+'..'=61
+'..<'=60
+'/'=68
+'/='=47
+':'=81
+'::'=74
+';'=77
+'<'=49
+'<>'=63
+'='=40
+'=='=54
+'==='=56
+'=>'=62
+'>'=50
+'>='=51
+'?'=104
+'?.'=75
+'?:'=64
+'@'=36
+'Activate'=119
+'AddAll'=122
+'Cancel'=126
+'Claim'=106
+'Complete'=113
+'Delegate'=114
+'Delete'=125
+'Download'=128
+'Exit'=120
+'Export'=130
+'Fail'=116
+'Forward'=115
+'Import'=129
+'New'=123
+'PrintOnServer'=127
+'Register'=117
+'Release'=109
+'Remove'=118
+'RemoveAll'=121
+'Resume'=111
+'Save'=124
+'Skip'=112
+'Start'=107
+'Stop'=108
+'Suspend'=110
+'['=42
+']'=43
+'as'=71
+'canExecute'=22
+'case'=83
+'catch'=103
+'chartAction'=29
+'datainterchangeAction'=31
+'default'=82
+'described by'=17
+'dialogAction'=27
+'do'=86
+'else'=79
+'executeParameter'=23
+'extends'=89
+'extension'=91
+'false'=94
+'finally'=101
+'for'=84
+'genericAction'=32
+'group'=21
+'icon'=20
+'if'=78
+'import'=33
+'instanceof'=58
+'item'=19
+'items'=18
+'message'=24
+'new'=93
+'null'=96
+'package'=13
+'reportAction'=28
+'return'=99
+'selectWorkloadAction'=26
+'static'=90
+'super'=92
+'switch'=80
+'synchronized'=102
+'taskAction'=25
+'throw'=98
+'toolbar'=16
+'true'=95
+'try'=100
+'typeof'=97
+'val'=88
+'var'=87
+'while'=85
+'workflowAction'=30
+'{'=14
+'|'=76
+'||'=52
+'}'=15
+RULE_ANY_OTHER=12
+RULE_DECIMAL=8
+RULE_HEX=6
+RULE_ID=4
+RULE_INT=7
+RULE_ML_COMMENT=9
+RULE_SL_COMMENT=10
+RULE_STRING=5
+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__13=13
+T__14=14
+T__15=15
+T__16=16
+T__17=17
+T__18=18
+T__19=19
+T__20=20
+T__21=21
+T__22=22
+T__23=23
+T__24=24
+T__25=25
+T__26=26
+T__27=27
+T__28=28
+T__29=29
+T__30=30
+T__31=31
+T__32=32
+T__33=33
+T__34=34
+T__35=35
+T__36=36
+T__37=37
+T__38=38
+T__39=39
+T__40=40
+T__41=41
+T__42=42
+T__43=43
+T__44=44
+T__45=45
+T__46=46
+T__47=47
+T__48=48
+T__49=49
+T__50=50
+T__51=51
+T__52=52
+T__53=53
+T__54=54
+T__55=55
+T__56=56
+T__57=57
+T__58=58
+T__59=59
+T__60=60
+T__61=61
+T__62=62
+T__63=63
+T__64=64
+T__65=65
+T__66=66
+T__67=67
+T__68=68
+T__69=69
+T__70=70
+T__71=71
+T__72=72
+T__73=73
+T__74=74
+T__75=75
+T__76=76
+T__77=77
+T__78=78
+T__79=79
+T__80=80
+T__81=81
+T__82=82
+T__83=83
+T__84=84
+T__85=85
+T__86=86
+T__87=87
+T__88=88
+T__89=89
+T__90=90
+T__91=91
+T__92=92
+T__93=93
+T__94=94
+T__95=95
+T__96=96
+T__97=97
+T__98=98
+T__99=99
diff --git a/org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSLLexer.java b/org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSLLexer.java
new file mode 100644
index 0000000..c780b91
--- /dev/null
+++ b/org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSLLexer.java
@@ -0,0 +1,5344 @@
+/**
+ *                                                                            
+ *  Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) 
+ *                                                                            
+ *  All rights reserved. This program and the accompanying materials           
+ *  are made available under the 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.action.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 InternalActionDSLLexer extends Lexer {
+    public static final int RULE_HEX=6;
+    public static final int T__50=50;
+    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__52=52;
+    public static final int T__53=53;
+    public static final int T__54=54;
+    public static final int T__60=60;
+    public static final int T__61=61;
+    public static final int RULE_ID=4;
+    public static final int T__130=130;
+    public static final int RULE_INT=7;
+    public static final int T__66=66;
+    public static final int RULE_ML_COMMENT=9;
+    public static final int T__67=67;
+    public static final int T__129=129;
+    public static final int T__68=68;
+    public static final int T__69=69;
+    public static final int T__62=62;
+    public static final int T__126=126;
+    public static final int T__63=63;
+    public static final int T__125=125;
+    public static final int T__64=64;
+    public static final int T__128=128;
+    public static final int T__65=65;
+    public static final int T__127=127;
+    public static final int T__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__30=30;
+    public static final int T__31=31;
+    public static final int T__32=32;
+    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__41=41;
+    public static final int T__42=42;
+    public static final int T__43=43;
+    public static final int T__91=91;
+    public static final int T__100=100;
+    public static final int T__92=92;
+    public static final int T__93=93;
+    public static final int T__102=102;
+    public static final int T__94=94;
+    public static final int T__101=101;
+    public static final int T__90=90;
+    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__99=99;
+    public static final int T__13=13;
+    public static final int T__14=14;
+    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 RULE_DECIMAL=8;
+    public static final int T__26=26;
+    public static final int T__27=27;
+    public static final int T__28=28;
+    public static final int T__29=29;
+    public static final int T__22=22;
+    public static final int T__23=23;
+    public static final int T__24=24;
+    public static final int T__25=25;
+    public static final int T__20=20;
+    public static final int T__21=21;
+    public static final int T__122=122;
+    public static final int T__70=70;
+    public static final int T__121=121;
+    public static final int T__71=71;
+    public static final int T__124=124;
+    public static final int T__72=72;
+    public static final int T__123=123;
+    public static final int T__120=120;
+    public static final int RULE_STRING=5;
+    public static final int RULE_SL_COMMENT=10;
+    public static final int T__77=77;
+    public static final int T__119=119;
+    public static final int T__78=78;
+    public static final int T__118=118;
+    public static final int T__79=79;
+    public static final int T__73=73;
+    public static final int T__115=115;
+    public static final int EOF=-1;
+    public static final int T__74=74;
+    public static final int T__114=114;
+    public static final int T__75=75;
+    public static final int T__117=117;
+    public static final int T__76=76;
+    public static final int T__116=116;
+    public static final int T__80=80;
+    public static final int T__111=111;
+    public static final int T__81=81;
+    public static final int T__110=110;
+    public static final int T__82=82;
+    public static final int T__113=113;
+    public static final int T__83=83;
+    public static final int T__112=112;
+    public static final int RULE_WS=11;
+    public static final int RULE_ANY_OTHER=12;
+    public static final int T__88=88;
+    public static final int T__108=108;
+    public static final int T__89=89;
+    public static final int T__107=107;
+    public static final int T__109=109;
+    public static final int T__84=84;
+    public static final int T__104=104;
+    public static final int T__85=85;
+    public static final int T__103=103;
+    public static final int T__86=86;
+    public static final int T__106=106;
+    public static final int T__87=87;
+    public static final int T__105=105;
+
+    // delegates
+    // delegators
+
+    public InternalActionDSLLexer() {;} 
+    public InternalActionDSLLexer(CharStream input) {
+        this(input, new RecognizerSharedState());
+    }
+    public InternalActionDSLLexer(CharStream input, RecognizerSharedState state) {
+        super(input,state);
+
+    }
+    public String getGrammarFileName() { return "../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.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.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:11:7: ( 'package' )
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.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.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:12:7: ( '{' )
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.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.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:13:7: ( '}' )
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.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.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:14:7: ( 'toolbar' )
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:14:9: 'toolbar'
+            {
+            match("toolbar"); 
+
+
+            }
+
+            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.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:15:7: ( 'described by' )
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:15:9: 'described by'
+            {
+            match("described by"); 
+
+
+            }
+
+            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.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:16:7: ( 'items' )
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:16:9: 'items'
+            {
+            match("items"); 
+
+
+            }
+
+            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.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:17:7: ( 'item' )
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:17:9: 'item'
+            {
+            match("item"); 
+
+
+            }
+
+            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.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:18:7: ( 'icon' )
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:18:9: 'icon'
+            {
+            match("icon"); 
+
+
+            }
+
+            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.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:19:7: ( 'group' )
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:19:9: 'group'
+            {
+            match("group"); 
+
+
+            }
+
+            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.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:20:7: ( 'canExecute' )
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:20:9: 'canExecute'
+            {
+            match("canExecute"); 
+
+
+            }
+
+            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.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:21:7: ( 'executeParameter' )
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:21:9: 'executeParameter'
+            {
+            match("executeParameter"); 
+
+
+            }
+
+            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.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:22:7: ( 'message' )
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:22:9: 'message'
+            {
+            match("message"); 
+
+
+            }
+
+            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.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:23:7: ( 'taskAction' )
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:23:9: 'taskAction'
+            {
+            match("taskAction"); 
+
+
+            }
+
+            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.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:24:7: ( 'selectWorkloadAction' )
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:24:9: 'selectWorkloadAction'
+            {
+            match("selectWorkloadAction"); 
+
+
+            }
+
+            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.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:25:7: ( 'dialogAction' )
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:25:9: 'dialogAction'
+            {
+            match("dialogAction"); 
+
+
+            }
+
+            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.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:26:7: ( 'reportAction' )
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:26:9: 'reportAction'
+            {
+            match("reportAction"); 
+
+
+            }
+
+            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.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:27:7: ( 'chartAction' )
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:27:9: 'chartAction'
+            {
+            match("chartAction"); 
+
+
+            }
+
+            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.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:28:7: ( 'workflowAction' )
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:28:9: 'workflowAction'
+            {
+            match("workflowAction"); 
+
+
+            }
+
+            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.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:29:7: ( 'datainterchangeAction' )
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:29:9: 'datainterchangeAction'
+            {
+            match("datainterchangeAction"); 
+
+
+            }
+
+            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.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:30:7: ( 'genericAction' )
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:30:9: 'genericAction'
+            {
+            match("genericAction"); 
+
+
+            }
+
+            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.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:31:7: ( 'import' )
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:31:9: 'import'
+            {
+            match("import"); 
+
+
+            }
+
+            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.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:32:7: ( '.' )
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.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.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:33:7: ( '*' )
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.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.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:34:7: ( '@' )
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.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.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:35:7: ( '(' )
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.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.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:36:7: ( ',' )
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.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.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:37:7: ( ')' )
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.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.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:38:7: ( '=' )
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.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.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:39:7: ( '#' )
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.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.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:40:7: ( '[' )
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.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.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:41:7: ( ']' )
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.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.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:42:7: ( '+=' )
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.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.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:43:7: ( '-=' )
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.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.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:44:7: ( '*=' )
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.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.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:45:7: ( '/=' )
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.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.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:46:7: ( '%=' )
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:46:9: '%='
+            {
+            match("%="); 
+
+
+            }
+
+            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.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:47:7: ( '<' )
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:47:9: '<'
+            {
+            match('<'); 
+
+            }
+
+            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.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:48:7: ( '>' )
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:48:9: '>'
+            {
+            match('>'); 
+
+            }
+
+            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.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:49:7: ( '>=' )
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:49:9: '>='
+            {
+            match(">="); 
+
+
+            }
+
+            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.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:50:7: ( '||' )
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:50:9: '||'
+            {
+            match("||"); 
+
+
+            }
+
+            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.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:51:7: ( '&&' )
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:51:9: '&&'
+            {
+            match("&&"); 
+
+
+            }
+
+            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.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:52:7: ( '==' )
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:52:9: '=='
+            {
+            match("=="); 
+
+
+            }
+
+            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.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:53:7: ( '!=' )
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:53:9: '!='
+            {
+            match("!="); 
+
+
+            }
+
+            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.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:54:7: ( '===' )
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:54:9: '==='
+            {
+            match("==="); 
+
+
+            }
+
+            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.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:55:7: ( '!==' )
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:55:9: '!=='
+            {
+            match("!=="); 
+
+
+            }
+
+            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.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:56:7: ( 'instanceof' )
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:56:9: 'instanceof'
+            {
+            match("instanceof"); 
+
+
+            }
+
+            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.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:57:7: ( '->' )
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:57:9: '->'
+            {
+            match("->"); 
+
+
+            }
+
+            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.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:58:7: ( '..<' )
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:58:9: '..<'
+            {
+            match("..<"); 
+
+
+            }
+
+            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.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:59:7: ( '..' )
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:59:9: '..'
+            {
+            match(".."); 
+
+
+            }
+
+            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.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:60:7: ( '=>' )
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:60:9: '=>'
+            {
+            match("=>"); 
+
+
+            }
+
+            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.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:61:7: ( '<>' )
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:61:9: '<>'
+            {
+            match("<>"); 
+
+
+            }
+
+            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.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:62:7: ( '?:' )
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:62:9: '?:'
+            {
+            match("?:"); 
+
+
+            }
+
+            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.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:63:7: ( '+' )
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:63:9: '+'
+            {
+            match('+'); 
+
+            }
+
+            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.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:64:7: ( '-' )
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:64:9: '-'
+            {
+            match('-'); 
+
+            }
+
+            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.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:65:7: ( '**' )
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:65:9: '**'
+            {
+            match("**"); 
+
+
+            }
+
+            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.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:66:7: ( '/' )
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:66:9: '/'
+            {
+            match('/'); 
+
+            }
+
+            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.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:67:7: ( '%' )
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:67:9: '%'
+            {
+            match('%'); 
+
+            }
+
+            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.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:68:7: ( '!' )
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:68:9: '!'
+            {
+            match('!'); 
+
+            }
+
+            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.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:69:7: ( 'as' )
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:69:9: 'as'
+            {
+            match("as"); 
+
+
+            }
+
+            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.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:70:7: ( '++' )
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:70:9: '++'
+            {
+            match("++"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__72"
+
+    // $ANTLR start "T__73"
+    public final void mT__73() throws RecognitionException {
+        try {
+            int _type = T__73;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:71:7: ( '--' )
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:71:9: '--'
+            {
+            match("--"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__73"
+
+    // $ANTLR start "T__74"
+    public final void mT__74() throws RecognitionException {
+        try {
+            int _type = T__74;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:72:7: ( '::' )
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:72:9: '::'
+            {
+            match("::"); 
+
+
+            }
+
+            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.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:73:7: ( '?.' )
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:73:9: '?.'
+            {
+            match("?."); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__75"
+
+    // $ANTLR start "T__76"
+    public final void mT__76() throws RecognitionException {
+        try {
+            int _type = T__76;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:74:7: ( '|' )
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:74:9: '|'
+            {
+            match('|'); 
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__76"
+
+    // $ANTLR start "T__77"
+    public final void mT__77() throws RecognitionException {
+        try {
+            int _type = T__77;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:75:7: ( ';' )
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:75:9: ';'
+            {
+            match(';'); 
+
+            }
+
+            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.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:76:7: ( 'if' )
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:76:9: 'if'
+            {
+            match("if"); 
+
+
+            }
+
+            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.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:77:7: ( 'else' )
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:77:9: 'else'
+            {
+            match("else"); 
+
+
+            }
+
+            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.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:78:7: ( 'switch' )
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:78:9: 'switch'
+            {
+            match("switch"); 
+
+
+            }
+
+            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.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:79:7: ( ':' )
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:79:9: ':'
+            {
+            match(':'); 
+
+            }
+
+            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.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:80:7: ( 'default' )
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:80:9: 'default'
+            {
+            match("default"); 
+
+
+            }
+
+            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.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:81:7: ( 'case' )
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:81:9: 'case'
+            {
+            match("case"); 
+
+
+            }
+
+            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.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:82:7: ( 'for' )
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:82:9: 'for'
+            {
+            match("for"); 
+
+
+            }
+
+            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.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:83:7: ( 'while' )
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:83:9: 'while'
+            {
+            match("while"); 
+
+
+            }
+
+            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.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:84:7: ( 'do' )
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:84:9: 'do'
+            {
+            match("do"); 
+
+
+            }
+
+            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.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:85:7: ( 'var' )
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:85:9: 'var'
+            {
+            match("var"); 
+
+
+            }
+
+            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.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:86:7: ( 'val' )
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:86:9: 'val'
+            {
+            match("val"); 
+
+
+            }
+
+            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.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:87:7: ( 'extends' )
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:87:9: 'extends'
+            {
+            match("extends"); 
+
+
+            }
+
+            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.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:88:7: ( 'static' )
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:88:9: 'static'
+            {
+            match("static"); 
+
+
+            }
+
+            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.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:89:7: ( 'extension' )
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:89:9: 'extension'
+            {
+            match("extension"); 
+
+
+            }
+
+            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.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:90:7: ( 'super' )
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:90:9: 'super'
+            {
+            match("super"); 
+
+
+            }
+
+            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.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:91:7: ( 'new' )
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:91:9: 'new'
+            {
+            match("new"); 
+
+
+            }
+
+            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.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:92:7: ( 'false' )
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:92:9: 'false'
+            {
+            match("false"); 
+
+
+            }
+
+            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.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:93:7: ( 'true' )
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:93:9: 'true'
+            {
+            match("true"); 
+
+
+            }
+
+            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.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:94:7: ( 'null' )
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:94:9: 'null'
+            {
+            match("null"); 
+
+
+            }
+
+            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.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:95:7: ( 'typeof' )
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:95:9: 'typeof'
+            {
+            match("typeof"); 
+
+
+            }
+
+            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.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:96:7: ( 'throw' )
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:96:9: 'throw'
+            {
+            match("throw"); 
+
+
+            }
+
+            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.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:97:7: ( 'return' )
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:97:9: 'return'
+            {
+            match("return"); 
+
+
+            }
+
+            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.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:98:8: ( 'try' )
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:98:10: 'try'
+            {
+            match("try"); 
+
+
+            }
+
+            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.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:99:8: ( 'finally' )
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:99:10: 'finally'
+            {
+            match("finally"); 
+
+
+            }
+
+            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.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:100:8: ( 'synchronized' )
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:100:10: 'synchronized'
+            {
+            match("synchronized"); 
+
+
+            }
+
+            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.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:101:8: ( 'catch' )
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:101:10: 'catch'
+            {
+            match("catch"); 
+
+
+            }
+
+            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.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:102:8: ( '?' )
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:102:10: '?'
+            {
+            match('?'); 
+
+            }
+
+            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.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:103:8: ( '&' )
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.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.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:104:8: ( 'Claim' )
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:104:10: 'Claim'
+            {
+            match("Claim"); 
+
+
+            }
+
+            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.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:105:8: ( 'Start' )
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:105:10: 'Start'
+            {
+            match("Start"); 
+
+
+            }
+
+            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.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:106:8: ( 'Stop' )
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:106:10: 'Stop'
+            {
+            match("Stop"); 
+
+
+            }
+
+            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.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:107:8: ( 'Release' )
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:107:10: 'Release'
+            {
+            match("Release"); 
+
+
+            }
+
+            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.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:108:8: ( 'Suspend' )
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:108:10: 'Suspend'
+            {
+            match("Suspend"); 
+
+
+            }
+
+            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.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:109:8: ( 'Resume' )
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:109:10: 'Resume'
+            {
+            match("Resume"); 
+
+
+            }
+
+            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.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:110:8: ( 'Skip' )
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:110:10: 'Skip'
+            {
+            match("Skip"); 
+
+
+            }
+
+            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.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:111:8: ( 'Complete' )
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:111:10: 'Complete'
+            {
+            match("Complete"); 
+
+
+            }
+
+            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.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:112:8: ( 'Delegate' )
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:112:10: 'Delegate'
+            {
+            match("Delegate"); 
+
+
+            }
+
+            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.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:113:8: ( 'Forward' )
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:113:10: 'Forward'
+            {
+            match("Forward"); 
+
+
+            }
+
+            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.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:114:8: ( 'Fail' )
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:114:10: 'Fail'
+            {
+            match("Fail"); 
+
+
+            }
+
+            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.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:115:8: ( 'Register' )
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:115:10: 'Register'
+            {
+            match("Register"); 
+
+
+            }
+
+            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.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:116:8: ( 'Remove' )
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:116:10: 'Remove'
+            {
+            match("Remove"); 
+
+
+            }
+
+            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.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:117:8: ( 'Activate' )
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:117:10: 'Activate'
+            {
+            match("Activate"); 
+
+
+            }
+
+            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.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:118:8: ( 'Exit' )
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:118:10: 'Exit'
+            {
+            match("Exit"); 
+
+
+            }
+
+            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.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:119:8: ( 'RemoveAll' )
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:119:10: 'RemoveAll'
+            {
+            match("RemoveAll"); 
+
+
+            }
+
+            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.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:120:8: ( 'AddAll' )
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:120:10: 'AddAll'
+            {
+            match("AddAll"); 
+
+
+            }
+
+            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.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:121:8: ( 'New' )
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:121:10: 'New'
+            {
+            match("New"); 
+
+
+            }
+
+            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.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:122:8: ( 'Save' )
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:122:10: 'Save'
+            {
+            match("Save"); 
+
+
+            }
+
+            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.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:123:8: ( 'Delete' )
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:123:10: 'Delete'
+            {
+            match("Delete"); 
+
+
+            }
+
+            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.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:124:8: ( 'Cancel' )
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:124:10: 'Cancel'
+            {
+            match("Cancel"); 
+
+
+            }
+
+            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.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:125:8: ( 'PrintOnServer' )
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:125:10: 'PrintOnServer'
+            {
+            match("PrintOnServer"); 
+
+
+            }
+
+            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.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:126:8: ( 'Download' )
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:126:10: 'Download'
+            {
+            match("Download"); 
+
+
+            }
+
+            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.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:127:8: ( 'Import' )
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:127:10: 'Import'
+            {
+            match("Import"); 
+
+
+            }
+
+            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.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:128:8: ( 'Export' )
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:128:10: 'Export'
+            {
+            match("Export"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__130"
+
+    // $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.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:7754:10: ( ( '0x' | '0X' ) ( '0' .. '9' | 'a' .. 'f' | 'A' .. 'F' | '_' )+ ( '#' ( ( 'b' | 'B' ) ( 'i' | 'I' ) | ( 'l' | 'L' ) ) )? )
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:7754:12: ( '0x' | '0X' ) ( '0' .. '9' | 'a' .. 'f' | 'A' .. 'F' | '_' )+ ( '#' ( ( 'b' | 'B' ) ( 'i' | 'I' ) | ( 'l' | 'L' ) ) )?
+            {
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:7754: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.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:7754:13: '0x'
+                    {
+                    match("0x"); 
+
+
+                    }
+                    break;
+                case 2 :
+                    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:7754:18: '0X'
+                    {
+                    match("0X"); 
+
+
+                    }
+                    break;
+
+            }
+
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:7754: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.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.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.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:7754: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.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:7754:59: '#' ( ( 'b' | 'B' ) ( 'i' | 'I' ) | ( 'l' | 'L' ) )
+                    {
+                    match('#'); 
+                    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:7754: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.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:7754: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.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:7754: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.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:7756:10: ( '0' .. '9' ( '0' .. '9' | '_' )* )
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:7756:12: '0' .. '9' ( '0' .. '9' | '_' )*
+            {
+            matchRange('0','9'); 
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:7756: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.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.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.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:7758:14: ( RULE_INT ( ( 'e' | 'E' ) ( '+' | '-' )? RULE_INT )? ( ( 'b' | 'B' ) ( 'i' | 'I' | 'd' | 'D' ) | ( 'l' | 'L' | 'd' | 'D' | 'f' | 'F' ) )? )
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:7758: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.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:7758: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.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:7758: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.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:7758: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.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.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.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:7758: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.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:7758: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.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:7758: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.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:7760:9: ( ( '^' )? ( 'a' .. 'z' | 'A' .. 'Z' | '$' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '$' | '_' | '0' .. '9' )* )
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:7760:11: ( '^' )? ( 'a' .. 'z' | 'A' .. 'Z' | '$' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '$' | '_' | '0' .. '9' )*
+            {
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:7760:11: ( '^' )?
+            int alt9=2;
+            int LA9_0 = input.LA(1);
+
+            if ( (LA9_0=='^') ) {
+                alt9=1;
+            }
+            switch (alt9) {
+                case 1 :
+                    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:7760: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.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:7760: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.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.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.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:7762:13: ( ( '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* ( '\"' )? | '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* ( '\\'' )? ) )
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:7762:15: ( '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* ( '\"' )? | '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* ( '\\'' )? )
+            {
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:7762: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.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:7762:16: '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* ( '\"' )?
+                    {
+                    match('\"'); 
+                    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:7762: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.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:7762:21: '\\\\' .
+                    	    {
+                    	    match('\\'); 
+                    	    matchAny(); 
+
+                    	    }
+                    	    break;
+                    	case 2 :
+                    	    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:7762: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.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:7762:44: ( '\"' )?
+                    int alt12=2;
+                    int LA12_0 = input.LA(1);
+
+                    if ( (LA12_0=='\"') ) {
+                        alt12=1;
+                    }
+                    switch (alt12) {
+                        case 1 :
+                            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:7762:44: '\"'
+                            {
+                            match('\"'); 
+
+                            }
+                            break;
+
+                    }
+
+
+                    }
+                    break;
+                case 2 :
+                    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:7762:49: '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* ( '\\'' )?
+                    {
+                    match('\''); 
+                    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:7762: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.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:7762:55: '\\\\' .
+                    	    {
+                    	    match('\\'); 
+                    	    matchAny(); 
+
+                    	    }
+                    	    break;
+                    	case 2 :
+                    	    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:7762: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.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:7762:79: ( '\\'' )?
+                    int alt14=2;
+                    int LA14_0 = input.LA(1);
+
+                    if ( (LA14_0=='\'') ) {
+                        alt14=1;
+                    }
+                    switch (alt14) {
+                        case 1 :
+                            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:7762: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.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:7764:17: ( '/*' ( options {greedy=false; } : . )* '*/' )
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:7764:19: '/*' ( options {greedy=false; } : . )* '*/'
+            {
+            match("/*"); 
+
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:7764: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.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:7764: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.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:7766:17: ( '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )? )
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:7766:19: '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )?
+            {
+            match("//"); 
+
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:7766: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.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:7766: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.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:7766: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.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:7766:41: ( '\\r' )? '\\n'
+                    {
+                    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:7766: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.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:7766: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.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:7768:9: ( ( ' ' | '\\t' | '\\r' | '\\n' )+ )
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:7768:11: ( ' ' | '\\t' | '\\r' | '\\n' )+
+            {
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:7768: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.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.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.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:7770:16: ( . )
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:7770:18: .
+            {
+            matchAny(); 
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "RULE_ANY_OTHER"
+
+    public void mTokens() throws RecognitionException {
+        // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.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 | RULE_HEX | RULE_INT | RULE_DECIMAL | RULE_ID | RULE_STRING | RULE_ML_COMMENT | RULE_SL_COMMENT | RULE_WS | RULE_ANY_OTHER )
+        int alt21=127;
+        alt21 = dfa21.predict(input);
+        switch (alt21) {
+            case 1 :
+                // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1:10: T__13
+                {
+                mT__13(); 
+
+                }
+                break;
+            case 2 :
+                // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1:16: T__14
+                {
+                mT__14(); 
+
+                }
+                break;
+            case 3 :
+                // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1:22: T__15
+                {
+                mT__15(); 
+
+                }
+                break;
+            case 4 :
+                // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1:28: T__16
+                {
+                mT__16(); 
+
+                }
+                break;
+            case 5 :
+                // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1:34: T__17
+                {
+                mT__17(); 
+
+                }
+                break;
+            case 6 :
+                // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1:40: T__18
+                {
+                mT__18(); 
+
+                }
+                break;
+            case 7 :
+                // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1:46: T__19
+                {
+                mT__19(); 
+
+                }
+                break;
+            case 8 :
+                // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1:52: T__20
+                {
+                mT__20(); 
+
+                }
+                break;
+            case 9 :
+                // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1:58: T__21
+                {
+                mT__21(); 
+
+                }
+                break;
+            case 10 :
+                // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1:64: T__22
+                {
+                mT__22(); 
+
+                }
+                break;
+            case 11 :
+                // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1:70: T__23
+                {
+                mT__23(); 
+
+                }
+                break;
+            case 12 :
+                // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1:76: T__24
+                {
+                mT__24(); 
+
+                }
+                break;
+            case 13 :
+                // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1:82: T__25
+                {
+                mT__25(); 
+
+                }
+                break;
+            case 14 :
+                // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1:88: T__26
+                {
+                mT__26(); 
+
+                }
+                break;
+            case 15 :
+                // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1:94: T__27
+                {
+                mT__27(); 
+
+                }
+                break;
+            case 16 :
+                // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1:100: T__28
+                {
+                mT__28(); 
+
+                }
+                break;
+            case 17 :
+                // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1:106: T__29
+                {
+                mT__29(); 
+
+                }
+                break;
+            case 18 :
+                // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1:112: T__30
+                {
+                mT__30(); 
+
+                }
+                break;
+            case 19 :
+                // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1:118: T__31
+                {
+                mT__31(); 
+
+                }
+                break;
+            case 20 :
+                // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1:124: T__32
+                {
+                mT__32(); 
+
+                }
+                break;
+            case 21 :
+                // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1:130: T__33
+                {
+                mT__33(); 
+
+                }
+                break;
+            case 22 :
+                // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1:136: T__34
+                {
+                mT__34(); 
+
+                }
+                break;
+            case 23 :
+                // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1:142: T__35
+                {
+                mT__35(); 
+
+                }
+                break;
+            case 24 :
+                // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1:148: T__36
+                {
+                mT__36(); 
+
+                }
+                break;
+            case 25 :
+                // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1:154: T__37
+                {
+                mT__37(); 
+
+                }
+                break;
+            case 26 :
+                // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1:160: T__38
+                {
+                mT__38(); 
+
+                }
+                break;
+            case 27 :
+                // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1:166: T__39
+                {
+                mT__39(); 
+
+                }
+                break;
+            case 28 :
+                // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1:172: T__40
+                {
+                mT__40(); 
+
+                }
+                break;
+            case 29 :
+                // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1:178: T__41
+                {
+                mT__41(); 
+
+                }
+                break;
+            case 30 :
+                // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1:184: T__42
+                {
+                mT__42(); 
+
+                }
+                break;
+            case 31 :
+                // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1:190: T__43
+                {
+                mT__43(); 
+
+                }
+                break;
+            case 32 :
+                // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1:196: T__44
+                {
+                mT__44(); 
+
+                }
+                break;
+            case 33 :
+                // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1:202: T__45
+                {
+                mT__45(); 
+
+                }
+                break;
+            case 34 :
+                // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1:208: T__46
+                {
+                mT__46(); 
+
+                }
+                break;
+            case 35 :
+                // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1:214: T__47
+                {
+                mT__47(); 
+
+                }
+                break;
+            case 36 :
+                // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1:220: T__48
+                {
+                mT__48(); 
+
+                }
+                break;
+            case 37 :
+                // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1:226: T__49
+                {
+                mT__49(); 
+
+                }
+                break;
+            case 38 :
+                // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1:232: T__50
+                {
+                mT__50(); 
+
+                }
+                break;
+            case 39 :
+                // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1:238: T__51
+                {
+                mT__51(); 
+
+                }
+                break;
+            case 40 :
+                // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1:244: T__52
+                {
+                mT__52(); 
+
+                }
+                break;
+            case 41 :
+                // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1:250: T__53
+                {
+                mT__53(); 
+
+                }
+                break;
+            case 42 :
+                // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1:256: T__54
+                {
+                mT__54(); 
+
+                }
+                break;
+            case 43 :
+                // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1:262: T__55
+                {
+                mT__55(); 
+
+                }
+                break;
+            case 44 :
+                // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1:268: T__56
+                {
+                mT__56(); 
+
+                }
+                break;
+            case 45 :
+                // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1:274: T__57
+                {
+                mT__57(); 
+
+                }
+                break;
+            case 46 :
+                // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1:280: T__58
+                {
+                mT__58(); 
+
+                }
+                break;
+            case 47 :
+                // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1:286: T__59
+                {
+                mT__59(); 
+
+                }
+                break;
+            case 48 :
+                // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1:292: T__60
+                {
+                mT__60(); 
+
+                }
+                break;
+            case 49 :
+                // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1:298: T__61
+                {
+                mT__61(); 
+
+                }
+                break;
+            case 50 :
+                // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1:304: T__62
+                {
+                mT__62(); 
+
+                }
+                break;
+            case 51 :
+                // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1:310: T__63
+                {
+                mT__63(); 
+
+                }
+                break;
+            case 52 :
+                // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1:316: T__64
+                {
+                mT__64(); 
+
+                }
+                break;
+            case 53 :
+                // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1:322: T__65
+                {
+                mT__65(); 
+
+                }
+                break;
+            case 54 :
+                // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1:328: T__66
+                {
+                mT__66(); 
+
+                }
+                break;
+            case 55 :
+                // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1:334: T__67
+                {
+                mT__67(); 
+
+                }
+                break;
+            case 56 :
+                // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1:340: T__68
+                {
+                mT__68(); 
+
+                }
+                break;
+            case 57 :
+                // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1:346: T__69
+                {
+                mT__69(); 
+
+                }
+                break;
+            case 58 :
+                // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1:352: T__70
+                {
+                mT__70(); 
+
+                }
+                break;
+            case 59 :
+                // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1:358: T__71
+                {
+                mT__71(); 
+
+                }
+                break;
+            case 60 :
+                // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1:364: T__72
+                {
+                mT__72(); 
+
+                }
+                break;
+            case 61 :
+                // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1:370: T__73
+                {
+                mT__73(); 
+
+                }
+                break;
+            case 62 :
+                // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1:376: T__74
+                {
+                mT__74(); 
+
+                }
+                break;
+            case 63 :
+                // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1:382: T__75
+                {
+                mT__75(); 
+
+                }
+                break;
+            case 64 :
+                // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1:388: T__76
+                {
+                mT__76(); 
+
+                }
+                break;
+            case 65 :
+                // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1:394: T__77
+                {
+                mT__77(); 
+
+                }
+                break;
+            case 66 :
+                // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1:400: T__78
+                {
+                mT__78(); 
+
+                }
+                break;
+            case 67 :
+                // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1:406: T__79
+                {
+                mT__79(); 
+
+                }
+                break;
+            case 68 :
+                // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1:412: T__80
+                {
+                mT__80(); 
+
+                }
+                break;
+            case 69 :
+                // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1:418: T__81
+                {
+                mT__81(); 
+
+                }
+                break;
+            case 70 :
+                // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1:424: T__82
+                {
+                mT__82(); 
+
+                }
+                break;
+            case 71 :
+                // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1:430: T__83
+                {
+                mT__83(); 
+
+                }
+                break;
+            case 72 :
+                // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1:436: T__84
+                {
+                mT__84(); 
+
+                }
+                break;
+            case 73 :
+                // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1:442: T__85
+                {
+                mT__85(); 
+
+                }
+                break;
+            case 74 :
+                // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1:448: T__86
+                {
+                mT__86(); 
+
+                }
+                break;
+            case 75 :
+                // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1:454: T__87
+                {
+                mT__87(); 
+
+                }
+                break;
+            case 76 :
+                // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1:460: T__88
+                {
+                mT__88(); 
+
+                }
+                break;
+            case 77 :
+                // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1:466: T__89
+                {
+                mT__89(); 
+
+                }
+                break;
+            case 78 :
+                // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1:472: T__90
+                {
+                mT__90(); 
+
+                }
+                break;
+            case 79 :
+                // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1:478: T__91
+                {
+                mT__91(); 
+
+                }
+                break;
+            case 80 :
+                // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1:484: T__92
+                {
+                mT__92(); 
+
+                }
+                break;
+            case 81 :
+                // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1:490: T__93
+                {
+                mT__93(); 
+
+                }
+                break;
+            case 82 :
+                // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1:496: T__94
+                {
+                mT__94(); 
+
+                }
+                break;
+            case 83 :
+                // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1:502: T__95
+                {
+                mT__95(); 
+
+                }
+                break;
+            case 84 :
+                // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1:508: T__96
+                {
+                mT__96(); 
+
+                }
+                break;
+            case 85 :
+                // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1:514: T__97
+                {
+                mT__97(); 
+
+                }
+                break;
+            case 86 :
+                // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1:520: T__98
+                {
+                mT__98(); 
+
+                }
+                break;
+            case 87 :
+                // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1:526: T__99
+                {
+                mT__99(); 
+
+                }
+                break;
+            case 88 :
+                // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1:532: T__100
+                {
+                mT__100(); 
+
+                }
+                break;
+            case 89 :
+                // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1:539: T__101
+                {
+                mT__101(); 
+
+                }
+                break;
+            case 90 :
+                // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1:546: T__102
+                {
+                mT__102(); 
+
+                }
+                break;
+            case 91 :
+                // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1:553: T__103
+                {
+                mT__103(); 
+
+                }
+                break;
+            case 92 :
+                // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1:560: T__104
+                {
+                mT__104(); 
+
+                }
+                break;
+            case 93 :
+                // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1:567: T__105
+                {
+                mT__105(); 
+
+                }
+                break;
+            case 94 :
+                // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1:574: T__106
+                {
+                mT__106(); 
+
+                }
+                break;
+            case 95 :
+                // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1:581: T__107
+                {
+                mT__107(); 
+
+                }
+                break;
+            case 96 :
+                // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1:588: T__108
+                {
+                mT__108(); 
+
+                }
+                break;
+            case 97 :
+                // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1:595: T__109
+                {
+                mT__109(); 
+
+                }
+                break;
+            case 98 :
+                // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1:602: T__110
+                {
+                mT__110(); 
+
+                }
+                break;
+            case 99 :
+                // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1:609: T__111
+                {
+                mT__111(); 
+
+                }
+                break;
+            case 100 :
+                // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1:616: T__112
+                {
+                mT__112(); 
+
+                }
+                break;
+            case 101 :
+                // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1:623: T__113
+                {
+                mT__113(); 
+
+                }
+                break;
+            case 102 :
+                // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1:630: T__114
+                {
+                mT__114(); 
+
+                }
+                break;
+            case 103 :
+                // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1:637: T__115
+                {
+                mT__115(); 
+
+                }
+                break;
+            case 104 :
+                // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1:644: T__116
+                {
+                mT__116(); 
+
+                }
+                break;
+            case 105 :
+                // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1:651: T__117
+                {
+                mT__117(); 
+
+                }
+                break;
+            case 106 :
+                // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1:658: T__118
+                {
+                mT__118(); 
+
+                }
+                break;
+            case 107 :
+                // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1:665: T__119
+                {
+                mT__119(); 
+
+                }
+                break;
+            case 108 :
+                // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1:672: T__120
+                {
+                mT__120(); 
+
+                }
+                break;
+            case 109 :
+                // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1:679: T__121
+                {
+                mT__121(); 
+
+                }
+                break;
+            case 110 :
+                // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1:686: T__122
+                {
+                mT__122(); 
+
+                }
+                break;
+            case 111 :
+                // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1:693: T__123
+                {
+                mT__123(); 
+
+                }
+                break;
+            case 112 :
+                // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1:700: T__124
+                {
+                mT__124(); 
+
+                }
+                break;
+            case 113 :
+                // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1:707: T__125
+                {
+                mT__125(); 
+
+                }
+                break;
+            case 114 :
+                // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1:714: T__126
+                {
+                mT__126(); 
+
+                }
+                break;
+            case 115 :
+                // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1:721: T__127
+                {
+                mT__127(); 
+
+                }
+                break;
+            case 116 :
+                // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1:728: T__128
+                {
+                mT__128(); 
+
+                }
+                break;
+            case 117 :
+                // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1:735: T__129
+                {
+                mT__129(); 
+
+                }
+                break;
+            case 118 :
+                // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1:742: T__130
+                {
+                mT__130(); 
+
+                }
+                break;
+            case 119 :
+                // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1:749: RULE_HEX
+                {
+                mRULE_HEX(); 
+
+                }
+                break;
+            case 120 :
+                // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1:758: RULE_INT
+                {
+                mRULE_INT(); 
+
+                }
+                break;
+            case 121 :
+                // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1:767: RULE_DECIMAL
+                {
+                mRULE_DECIMAL(); 
+
+                }
+                break;
+            case 122 :
+                // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1:780: RULE_ID
+                {
+                mRULE_ID(); 
+
+                }
+                break;
+            case 123 :
+                // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1:788: RULE_STRING
+                {
+                mRULE_STRING(); 
+
+                }
+                break;
+            case 124 :
+                // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1:800: RULE_ML_COMMENT
+                {
+                mRULE_ML_COMMENT(); 
+
+                }
+                break;
+            case 125 :
+                // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1:816: RULE_SL_COMMENT
+                {
+                mRULE_SL_COMMENT(); 
+
+                }
+                break;
+            case 126 :
+                // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1:832: RULE_WS
+                {
+                mRULE_WS(); 
+
+                }
+                break;
+            case 127 :
+                // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1:840: RULE_ANY_OTHER
+                {
+                mRULE_ANY_OTHER(); 
+
+                }
+                break;
+
+        }
+
+    }
+
+
+    protected DFA21 dfa21 = new DFA21(this);
+    static final String DFA21_eotS =
+        "\1\uffff\1\73\2\uffff\12\73\1\134\1\137\4\uffff\1\146\3\uffff\1"+
+        "\154\1\160\1\164\1\166\1\170\1\172\1\174\1\176\1\u0080\1\u0083\1"+
+        "\73\1\u0086\1\uffff\15\73\2\u00a2\1\71\5\uffff\1\73\3\uffff\10\73"+
+        "\1\u00b1\4\73\1\u00b6\17\73\1\u00cb\10\uffff\1\u00cd\32\uffff\1"+
+        "\u00cf\4\uffff\1\u00d0\3\uffff\30\73\1\uffff\1\u00a2\4\uffff\4\73"+
+        "\1\u00f3\6\73\1\uffff\4\73\1\uffff\23\73\7\uffff\1\u0111\2\73\1"+
+        "\u0114\1\u0115\1\u0116\25\73\1\u012c\5\73\1\u0132\1\uffff\6\73\1"+
+        "\u013a\1\u013b\5\73\1\u0141\4\73\1\u0146\12\73\1\uffff\2\73\3\uffff"+
+        "\1\u0153\4\73\1\u0158\1\73\1\u015a\1\u015b\7\73\1\u0164\2\73\1\u0167"+
+        "\1\73\1\uffff\5\73\1\uffff\1\73\1\u016f\4\73\1\u0174\2\uffff\2\73"+
+        "\1\u0177\2\73\1\uffff\1\u017a\3\73\1\uffff\4\73\1\u0183\4\73\1\u0188"+
+        "\1\u0189\1\73\1\uffff\1\u018b\2\73\1\u018e\1\uffff\1\73\2\uffff"+
+        "\10\73\1\uffff\2\73\1\uffff\6\73\1\u01a0\1\uffff\4\73\1\uffff\1"+
+        "\u01a5\1\73\1\uffff\2\73\1\uffff\6\73\1\u01af\1\u01b0\1\uffff\2"+
+        "\73\1\u01b3\1\73\2\uffff\1\73\1\uffff\1\73\1\u01b7\1\uffff\2\73"+
+        "\1\u01ba\1\73\1\u01bd\1\73\1\u01bf\3\73\1\u01c3\1\u01c4\1\73\1\u01c6"+
+        "\1\u01c7\1\u01c8\1\73\1\uffff\1\73\1\u01cb\2\73\1\uffff\5\73\1\u01d3"+
+        "\1\73\1\u01d5\1\73\2\uffff\2\73\1\uffff\1\73\1\u01da\1\73\1\uffff"+
+        "\1\u01dc\1\u01dd\1\uffff\2\73\1\uffff\1\73\1\uffff\1\73\1\u01e2"+
+        "\1\73\2\uffff\1\73\3\uffff\2\73\1\uffff\7\73\1\uffff\1\73\1\uffff"+
+        "\4\73\1\uffff\1\u01f3\2\uffff\1\u01f4\1\73\1\u01f6\1\u01f7\1\uffff"+
+        "\1\u01f8\12\73\1\u0203\4\73\2\uffff\1\u0208\3\uffff\1\73\1\u020a"+
+        "\1\uffff\2\73\1\u020d\1\73\1\u020f\2\73\1\uffff\4\73\1\uffff\1\73"+
+        "\1\uffff\2\73\1\uffff\1\73\1\uffff\1\u021a\6\73\1\u0221\2\73\1\uffff"+
+        "\2\73\1\u0226\1\u0227\2\73\1\uffff\1\73\1\u022b\2\73\2\uffff\1\73"+
+        "\1\u022f\1\73\1\uffff\2\73\1\u0233\1\uffff\3\73\1\uffff\1\73\1\u0238"+
+        "\2\73\1\uffff\6\73\1\u0241\1\u0242\2\uffff";
+    static final String DFA21_eofS =
+        "\u0243\uffff";
+    static final String DFA21_minS =
+        "\1\0\1\141\2\uffff\2\141\1\143\1\145\1\141\1\154\3\145\1\150\1"+
+        "\56\1\52\4\uffff\1\75\3\uffff\1\53\1\55\1\52\1\75\1\76\1\75\1\174"+
+        "\1\46\1\75\1\56\1\163\1\72\1\uffff\2\141\1\145\2\141\2\145\1\141"+
+        "\1\143\1\170\1\145\1\162\1\155\2\60\1\44\5\uffff\1\143\3\uffff\1"+
+        "\157\1\163\1\165\1\160\1\162\1\146\1\141\1\164\1\44\1\145\1\157"+
+        "\1\160\1\163\1\44\1\157\2\156\1\141\1\145\2\163\1\154\1\151\1\141"+
+        "\1\160\1\156\1\160\1\162\1\151\1\74\10\uffff\1\75\32\uffff\1\75"+
+        "\4\uffff\1\44\3\uffff\1\162\1\154\1\156\1\154\1\167\1\154\1\141"+
+        "\1\155\1\156\1\141\1\163\1\151\1\166\1\147\1\154\1\167\1\162\1\151"+
+        "\1\164\1\144\1\151\1\167\1\151\1\160\1\uffff\1\60\4\uffff\1\153"+
+        "\1\154\1\153\1\145\1\44\1\145\1\157\1\143\1\141\1\154\1\141\1\uffff"+
+        "\1\155\1\156\1\157\1\164\1\uffff\1\165\1\145\1\105\1\145\1\143\1"+
+        "\162\1\143\2\145\1\163\1\145\2\164\1\145\1\143\1\157\1\165\1\153"+
+        "\1\154\7\uffff\1\44\1\163\1\141\3\44\1\154\1\151\1\160\1\143\1\162"+
+        "\3\160\2\145\1\165\1\151\1\157\1\145\1\156\1\167\1\154\1\151\1\101"+
+        "\1\164\1\157\1\44\1\156\1\157\1\141\1\142\1\101\1\44\1\uffff\1\157"+
+        "\1\167\1\162\1\165\1\157\1\151\2\44\1\162\1\141\1\160\1\162\1\170"+
+        "\1\44\1\150\1\164\1\165\1\156\1\44\1\141\2\143\1\151\1\162\1\150"+
+        "\2\162\1\146\1\145\1\uffff\1\145\1\154\3\uffff\1\44\1\155\1\154"+
+        "\1\145\1\164\1\44\1\145\2\44\1\141\1\155\1\163\1\166\1\147\1\154"+
+        "\1\141\1\44\1\166\1\154\1\44\1\162\1\uffff\1\164\1\162\1\147\1\141"+
+        "\1\143\1\uffff\1\146\1\44\1\151\1\154\1\147\1\156\1\44\2\uffff\1"+
+        "\164\1\156\1\44\1\151\1\145\1\uffff\1\44\1\101\1\164\1\144\1\uffff"+
+        "\1\147\1\164\1\150\1\143\1\44\1\162\1\164\1\156\1\154\2\44\1\154"+
+        "\1\uffff\1\44\1\145\1\154\1\44\1\uffff\1\156\2\uffff\1\163\1\145"+
+        "\1\164\1\145\1\141\1\145\1\157\1\162\1\uffff\1\141\1\154\1\uffff"+
+        "\1\164\1\117\1\164\1\145\1\162\1\164\1\44\1\uffff\1\142\1\164\1"+
+        "\101\1\164\1\uffff\1\44\1\143\1\uffff\2\143\1\uffff\1\143\1\145"+
+        "\1\163\1\151\1\145\1\127\2\44\1\uffff\1\157\1\101\1\44\1\157\2\uffff"+
+        "\1\171\1\uffff\1\164\1\44\1\uffff\1\144\1\145\1\44\1\145\1\44\1"+
+        "\164\1\44\1\141\1\144\1\164\2\44\1\156\3\44\1\151\1\uffff\1\145"+
+        "\1\44\1\143\1\145\1\uffff\1\145\1\101\1\165\1\164\1\120\1\44\1\157"+
+        "\1\44\1\157\2\uffff\1\156\1\143\1\uffff\1\167\1\44\1\145\1\uffff"+
+        "\2\44\1\uffff\1\162\1\154\1\uffff\1\145\1\uffff\1\144\1\44\1\145"+
+        "\2\uffff\1\123\3\uffff\1\157\1\144\1\uffff\1\164\1\162\1\157\1\143"+
+        "\1\164\1\151\1\141\1\uffff\1\156\1\uffff\1\162\1\151\1\164\1\101"+
+        "\1\uffff\1\44\2\uffff\1\44\1\154\2\44\1\uffff\1\44\1\145\1\156\1"+
+        "\40\1\151\1\143\1\146\1\164\1\145\1\157\1\162\1\44\1\153\1\172\1"+
+        "\151\1\143\2\uffff\1\44\3\uffff\1\162\1\44\1\uffff\1\157\1\150\1"+
+        "\44\1\151\1\44\1\156\1\141\1\uffff\1\154\1\145\1\157\1\164\1\uffff"+
+        "\1\166\1\uffff\1\156\1\141\1\uffff\1\157\1\uffff\1\44\1\155\1\157"+
+        "\1\144\1\156\1\151\1\145\1\44\2\156\1\uffff\1\145\1\141\2\44\1\157"+
+        "\1\162\1\uffff\1\147\1\44\1\164\1\144\2\uffff\1\156\1\44\1\145\1"+
+        "\uffff\1\145\1\101\1\44\1\uffff\1\101\1\162\1\143\1\uffff\1\143"+
+        "\1\44\2\164\1\uffff\2\151\2\157\2\156\2\44\2\uffff";
+    static final String DFA21_maxS =
+        "\1\uffff\1\141\2\uffff\1\171\1\157\1\164\1\162\1\150\1\170\1\145"+
+        "\1\171\1\145\1\157\1\56\1\75\4\uffff\1\76\3\uffff\1\75\1\76\2\75"+
+        "\1\76\1\75\1\174\1\46\1\75\1\72\1\163\1\72\1\uffff\1\157\1\141\1"+
+        "\165\1\157\1\165\1\145\2\157\1\144\1\170\1\145\1\162\1\155\1\170"+
+        "\1\154\1\172\5\uffff\1\143\3\uffff\1\157\1\163\1\171\1\160\1\162"+
+        "\1\163\1\141\1\164\1\172\1\145\1\157\1\160\1\163\1\172\1\157\1\156"+
+        "\1\164\1\141\1\164\2\163\1\154\1\151\1\141\1\160\1\156\1\164\1\162"+
+        "\1\151\1\74\10\uffff\1\75\32\uffff\1\75\4\uffff\1\172\3\uffff\1"+
+        "\162\1\154\1\156\1\162\1\167\1\154\1\141\1\155\1\156\1\157\1\163"+
+        "\1\151\1\166\1\163\1\154\1\167\1\162\1\151\1\164\1\144\1\160\1\167"+
+        "\1\151\1\160\1\uffff\1\154\4\uffff\1\153\1\154\1\153\1\145\1\172"+
+        "\1\145\1\157\1\143\1\141\1\154\1\141\1\uffff\1\155\1\156\1\157\1"+
+        "\164\1\uffff\1\165\1\145\1\105\1\145\1\143\1\162\1\143\2\145\1\163"+
+        "\1\145\2\164\1\145\1\143\1\157\1\165\1\153\1\154\7\uffff\1\172\1"+
+        "\163\1\141\3\172\1\154\1\151\1\160\1\143\1\162\3\160\2\145\1\165"+
+        "\1\151\1\157\1\145\1\156\1\167\1\154\1\151\1\101\1\164\1\157\1\172"+
+        "\1\156\1\157\1\141\1\142\1\101\1\172\1\uffff\1\157\1\167\1\162\1"+
+        "\165\1\157\1\151\2\172\1\162\1\141\1\160\1\162\1\170\1\172\1\150"+
+        "\1\164\1\165\1\156\1\172\1\141\2\143\1\151\1\162\1\150\2\162\1\146"+
+        "\1\145\1\uffff\1\145\1\154\3\uffff\1\172\1\155\1\154\1\145\1\164"+
+        "\1\172\1\145\2\172\1\141\1\155\1\163\1\166\1\164\1\154\1\141\1\172"+
+        "\1\166\1\154\1\172\1\162\1\uffff\1\164\1\162\1\147\1\141\1\143\1"+
+        "\uffff\1\146\1\172\1\151\1\154\1\147\1\156\1\172\2\uffff\1\164\1"+
+        "\156\1\172\1\151\1\145\1\uffff\1\172\1\101\1\164\1\163\1\uffff\1"+
+        "\147\1\164\1\150\1\143\1\172\1\162\1\164\1\156\1\154\2\172\1\154"+
+        "\1\uffff\1\172\1\145\1\154\1\172\1\uffff\1\156\2\uffff\1\163\1\145"+
+        "\1\164\1\145\1\141\1\145\1\157\1\162\1\uffff\1\141\1\154\1\uffff"+
+        "\1\164\1\117\1\164\1\145\1\162\1\164\1\172\1\uffff\1\142\1\164\1"+
+        "\101\1\164\1\uffff\1\172\1\143\1\uffff\2\143\1\uffff\1\143\1\145"+
+        "\1\163\1\151\1\145\1\127\2\172\1\uffff\1\157\1\101\1\172\1\157\2"+
+        "\uffff\1\171\1\uffff\1\164\1\172\1\uffff\1\144\1\145\1\172\1\145"+
+        "\1\172\1\164\1\172\1\141\1\144\1\164\2\172\1\156\3\172\1\151\1\uffff"+
+        "\1\145\1\172\1\143\1\145\1\uffff\1\145\1\101\1\165\1\164\1\120\1"+
+        "\172\1\157\1\172\1\157\2\uffff\1\156\1\143\1\uffff\1\167\1\172\1"+
+        "\145\1\uffff\2\172\1\uffff\1\162\1\154\1\uffff\1\145\1\uffff\1\144"+
+        "\1\172\1\145\2\uffff\1\123\3\uffff\1\157\1\144\1\uffff\1\164\1\162"+
+        "\1\157\1\143\1\164\1\151\1\141\1\uffff\1\156\1\uffff\1\162\1\151"+
+        "\1\164\1\101\1\uffff\1\172\2\uffff\1\172\1\154\2\172\1\uffff\1\172"+
+        "\1\145\1\156\1\40\1\151\1\143\1\146\1\164\1\145\1\157\1\162\1\172"+
+        "\1\153\1\172\1\151\1\143\2\uffff\1\172\3\uffff\1\162\1\172\1\uffff"+
+        "\1\157\1\150\1\172\1\151\1\172\1\156\1\141\1\uffff\1\154\1\145\1"+
+        "\157\1\164\1\uffff\1\166\1\uffff\1\156\1\141\1\uffff\1\157\1\uffff"+
+        "\1\172\1\155\1\157\1\144\1\156\1\151\1\145\1\172\2\156\1\uffff\1"+
+        "\145\1\141\2\172\1\157\1\162\1\uffff\1\147\1\172\1\164\1\144\2\uffff"+
+        "\1\156\1\172\1\145\1\uffff\1\145\1\101\1\172\1\uffff\1\101\1\162"+
+        "\1\143\1\uffff\1\143\1\172\2\164\1\uffff\2\151\2\157\2\156\2\172"+
+        "\2\uffff";
+    static final String DFA21_acceptS =
+        "\2\uffff\1\2\1\3\14\uffff\1\30\1\31\1\32\1\33\1\uffff\1\35\1\36"+
+        "\1\37\14\uffff\1\101\20\uffff\1\172\2\173\1\176\1\177\1\uffff\1"+
+        "\172\1\2\1\3\36\uffff\1\26\1\42\1\67\1\27\1\30\1\31\1\32\1\33\1"+
+        "\uffff\1\62\1\34\1\35\1\36\1\37\1\40\1\74\1\65\1\41\1\57\1\75\1"+
+        "\66\1\43\1\174\1\175\1\70\1\44\1\71\1\63\1\45\1\47\1\46\1\50\1\100"+
+        "\1\51\1\135\1\uffff\1\72\1\64\1\77\1\134\1\uffff\1\76\1\105\1\101"+
+        "\30\uffff\1\167\1\uffff\1\170\1\171\1\173\1\176\13\uffff\1\112\4"+
+        "\uffff\1\102\23\uffff\1\60\1\61\1\54\1\52\1\55\1\53\1\73\42\uffff"+
+        "\1\130\35\uffff\1\110\2\uffff\1\113\1\114\1\121\25\uffff\1\157\5"+
+        "\uffff\1\123\7\uffff\1\7\1\10\5\uffff\1\107\4\uffff\1\103\14\uffff"+
+        "\1\124\4\uffff\1\140\1\uffff\1\144\1\160\10\uffff\1\150\2\uffff"+
+        "\1\154\7\uffff\1\126\4\uffff\1\6\2\uffff\1\11\2\uffff\1\133\10\uffff"+
+        "\1\120\4\uffff\1\111\1\122\1\uffff\1\136\2\uffff\1\137\21\uffff"+
+        "\1\125\4\uffff\1\25\11\uffff\1\104\1\116\2\uffff\1\127\3\uffff\1"+
+        "\162\2\uffff\1\143\2\uffff\1\152\1\uffff\1\161\3\uffff\1\156\1\166"+
+        "\1\uffff\1\165\1\1\1\4\2\uffff\1\106\7\uffff\1\115\1\uffff\1\14"+
+        "\4\uffff\1\131\1\uffff\1\142\1\141\4\uffff\1\147\20\uffff\1\145"+
+        "\1\151\1\uffff\1\146\1\164\1\153\2\uffff\1\5\7\uffff\1\117\4\uffff"+
+        "\1\155\1\uffff\1\15\2\uffff\1\56\1\uffff\1\12\12\uffff\1\21\6\uffff"+
+        "\1\17\4\uffff\1\132\1\20\3\uffff\1\24\3\uffff\1\163\3\uffff\1\22"+
+        "\4\uffff\1\13\10\uffff\1\16\1\23";
+    static final String DFA21_specialS =
+        "\1\0\u0242\uffff}>";
+    static final String[] DFA21_transitionS = {
+            "\11\71\2\70\2\71\1\70\22\71\1\70\1\40\1\66\1\25\1\65\1\33\1"+
+            "\37\1\67\1\21\1\23\1\17\1\30\1\22\1\31\1\16\1\32\1\62\11\63"+
+            "\1\43\1\44\1\34\1\24\1\35\1\41\1\20\1\55\1\65\1\50\1\53\1\56"+
+            "\1\54\2\65\1\61\4\65\1\57\1\65\1\60\1\65\1\52\1\51\7\65\1\26"+
+            "\1\71\1\27\1\64\1\65\1\71\1\42\1\65\1\10\1\5\1\11\1\45\1\7\1"+
+            "\65\1\6\3\65\1\12\1\47\1\65\1\1\1\65\1\14\1\13\1\4\1\65\1\46"+
+            "\1\15\3\65\1\2\1\36\1\3\uff82\71",
+            "\1\72",
+            "",
+            "",
+            "\1\77\6\uffff\1\102\6\uffff\1\76\2\uffff\1\100\6\uffff\1\101",
+            "\1\105\3\uffff\1\103\3\uffff\1\104\5\uffff\1\106",
+            "\1\110\2\uffff\1\113\6\uffff\1\111\1\112\5\uffff\1\107",
+            "\1\115\14\uffff\1\114",
+            "\1\116\6\uffff\1\117",
+            "\1\121\13\uffff\1\120",
+            "\1\122",
+            "\1\123\16\uffff\1\125\1\126\1\uffff\1\124\1\uffff\1\127",
+            "\1\130",
+            "\1\132\6\uffff\1\131",
+            "\1\133",
+            "\1\136\22\uffff\1\135",
+            "",
+            "",
+            "",
+            "",
+            "\1\144\1\145",
+            "",
+            "",
+            "",
+            "\1\153\21\uffff\1\152",
+            "\1\157\17\uffff\1\155\1\156",
+            "\1\162\4\uffff\1\163\15\uffff\1\161",
+            "\1\165",
+            "\1\167",
+            "\1\171",
+            "\1\173",
+            "\1\175",
+            "\1\177",
+            "\1\u0082\13\uffff\1\u0081",
+            "\1\u0084",
+            "\1\u0085",
+            "",
+            "\1\u0089\7\uffff\1\u008a\5\uffff\1\u0088",
+            "\1\u008b",
+            "\1\u008c\17\uffff\1\u008d",
+            "\1\u0090\12\uffff\1\u008e\2\uffff\1\u008f",
+            "\1\u0094\11\uffff\1\u0093\10\uffff\1\u0091\1\u0092",
+            "\1\u0095",
+            "\1\u0096\11\uffff\1\u0097",
+            "\1\u0099\15\uffff\1\u0098",
+            "\1\u009a\1\u009b",
+            "\1\u009c",
+            "\1\u009d",
+            "\1\u009e",
+            "\1\u009f",
+            "\12\u00a1\10\uffff\1\u00a3\1\uffff\3\u00a3\5\uffff\1\u00a3"+
+            "\13\uffff\1\u00a0\6\uffff\1\u00a1\2\uffff\1\u00a3\1\uffff\3"+
+            "\u00a3\5\uffff\1\u00a3\13\uffff\1\u00a0",
+            "\12\u00a1\10\uffff\1\u00a3\1\uffff\3\u00a3\5\uffff\1\u00a3"+
+            "\22\uffff\1\u00a1\2\uffff\1\u00a3\1\uffff\3\u00a3\5\uffff\1"+
+            "\u00a3",
+            "\1\73\34\uffff\32\73\4\uffff\1\73\1\uffff\32\73",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "\1\u00a6",
+            "",
+            "",
+            "",
+            "\1\u00a7",
+            "\1\u00a8",
+            "\1\u00a9\3\uffff\1\u00aa",
+            "\1\u00ab",
+            "\1\u00ac",
+            "\1\u00ae\14\uffff\1\u00ad",
+            "\1\u00af",
+            "\1\u00b0",
+            "\1\73\13\uffff\12\73\7\uffff\32\73\4\uffff\1\73\1\uffff\32"+
+            "\73",
+            "\1\u00b2",
+            "\1\u00b3",
+            "\1\u00b4",
+            "\1\u00b5",
+            "\1\73\13\uffff\12\73\7\uffff\32\73\4\uffff\1\73\1\uffff\32"+
+            "\73",
+            "\1\u00b7",
+            "\1\u00b8",
+            "\1\u00b9\4\uffff\1\u00ba\1\u00bb",
+            "\1\u00bc",
+            "\1\u00bd\16\uffff\1\u00be",
+            "\1\u00bf",
+            "\1\u00c0",
+            "\1\u00c1",
+            "\1\u00c2",
+            "\1\u00c3",
+            "\1\u00c4",
+            "\1\u00c5",
+            "\1\u00c6\3\uffff\1\u00c7",
+            "\1\u00c8",
+            "\1\u00c9",
+            "\1\u00ca",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "\1\u00cc",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "\1\u00ce",
+            "",
+            "",
+            "",
+            "",
+            "\1\73\13\uffff\12\73\7\uffff\32\73\4\uffff\1\73\1\uffff\32"+
+            "\73",
+            "",
+            "",
+            "",
+            "\1\u00d1",
+            "\1\u00d2",
+            "\1\u00d3",
+            "\1\u00d5\5\uffff\1\u00d4",
+            "\1\u00d6",
+            "\1\u00d7",
+            "\1\u00d8",
+            "\1\u00d9",
+            "\1\u00da",
+            "\1\u00db\15\uffff\1\u00dc",
+            "\1\u00dd",
+            "\1\u00de",
+            "\1\u00df",
+            "\1\u00e2\4\uffff\1\u00e0\1\u00e3\5\uffff\1\u00e1",
+            "\1\u00e4",
+            "\1\u00e5",
+            "\1\u00e6",
+            "\1\u00e7",
+            "\1\u00e8",
+            "\1\u00e9",
+            "\1\u00ea\6\uffff\1\u00eb",
+            "\1\u00ec",
+            "\1\u00ed",
+            "\1\u00ee",
+            "",
+            "\12\u00a1\10\uffff\1\u00a3\1\uffff\3\u00a3\5\uffff\1\u00a3"+
+            "\22\uffff\1\u00a1\2\uffff\1\u00a3\1\uffff\3\u00a3\5\uffff\1"+
+            "\u00a3",
+            "",
+            "",
+            "",
+            "",
+            "\1\u00ef",
+            "\1\u00f0",
+            "\1\u00f1",
+            "\1\u00f2",
+            "\1\73\13\uffff\12\73\7\uffff\32\73\4\uffff\1\73\1\uffff\32"+
+            "\73",
+            "\1\u00f4",
+            "\1\u00f5",
+            "\1\u00f6",
+            "\1\u00f7",
+            "\1\u00f8",
+            "\1\u00f9",
+            "",
+            "\1\u00fa",
+            "\1\u00fb",
+            "\1\u00fc",
+            "\1\u00fd",
+            "",
+            "\1\u00fe",
+            "\1\u00ff",
+            "\1\u0100",
+            "\1\u0101",
+            "\1\u0102",
+            "\1\u0103",
+            "\1\u0104",
+            "\1\u0105",
+            "\1\u0106",
+            "\1\u0107",
+            "\1\u0108",
+            "\1\u0109",
+            "\1\u010a",
+            "\1\u010b",
+            "\1\u010c",
+            "\1\u010d",
+            "\1\u010e",
+            "\1\u010f",
+            "\1\u0110",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "\1\73\13\uffff\12\73\7\uffff\32\73\4\uffff\1\73\1\uffff\32"+
+            "\73",
+            "\1\u0112",
+            "\1\u0113",
+            "\1\73\13\uffff\12\73\7\uffff\32\73\4\uffff\1\73\1\uffff\32"+
+            "\73",
+            "\1\73\13\uffff\12\73\7\uffff\32\73\4\uffff\1\73\1\uffff\32"+
+            "\73",
+            "\1\73\13\uffff\12\73\7\uffff\32\73\4\uffff\1\73\1\uffff\32"+
+            "\73",
+            "\1\u0117",
+            "\1\u0118",
+            "\1\u0119",
+            "\1\u011a",
+            "\1\u011b",
+            "\1\u011c",
+            "\1\u011d",
+            "\1\u011e",
+            "\1\u011f",
+            "\1\u0120",
+            "\1\u0121",
+            "\1\u0122",
+            "\1\u0123",
+            "\1\u0124",
+            "\1\u0125",
+            "\1\u0126",
+            "\1\u0127",
+            "\1\u0128",
+            "\1\u0129",
+            "\1\u012a",
+            "\1\u012b",
+            "\1\73\13\uffff\12\73\7\uffff\32\73\4\uffff\1\73\1\uffff\32"+
+            "\73",
+            "\1\u012d",
+            "\1\u012e",
+            "\1\u012f",
+            "\1\u0130",
+            "\1\u0131",
+            "\1\73\13\uffff\12\73\7\uffff\32\73\4\uffff\1\73\1\uffff\32"+
+            "\73",
+            "",
+            "\1\u0133",
+            "\1\u0134",
+            "\1\u0135",
+            "\1\u0136",
+            "\1\u0137",
+            "\1\u0138",
+            "\1\73\13\uffff\12\73\7\uffff\32\73\4\uffff\1\73\1\uffff\22"+
+            "\73\1\u0139\7\73",
+            "\1\73\13\uffff\12\73\7\uffff\32\73\4\uffff\1\73\1\uffff\32"+
+            "\73",
+            "\1\u013c",
+            "\1\u013d",
+            "\1\u013e",
+            "\1\u013f",
+            "\1\u0140",
+            "\1\73\13\uffff\12\73\7\uffff\32\73\4\uffff\1\73\1\uffff\32"+
+            "\73",
+            "\1\u0142",
+            "\1\u0143",
+            "\1\u0144",
+            "\1\u0145",
+            "\1\73\13\uffff\12\73\7\uffff\32\73\4\uffff\1\73\1\uffff\32"+
+            "\73",
+            "\1\u0147",
+            "\1\u0148",
+            "\1\u0149",
+            "\1\u014a",
+            "\1\u014b",
+            "\1\u014c",
+            "\1\u014d",
+            "\1\u014e",
+            "\1\u014f",
+            "\1\u0150",
+            "",
+            "\1\u0151",
+            "\1\u0152",
+            "",
+            "",
+            "",
+            "\1\73\13\uffff\12\73\7\uffff\32\73\4\uffff\1\73\1\uffff\32"+
+            "\73",
+            "\1\u0154",
+            "\1\u0155",
+            "\1\u0156",
+            "\1\u0157",
+            "\1\73\13\uffff\12\73\7\uffff\32\73\4\uffff\1\73\1\uffff\32"+
+            "\73",
+            "\1\u0159",
+            "\1\73\13\uffff\12\73\7\uffff\32\73\4\uffff\1\73\1\uffff\32"+
+            "\73",
+            "\1\73\13\uffff\12\73\7\uffff\32\73\4\uffff\1\73\1\uffff\32"+
+            "\73",
+            "\1\u015c",
+            "\1\u015d",
+            "\1\u015e",
+            "\1\u015f",
+            "\1\u0160\14\uffff\1\u0161",
+            "\1\u0162",
+            "\1\u0163",
+            "\1\73\13\uffff\12\73\7\uffff\32\73\4\uffff\1\73\1\uffff\32"+
+            "\73",
+            "\1\u0165",
+            "\1\u0166",
+            "\1\73\13\uffff\12\73\7\uffff\32\73\4\uffff\1\73\1\uffff\32"+
+            "\73",
+            "\1\u0168",
+            "",
+            "\1\u0169",
+            "\1\u016a",
+            "\1\u016b",
+            "\1\u016c",
+            "\1\u016d",
+            "",
+            "\1\u016e",
+            "\1\73\13\uffff\12\73\7\uffff\32\73\4\uffff\1\73\1\uffff\32"+
+            "\73",
+            "\1\u0170",
+            "\1\u0171",
+            "\1\u0172",
+            "\1\u0173",
+            "\1\73\13\uffff\12\73\7\uffff\32\73\4\uffff\1\73\1\uffff\32"+
+            "\73",
+            "",
+            "",
+            "\1\u0175",
+            "\1\u0176",
+            "\1\73\13\uffff\12\73\7\uffff\32\73\4\uffff\1\73\1\uffff\32"+
+            "\73",
+            "\1\u0178",
+            "\1\u0179",
+            "",
+            "\1\73\13\uffff\12\73\7\uffff\32\73\4\uffff\1\73\1\uffff\32"+
+            "\73",
+            "\1\u017b",
+            "\1\u017c",
+            "\1\u017d\16\uffff\1\u017e",
+            "",
+            "\1\u017f",
+            "\1\u0180",
+            "\1\u0181",
+            "\1\u0182",
+            "\1\73\13\uffff\12\73\7\uffff\32\73\4\uffff\1\73\1\uffff\32"+
+            "\73",
+            "\1\u0184",
+            "\1\u0185",
+            "\1\u0186",
+            "\1\u0187",
+            "\1\73\13\uffff\12\73\7\uffff\32\73\4\uffff\1\73\1\uffff\32"+
+            "\73",
+            "\1\73\13\uffff\12\73\7\uffff\32\73\4\uffff\1\73\1\uffff\32"+
+            "\73",
+            "\1\u018a",
+            "",
+            "\1\73\13\uffff\12\73\7\uffff\32\73\4\uffff\1\73\1\uffff\32"+
+            "\73",
+            "\1\u018c",
+            "\1\u018d",
+            "\1\73\13\uffff\12\73\7\uffff\32\73\4\uffff\1\73\1\uffff\32"+
+            "\73",
+            "",
+            "\1\u018f",
+            "",
+            "",
+            "\1\u0190",
+            "\1\u0191",
+            "\1\u0192",
+            "\1\u0193",
+            "\1\u0194",
+            "\1\u0195",
+            "\1\u0196",
+            "\1\u0197",
+            "",
+            "\1\u0198",
+            "\1\u0199",
+            "",
+            "\1\u019a",
+            "\1\u019b",
+            "\1\u019c",
+            "\1\u019d",
+            "\1\u019e",
+            "\1\u019f",
+            "\1\73\13\uffff\12\73\7\uffff\32\73\4\uffff\1\73\1\uffff\32"+
+            "\73",
+            "",
+            "\1\u01a1",
+            "\1\u01a2",
+            "\1\u01a3",
+            "\1\u01a4",
+            "",
+            "\1\73\13\uffff\12\73\7\uffff\32\73\4\uffff\1\73\1\uffff\32"+
+            "\73",
+            "\1\u01a6",
+            "",
+            "\1\u01a7",
+            "\1\u01a8",
+            "",
+            "\1\u01a9",
+            "\1\u01aa",
+            "\1\u01ab",
+            "\1\u01ac",
+            "\1\u01ad",
+            "\1\u01ae",
+            "\1\73\13\uffff\12\73\7\uffff\32\73\4\uffff\1\73\1\uffff\32"+
+            "\73",
+            "\1\73\13\uffff\12\73\7\uffff\32\73\4\uffff\1\73\1\uffff\32"+
+            "\73",
+            "",
+            "\1\u01b1",
+            "\1\u01b2",
+            "\1\73\13\uffff\12\73\7\uffff\32\73\4\uffff\1\73\1\uffff\32"+
+            "\73",
+            "\1\u01b4",
+            "",
+            "",
+            "\1\u01b5",
+            "",
+            "\1\u01b6",
+            "\1\73\13\uffff\12\73\7\uffff\32\73\4\uffff\1\73\1\uffff\32"+
+            "\73",
+            "",
+            "\1\u01b8",
+            "\1\u01b9",
+            "\1\73\13\uffff\12\73\7\uffff\32\73\4\uffff\1\73\1\uffff\32"+
+            "\73",
+            "\1\u01bb",
+            "\1\73\13\uffff\12\73\7\uffff\1\u01bc\31\73\4\uffff\1\73\1"+
+            "\uffff\32\73",
+            "\1\u01be",
+            "\1\73\13\uffff\12\73\7\uffff\32\73\4\uffff\1\73\1\uffff\32"+
+            "\73",
+            "\1\u01c0",
+            "\1\u01c1",
+            "\1\u01c2",
+            "\1\73\13\uffff\12\73\7\uffff\32\73\4\uffff\1\73\1\uffff\32"+
+            "\73",
+            "\1\73\13\uffff\12\73\7\uffff\32\73\4\uffff\1\73\1\uffff\32"+
+            "\73",
+            "\1\u01c5",
+            "\1\73\13\uffff\12\73\7\uffff\32\73\4\uffff\1\73\1\uffff\32"+
+            "\73",
+            "\1\73\13\uffff\12\73\7\uffff\32\73\4\uffff\1\73\1\uffff\32"+
+            "\73",
+            "\1\73\13\uffff\12\73\7\uffff\32\73\4\uffff\1\73\1\uffff\32"+
+            "\73",
+            "\1\u01c9",
+            "",
+            "\1\u01ca",
+            "\1\73\13\uffff\12\73\7\uffff\32\73\4\uffff\1\73\1\uffff\32"+
+            "\73",
+            "\1\u01cc",
+            "\1\u01cd",
+            "",
+            "\1\u01ce",
+            "\1\u01cf",
+            "\1\u01d0",
+            "\1\u01d1",
+            "\1\u01d2",
+            "\1\73\13\uffff\12\73\7\uffff\32\73\4\uffff\1\73\1\uffff\32"+
+            "\73",
+            "\1\u01d4",
+            "\1\73\13\uffff\12\73\7\uffff\32\73\4\uffff\1\73\1\uffff\32"+
+            "\73",
+            "\1\u01d6",
+            "",
+            "",
+            "\1\u01d7",
+            "\1\u01d8",
+            "",
+            "\1\u01d9",
+            "\1\73\13\uffff\12\73\7\uffff\32\73\4\uffff\1\73\1\uffff\32"+
+            "\73",
+            "\1\u01db",
+            "",
+            "\1\73\13\uffff\12\73\7\uffff\32\73\4\uffff\1\73\1\uffff\32"+
+            "\73",
+            "\1\73\13\uffff\12\73\7\uffff\32\73\4\uffff\1\73\1\uffff\32"+
+            "\73",
+            "",
+            "\1\u01de",
+            "\1\u01df",
+            "",
+            "\1\u01e0",
+            "",
+            "\1\u01e1",
+            "\1\73\13\uffff\12\73\7\uffff\32\73\4\uffff\1\73\1\uffff\32"+
+            "\73",
+            "\1\u01e3",
+            "",
+            "",
+            "\1\u01e4",
+            "",
+            "",
+            "",
+            "\1\u01e5",
+            "\1\u01e6",
+            "",
+            "\1\u01e7",
+            "\1\u01e8",
+            "\1\u01e9",
+            "\1\u01ea",
+            "\1\u01eb",
+            "\1\u01ec",
+            "\1\u01ed",
+            "",
+            "\1\u01ee",
+            "",
+            "\1\u01ef",
+            "\1\u01f0",
+            "\1\u01f1",
+            "\1\u01f2",
+            "",
+            "\1\73\13\uffff\12\73\7\uffff\32\73\4\uffff\1\73\1\uffff\32"+
+            "\73",
+            "",
+            "",
+            "\1\73\13\uffff\12\73\7\uffff\32\73\4\uffff\1\73\1\uffff\32"+
+            "\73",
+            "\1\u01f5",
+            "\1\73\13\uffff\12\73\7\uffff\32\73\4\uffff\1\73\1\uffff\32"+
+            "\73",
+            "\1\73\13\uffff\12\73\7\uffff\32\73\4\uffff\1\73\1\uffff\32"+
+            "\73",
+            "",
+            "\1\73\13\uffff\12\73\7\uffff\32\73\4\uffff\1\73\1\uffff\32"+
+            "\73",
+            "\1\u01f9",
+            "\1\u01fa",
+            "\1\u01fb",
+            "\1\u01fc",
+            "\1\u01fd",
+            "\1\u01fe",
+            "\1\u01ff",
+            "\1\u0200",
+            "\1\u0201",
+            "\1\u0202",
+            "\1\73\13\uffff\12\73\7\uffff\32\73\4\uffff\1\73\1\uffff\32"+
+            "\73",
+            "\1\u0204",
+            "\1\u0205",
+            "\1\u0206",
+            "\1\u0207",
+            "",
+            "",
+            "\1\73\13\uffff\12\73\7\uffff\32\73\4\uffff\1\73\1\uffff\32"+
+            "\73",
+            "",
+            "",
+            "",
+            "\1\u0209",
+            "\1\73\13\uffff\12\73\7\uffff\32\73\4\uffff\1\73\1\uffff\32"+
+            "\73",
+            "",
+            "\1\u020b",
+            "\1\u020c",
+            "\1\73\13\uffff\12\73\7\uffff\32\73\4\uffff\1\73\1\uffff\32"+
+            "\73",
+            "\1\u020e",
+            "\1\73\13\uffff\12\73\7\uffff\32\73\4\uffff\1\73\1\uffff\32"+
+            "\73",
+            "\1\u0210",
+            "\1\u0211",
+            "",
+            "\1\u0212",
+            "\1\u0213",
+            "\1\u0214",
+            "\1\u0215",
+            "",
+            "\1\u0216",
+            "",
+            "\1\u0217",
+            "\1\u0218",
+            "",
+            "\1\u0219",
+            "",
+            "\1\73\13\uffff\12\73\7\uffff\32\73\4\uffff\1\73\1\uffff\32"+
+            "\73",
+            "\1\u021b",
+            "\1\u021c",
+            "\1\u021d",
+            "\1\u021e",
+            "\1\u021f",
+            "\1\u0220",
+            "\1\73\13\uffff\12\73\7\uffff\32\73\4\uffff\1\73\1\uffff\32"+
+            "\73",
+            "\1\u0222",
+            "\1\u0223",
+            "",
+            "\1\u0224",
+            "\1\u0225",
+            "\1\73\13\uffff\12\73\7\uffff\32\73\4\uffff\1\73\1\uffff\32"+
+            "\73",
+            "\1\73\13\uffff\12\73\7\uffff\32\73\4\uffff\1\73\1\uffff\32"+
+            "\73",
+            "\1\u0228",
+            "\1\u0229",
+            "",
+            "\1\u022a",
+            "\1\73\13\uffff\12\73\7\uffff\32\73\4\uffff\1\73\1\uffff\32"+
+            "\73",
+            "\1\u022c",
+            "\1\u022d",
+            "",
+            "",
+            "\1\u022e",
+            "\1\73\13\uffff\12\73\7\uffff\32\73\4\uffff\1\73\1\uffff\32"+
+            "\73",
+            "\1\u0230",
+            "",
+            "\1\u0231",
+            "\1\u0232",
+            "\1\73\13\uffff\12\73\7\uffff\32\73\4\uffff\1\73\1\uffff\32"+
+            "\73",
+            "",
+            "\1\u0234",
+            "\1\u0235",
+            "\1\u0236",
+            "",
+            "\1\u0237",
+            "\1\73\13\uffff\12\73\7\uffff\32\73\4\uffff\1\73\1\uffff\32"+
+            "\73",
+            "\1\u0239",
+            "\1\u023a",
+            "",
+            "\1\u023b",
+            "\1\u023c",
+            "\1\u023d",
+            "\1\u023e",
+            "\1\u023f",
+            "\1\u0240",
+            "\1\73\13\uffff\12\73\7\uffff\32\73\4\uffff\1\73\1\uffff\32"+
+            "\73",
+            "\1\73\13\uffff\12\73\7\uffff\32\73\4\uffff\1\73\1\uffff\32"+
+            "\73",
+            "",
+            ""
+    };
+
+    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 | 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=='}') ) {s = 3;}
+
+                        else if ( (LA21_0=='t') ) {s = 4;}
+
+                        else if ( (LA21_0=='d') ) {s = 5;}
+
+                        else if ( (LA21_0=='i') ) {s = 6;}
+
+                        else if ( (LA21_0=='g') ) {s = 7;}
+
+                        else if ( (LA21_0=='c') ) {s = 8;}
+
+                        else if ( (LA21_0=='e') ) {s = 9;}
+
+                        else if ( (LA21_0=='m') ) {s = 10;}
+
+                        else if ( (LA21_0=='s') ) {s = 11;}
+
+                        else if ( (LA21_0=='r') ) {s = 12;}
+
+                        else if ( (LA21_0=='w') ) {s = 13;}
+
+                        else if ( (LA21_0=='.') ) {s = 14;}
+
+                        else if ( (LA21_0=='*') ) {s = 15;}
+
+                        else if ( (LA21_0=='@') ) {s = 16;}
+
+                        else if ( (LA21_0=='(') ) {s = 17;}
+
+                        else if ( (LA21_0==',') ) {s = 18;}
+
+                        else if ( (LA21_0==')') ) {s = 19;}
+
+                        else if ( (LA21_0=='=') ) {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=='a') ) {s = 34;}
+
+                        else if ( (LA21_0==':') ) {s = 35;}
+
+                        else if ( (LA21_0==';') ) {s = 36;}
+
+                        else if ( (LA21_0=='f') ) {s = 37;}
+
+                        else if ( (LA21_0=='v') ) {s = 38;}
+
+                        else if ( (LA21_0=='n') ) {s = 39;}
+
+                        else if ( (LA21_0=='C') ) {s = 40;}
+
+                        else if ( (LA21_0=='S') ) {s = 41;}
+
+                        else if ( (LA21_0=='R') ) {s = 42;}
+
+                        else if ( (LA21_0=='D') ) {s = 43;}
+
+                        else if ( (LA21_0=='F') ) {s = 44;}
+
+                        else if ( (LA21_0=='A') ) {s = 45;}
+
+                        else if ( (LA21_0=='E') ) {s = 46;}
+
+                        else if ( (LA21_0=='N') ) {s = 47;}
+
+                        else if ( (LA21_0=='P') ) {s = 48;}
+
+                        else if ( (LA21_0=='I') ) {s = 49;}
+
+                        else if ( (LA21_0=='0') ) {s = 50;}
+
+                        else if ( ((LA21_0>='1' && LA21_0<='9')) ) {s = 51;}
+
+                        else if ( (LA21_0=='^') ) {s = 52;}
+
+                        else if ( (LA21_0=='$'||LA21_0=='B'||(LA21_0>='G' && LA21_0<='H')||(LA21_0>='J' && LA21_0<='M')||LA21_0=='O'||LA21_0=='Q'||(LA21_0>='T' && LA21_0<='Z')||LA21_0=='_'||LA21_0=='b'||LA21_0=='h'||(LA21_0>='j' && LA21_0<='l')||LA21_0=='o'||LA21_0=='q'||LA21_0=='u'||(LA21_0>='x' && LA21_0<='z')) ) {s = 53;}
+
+                        else if ( (LA21_0=='\"') ) {s = 54;}
+
+                        else if ( (LA21_0=='\'') ) {s = 55;}
+
+                        else if ( ((LA21_0>='\t' && LA21_0<='\n')||LA21_0=='\r'||LA21_0==' ') ) {s = 56;}
+
+                        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 = 57;}
+
+                        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.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSLParser.java b/org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSLParser.java
new file mode 100644
index 0000000..50c4651
--- /dev/null
+++ b/org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSLParser.java
@@ -0,0 +1,10014 @@
+/**
+ *                                                                            
+ *  Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) 
+ *                                                                            
+ *  All rights reserved. This program and the accompanying materials           
+ *  are made available under the 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.action.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.action.services.ActionDSLGrammarAccess;
+
+
+
+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 InternalActionDSLParser extends AbstractInternalAntlrParser {
+    public static final String[] tokenNames = new String[] {
+        "<invalid>", "<EOR>", "<DOWN>", "<UP>", "RULE_ID", "RULE_STRING", "RULE_HEX", "RULE_INT", "RULE_DECIMAL", "RULE_ML_COMMENT", "RULE_SL_COMMENT", "RULE_WS", "RULE_ANY_OTHER", "'package'", "'{'", "'}'", "'toolbar'", "'described by'", "'items'", "'item'", "'icon'", "'group'", "'canExecute'", "'executeParameter'", "'message'", "'taskAction'", "'selectWorkloadAction'", "'dialogAction'", "'reportAction'", "'chartAction'", "'workflowAction'", "'datainterchangeAction'", "'genericAction'", "'import'", "'.'", "'*'", "'@'", "'('", "','", "')'", "'='", "'#'", "'['", "']'", "'+='", "'-='", "'*='", "'/='", "'%='", "'<'", "'>'", "'>='", "'||'", "'&&'", "'=='", "'!='", "'==='", "'!=='", "'instanceof'", "'->'", "'..<'", "'..'", "'=>'", "'<>'", "'?:'", "'+'", "'-'", "'**'", "'/'", "'%'", "'!'", "'as'", "'++'", "'--'", "'::'", "'?.'", "'|'", "';'", "'if'", "'else'", "'switch'", "':'", "'default'", "'case'", "'for'", "'while'", "'do'", "'var'", "'val'", "'extends'", "'static'", "'extension'", "'super'", "'new'", "'false'", "'true'", "'null'", "'typeof'", "'throw'", "'return'", "'try'", "'finally'", "'synchronized'", "'catch'", "'?'", "'&'", "'Claim'", "'Start'", "'Stop'", "'Release'", "'Suspend'", "'Resume'", "'Skip'", "'Complete'", "'Delegate'", "'Forward'", "'Fail'", "'Register'", "'Remove'", "'Activate'", "'Exit'", "'RemoveAll'", "'AddAll'", "'New'", "'Save'", "'Delete'", "'Cancel'", "'PrintOnServer'", "'Download'", "'Import'", "'Export'"
+    };
+    public static final int RULE_HEX=6;
+    public static final int T__50=50;
+    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__52=52;
+    public static final int T__53=53;
+    public static final int T__54=54;
+    public static final int T__60=60;
+    public static final int T__61=61;
+    public static final int RULE_ID=4;
+    public static final int T__130=130;
+    public static final int RULE_INT=7;
+    public static final int T__66=66;
+    public static final int RULE_ML_COMMENT=9;
+    public static final int T__67=67;
+    public static final int T__129=129;
+    public static final int T__68=68;
+    public static final int T__69=69;
+    public static final int T__62=62;
+    public static final int T__126=126;
+    public static final int T__63=63;
+    public static final int T__125=125;
+    public static final int T__64=64;
+    public static final int T__128=128;
+    public static final int T__65=65;
+    public static final int T__127=127;
+    public static final int T__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__30=30;
+    public static final int T__31=31;
+    public static final int T__32=32;
+    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__41=41;
+    public static final int T__42=42;
+    public static final int T__43=43;
+    public static final int T__91=91;
+    public static final int T__100=100;
+    public static final int T__92=92;
+    public static final int T__93=93;
+    public static final int T__102=102;
+    public static final int T__94=94;
+    public static final int T__101=101;
+    public static final int T__90=90;
+    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__99=99;
+    public static final int T__13=13;
+    public static final int T__14=14;
+    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 RULE_DECIMAL=8;
+    public static final int T__26=26;
+    public static final int T__27=27;
+    public static final int T__28=28;
+    public static final int T__29=29;
+    public static final int T__22=22;
+    public static final int T__23=23;
+    public static final int T__24=24;
+    public static final int T__25=25;
+    public static final int T__20=20;
+    public static final int T__21=21;
+    public static final int T__122=122;
+    public static final int T__70=70;
+    public static final int T__121=121;
+    public static final int T__71=71;
+    public static final int T__124=124;
+    public static final int T__72=72;
+    public static final int T__123=123;
+    public static final int T__120=120;
+    public static final int RULE_STRING=5;
+    public static final int RULE_SL_COMMENT=10;
+    public static final int T__77=77;
+    public static final int T__119=119;
+    public static final int T__78=78;
+    public static final int T__118=118;
+    public static final int T__79=79;
+    public static final int T__73=73;
+    public static final int T__115=115;
+    public static final int EOF=-1;
+    public static final int T__74=74;
+    public static final int T__114=114;
+    public static final int T__75=75;
+    public static final int T__117=117;
+    public static final int T__76=76;
+    public static final int T__116=116;
+    public static final int T__80=80;
+    public static final int T__111=111;
+    public static final int T__81=81;
+    public static final int T__110=110;
+    public static final int T__82=82;
+    public static final int T__113=113;
+    public static final int T__83=83;
+    public static final int T__112=112;
+    public static final int RULE_WS=11;
+    public static final int RULE_ANY_OTHER=12;
+    public static final int T__88=88;
+    public static final int T__108=108;
+    public static final int T__89=89;
+    public static final int T__107=107;
+    public static final int T__109=109;
+    public static final int T__84=84;
+    public static final int T__104=104;
+    public static final int T__85=85;
+    public static final int T__103=103;
+    public static final int T__86=86;
+    public static final int T__106=106;
+    public static final int T__87=87;
+    public static final int T__105=105;
+
+    // delegates
+    // delegators
+
+
+        public InternalActionDSLParser(TokenStream input) {
+            this(input, new RecognizerSharedState());
+        }
+        public InternalActionDSLParser(TokenStream input, RecognizerSharedState state) {
+            super(input, state);
+             
+        }
+        
+
+    public String[] getTokenNames() { return InternalActionDSLParser.tokenNames; }
+    public String getGrammarFileName() { return "../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g"; }
+
+
+
+     	private ActionDSLGrammarAccess grammarAccess;
+     	
+        public InternalActionDSLParser(TokenStream input, ActionDSLGrammarAccess grammarAccess) {
+            this(input);
+            this.grammarAccess = grammarAccess;
+            registerRules(grammarAccess.getGrammar());
+        }
+        
+        @Override
+        protected String getFirstRuleName() {
+        	return "ActionModel";	
+       	}
+       	
+       	@Override
+       	protected ActionDSLGrammarAccess getGrammarAccess() {
+       		return grammarAccess;
+       	}
+
+
+
+    // $ANTLR start "entryRuleActionModel"
+    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:68:1: entryRuleActionModel returns [EObject current=null] : iv_ruleActionModel= ruleActionModel EOF ;
+    public final EObject entryRuleActionModel() throws RecognitionException {
+        EObject current = null;
+
+        EObject iv_ruleActionModel = null;
+
+
+        try {
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:69:2: (iv_ruleActionModel= ruleActionModel EOF )
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:70:2: iv_ruleActionModel= ruleActionModel EOF
+            {
+            if ( state.backtracking==0 ) {
+               newCompositeNode(grammarAccess.getActionModelRule()); 
+            }
+            pushFollow(FOLLOW_ruleActionModel_in_entryRuleActionModel75);
+            iv_ruleActionModel=ruleActionModel();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+               current =iv_ruleActionModel; 
+            }
+            match(input,EOF,FOLLOW_EOF_in_entryRuleActionModel85); if (state.failed) return current;
+
+            }
+
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleActionModel"
+
+
+    // $ANTLR start "ruleActionModel"
+    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:77:1: ruleActionModel returns [EObject current=null] : ( (lv_packages_0_0= ruleActionPackage ) )* ;
+    public final EObject ruleActionModel() throws RecognitionException {
+        EObject current = null;
+
+        EObject lv_packages_0_0 = null;
+
+
+         enterRule(); 
+            
+        try {
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:80:28: ( ( (lv_packages_0_0= ruleActionPackage ) )* )
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:81:1: ( (lv_packages_0_0= ruleActionPackage ) )*
+            {
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:81:1: ( (lv_packages_0_0= ruleActionPackage ) )*
+            loop1:
+            do {
+                int alt1=2;
+                int LA1_0 = input.LA(1);
+
+                if ( (LA1_0==13) ) {
+                    alt1=1;
+                }
+
+
+                switch (alt1) {
+            	case 1 :
+            	    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:82:1: (lv_packages_0_0= ruleActionPackage )
+            	    {
+            	    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:82:1: (lv_packages_0_0= ruleActionPackage )
+            	    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:83:3: lv_packages_0_0= ruleActionPackage
+            	    {
+            	    if ( state.backtracking==0 ) {
+            	       
+            	      	        newCompositeNode(grammarAccess.getActionModelAccess().getPackagesActionPackageParserRuleCall_0()); 
+            	      	    
+            	    }
+            	    pushFollow(FOLLOW_ruleActionPackage_in_ruleActionModel130);
+            	    lv_packages_0_0=ruleActionPackage();
+
+            	    state._fsp--;
+            	    if (state.failed) return current;
+            	    if ( state.backtracking==0 ) {
+
+            	      	        if (current==null) {
+            	      	            current = createModelElementForParent(grammarAccess.getActionModelRule());
+            	      	        }
+            	             		add(
+            	             			current, 
+            	             			"packages",
+            	              		lv_packages_0_0, 
+            	              		"ActionPackage");
+            	      	        afterParserOrEnumRuleCall();
+            	      	    
+            	    }
+
+            	    }
+
+
+            	    }
+            	    break;
+
+            	default :
+            	    break loop1;
+                }
+            } while (true);
+
+
+            }
+
+            if ( state.backtracking==0 ) {
+               leaveRule(); 
+            }
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleActionModel"
+
+
+    // $ANTLR start "entryRuleActionPackage"
+    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:107:1: entryRuleActionPackage returns [EObject current=null] : iv_ruleActionPackage= ruleActionPackage EOF ;
+    public final EObject entryRuleActionPackage() throws RecognitionException {
+        EObject current = null;
+
+        EObject iv_ruleActionPackage = null;
+
+
+        try {
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:108:2: (iv_ruleActionPackage= ruleActionPackage EOF )
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:109:2: iv_ruleActionPackage= ruleActionPackage EOF
+            {
+            if ( state.backtracking==0 ) {
+               newCompositeNode(grammarAccess.getActionPackageRule()); 
+            }
+            pushFollow(FOLLOW_ruleActionPackage_in_entryRuleActionPackage166);
+            iv_ruleActionPackage=ruleActionPackage();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+               current =iv_ruleActionPackage; 
+            }
+            match(input,EOF,FOLLOW_EOF_in_entryRuleActionPackage176); if (state.failed) return current;
+
+            }
+
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleActionPackage"
+
+
+    // $ANTLR start "ruleActionPackage"
+    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:116:1: ruleActionPackage returns [EObject current=null] : ( () otherlv_1= 'package' ( (lv_name_2_0= ruleQualifiedName ) ) (otherlv_3= '{' ( (lv_imports_4_0= ruleActionImport ) )* ( (lv_toolbars_5_0= ruleActionToolbar ) )* otherlv_6= '}' )? ) ;
+    public final EObject ruleActionPackage() throws RecognitionException {
+        EObject current = null;
+
+        Token otherlv_1=null;
+        Token otherlv_3=null;
+        Token otherlv_6=null;
+        AntlrDatatypeRuleToken lv_name_2_0 = null;
+
+        EObject lv_imports_4_0 = null;
+
+        EObject lv_toolbars_5_0 = null;
+
+
+         enterRule(); 
+            
+        try {
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:119:28: ( ( () otherlv_1= 'package' ( (lv_name_2_0= ruleQualifiedName ) ) (otherlv_3= '{' ( (lv_imports_4_0= ruleActionImport ) )* ( (lv_toolbars_5_0= ruleActionToolbar ) )* otherlv_6= '}' )? ) )
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:120:1: ( () otherlv_1= 'package' ( (lv_name_2_0= ruleQualifiedName ) ) (otherlv_3= '{' ( (lv_imports_4_0= ruleActionImport ) )* ( (lv_toolbars_5_0= ruleActionToolbar ) )* otherlv_6= '}' )? )
+            {
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:120:1: ( () otherlv_1= 'package' ( (lv_name_2_0= ruleQualifiedName ) ) (otherlv_3= '{' ( (lv_imports_4_0= ruleActionImport ) )* ( (lv_toolbars_5_0= ruleActionToolbar ) )* otherlv_6= '}' )? )
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:120:2: () otherlv_1= 'package' ( (lv_name_2_0= ruleQualifiedName ) ) (otherlv_3= '{' ( (lv_imports_4_0= ruleActionImport ) )* ( (lv_toolbars_5_0= ruleActionToolbar ) )* otherlv_6= '}' )?
+            {
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:120:2: ()
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:121:5: 
+            {
+            if ( state.backtracking==0 ) {
+
+                      current = forceCreateModelElement(
+                          grammarAccess.getActionPackageAccess().getActionPackageAction_0(),
+                          current);
+                  
+            }
+
+            }
+
+            otherlv_1=(Token)match(input,13,FOLLOW_13_in_ruleActionPackage222); if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+                  	newLeafNode(otherlv_1, grammarAccess.getActionPackageAccess().getPackageKeyword_1());
+                  
+            }
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:130:1: ( (lv_name_2_0= ruleQualifiedName ) )
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:131:1: (lv_name_2_0= ruleQualifiedName )
+            {
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:131:1: (lv_name_2_0= ruleQualifiedName )
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:132:3: lv_name_2_0= ruleQualifiedName
+            {
+            if ( state.backtracking==0 ) {
+               
+              	        newCompositeNode(grammarAccess.getActionPackageAccess().getNameQualifiedNameParserRuleCall_2_0()); 
+              	    
+            }
+            pushFollow(FOLLOW_ruleQualifiedName_in_ruleActionPackage243);
+            lv_name_2_0=ruleQualifiedName();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+              	        if (current==null) {
+              	            current = createModelElementForParent(grammarAccess.getActionPackageRule());
+              	        }
+                     		set(
+                     			current, 
+                     			"name",
+                      		lv_name_2_0, 
+                      		"QualifiedName");
+              	        afterParserOrEnumRuleCall();
+              	    
+            }
+
+            }
+
+
+            }
+
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:148:2: (otherlv_3= '{' ( (lv_imports_4_0= ruleActionImport ) )* ( (lv_toolbars_5_0= ruleActionToolbar ) )* otherlv_6= '}' )?
+            int alt4=2;
+            int LA4_0 = input.LA(1);
+
+            if ( (LA4_0==14) ) {
+                alt4=1;
+            }
+            switch (alt4) {
+                case 1 :
+                    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:148:4: otherlv_3= '{' ( (lv_imports_4_0= ruleActionImport ) )* ( (lv_toolbars_5_0= ruleActionToolbar ) )* otherlv_6= '}'
+                    {
+                    otherlv_3=(Token)match(input,14,FOLLOW_14_in_ruleActionPackage256); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                          	newLeafNode(otherlv_3, grammarAccess.getActionPackageAccess().getLeftCurlyBracketKeyword_3_0());
+                          
+                    }
+                    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:152:1: ( (lv_imports_4_0= ruleActionImport ) )*
+                    loop2:
+                    do {
+                        int alt2=2;
+                        int LA2_0 = input.LA(1);
+
+                        if ( (LA2_0==33) ) {
+                            alt2=1;
+                        }
+
+
+                        switch (alt2) {
+                    	case 1 :
+                    	    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:153:1: (lv_imports_4_0= ruleActionImport )
+                    	    {
+                    	    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:153:1: (lv_imports_4_0= ruleActionImport )
+                    	    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:154:3: lv_imports_4_0= ruleActionImport
+                    	    {
+                    	    if ( state.backtracking==0 ) {
+                    	       
+                    	      	        newCompositeNode(grammarAccess.getActionPackageAccess().getImportsActionImportParserRuleCall_3_1_0()); 
+                    	      	    
+                    	    }
+                    	    pushFollow(FOLLOW_ruleActionImport_in_ruleActionPackage277);
+                    	    lv_imports_4_0=ruleActionImport();
+
+                    	    state._fsp--;
+                    	    if (state.failed) return current;
+                    	    if ( state.backtracking==0 ) {
+
+                    	      	        if (current==null) {
+                    	      	            current = createModelElementForParent(grammarAccess.getActionPackageRule());
+                    	      	        }
+                    	             		add(
+                    	             			current, 
+                    	             			"imports",
+                    	              		lv_imports_4_0, 
+                    	              		"ActionImport");
+                    	      	        afterParserOrEnumRuleCall();
+                    	      	    
+                    	    }
+
+                    	    }
+
+
+                    	    }
+                    	    break;
+
+                    	default :
+                    	    break loop2;
+                        }
+                    } while (true);
+
+                    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:170:3: ( (lv_toolbars_5_0= ruleActionToolbar ) )*
+                    loop3:
+                    do {
+                        int alt3=2;
+                        int LA3_0 = input.LA(1);
+
+                        if ( (LA3_0==16) ) {
+                            alt3=1;
+                        }
+
+
+                        switch (alt3) {
+                    	case 1 :
+                    	    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:171:1: (lv_toolbars_5_0= ruleActionToolbar )
+                    	    {
+                    	    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:171:1: (lv_toolbars_5_0= ruleActionToolbar )
+                    	    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:172:3: lv_toolbars_5_0= ruleActionToolbar
+                    	    {
+                    	    if ( state.backtracking==0 ) {
+                    	       
+                    	      	        newCompositeNode(grammarAccess.getActionPackageAccess().getToolbarsActionToolbarParserRuleCall_3_2_0()); 
+                    	      	    
+                    	    }
+                    	    pushFollow(FOLLOW_ruleActionToolbar_in_ruleActionPackage299);
+                    	    lv_toolbars_5_0=ruleActionToolbar();
+
+                    	    state._fsp--;
+                    	    if (state.failed) return current;
+                    	    if ( state.backtracking==0 ) {
+
+                    	      	        if (current==null) {
+                    	      	            current = createModelElementForParent(grammarAccess.getActionPackageRule());
+                    	      	        }
+                    	             		add(
+                    	             			current, 
+                    	             			"toolbars",
+                    	              		lv_toolbars_5_0, 
+                    	              		"ActionToolbar");
+                    	      	        afterParserOrEnumRuleCall();
+                    	      	    
+                    	    }
+
+                    	    }
+
+
+                    	    }
+                    	    break;
+
+                    	default :
+                    	    break loop3;
+                        }
+                    } while (true);
+
+                    otherlv_6=(Token)match(input,15,FOLLOW_15_in_ruleActionPackage312); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                          	newLeafNode(otherlv_6, grammarAccess.getActionPackageAccess().getRightCurlyBracketKeyword_3_3());
+                          
+                    }
+
+                    }
+                    break;
+
+            }
+
+
+            }
+
+
+            }
+
+            if ( state.backtracking==0 ) {
+               leaveRule(); 
+            }
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleActionPackage"
+
+
+    // $ANTLR start "entryRuleActionToolbar"
+    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:200:1: entryRuleActionToolbar returns [EObject current=null] : iv_ruleActionToolbar= ruleActionToolbar EOF ;
+    public final EObject entryRuleActionToolbar() throws RecognitionException {
+        EObject current = null;
+
+        EObject iv_ruleActionToolbar = null;
+
+
+        try {
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:201:2: (iv_ruleActionToolbar= ruleActionToolbar EOF )
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:202:2: iv_ruleActionToolbar= ruleActionToolbar EOF
+            {
+            if ( state.backtracking==0 ) {
+               newCompositeNode(grammarAccess.getActionToolbarRule()); 
+            }
+            pushFollow(FOLLOW_ruleActionToolbar_in_entryRuleActionToolbar350);
+            iv_ruleActionToolbar=ruleActionToolbar();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+               current =iv_ruleActionToolbar; 
+            }
+            match(input,EOF,FOLLOW_EOF_in_entryRuleActionToolbar360); if (state.failed) return current;
+
+            }
+
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleActionToolbar"
+
+
+    // $ANTLR start "ruleActionToolbar"
+    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:209:1: ruleActionToolbar returns [EObject current=null] : ( () otherlv_1= 'toolbar' ( (lv_name_2_0= RULE_ID ) ) ( ( (lv_description_3_0= 'described by' ) ) ( (lv_descriptionValue_4_0= ruleTRANSLATABLESTRING ) ) )? (otherlv_5= 'items' otherlv_6= '{' ( (lv_actions_7_0= ruleActionButton ) )* otherlv_8= '}' )? ) ;
+    public final EObject ruleActionToolbar() throws RecognitionException {
+        EObject current = null;
+
+        Token otherlv_1=null;
+        Token lv_name_2_0=null;
+        Token lv_description_3_0=null;
+        Token otherlv_5=null;
+        Token otherlv_6=null;
+        Token otherlv_8=null;
+        AntlrDatatypeRuleToken lv_descriptionValue_4_0 = null;
+
+        EObject lv_actions_7_0 = null;
+
+
+         enterRule(); 
+            
+        try {
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:212:28: ( ( () otherlv_1= 'toolbar' ( (lv_name_2_0= RULE_ID ) ) ( ( (lv_description_3_0= 'described by' ) ) ( (lv_descriptionValue_4_0= ruleTRANSLATABLESTRING ) ) )? (otherlv_5= 'items' otherlv_6= '{' ( (lv_actions_7_0= ruleActionButton ) )* otherlv_8= '}' )? ) )
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:213:1: ( () otherlv_1= 'toolbar' ( (lv_name_2_0= RULE_ID ) ) ( ( (lv_description_3_0= 'described by' ) ) ( (lv_descriptionValue_4_0= ruleTRANSLATABLESTRING ) ) )? (otherlv_5= 'items' otherlv_6= '{' ( (lv_actions_7_0= ruleActionButton ) )* otherlv_8= '}' )? )
+            {
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:213:1: ( () otherlv_1= 'toolbar' ( (lv_name_2_0= RULE_ID ) ) ( ( (lv_description_3_0= 'described by' ) ) ( (lv_descriptionValue_4_0= ruleTRANSLATABLESTRING ) ) )? (otherlv_5= 'items' otherlv_6= '{' ( (lv_actions_7_0= ruleActionButton ) )* otherlv_8= '}' )? )
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:213:2: () otherlv_1= 'toolbar' ( (lv_name_2_0= RULE_ID ) ) ( ( (lv_description_3_0= 'described by' ) ) ( (lv_descriptionValue_4_0= ruleTRANSLATABLESTRING ) ) )? (otherlv_5= 'items' otherlv_6= '{' ( (lv_actions_7_0= ruleActionButton ) )* otherlv_8= '}' )?
+            {
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:213:2: ()
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:214:5: 
+            {
+            if ( state.backtracking==0 ) {
+
+                      current = forceCreateModelElement(
+                          grammarAccess.getActionToolbarAccess().getActionToolbarAction_0(),
+                          current);
+                  
+            }
+
+            }
+
+            otherlv_1=(Token)match(input,16,FOLLOW_16_in_ruleActionToolbar406); if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+                  	newLeafNode(otherlv_1, grammarAccess.getActionToolbarAccess().getToolbarKeyword_1());
+                  
+            }
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:223:1: ( (lv_name_2_0= RULE_ID ) )
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:224:1: (lv_name_2_0= RULE_ID )
+            {
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:224:1: (lv_name_2_0= RULE_ID )
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:225:3: lv_name_2_0= RULE_ID
+            {
+            lv_name_2_0=(Token)match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleActionToolbar423); if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+              			newLeafNode(lv_name_2_0, grammarAccess.getActionToolbarAccess().getNameIDTerminalRuleCall_2_0()); 
+              		
+            }
+            if ( state.backtracking==0 ) {
+
+              	        if (current==null) {
+              	            current = createModelElement(grammarAccess.getActionToolbarRule());
+              	        }
+                     		setWithLastConsumed(
+                     			current, 
+                     			"name",
+                      		lv_name_2_0, 
+                      		"ID");
+              	    
+            }
+
+            }
+
+
+            }
+
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:241:2: ( ( (lv_description_3_0= 'described by' ) ) ( (lv_descriptionValue_4_0= ruleTRANSLATABLESTRING ) ) )?
+            int alt5=2;
+            int LA5_0 = input.LA(1);
+
+            if ( (LA5_0==17) ) {
+                alt5=1;
+            }
+            switch (alt5) {
+                case 1 :
+                    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:241:3: ( (lv_description_3_0= 'described by' ) ) ( (lv_descriptionValue_4_0= ruleTRANSLATABLESTRING ) )
+                    {
+                    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:241:3: ( (lv_description_3_0= 'described by' ) )
+                    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:242:1: (lv_description_3_0= 'described by' )
+                    {
+                    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:242:1: (lv_description_3_0= 'described by' )
+                    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:243:3: lv_description_3_0= 'described by'
+                    {
+                    lv_description_3_0=(Token)match(input,17,FOLLOW_17_in_ruleActionToolbar447); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                              newLeafNode(lv_description_3_0, grammarAccess.getActionToolbarAccess().getDescriptionDescribedByKeyword_3_0_0());
+                          
+                    }
+                    if ( state.backtracking==0 ) {
+
+                      	        if (current==null) {
+                      	            current = createModelElement(grammarAccess.getActionToolbarRule());
+                      	        }
+                             		setWithLastConsumed(current, "description", true, "described by");
+                      	    
+                    }
+
+                    }
+
+
+                    }
+
+                    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:256:2: ( (lv_descriptionValue_4_0= ruleTRANSLATABLESTRING ) )
+                    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:257:1: (lv_descriptionValue_4_0= ruleTRANSLATABLESTRING )
+                    {
+                    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:257:1: (lv_descriptionValue_4_0= ruleTRANSLATABLESTRING )
+                    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:258:3: lv_descriptionValue_4_0= ruleTRANSLATABLESTRING
+                    {
+                    if ( state.backtracking==0 ) {
+                       
+                      	        newCompositeNode(grammarAccess.getActionToolbarAccess().getDescriptionValueTRANSLATABLESTRINGParserRuleCall_3_1_0()); 
+                      	    
+                    }
+                    pushFollow(FOLLOW_ruleTRANSLATABLESTRING_in_ruleActionToolbar481);
+                    lv_descriptionValue_4_0=ruleTRANSLATABLESTRING();
+
+                    state._fsp--;
+                    if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                      	        if (current==null) {
+                      	            current = createModelElementForParent(grammarAccess.getActionToolbarRule());
+                      	        }
+                             		set(
+                             			current, 
+                             			"descriptionValue",
+                              		lv_descriptionValue_4_0, 
+                              		"TRANSLATABLESTRING");
+                      	        afterParserOrEnumRuleCall();
+                      	    
+                    }
+
+                    }
+
+
+                    }
+
+
+                    }
+                    break;
+
+            }
+
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:274:4: (otherlv_5= 'items' otherlv_6= '{' ( (lv_actions_7_0= ruleActionButton ) )* otherlv_8= '}' )?
+            int alt7=2;
+            int LA7_0 = input.LA(1);
+
+            if ( (LA7_0==18) ) {
+                alt7=1;
+            }
+            switch (alt7) {
+                case 1 :
+                    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:274:6: otherlv_5= 'items' otherlv_6= '{' ( (lv_actions_7_0= ruleActionButton ) )* otherlv_8= '}'
+                    {
+                    otherlv_5=(Token)match(input,18,FOLLOW_18_in_ruleActionToolbar496); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                          	newLeafNode(otherlv_5, grammarAccess.getActionToolbarAccess().getItemsKeyword_4_0());
+                          
+                    }
+                    otherlv_6=(Token)match(input,14,FOLLOW_14_in_ruleActionToolbar508); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                          	newLeafNode(otherlv_6, grammarAccess.getActionToolbarAccess().getLeftCurlyBracketKeyword_4_1());
+                          
+                    }
+                    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:282:1: ( (lv_actions_7_0= ruleActionButton ) )*
+                    loop6:
+                    do {
+                        int alt6=2;
+                        int LA6_0 = input.LA(1);
+
+                        if ( (LA6_0==19) ) {
+                            alt6=1;
+                        }
+
+
+                        switch (alt6) {
+                    	case 1 :
+                    	    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:283:1: (lv_actions_7_0= ruleActionButton )
+                    	    {
+                    	    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:283:1: (lv_actions_7_0= ruleActionButton )
+                    	    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:284:3: lv_actions_7_0= ruleActionButton
+                    	    {
+                    	    if ( state.backtracking==0 ) {
+                    	       
+                    	      	        newCompositeNode(grammarAccess.getActionToolbarAccess().getActionsActionButtonParserRuleCall_4_2_0()); 
+                    	      	    
+                    	    }
+                    	    pushFollow(FOLLOW_ruleActionButton_in_ruleActionToolbar529);
+                    	    lv_actions_7_0=ruleActionButton();
+
+                    	    state._fsp--;
+                    	    if (state.failed) return current;
+                    	    if ( state.backtracking==0 ) {
+
+                    	      	        if (current==null) {
+                    	      	            current = createModelElementForParent(grammarAccess.getActionToolbarRule());
+                    	      	        }
+                    	             		add(
+                    	             			current, 
+                    	             			"actions",
+                    	              		lv_actions_7_0, 
+                    	              		"ActionButton");
+                    	      	        afterParserOrEnumRuleCall();
+                    	      	    
+                    	    }
+
+                    	    }
+
+
+                    	    }
+                    	    break;
+
+                    	default :
+                    	    break loop6;
+                        }
+                    } while (true);
+
+                    otherlv_8=(Token)match(input,15,FOLLOW_15_in_ruleActionToolbar542); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                          	newLeafNode(otherlv_8, grammarAccess.getActionToolbarAccess().getRightCurlyBracketKeyword_4_3());
+                          
+                    }
+
+                    }
+                    break;
+
+            }
+
+
+            }
+
+
+            }
+
+            if ( state.backtracking==0 ) {
+               leaveRule(); 
+            }
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleActionToolbar"
+
+
+    // $ANTLR start "entryRuleActionButton"
+    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:312:1: entryRuleActionButton returns [EObject current=null] : iv_ruleActionButton= ruleActionButton EOF ;
+    public final EObject entryRuleActionButton() throws RecognitionException {
+        EObject current = null;
+
+        EObject iv_ruleActionButton = null;
+
+
+        try {
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:313:2: (iv_ruleActionButton= ruleActionButton EOF )
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:314:2: iv_ruleActionButton= ruleActionButton EOF
+            {
+            if ( state.backtracking==0 ) {
+               newCompositeNode(grammarAccess.getActionButtonRule()); 
+            }
+            pushFollow(FOLLOW_ruleActionButton_in_entryRuleActionButton580);
+            iv_ruleActionButton=ruleActionButton();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+               current =iv_ruleActionButton; 
+            }
+            match(input,EOF,FOLLOW_EOF_in_entryRuleActionButton590); if (state.failed) return current;
+
+            }
+
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleActionButton"
+
+
+    // $ANTLR start "ruleActionButton"
+    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:321:1: ruleActionButton returns [EObject current=null] : ( () otherlv_1= 'item' ( (lv_name_2_0= ruleTRANSLATABLEID ) ) ( ( (lv_description_3_0= 'described by' ) ) ( (lv_descriptionValue_4_0= ruleTRANSLATABLESTRING ) ) )? (otherlv_5= 'icon' ( (lv_iconURI_6_0= RULE_STRING ) ) )? ( ( ( ( ({...}? => ( ({...}? => (otherlv_8= 'group' ( (otherlv_9= RULE_ID ) ) (otherlv_10= 'canExecute' ( (otherlv_11= RULE_ID ) ) )? ) ) ) ) | ({...}? => ( ({...}? => (otherlv_12= 'executeParameter' ( (otherlv_13= RULE_ID ) ) ) ) ) ) )+ {...}?) ) )? ( (lv_actionType_14_0= ruleActionType ) ) (otherlv_15= 'message' ( ( ruleQualifiedName ) ) )? ) ;
+    public final EObject ruleActionButton() throws RecognitionException {
+        EObject current = null;
+
+        Token otherlv_1=null;
+        Token lv_description_3_0=null;
+        Token otherlv_5=null;
+        Token lv_iconURI_6_0=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_15=null;
+        AntlrDatatypeRuleToken lv_name_2_0 = null;
+
+        AntlrDatatypeRuleToken lv_descriptionValue_4_0 = null;
+
+        EObject lv_actionType_14_0 = null;
+
+
+         enterRule(); 
+            
+        try {
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:324:28: ( ( () otherlv_1= 'item' ( (lv_name_2_0= ruleTRANSLATABLEID ) ) ( ( (lv_description_3_0= 'described by' ) ) ( (lv_descriptionValue_4_0= ruleTRANSLATABLESTRING ) ) )? (otherlv_5= 'icon' ( (lv_iconURI_6_0= RULE_STRING ) ) )? ( ( ( ( ({...}? => ( ({...}? => (otherlv_8= 'group' ( (otherlv_9= RULE_ID ) ) (otherlv_10= 'canExecute' ( (otherlv_11= RULE_ID ) ) )? ) ) ) ) | ({...}? => ( ({...}? => (otherlv_12= 'executeParameter' ( (otherlv_13= RULE_ID ) ) ) ) ) ) )+ {...}?) ) )? ( (lv_actionType_14_0= ruleActionType ) ) (otherlv_15= 'message' ( ( ruleQualifiedName ) ) )? ) )
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:325:1: ( () otherlv_1= 'item' ( (lv_name_2_0= ruleTRANSLATABLEID ) ) ( ( (lv_description_3_0= 'described by' ) ) ( (lv_descriptionValue_4_0= ruleTRANSLATABLESTRING ) ) )? (otherlv_5= 'icon' ( (lv_iconURI_6_0= RULE_STRING ) ) )? ( ( ( ( ({...}? => ( ({...}? => (otherlv_8= 'group' ( (otherlv_9= RULE_ID ) ) (otherlv_10= 'canExecute' ( (otherlv_11= RULE_ID ) ) )? ) ) ) ) | ({...}? => ( ({...}? => (otherlv_12= 'executeParameter' ( (otherlv_13= RULE_ID ) ) ) ) ) ) )+ {...}?) ) )? ( (lv_actionType_14_0= ruleActionType ) ) (otherlv_15= 'message' ( ( ruleQualifiedName ) ) )? )
+            {
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:325:1: ( () otherlv_1= 'item' ( (lv_name_2_0= ruleTRANSLATABLEID ) ) ( ( (lv_description_3_0= 'described by' ) ) ( (lv_descriptionValue_4_0= ruleTRANSLATABLESTRING ) ) )? (otherlv_5= 'icon' ( (lv_iconURI_6_0= RULE_STRING ) ) )? ( ( ( ( ({...}? => ( ({...}? => (otherlv_8= 'group' ( (otherlv_9= RULE_ID ) ) (otherlv_10= 'canExecute' ( (otherlv_11= RULE_ID ) ) )? ) ) ) ) | ({...}? => ( ({...}? => (otherlv_12= 'executeParameter' ( (otherlv_13= RULE_ID ) ) ) ) ) ) )+ {...}?) ) )? ( (lv_actionType_14_0= ruleActionType ) ) (otherlv_15= 'message' ( ( ruleQualifiedName ) ) )? )
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:325:2: () otherlv_1= 'item' ( (lv_name_2_0= ruleTRANSLATABLEID ) ) ( ( (lv_description_3_0= 'described by' ) ) ( (lv_descriptionValue_4_0= ruleTRANSLATABLESTRING ) ) )? (otherlv_5= 'icon' ( (lv_iconURI_6_0= RULE_STRING ) ) )? ( ( ( ( ({...}? => ( ({...}? => (otherlv_8= 'group' ( (otherlv_9= RULE_ID ) ) (otherlv_10= 'canExecute' ( (otherlv_11= RULE_ID ) ) )? ) ) ) ) | ({...}? => ( ({...}? => (otherlv_12= 'executeParameter' ( (otherlv_13= RULE_ID ) ) ) ) ) ) )+ {...}?) ) )? ( (lv_actionType_14_0= ruleActionType ) ) (otherlv_15= 'message' ( ( ruleQualifiedName ) ) )?
+            {
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:325:2: ()
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:326:5: 
+            {
+            if ( state.backtracking==0 ) {
+
+                      current = forceCreateModelElement(
+                          grammarAccess.getActionButtonAccess().getActionButtonAction_0(),
+                          current);
+                  
+            }
+
+            }
+
+            otherlv_1=(Token)match(input,19,FOLLOW_19_in_ruleActionButton636); if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+                  	newLeafNode(otherlv_1, grammarAccess.getActionButtonAccess().getItemKeyword_1());
+                  
+            }
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:335:1: ( (lv_name_2_0= ruleTRANSLATABLEID ) )
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:336:1: (lv_name_2_0= ruleTRANSLATABLEID )
+            {
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:336:1: (lv_name_2_0= ruleTRANSLATABLEID )
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:337:3: lv_name_2_0= ruleTRANSLATABLEID
+            {
+            if ( state.backtracking==0 ) {
+               
+              	        newCompositeNode(grammarAccess.getActionButtonAccess().getNameTRANSLATABLEIDParserRuleCall_2_0()); 
+              	    
+            }
+            pushFollow(FOLLOW_ruleTRANSLATABLEID_in_ruleActionButton657);
+            lv_name_2_0=ruleTRANSLATABLEID();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+              	        if (current==null) {
+              	            current = createModelElementForParent(grammarAccess.getActionButtonRule());
+              	        }
+                     		set(
+                     			current, 
+                     			"name",
+                      		lv_name_2_0, 
+                      		"TRANSLATABLEID");
+              	        afterParserOrEnumRuleCall();
+              	    
+            }
+
+            }
+
+
+            }
+
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:353:2: ( ( (lv_description_3_0= 'described by' ) ) ( (lv_descriptionValue_4_0= ruleTRANSLATABLESTRING ) ) )?
+            int alt8=2;
+            int LA8_0 = input.LA(1);
+
+            if ( (LA8_0==17) ) {
+                alt8=1;
+            }
+            switch (alt8) {
+                case 1 :
+                    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:353:3: ( (lv_description_3_0= 'described by' ) ) ( (lv_descriptionValue_4_0= ruleTRANSLATABLESTRING ) )
+                    {
+                    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:353:3: ( (lv_description_3_0= 'described by' ) )
+                    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:354:1: (lv_description_3_0= 'described by' )
+                    {
+                    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:354:1: (lv_description_3_0= 'described by' )
+                    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:355:3: lv_description_3_0= 'described by'
+                    {
+                    lv_description_3_0=(Token)match(input,17,FOLLOW_17_in_ruleActionButton676); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                              newLeafNode(lv_description_3_0, grammarAccess.getActionButtonAccess().getDescriptionDescribedByKeyword_3_0_0());
+                          
+                    }
+                    if ( state.backtracking==0 ) {
+
+                      	        if (current==null) {
+                      	            current = createModelElement(grammarAccess.getActionButtonRule());
+                      	        }
+                             		setWithLastConsumed(current, "description", true, "described by");
+                      	    
+                    }
+
+                    }
+
+
+                    }
+
+                    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:368:2: ( (lv_descriptionValue_4_0= ruleTRANSLATABLESTRING ) )
+                    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:369:1: (lv_descriptionValue_4_0= ruleTRANSLATABLESTRING )
+                    {
+                    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:369:1: (lv_descriptionValue_4_0= ruleTRANSLATABLESTRING )
+                    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:370:3: lv_descriptionValue_4_0= ruleTRANSLATABLESTRING
+                    {
+                    if ( state.backtracking==0 ) {
+                       
+                      	        newCompositeNode(grammarAccess.getActionButtonAccess().getDescriptionValueTRANSLATABLESTRINGParserRuleCall_3_1_0()); 
+                      	    
+                    }
+                    pushFollow(FOLLOW_ruleTRANSLATABLESTRING_in_ruleActionButton710);
+                    lv_descriptionValue_4_0=ruleTRANSLATABLESTRING();
+
+                    state._fsp--;
+                    if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                      	        if (current==null) {
+                      	            current = createModelElementForParent(grammarAccess.getActionButtonRule());
+                      	        }
+                             		set(
+                             			current, 
+                             			"descriptionValue",
+                              		lv_descriptionValue_4_0, 
+                              		"TRANSLATABLESTRING");
+                      	        afterParserOrEnumRuleCall();
+                      	    
+                    }
+
+                    }
+
+
+                    }
+
+
+                    }
+                    break;
+
+            }
+
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:386:4: (otherlv_5= 'icon' ( (lv_iconURI_6_0= RULE_STRING ) ) )?
+            int alt9=2;
+            int LA9_0 = input.LA(1);
+
+            if ( (LA9_0==20) ) {
+                alt9=1;
+            }
+            switch (alt9) {
+                case 1 :
+                    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:386:6: otherlv_5= 'icon' ( (lv_iconURI_6_0= RULE_STRING ) )
+                    {
+                    otherlv_5=(Token)match(input,20,FOLLOW_20_in_ruleActionButton725); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                          	newLeafNode(otherlv_5, grammarAccess.getActionButtonAccess().getIconKeyword_4_0());
+                          
+                    }
+                    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:390:1: ( (lv_iconURI_6_0= RULE_STRING ) )
+                    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:391:1: (lv_iconURI_6_0= RULE_STRING )
+                    {
+                    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:391:1: (lv_iconURI_6_0= RULE_STRING )
+                    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:392:3: lv_iconURI_6_0= RULE_STRING
+                    {
+                    lv_iconURI_6_0=(Token)match(input,RULE_STRING,FOLLOW_RULE_STRING_in_ruleActionButton742); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                      			newLeafNode(lv_iconURI_6_0, grammarAccess.getActionButtonAccess().getIconURISTRINGTerminalRuleCall_4_1_0()); 
+                      		
+                    }
+                    if ( state.backtracking==0 ) {
+
+                      	        if (current==null) {
+                      	            current = createModelElement(grammarAccess.getActionButtonRule());
+                      	        }
+                             		setWithLastConsumed(
+                             			current, 
+                             			"iconURI",
+                              		lv_iconURI_6_0, 
+                              		"STRING");
+                      	    
+                    }
+
+                    }
+
+
+                    }
+
+
+                    }
+                    break;
+
+            }
+
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:408:4: ( ( ( ( ({...}? => ( ({...}? => (otherlv_8= 'group' ( (otherlv_9= RULE_ID ) ) (otherlv_10= 'canExecute' ( (otherlv_11= RULE_ID ) ) )? ) ) ) ) | ({...}? => ( ({...}? => (otherlv_12= 'executeParameter' ( (otherlv_13= RULE_ID ) ) ) ) ) ) )+ {...}?) ) )?
+            int alt12=2;
+            int LA12_0 = input.LA(1);
+
+            if ( (LA12_0==21||LA12_0==23) ) {
+                alt12=1;
+            }
+            switch (alt12) {
+                case 1 :
+                    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:410:1: ( ( ( ({...}? => ( ({...}? => (otherlv_8= 'group' ( (otherlv_9= RULE_ID ) ) (otherlv_10= 'canExecute' ( (otherlv_11= RULE_ID ) ) )? ) ) ) ) | ({...}? => ( ({...}? => (otherlv_12= 'executeParameter' ( (otherlv_13= RULE_ID ) ) ) ) ) ) )+ {...}?) )
+                    {
+                    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:410:1: ( ( ( ({...}? => ( ({...}? => (otherlv_8= 'group' ( (otherlv_9= RULE_ID ) ) (otherlv_10= 'canExecute' ( (otherlv_11= RULE_ID ) ) )? ) ) ) ) | ({...}? => ( ({...}? => (otherlv_12= 'executeParameter' ( (otherlv_13= RULE_ID ) ) ) ) ) ) )+ {...}?) )
+                    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:411:2: ( ( ({...}? => ( ({...}? => (otherlv_8= 'group' ( (otherlv_9= RULE_ID ) ) (otherlv_10= 'canExecute' ( (otherlv_11= RULE_ID ) ) )? ) ) ) ) | ({...}? => ( ({...}? => (otherlv_12= 'executeParameter' ( (otherlv_13= RULE_ID ) ) ) ) ) ) )+ {...}?)
+                    {
+                    getUnorderedGroupHelper().enter(grammarAccess.getActionButtonAccess().getUnorderedGroup_5());
+                    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:414:2: ( ( ({...}? => ( ({...}? => (otherlv_8= 'group' ( (otherlv_9= RULE_ID ) ) (otherlv_10= 'canExecute' ( (otherlv_11= RULE_ID ) ) )? ) ) ) ) | ({...}? => ( ({...}? => (otherlv_12= 'executeParameter' ( (otherlv_13= RULE_ID ) ) ) ) ) ) )+ {...}?)
+                    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:415:3: ( ({...}? => ( ({...}? => (otherlv_8= 'group' ( (otherlv_9= RULE_ID ) ) (otherlv_10= 'canExecute' ( (otherlv_11= RULE_ID ) ) )? ) ) ) ) | ({...}? => ( ({...}? => (otherlv_12= 'executeParameter' ( (otherlv_13= RULE_ID ) ) ) ) ) ) )+ {...}?
+                    {
+                    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:415:3: ( ({...}? => ( ({...}? => (otherlv_8= 'group' ( (otherlv_9= RULE_ID ) ) (otherlv_10= 'canExecute' ( (otherlv_11= RULE_ID ) ) )? ) ) ) ) | ({...}? => ( ({...}? => (otherlv_12= 'executeParameter' ( (otherlv_13= RULE_ID ) ) ) ) ) ) )+
+                    int cnt11=0;
+                    loop11:
+                    do {
+                        int alt11=3;
+                        int LA11_0 = input.LA(1);
+
+                        if ( LA11_0 ==21 && getUnorderedGroupHelper().canSelect(grammarAccess.getActionButtonAccess().getUnorderedGroup_5(), 0) ) {
+                            alt11=1;
+                        }
+                        else if ( LA11_0 ==23 && getUnorderedGroupHelper().canSelect(grammarAccess.getActionButtonAccess().getUnorderedGroup_5(), 1) ) {
+                            alt11=2;
+                        }
+
+
+                        switch (alt11) {
+                    	case 1 :
+                    	    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:417:4: ({...}? => ( ({...}? => (otherlv_8= 'group' ( (otherlv_9= RULE_ID ) ) (otherlv_10= 'canExecute' ( (otherlv_11= RULE_ID ) ) )? ) ) ) )
+                    	    {
+                    	    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:417:4: ({...}? => ( ({...}? => (otherlv_8= 'group' ( (otherlv_9= RULE_ID ) ) (otherlv_10= 'canExecute' ( (otherlv_11= RULE_ID ) ) )? ) ) ) )
+                    	    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:418:5: {...}? => ( ({...}? => (otherlv_8= 'group' ( (otherlv_9= RULE_ID ) ) (otherlv_10= 'canExecute' ( (otherlv_11= RULE_ID ) ) )? ) ) )
+                    	    {
+                    	    if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getActionButtonAccess().getUnorderedGroup_5(), 0) ) {
+                    	        if (state.backtracking>0) {state.failed=true; return current;}
+                    	        throw new FailedPredicateException(input, "ruleActionButton", "getUnorderedGroupHelper().canSelect(grammarAccess.getActionButtonAccess().getUnorderedGroup_5(), 0)");
+                    	    }
+                    	    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:418:109: ( ({...}? => (otherlv_8= 'group' ( (otherlv_9= RULE_ID ) ) (otherlv_10= 'canExecute' ( (otherlv_11= RULE_ID ) ) )? ) ) )
+                    	    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:419:6: ({...}? => (otherlv_8= 'group' ( (otherlv_9= RULE_ID ) ) (otherlv_10= 'canExecute' ( (otherlv_11= RULE_ID ) ) )? ) )
+                    	    {
+                    	    getUnorderedGroupHelper().select(grammarAccess.getActionButtonAccess().getUnorderedGroup_5(), 0);
+                    	    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:422:6: ({...}? => (otherlv_8= 'group' ( (otherlv_9= RULE_ID ) ) (otherlv_10= 'canExecute' ( (otherlv_11= RULE_ID ) ) )? ) )
+                    	    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:422:7: {...}? => (otherlv_8= 'group' ( (otherlv_9= RULE_ID ) ) (otherlv_10= 'canExecute' ( (otherlv_11= RULE_ID ) ) )? )
+                    	    {
+                    	    if ( !((true)) ) {
+                    	        if (state.backtracking>0) {state.failed=true; return current;}
+                    	        throw new FailedPredicateException(input, "ruleActionButton", "true");
+                    	    }
+                    	    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:422:16: (otherlv_8= 'group' ( (otherlv_9= RULE_ID ) ) (otherlv_10= 'canExecute' ( (otherlv_11= RULE_ID ) ) )? )
+                    	    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:422:18: otherlv_8= 'group' ( (otherlv_9= RULE_ID ) ) (otherlv_10= 'canExecute' ( (otherlv_11= RULE_ID ) ) )?
+                    	    {
+                    	    otherlv_8=(Token)match(input,21,FOLLOW_21_in_ruleActionButton807); if (state.failed) return current;
+                    	    if ( state.backtracking==0 ) {
+
+                    	          	newLeafNode(otherlv_8, grammarAccess.getActionButtonAccess().getGroupKeyword_5_0_0());
+                    	          
+                    	    }
+                    	    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:426:1: ( (otherlv_9= RULE_ID ) )
+                    	    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:427:1: (otherlv_9= RULE_ID )
+                    	    {
+                    	    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:427:1: (otherlv_9= RULE_ID )
+                    	    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:428:3: otherlv_9= RULE_ID
+                    	    {
+                    	    if ( state.backtracking==0 ) {
+
+                    	      			if (current==null) {
+                    	      	            current = createModelElement(grammarAccess.getActionButtonRule());
+                    	      	        }
+                    	              
+                    	    }
+                    	    otherlv_9=(Token)match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleActionButton827); if (state.failed) return current;
+                    	    if ( state.backtracking==0 ) {
+
+                    	      		newLeafNode(otherlv_9, grammarAccess.getActionButtonAccess().getGroupFunctionLibraryGroupCrossReference_5_0_1_0()); 
+                    	      	
+                    	    }
+
+                    	    }
+
+
+                    	    }
+
+                    	    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:439:2: (otherlv_10= 'canExecute' ( (otherlv_11= RULE_ID ) ) )?
+                    	    int alt10=2;
+                    	    int LA10_0 = input.LA(1);
+
+                    	    if ( (LA10_0==22) ) {
+                    	        alt10=1;
+                    	    }
+                    	    switch (alt10) {
+                    	        case 1 :
+                    	            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:439:4: otherlv_10= 'canExecute' ( (otherlv_11= RULE_ID ) )
+                    	            {
+                    	            otherlv_10=(Token)match(input,22,FOLLOW_22_in_ruleActionButton840); if (state.failed) return current;
+                    	            if ( state.backtracking==0 ) {
+
+                    	                  	newLeafNode(otherlv_10, grammarAccess.getActionButtonAccess().getCanExecuteKeyword_5_0_2_0());
+                    	                  
+                    	            }
+                    	            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:443:1: ( (otherlv_11= RULE_ID ) )
+                    	            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:444:1: (otherlv_11= RULE_ID )
+                    	            {
+                    	            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:444:1: (otherlv_11= RULE_ID )
+                    	            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:445:3: otherlv_11= RULE_ID
+                    	            {
+                    	            if ( state.backtracking==0 ) {
+
+                    	              			if (current==null) {
+                    	              	            current = createModelElement(grammarAccess.getActionButtonRule());
+                    	              	        }
+                    	                      
+                    	            }
+                    	            otherlv_11=(Token)match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleActionButton860); if (state.failed) return current;
+                    	            if ( state.backtracking==0 ) {
+
+                    	              		newLeafNode(otherlv_11, grammarAccess.getActionButtonAccess().getCanexecuteFunctionLibraryFunctionCrossReference_5_0_2_1_0()); 
+                    	              	
+                    	            }
+
+                    	            }
+
+
+                    	            }
+
+
+                    	            }
+                    	            break;
+
+                    	    }
+
+
+                    	    }
+
+
+                    	    }
+
+                    	    getUnorderedGroupHelper().returnFromSelection(grammarAccess.getActionButtonAccess().getUnorderedGroup_5());
+
+                    	    }
+
+
+                    	    }
+
+
+                    	    }
+                    	    break;
+                    	case 2 :
+                    	    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:463:4: ({...}? => ( ({...}? => (otherlv_12= 'executeParameter' ( (otherlv_13= RULE_ID ) ) ) ) ) )
+                    	    {
+                    	    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:463:4: ({...}? => ( ({...}? => (otherlv_12= 'executeParameter' ( (otherlv_13= RULE_ID ) ) ) ) ) )
+                    	    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:464:5: {...}? => ( ({...}? => (otherlv_12= 'executeParameter' ( (otherlv_13= RULE_ID ) ) ) ) )
+                    	    {
+                    	    if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getActionButtonAccess().getUnorderedGroup_5(), 1) ) {
+                    	        if (state.backtracking>0) {state.failed=true; return current;}
+                    	        throw new FailedPredicateException(input, "ruleActionButton", "getUnorderedGroupHelper().canSelect(grammarAccess.getActionButtonAccess().getUnorderedGroup_5(), 1)");
+                    	    }
+                    	    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:464:109: ( ({...}? => (otherlv_12= 'executeParameter' ( (otherlv_13= RULE_ID ) ) ) ) )
+                    	    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:465:6: ({...}? => (otherlv_12= 'executeParameter' ( (otherlv_13= RULE_ID ) ) ) )
+                    	    {
+                    	    getUnorderedGroupHelper().select(grammarAccess.getActionButtonAccess().getUnorderedGroup_5(), 1);
+                    	    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:468:6: ({...}? => (otherlv_12= 'executeParameter' ( (otherlv_13= RULE_ID ) ) ) )
+                    	    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:468:7: {...}? => (otherlv_12= 'executeParameter' ( (otherlv_13= RULE_ID ) ) )
+                    	    {
+                    	    if ( !((true)) ) {
+                    	        if (state.backtracking>0) {state.failed=true; return current;}
+                    	        throw new FailedPredicateException(input, "ruleActionButton", "true");
+                    	    }
+                    	    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:468:16: (otherlv_12= 'executeParameter' ( (otherlv_13= RULE_ID ) ) )
+                    	    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:468:18: otherlv_12= 'executeParameter' ( (otherlv_13= RULE_ID ) )
+                    	    {
+                    	    otherlv_12=(Token)match(input,23,FOLLOW_23_in_ruleActionButton930); if (state.failed) return current;
+                    	    if ( state.backtracking==0 ) {
+
+                    	          	newLeafNode(otherlv_12, grammarAccess.getActionButtonAccess().getExecuteParameterKeyword_5_1_0());
+                    	          
+                    	    }
+                    	    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:472:1: ( (otherlv_13= RULE_ID ) )
+                    	    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:473:1: (otherlv_13= RULE_ID )
+                    	    {
+                    	    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:473:1: (otherlv_13= RULE_ID )
+                    	    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:474:3: otherlv_13= RULE_ID
+                    	    {
+                    	    if ( state.backtracking==0 ) {
+
+                    	      			if (current==null) {
+                    	      	            current = createModelElement(grammarAccess.getActionButtonRule());
+                    	      	        }
+                    	              
+                    	    }
+                    	    otherlv_13=(Token)match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleActionButton950); if (state.failed) return current;
+                    	    if ( state.backtracking==0 ) {
+
+                    	      		newLeafNode(otherlv_13, grammarAccess.getActionButtonAccess().getExecuteparameterFunctionLibraryFunctionCrossReference_5_1_1_0()); 
+                    	      	
+                    	    }
+
+                    	    }
+
+
+                    	    }
+
+
+                    	    }
+
+
+                    	    }
+
+                    	    getUnorderedGroupHelper().returnFromSelection(grammarAccess.getActionButtonAccess().getUnorderedGroup_5());
+
+                    	    }
+
+
+                    	    }
+
+
+                    	    }
+                    	    break;
+
+                    	default :
+                    	    if ( cnt11 >= 1 ) break loop11;
+                    	    if (state.backtracking>0) {state.failed=true; return current;}
+                                EarlyExitException eee =
+                                    new EarlyExitException(11, input);
+                                throw eee;
+                        }
+                        cnt11++;
+                    } while (true);
+
+                    if ( ! getUnorderedGroupHelper().canLeave(grammarAccess.getActionButtonAccess().getUnorderedGroup_5()) ) {
+                        if (state.backtracking>0) {state.failed=true; return current;}
+                        throw new FailedPredicateException(input, "ruleActionButton", "getUnorderedGroupHelper().canLeave(grammarAccess.getActionButtonAccess().getUnorderedGroup_5())");
+                    }
+
+                    }
+
+
+                    }
+
+                    getUnorderedGroupHelper().leave(grammarAccess.getActionButtonAccess().getUnorderedGroup_5());
+
+                    }
+                    break;
+
+            }
+
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:500:3: ( (lv_actionType_14_0= ruleActionType ) )
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:501:1: (lv_actionType_14_0= ruleActionType )
+            {
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:501:1: (lv_actionType_14_0= ruleActionType )
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:502:3: lv_actionType_14_0= ruleActionType
+            {
+            if ( state.backtracking==0 ) {
+               
+              	        newCompositeNode(grammarAccess.getActionButtonAccess().getActionTypeActionTypeParserRuleCall_6_0()); 
+              	    
+            }
+            pushFollow(FOLLOW_ruleActionType_in_ruleActionButton1019);
+            lv_actionType_14_0=ruleActionType();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+              	        if (current==null) {
+              	            current = createModelElementForParent(grammarAccess.getActionButtonRule());
+              	        }
+                     		set(
+                     			current, 
+                     			"actionType",
+                      		lv_actionType_14_0, 
+                      		"ActionType");
+              	        afterParserOrEnumRuleCall();
+              	    
+            }
+
+            }
+
+
+            }
+
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:518:2: (otherlv_15= 'message' ( ( ruleQualifiedName ) ) )?
+            int alt13=2;
+            int LA13_0 = input.LA(1);
+
+            if ( (LA13_0==24) ) {
+                alt13=1;
+            }
+            switch (alt13) {
+                case 1 :
+                    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:518:4: otherlv_15= 'message' ( ( ruleQualifiedName ) )
+                    {
+                    otherlv_15=(Token)match(input,24,FOLLOW_24_in_ruleActionButton1032); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                          	newLeafNode(otherlv_15, grammarAccess.getActionButtonAccess().getMessageKeyword_7_0());
+                          
+                    }
+                    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:522:1: ( ( ruleQualifiedName ) )
+                    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:523:1: ( ruleQualifiedName )
+                    {
+                    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:523:1: ( ruleQualifiedName )
+                    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:524:3: ruleQualifiedName
+                    {
+                    if ( state.backtracking==0 ) {
+
+                      			if (current==null) {
+                      	            current = createModelElement(grammarAccess.getActionButtonRule());
+                      	        }
+                              
+                    }
+                    if ( state.backtracking==0 ) {
+                       
+                      	        newCompositeNode(grammarAccess.getActionButtonAccess().getMessageMessageItemCrossReference_7_1_0()); 
+                      	    
+                    }
+                    pushFollow(FOLLOW_ruleQualifiedName_in_ruleActionButton1055);
+                    ruleQualifiedName();
+
+                    state._fsp--;
+                    if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+                       
+                      	        afterParserOrEnumRuleCall();
+                      	    
+                    }
+
+                    }
+
+
+                    }
+
+
+                    }
+                    break;
+
+            }
+
+
+            }
+
+
+            }
+
+            if ( state.backtracking==0 ) {
+               leaveRule(); 
+            }
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleActionButton"
+
+
+    // $ANTLR start "entryRuleActionType"
+    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:545:1: entryRuleActionType returns [EObject current=null] : iv_ruleActionType= ruleActionType EOF ;
+    public final EObject entryRuleActionType() throws RecognitionException {
+        EObject current = null;
+
+        EObject iv_ruleActionType = null;
+
+
+        try {
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:546:2: (iv_ruleActionType= ruleActionType EOF )
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:547:2: iv_ruleActionType= ruleActionType EOF
+            {
+            if ( state.backtracking==0 ) {
+               newCompositeNode(grammarAccess.getActionTypeRule()); 
+            }
+            pushFollow(FOLLOW_ruleActionType_in_entryRuleActionType1093);
+            iv_ruleActionType=ruleActionType();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+               current =iv_ruleActionType; 
+            }
+            match(input,EOF,FOLLOW_EOF_in_entryRuleActionType1103); if (state.failed) return current;
+
+            }
+
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleActionType"
+
+
+    // $ANTLR start "ruleActionType"
+    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:554:1: ruleActionType returns [EObject current=null] : (this_ActionTask_0= ruleActionTask | this_ActionSelectWorkload_1= ruleActionSelectWorkload | this_ActionDialog_2= ruleActionDialog | this_ActionReport_3= ruleActionReport | this_ActionChart_4= ruleActionChart | this_ActionWorkflow_5= ruleActionWorkflow | this_ActionGeneric_6= ruleActionGeneric | this_ActionDatainterchange_7= ruleActionDatainterchange ) ;
+    public final EObject ruleActionType() throws RecognitionException {
+        EObject current = null;
+
+        EObject this_ActionTask_0 = null;
+
+        EObject this_ActionSelectWorkload_1 = null;
+
+        EObject this_ActionDialog_2 = null;
+
+        EObject this_ActionReport_3 = null;
+
+        EObject this_ActionChart_4 = null;
+
+        EObject this_ActionWorkflow_5 = null;
+
+        EObject this_ActionGeneric_6 = null;
+
+        EObject this_ActionDatainterchange_7 = null;
+
+
+         enterRule(); 
+            
+        try {
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:557:28: ( (this_ActionTask_0= ruleActionTask | this_ActionSelectWorkload_1= ruleActionSelectWorkload | this_ActionDialog_2= ruleActionDialog | this_ActionReport_3= ruleActionReport | this_ActionChart_4= ruleActionChart | this_ActionWorkflow_5= ruleActionWorkflow | this_ActionGeneric_6= ruleActionGeneric | this_ActionDatainterchange_7= ruleActionDatainterchange ) )
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:558:1: (this_ActionTask_0= ruleActionTask | this_ActionSelectWorkload_1= ruleActionSelectWorkload | this_ActionDialog_2= ruleActionDialog | this_ActionReport_3= ruleActionReport | this_ActionChart_4= ruleActionChart | this_ActionWorkflow_5= ruleActionWorkflow | this_ActionGeneric_6= ruleActionGeneric | this_ActionDatainterchange_7= ruleActionDatainterchange )
+            {
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:558:1: (this_ActionTask_0= ruleActionTask | this_ActionSelectWorkload_1= ruleActionSelectWorkload | this_ActionDialog_2= ruleActionDialog | this_ActionReport_3= ruleActionReport | this_ActionChart_4= ruleActionChart | this_ActionWorkflow_5= ruleActionWorkflow | this_ActionGeneric_6= ruleActionGeneric | this_ActionDatainterchange_7= ruleActionDatainterchange )
+            int alt14=8;
+            switch ( input.LA(1) ) {
+            case 25:
+                {
+                alt14=1;
+                }
+                break;
+            case 26:
+                {
+                alt14=2;
+                }
+                break;
+            case 27:
+                {
+                alt14=3;
+                }
+                break;
+            case 28:
+                {
+                alt14=4;
+                }
+                break;
+            case 29:
+                {
+                alt14=5;
+                }
+                break;
+            case 30:
+                {
+                alt14=6;
+                }
+                break;
+            case 32:
+                {
+                alt14=7;
+                }
+                break;
+            case 31:
+                {
+                alt14=8;
+                }
+                break;
+            default:
+                if (state.backtracking>0) {state.failed=true; return current;}
+                NoViableAltException nvae =
+                    new NoViableAltException("", 14, 0, input);
+
+                throw nvae;
+            }
+
+            switch (alt14) {
+                case 1 :
+                    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:559:5: this_ActionTask_0= ruleActionTask
+                    {
+                    if ( state.backtracking==0 ) {
+                       
+                              newCompositeNode(grammarAccess.getActionTypeAccess().getActionTaskParserRuleCall_0()); 
+                          
+                    }
+                    pushFollow(FOLLOW_ruleActionTask_in_ruleActionType1150);
+                    this_ActionTask_0=ruleActionTask();
+
+                    state._fsp--;
+                    if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+                       
+                              current = this_ActionTask_0; 
+                              afterParserOrEnumRuleCall();
+                          
+                    }
+
+                    }
+                    break;
+                case 2 :
+                    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:569:5: this_ActionSelectWorkload_1= ruleActionSelectWorkload
+                    {
+                    if ( state.backtracking==0 ) {
+                       
+                              newCompositeNode(grammarAccess.getActionTypeAccess().getActionSelectWorkloadParserRuleCall_1()); 
+                          
+                    }
+                    pushFollow(FOLLOW_ruleActionSelectWorkload_in_ruleActionType1177);
+                    this_ActionSelectWorkload_1=ruleActionSelectWorkload();
+
+                    state._fsp--;
+                    if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+                       
+                              current = this_ActionSelectWorkload_1; 
+                              afterParserOrEnumRuleCall();
+                          
+                    }
+
+                    }
+                    break;
+                case 3 :
+                    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:579:5: this_ActionDialog_2= ruleActionDialog
+                    {
+                    if ( state.backtracking==0 ) {
+                       
+                              newCompositeNode(grammarAccess.getActionTypeAccess().getActionDialogParserRuleCall_2()); 
+                          
+                    }
+                    pushFollow(FOLLOW_ruleActionDialog_in_ruleActionType1204);
+                    this_ActionDialog_2=ruleActionDialog();
+
+                    state._fsp--;
+                    if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+                       
+                              current = this_ActionDialog_2; 
+                              afterParserOrEnumRuleCall();
+                          
+                    }
+
+                    }
+                    break;
+                case 4 :
+                    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:589:5: this_ActionReport_3= ruleActionReport
+                    {
+                    if ( state.backtracking==0 ) {
+                       
+                              newCompositeNode(grammarAccess.getActionTypeAccess().getActionReportParserRuleCall_3()); 
+                          
+                    }
+                    pushFollow(FOLLOW_ruleActionReport_in_ruleActionType1231);
+                    this_ActionReport_3=ruleActionReport();
+
+                    state._fsp--;
+                    if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+                       
+                              current = this_ActionReport_3; 
+                              afterParserOrEnumRuleCall();
+                          
+                    }
+
+                    }
+                    break;
+                case 5 :
+                    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:599:5: this_ActionChart_4= ruleActionChart
+                    {
+                    if ( state.backtracking==0 ) {
+                       
+                              newCompositeNode(grammarAccess.getActionTypeAccess().getActionChartParserRuleCall_4()); 
+                          
+                    }
+                    pushFollow(FOLLOW_ruleActionChart_in_ruleActionType1258);
+                    this_ActionChart_4=ruleActionChart();
+
+                    state._fsp--;
+                    if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+                       
+                              current = this_ActionChart_4; 
+                              afterParserOrEnumRuleCall();
+                          
+                    }
+
+                    }
+                    break;
+                case 6 :
+                    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:609:5: this_ActionWorkflow_5= ruleActionWorkflow
+                    {
+                    if ( state.backtracking==0 ) {
+                       
+                              newCompositeNode(grammarAccess.getActionTypeAccess().getActionWorkflowParserRuleCall_5()); 
+                          
+                    }
+                    pushFollow(FOLLOW_ruleActionWorkflow_in_ruleActionType1285);
+                    this_ActionWorkflow_5=ruleActionWorkflow();
+
+                    state._fsp--;
+                    if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+                       
+                              current = this_ActionWorkflow_5; 
+                              afterParserOrEnumRuleCall();
+                          
+                    }
+
+                    }
+                    break;
+                case 7 :
+                    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:619:5: this_ActionGeneric_6= ruleActionGeneric
+                    {
+                    if ( state.backtracking==0 ) {
+                       
+                              newCompositeNode(grammarAccess.getActionTypeAccess().getActionGenericParserRuleCall_6()); 
+                          
+                    }
+                    pushFollow(FOLLOW_ruleActionGeneric_in_ruleActionType1312);
+                    this_ActionGeneric_6=ruleActionGeneric();
+
+                    state._fsp--;
+                    if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+                       
+                              current = this_ActionGeneric_6; 
+                              afterParserOrEnumRuleCall();
+                          
+                    }
+
+                    }
+                    break;
+                case 8 :
+                    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:629:5: this_ActionDatainterchange_7= ruleActionDatainterchange
+                    {
+                    if ( state.backtracking==0 ) {
+                       
+                              newCompositeNode(grammarAccess.getActionTypeAccess().getActionDatainterchangeParserRuleCall_7()); 
+                          
+                    }
+                    pushFollow(FOLLOW_ruleActionDatainterchange_in_ruleActionType1339);
+                    this_ActionDatainterchange_7=ruleActionDatainterchange();
+
+                    state._fsp--;
+                    if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+                       
+                              current = this_ActionDatainterchange_7; 
+                              afterParserOrEnumRuleCall();
+                          
+                    }
+
+                    }
+                    break;
+
+            }
+
+
+            }
+
+            if ( state.backtracking==0 ) {
+               leaveRule(); 
+            }
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleActionType"
+
+
+    // $ANTLR start "entryRuleActionTask"
+    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:645:1: entryRuleActionTask returns [EObject current=null] : iv_ruleActionTask= ruleActionTask EOF ;
+    public final EObject entryRuleActionTask() throws RecognitionException {
+        EObject current = null;
+
+        EObject iv_ruleActionTask = null;
+
+
+        try {
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:646:2: (iv_ruleActionTask= ruleActionTask EOF )
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:647:2: iv_ruleActionTask= ruleActionTask EOF
+            {
+            if ( state.backtracking==0 ) {
+               newCompositeNode(grammarAccess.getActionTaskRule()); 
+            }
+            pushFollow(FOLLOW_ruleActionTask_in_entryRuleActionTask1374);
+            iv_ruleActionTask=ruleActionTask();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+               current =iv_ruleActionTask; 
+            }
+            match(input,EOF,FOLLOW_EOF_in_entryRuleActionTask1384); if (state.failed) return current;
+
+            }
+
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleActionTask"
+
+
+    // $ANTLR start "ruleActionTask"
+    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:654:1: ruleActionTask returns [EObject current=null] : (otherlv_0= 'taskAction' ( (lv_action_1_0= ruleTaskActionEnum ) ) ) ;
+    public final EObject ruleActionTask() throws RecognitionException {
+        EObject current = null;
+
+        Token otherlv_0=null;
+        Enumerator lv_action_1_0 = null;
+
+
+         enterRule(); 
+            
+        try {
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:657:28: ( (otherlv_0= 'taskAction' ( (lv_action_1_0= ruleTaskActionEnum ) ) ) )
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:658:1: (otherlv_0= 'taskAction' ( (lv_action_1_0= ruleTaskActionEnum ) ) )
+            {
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:658:1: (otherlv_0= 'taskAction' ( (lv_action_1_0= ruleTaskActionEnum ) ) )
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:658:3: otherlv_0= 'taskAction' ( (lv_action_1_0= ruleTaskActionEnum ) )
+            {
+            otherlv_0=(Token)match(input,25,FOLLOW_25_in_ruleActionTask1421); if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+                  	newLeafNode(otherlv_0, grammarAccess.getActionTaskAccess().getTaskActionKeyword_0());
+                  
+            }
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:662:1: ( (lv_action_1_0= ruleTaskActionEnum ) )
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:663:1: (lv_action_1_0= ruleTaskActionEnum )
+            {
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:663:1: (lv_action_1_0= ruleTaskActionEnum )
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:664:3: lv_action_1_0= ruleTaskActionEnum
+            {
+            if ( state.backtracking==0 ) {
+               
+              	        newCompositeNode(grammarAccess.getActionTaskAccess().getActionTaskActionEnumEnumRuleCall_1_0()); 
+              	    
+            }
+            pushFollow(FOLLOW_ruleTaskActionEnum_in_ruleActionTask1442);
+            lv_action_1_0=ruleTaskActionEnum();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+              	        if (current==null) {
+              	            current = createModelElementForParent(grammarAccess.getActionTaskRule());
+              	        }
+                     		set(
+                     			current, 
+                     			"action",
+                      		lv_action_1_0, 
+                      		"TaskActionEnum");
+              	        afterParserOrEnumRuleCall();
+              	    
+            }
+
+            }
+
+
+            }
+
+
+            }
+
+
+            }
+
+            if ( state.backtracking==0 ) {
+               leaveRule(); 
+            }
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleActionTask"
+
+
+    // $ANTLR start "entryRuleActionSelectWorkload"
+    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:688:1: entryRuleActionSelectWorkload returns [EObject current=null] : iv_ruleActionSelectWorkload= ruleActionSelectWorkload EOF ;
+    public final EObject entryRuleActionSelectWorkload() throws RecognitionException {
+        EObject current = null;
+
+        EObject iv_ruleActionSelectWorkload = null;
+
+
+        try {
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:689:2: (iv_ruleActionSelectWorkload= ruleActionSelectWorkload EOF )
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:690:2: iv_ruleActionSelectWorkload= ruleActionSelectWorkload EOF
+            {
+            if ( state.backtracking==0 ) {
+               newCompositeNode(grammarAccess.getActionSelectWorkloadRule()); 
+            }
+            pushFollow(FOLLOW_ruleActionSelectWorkload_in_entryRuleActionSelectWorkload1478);
+            iv_ruleActionSelectWorkload=ruleActionSelectWorkload();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+               current =iv_ruleActionSelectWorkload; 
+            }
+            match(input,EOF,FOLLOW_EOF_in_entryRuleActionSelectWorkload1488); if (state.failed) return current;
+
+            }
+
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleActionSelectWorkload"
+
+
+    // $ANTLR start "ruleActionSelectWorkload"
+    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:697:1: ruleActionSelectWorkload returns [EObject current=null] : (otherlv_0= 'selectWorkloadAction' ( (lv_action_1_0= ruleSelectWorkloadActionEnum ) ) ) ;
+    public final EObject ruleActionSelectWorkload() throws RecognitionException {
+        EObject current = null;
+
+        Token otherlv_0=null;
+        Enumerator lv_action_1_0 = null;
+
+
+         enterRule(); 
+            
+        try {
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:700:28: ( (otherlv_0= 'selectWorkloadAction' ( (lv_action_1_0= ruleSelectWorkloadActionEnum ) ) ) )
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:701:1: (otherlv_0= 'selectWorkloadAction' ( (lv_action_1_0= ruleSelectWorkloadActionEnum ) ) )
+            {
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:701:1: (otherlv_0= 'selectWorkloadAction' ( (lv_action_1_0= ruleSelectWorkloadActionEnum ) ) )
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:701:3: otherlv_0= 'selectWorkloadAction' ( (lv_action_1_0= ruleSelectWorkloadActionEnum ) )
+            {
+            otherlv_0=(Token)match(input,26,FOLLOW_26_in_ruleActionSelectWorkload1525); if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+                  	newLeafNode(otherlv_0, grammarAccess.getActionSelectWorkloadAccess().getSelectWorkloadActionKeyword_0());
+                  
+            }
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:705:1: ( (lv_action_1_0= ruleSelectWorkloadActionEnum ) )
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:706:1: (lv_action_1_0= ruleSelectWorkloadActionEnum )
+            {
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:706:1: (lv_action_1_0= ruleSelectWorkloadActionEnum )
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:707:3: lv_action_1_0= ruleSelectWorkloadActionEnum
+            {
+            if ( state.backtracking==0 ) {
+               
+              	        newCompositeNode(grammarAccess.getActionSelectWorkloadAccess().getActionSelectWorkloadActionEnumEnumRuleCall_1_0()); 
+              	    
+            }
+            pushFollow(FOLLOW_ruleSelectWorkloadActionEnum_in_ruleActionSelectWorkload1546);
+            lv_action_1_0=ruleSelectWorkloadActionEnum();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+              	        if (current==null) {
+              	            current = createModelElementForParent(grammarAccess.getActionSelectWorkloadRule());
+              	        }
+                     		set(
+                     			current, 
+                     			"action",
+                      		lv_action_1_0, 
+                      		"SelectWorkloadActionEnum");
+              	        afterParserOrEnumRuleCall();
+              	    
+            }
+
+            }
+
+
+            }
+
+
+            }
+
+
+            }
+
+            if ( state.backtracking==0 ) {
+               leaveRule(); 
+            }
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleActionSelectWorkload"
+
+
+    // $ANTLR start "entryRuleActionDialog"
+    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:731:1: entryRuleActionDialog returns [EObject current=null] : iv_ruleActionDialog= ruleActionDialog EOF ;
+    public final EObject entryRuleActionDialog() throws RecognitionException {
+        EObject current = null;
+
+        EObject iv_ruleActionDialog = null;
+
+
+        try {
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:732:2: (iv_ruleActionDialog= ruleActionDialog EOF )
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:733:2: iv_ruleActionDialog= ruleActionDialog EOF
+            {
+            if ( state.backtracking==0 ) {
+               newCompositeNode(grammarAccess.getActionDialogRule()); 
+            }
+            pushFollow(FOLLOW_ruleActionDialog_in_entryRuleActionDialog1582);
+            iv_ruleActionDialog=ruleActionDialog();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+               current =iv_ruleActionDialog; 
+            }
+            match(input,EOF,FOLLOW_EOF_in_entryRuleActionDialog1592); if (state.failed) return current;
+
+            }
+
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleActionDialog"
+
+
+    // $ANTLR start "ruleActionDialog"
+    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:740:1: ruleActionDialog returns [EObject current=null] : (otherlv_0= 'dialogAction' ( (lv_action_1_0= ruleDialogActionEnum ) ) ) ;
+    public final EObject ruleActionDialog() throws RecognitionException {
+        EObject current = null;
+
+        Token otherlv_0=null;
+        Enumerator lv_action_1_0 = null;
+
+
+         enterRule(); 
+            
+        try {
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:743:28: ( (otherlv_0= 'dialogAction' ( (lv_action_1_0= ruleDialogActionEnum ) ) ) )
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:744:1: (otherlv_0= 'dialogAction' ( (lv_action_1_0= ruleDialogActionEnum ) ) )
+            {
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:744:1: (otherlv_0= 'dialogAction' ( (lv_action_1_0= ruleDialogActionEnum ) ) )
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:744:3: otherlv_0= 'dialogAction' ( (lv_action_1_0= ruleDialogActionEnum ) )
+            {
+            otherlv_0=(Token)match(input,27,FOLLOW_27_in_ruleActionDialog1629); if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+                  	newLeafNode(otherlv_0, grammarAccess.getActionDialogAccess().getDialogActionKeyword_0());
+                  
+            }
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:748:1: ( (lv_action_1_0= ruleDialogActionEnum ) )
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:749:1: (lv_action_1_0= ruleDialogActionEnum )
+            {
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:749:1: (lv_action_1_0= ruleDialogActionEnum )
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:750:3: lv_action_1_0= ruleDialogActionEnum
+            {
+            if ( state.backtracking==0 ) {
+               
+              	        newCompositeNode(grammarAccess.getActionDialogAccess().getActionDialogActionEnumEnumRuleCall_1_0()); 
+              	    
+            }
+            pushFollow(FOLLOW_ruleDialogActionEnum_in_ruleActionDialog1650);
+            lv_action_1_0=ruleDialogActionEnum();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+              	        if (current==null) {
+              	            current = createModelElementForParent(grammarAccess.getActionDialogRule());
+              	        }
+                     		set(
+                     			current, 
+                     			"action",
+                      		lv_action_1_0, 
+                      		"DialogActionEnum");
+              	        afterParserOrEnumRuleCall();
+              	    
+            }
+
+            }
+
+
+            }
+
+
+            }
+
+
+            }
+
+            if ( state.backtracking==0 ) {
+               leaveRule(); 
+            }
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleActionDialog"
+
+
+    // $ANTLR start "entryRuleActionReport"
+    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:774:1: entryRuleActionReport returns [EObject current=null] : iv_ruleActionReport= ruleActionReport EOF ;
+    public final EObject entryRuleActionReport() throws RecognitionException {
+        EObject current = null;
+
+        EObject iv_ruleActionReport = null;
+
+
+        try {
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:775:2: (iv_ruleActionReport= ruleActionReport EOF )
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:776:2: iv_ruleActionReport= ruleActionReport EOF
+            {
+            if ( state.backtracking==0 ) {
+               newCompositeNode(grammarAccess.getActionReportRule()); 
+            }
+            pushFollow(FOLLOW_ruleActionReport_in_entryRuleActionReport1686);
+            iv_ruleActionReport=ruleActionReport();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+               current =iv_ruleActionReport; 
+            }
+            match(input,EOF,FOLLOW_EOF_in_entryRuleActionReport1696); if (state.failed) return current;
+
+            }
+
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleActionReport"
+
+
+    // $ANTLR start "ruleActionReport"
+    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:783:1: ruleActionReport returns [EObject current=null] : (otherlv_0= 'reportAction' ( (lv_action_1_0= ruleReportActionEnum ) ) ) ;
+    public final EObject ruleActionReport() throws RecognitionException {
+        EObject current = null;
+
+        Token otherlv_0=null;
+        Enumerator lv_action_1_0 = null;
+
+
+         enterRule(); 
+            
+        try {
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:786:28: ( (otherlv_0= 'reportAction' ( (lv_action_1_0= ruleReportActionEnum ) ) ) )
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:787:1: (otherlv_0= 'reportAction' ( (lv_action_1_0= ruleReportActionEnum ) ) )
+            {
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:787:1: (otherlv_0= 'reportAction' ( (lv_action_1_0= ruleReportActionEnum ) ) )
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:787:3: otherlv_0= 'reportAction' ( (lv_action_1_0= ruleReportActionEnum ) )
+            {
+            otherlv_0=(Token)match(input,28,FOLLOW_28_in_ruleActionReport1733); if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+                  	newLeafNode(otherlv_0, grammarAccess.getActionReportAccess().getReportActionKeyword_0());
+                  
+            }
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:791:1: ( (lv_action_1_0= ruleReportActionEnum ) )
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:792:1: (lv_action_1_0= ruleReportActionEnum )
+            {
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:792:1: (lv_action_1_0= ruleReportActionEnum )
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:793:3: lv_action_1_0= ruleReportActionEnum
+            {
+            if ( state.backtracking==0 ) {
+               
+              	        newCompositeNode(grammarAccess.getActionReportAccess().getActionReportActionEnumEnumRuleCall_1_0()); 
+              	    
+            }
+            pushFollow(FOLLOW_ruleReportActionEnum_in_ruleActionReport1754);
+            lv_action_1_0=ruleReportActionEnum();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+              	        if (current==null) {
+              	            current = createModelElementForParent(grammarAccess.getActionReportRule());
+              	        }
+                     		set(
+                     			current, 
+                     			"action",
+                      		lv_action_1_0, 
+                      		"ReportActionEnum");
+              	        afterParserOrEnumRuleCall();
+              	    
+            }
+
+            }
+
+
+            }
+
+
+            }
+
+
+            }
+
+            if ( state.backtracking==0 ) {
+               leaveRule(); 
+            }
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleActionReport"
+
+
+    // $ANTLR start "entryRuleActionChart"
+    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:817:1: entryRuleActionChart returns [EObject current=null] : iv_ruleActionChart= ruleActionChart EOF ;
+    public final EObject entryRuleActionChart() throws RecognitionException {
+        EObject current = null;
+
+        EObject iv_ruleActionChart = null;
+
+
+        try {
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:818:2: (iv_ruleActionChart= ruleActionChart EOF )
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:819:2: iv_ruleActionChart= ruleActionChart EOF
+            {
+            if ( state.backtracking==0 ) {
+               newCompositeNode(grammarAccess.getActionChartRule()); 
+            }
+            pushFollow(FOLLOW_ruleActionChart_in_entryRuleActionChart1790);
+            iv_ruleActionChart=ruleActionChart();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+               current =iv_ruleActionChart; 
+            }
+            match(input,EOF,FOLLOW_EOF_in_entryRuleActionChart1800); if (state.failed) return current;
+
+            }
+
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleActionChart"
+
+
+    // $ANTLR start "ruleActionChart"
+    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:826:1: ruleActionChart returns [EObject current=null] : (otherlv_0= 'chartAction' ( (lv_action_1_0= ruleChartActionEnum ) ) ) ;
+    public final EObject ruleActionChart() throws RecognitionException {
+        EObject current = null;
+
+        Token otherlv_0=null;
+        Enumerator lv_action_1_0 = null;
+
+
+         enterRule(); 
+            
+        try {
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:829:28: ( (otherlv_0= 'chartAction' ( (lv_action_1_0= ruleChartActionEnum ) ) ) )
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:830:1: (otherlv_0= 'chartAction' ( (lv_action_1_0= ruleChartActionEnum ) ) )
+            {
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:830:1: (otherlv_0= 'chartAction' ( (lv_action_1_0= ruleChartActionEnum ) ) )
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:830:3: otherlv_0= 'chartAction' ( (lv_action_1_0= ruleChartActionEnum ) )
+            {
+            otherlv_0=(Token)match(input,29,FOLLOW_29_in_ruleActionChart1837); if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+                  	newLeafNode(otherlv_0, grammarAccess.getActionChartAccess().getChartActionKeyword_0());
+                  
+            }
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:834:1: ( (lv_action_1_0= ruleChartActionEnum ) )
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:835:1: (lv_action_1_0= ruleChartActionEnum )
+            {
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:835:1: (lv_action_1_0= ruleChartActionEnum )
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:836:3: lv_action_1_0= ruleChartActionEnum
+            {
+            if ( state.backtracking==0 ) {
+               
+              	        newCompositeNode(grammarAccess.getActionChartAccess().getActionChartActionEnumEnumRuleCall_1_0()); 
+              	    
+            }
+            pushFollow(FOLLOW_ruleChartActionEnum_in_ruleActionChart1858);
+            lv_action_1_0=ruleChartActionEnum();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+              	        if (current==null) {
+              	            current = createModelElementForParent(grammarAccess.getActionChartRule());
+              	        }
+                     		set(
+                     			current, 
+                     			"action",
+                      		lv_action_1_0, 
+                      		"ChartActionEnum");
+              	        afterParserOrEnumRuleCall();
+              	    
+            }
+
+            }
+
+
+            }
+
+
+            }
+
+
+            }
+
+            if ( state.backtracking==0 ) {
+               leaveRule(); 
+            }
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleActionChart"
+
+
+    // $ANTLR start "entryRuleActionWorkflow"
+    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:860:1: entryRuleActionWorkflow returns [EObject current=null] : iv_ruleActionWorkflow= ruleActionWorkflow EOF ;
+    public final EObject entryRuleActionWorkflow() throws RecognitionException {
+        EObject current = null;
+
+        EObject iv_ruleActionWorkflow = null;
+
+
+        try {
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:861:2: (iv_ruleActionWorkflow= ruleActionWorkflow EOF )
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:862:2: iv_ruleActionWorkflow= ruleActionWorkflow EOF
+            {
+            if ( state.backtracking==0 ) {
+               newCompositeNode(grammarAccess.getActionWorkflowRule()); 
+            }
+            pushFollow(FOLLOW_ruleActionWorkflow_in_entryRuleActionWorkflow1894);
+            iv_ruleActionWorkflow=ruleActionWorkflow();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+               current =iv_ruleActionWorkflow; 
+            }
+            match(input,EOF,FOLLOW_EOF_in_entryRuleActionWorkflow1904); if (state.failed) return current;
+
+            }
+
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleActionWorkflow"
+
+
+    // $ANTLR start "ruleActionWorkflow"
+    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:869:1: ruleActionWorkflow returns [EObject current=null] : (otherlv_0= 'workflowAction' ( (lv_action_1_0= ruleWorkflowActionEnum ) ) ) ;
+    public final EObject ruleActionWorkflow() throws RecognitionException {
+        EObject current = null;
+
+        Token otherlv_0=null;
+        Enumerator lv_action_1_0 = null;
+
+
+         enterRule(); 
+            
+        try {
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:872:28: ( (otherlv_0= 'workflowAction' ( (lv_action_1_0= ruleWorkflowActionEnum ) ) ) )
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:873:1: (otherlv_0= 'workflowAction' ( (lv_action_1_0= ruleWorkflowActionEnum ) ) )
+            {
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:873:1: (otherlv_0= 'workflowAction' ( (lv_action_1_0= ruleWorkflowActionEnum ) ) )
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:873:3: otherlv_0= 'workflowAction' ( (lv_action_1_0= ruleWorkflowActionEnum ) )
+            {
+            otherlv_0=(Token)match(input,30,FOLLOW_30_in_ruleActionWorkflow1941); if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+                  	newLeafNode(otherlv_0, grammarAccess.getActionWorkflowAccess().getWorkflowActionKeyword_0());
+                  
+            }
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:877:1: ( (lv_action_1_0= ruleWorkflowActionEnum ) )
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:878:1: (lv_action_1_0= ruleWorkflowActionEnum )
+            {
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:878:1: (lv_action_1_0= ruleWorkflowActionEnum )
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:879:3: lv_action_1_0= ruleWorkflowActionEnum
+            {
+            if ( state.backtracking==0 ) {
+               
+              	        newCompositeNode(grammarAccess.getActionWorkflowAccess().getActionWorkflowActionEnumEnumRuleCall_1_0()); 
+              	    
+            }
+            pushFollow(FOLLOW_ruleWorkflowActionEnum_in_ruleActionWorkflow1962);
+            lv_action_1_0=ruleWorkflowActionEnum();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+              	        if (current==null) {
+              	            current = createModelElementForParent(grammarAccess.getActionWorkflowRule());
+              	        }
+                     		set(
+                     			current, 
+                     			"action",
+                      		lv_action_1_0, 
+                      		"WorkflowActionEnum");
+              	        afterParserOrEnumRuleCall();
+              	    
+            }
+
+            }
+
+
+            }
+
+
+            }
+
+
+            }
+
+            if ( state.backtracking==0 ) {
+               leaveRule(); 
+            }
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleActionWorkflow"
+
+
+    // $ANTLR start "entryRuleActionDatainterchange"
+    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:903:1: entryRuleActionDatainterchange returns [EObject current=null] : iv_ruleActionDatainterchange= ruleActionDatainterchange EOF ;
+    public final EObject entryRuleActionDatainterchange() throws RecognitionException {
+        EObject current = null;
+
+        EObject iv_ruleActionDatainterchange = null;
+
+
+        try {
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:904:2: (iv_ruleActionDatainterchange= ruleActionDatainterchange EOF )
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:905:2: iv_ruleActionDatainterchange= ruleActionDatainterchange EOF
+            {
+            if ( state.backtracking==0 ) {
+               newCompositeNode(grammarAccess.getActionDatainterchangeRule()); 
+            }
+            pushFollow(FOLLOW_ruleActionDatainterchange_in_entryRuleActionDatainterchange1998);
+            iv_ruleActionDatainterchange=ruleActionDatainterchange();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+               current =iv_ruleActionDatainterchange; 
+            }
+            match(input,EOF,FOLLOW_EOF_in_entryRuleActionDatainterchange2008); if (state.failed) return current;
+
+            }
+
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleActionDatainterchange"
+
+
+    // $ANTLR start "ruleActionDatainterchange"
+    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:912:1: ruleActionDatainterchange returns [EObject current=null] : (otherlv_0= 'datainterchangeAction' ( (lv_action_1_0= ruleDatainterchangeActionEnum ) ) ( (otherlv_2= RULE_ID ) ) ) ;
+    public final EObject ruleActionDatainterchange() throws RecognitionException {
+        EObject current = null;
+
+        Token otherlv_0=null;
+        Token otherlv_2=null;
+        Enumerator lv_action_1_0 = null;
+
+
+         enterRule(); 
+            
+        try {
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:915:28: ( (otherlv_0= 'datainterchangeAction' ( (lv_action_1_0= ruleDatainterchangeActionEnum ) ) ( (otherlv_2= RULE_ID ) ) ) )
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:916:1: (otherlv_0= 'datainterchangeAction' ( (lv_action_1_0= ruleDatainterchangeActionEnum ) ) ( (otherlv_2= RULE_ID ) ) )
+            {
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:916:1: (otherlv_0= 'datainterchangeAction' ( (lv_action_1_0= ruleDatainterchangeActionEnum ) ) ( (otherlv_2= RULE_ID ) ) )
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:916:3: otherlv_0= 'datainterchangeAction' ( (lv_action_1_0= ruleDatainterchangeActionEnum ) ) ( (otherlv_2= RULE_ID ) )
+            {
+            otherlv_0=(Token)match(input,31,FOLLOW_31_in_ruleActionDatainterchange2045); if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+                  	newLeafNode(otherlv_0, grammarAccess.getActionDatainterchangeAccess().getDatainterchangeActionKeyword_0());
+                  
+            }
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:920:1: ( (lv_action_1_0= ruleDatainterchangeActionEnum ) )
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:921:1: (lv_action_1_0= ruleDatainterchangeActionEnum )
+            {
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:921:1: (lv_action_1_0= ruleDatainterchangeActionEnum )
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:922:3: lv_action_1_0= ruleDatainterchangeActionEnum
+            {
+            if ( state.backtracking==0 ) {
+               
+              	        newCompositeNode(grammarAccess.getActionDatainterchangeAccess().getActionDatainterchangeActionEnumEnumRuleCall_1_0()); 
+              	    
+            }
+            pushFollow(FOLLOW_ruleDatainterchangeActionEnum_in_ruleActionDatainterchange2066);
+            lv_action_1_0=ruleDatainterchangeActionEnum();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+              	        if (current==null) {
+              	            current = createModelElementForParent(grammarAccess.getActionDatainterchangeRule());
+              	        }
+                     		set(
+                     			current, 
+                     			"action",
+                      		lv_action_1_0, 
+                      		"DatainterchangeActionEnum");
+              	        afterParserOrEnumRuleCall();
+              	    
+            }
+
+            }
+
+
+            }
+
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:938:2: ( (otherlv_2= RULE_ID ) )
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:939:1: (otherlv_2= RULE_ID )
+            {
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:939:1: (otherlv_2= RULE_ID )
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:940:3: otherlv_2= RULE_ID
+            {
+            if ( state.backtracking==0 ) {
+
+              			if (current==null) {
+              	            current = createModelElement(grammarAccess.getActionDatainterchangeRule());
+              	        }
+                      
+            }
+            otherlv_2=(Token)match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleActionDatainterchange2086); if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+              		newLeafNode(otherlv_2, grammarAccess.getActionDatainterchangeAccess().getDataRefDataInterchangeCrossReference_2_0()); 
+              	
+            }
+
+            }
+
+
+            }
+
+
+            }
+
+
+            }
+
+            if ( state.backtracking==0 ) {
+               leaveRule(); 
+            }
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleActionDatainterchange"
+
+
+    // $ANTLR start "entryRuleActionGeneric"
+    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:959:1: entryRuleActionGeneric returns [EObject current=null] : iv_ruleActionGeneric= ruleActionGeneric EOF ;
+    public final EObject entryRuleActionGeneric() throws RecognitionException {
+        EObject current = null;
+
+        EObject iv_ruleActionGeneric = null;
+
+
+        try {
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:960:2: (iv_ruleActionGeneric= ruleActionGeneric EOF )
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:961:2: iv_ruleActionGeneric= ruleActionGeneric EOF
+            {
+            if ( state.backtracking==0 ) {
+               newCompositeNode(grammarAccess.getActionGenericRule()); 
+            }
+            pushFollow(FOLLOW_ruleActionGeneric_in_entryRuleActionGeneric2122);
+            iv_ruleActionGeneric=ruleActionGeneric();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+               current =iv_ruleActionGeneric; 
+            }
+            match(input,EOF,FOLLOW_EOF_in_entryRuleActionGeneric2132); if (state.failed) return current;
+
+            }
+
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleActionGeneric"
+
+
+    // $ANTLR start "ruleActionGeneric"
+    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:968:1: ruleActionGeneric returns [EObject current=null] : (otherlv_0= 'genericAction' ( (lv_action_1_0= RULE_STRING ) ) ) ;
+    public final EObject ruleActionGeneric() throws RecognitionException {
+        EObject current = null;
+
+        Token otherlv_0=null;
+        Token lv_action_1_0=null;
+
+         enterRule(); 
+            
+        try {
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:971:28: ( (otherlv_0= 'genericAction' ( (lv_action_1_0= RULE_STRING ) ) ) )
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:972:1: (otherlv_0= 'genericAction' ( (lv_action_1_0= RULE_STRING ) ) )
+            {
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:972:1: (otherlv_0= 'genericAction' ( (lv_action_1_0= RULE_STRING ) ) )
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:972:3: otherlv_0= 'genericAction' ( (lv_action_1_0= RULE_STRING ) )
+            {
+            otherlv_0=(Token)match(input,32,FOLLOW_32_in_ruleActionGeneric2169); if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+                  	newLeafNode(otherlv_0, grammarAccess.getActionGenericAccess().getGenericActionKeyword_0());
+                  
+            }
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:976:1: ( (lv_action_1_0= RULE_STRING ) )
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:977:1: (lv_action_1_0= RULE_STRING )
+            {
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:977:1: (lv_action_1_0= RULE_STRING )
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:978:3: lv_action_1_0= RULE_STRING
+            {
+            lv_action_1_0=(Token)match(input,RULE_STRING,FOLLOW_RULE_STRING_in_ruleActionGeneric2186); if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+              			newLeafNode(lv_action_1_0, grammarAccess.getActionGenericAccess().getActionSTRINGTerminalRuleCall_1_0()); 
+              		
+            }
+            if ( state.backtracking==0 ) {
+
+              	        if (current==null) {
+              	            current = createModelElement(grammarAccess.getActionGenericRule());
+              	        }
+                     		setWithLastConsumed(
+                     			current, 
+                     			"action",
+                      		lv_action_1_0, 
+                      		"STRING");
+              	    
+            }
+
+            }
+
+
+            }
+
+
+            }
+
+
+            }
+
+            if ( state.backtracking==0 ) {
+               leaveRule(); 
+            }
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleActionGeneric"
+
+
+    // $ANTLR start "entryRuleActionImport"
+    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1004:1: entryRuleActionImport returns [EObject current=null] : iv_ruleActionImport= ruleActionImport EOF ;
+    public final EObject entryRuleActionImport() throws RecognitionException {
+        EObject current = null;
+
+        EObject iv_ruleActionImport = null;
+
+
+        try {
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1005:2: (iv_ruleActionImport= ruleActionImport EOF )
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1006:2: iv_ruleActionImport= ruleActionImport EOF
+            {
+            if ( state.backtracking==0 ) {
+               newCompositeNode(grammarAccess.getActionImportRule()); 
+            }
+            pushFollow(FOLLOW_ruleActionImport_in_entryRuleActionImport2229);
+            iv_ruleActionImport=ruleActionImport();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+               current =iv_ruleActionImport; 
+            }
+            match(input,EOF,FOLLOW_EOF_in_entryRuleActionImport2239); if (state.failed) return current;
+
+            }
+
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleActionImport"
+
+
+    // $ANTLR start "ruleActionImport"
+    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1013:1: ruleActionImport returns [EObject current=null] : (otherlv_0= 'import' ( (lv_importedNamespace_1_0= ruleActionQualifiedNameWithWildCard ) ) ) ;
+    public final EObject ruleActionImport() throws RecognitionException {
+        EObject current = null;
+
+        Token otherlv_0=null;
+        AntlrDatatypeRuleToken lv_importedNamespace_1_0 = null;
+
+
+         enterRule(); 
+            
+        try {
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1016:28: ( (otherlv_0= 'import' ( (lv_importedNamespace_1_0= ruleActionQualifiedNameWithWildCard ) ) ) )
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1017:1: (otherlv_0= 'import' ( (lv_importedNamespace_1_0= ruleActionQualifiedNameWithWildCard ) ) )
+            {
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1017:1: (otherlv_0= 'import' ( (lv_importedNamespace_1_0= ruleActionQualifiedNameWithWildCard ) ) )
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1017:3: otherlv_0= 'import' ( (lv_importedNamespace_1_0= ruleActionQualifiedNameWithWildCard ) )
+            {
+            otherlv_0=(Token)match(input,33,FOLLOW_33_in_ruleActionImport2276); if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+                  	newLeafNode(otherlv_0, grammarAccess.getActionImportAccess().getImportKeyword_0());
+                  
+            }
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1021:1: ( (lv_importedNamespace_1_0= ruleActionQualifiedNameWithWildCard ) )
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1022:1: (lv_importedNamespace_1_0= ruleActionQualifiedNameWithWildCard )
+            {
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1022:1: (lv_importedNamespace_1_0= ruleActionQualifiedNameWithWildCard )
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1023:3: lv_importedNamespace_1_0= ruleActionQualifiedNameWithWildCard
+            {
+            if ( state.backtracking==0 ) {
+               
+              	        newCompositeNode(grammarAccess.getActionImportAccess().getImportedNamespaceActionQualifiedNameWithWildCardParserRuleCall_1_0()); 
+              	    
+            }
+            pushFollow(FOLLOW_ruleActionQualifiedNameWithWildCard_in_ruleActionImport2297);
+            lv_importedNamespace_1_0=ruleActionQualifiedNameWithWildCard();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+              	        if (current==null) {
+              	            current = createModelElementForParent(grammarAccess.getActionImportRule());
+              	        }
+                     		set(
+                     			current, 
+                     			"importedNamespace",
+                      		lv_importedNamespace_1_0, 
+                      		"ActionQualifiedNameWithWildCard");
+              	        afterParserOrEnumRuleCall();
+              	    
+            }
+
+            }
+
+
+            }
+
+
+            }
+
+
+            }
+
+            if ( state.backtracking==0 ) {
+               leaveRule(); 
+            }
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleActionImport"
+
+
+    // $ANTLR start "entryRuleActionQualifiedNameWithWildCard"
+    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1049:1: entryRuleActionQualifiedNameWithWildCard returns [String current=null] : iv_ruleActionQualifiedNameWithWildCard= ruleActionQualifiedNameWithWildCard EOF ;
+    public final String entryRuleActionQualifiedNameWithWildCard() throws RecognitionException {
+        String current = null;
+
+        AntlrDatatypeRuleToken iv_ruleActionQualifiedNameWithWildCard = null;
+
+
+        try {
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1050:2: (iv_ruleActionQualifiedNameWithWildCard= ruleActionQualifiedNameWithWildCard EOF )
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1051:2: iv_ruleActionQualifiedNameWithWildCard= ruleActionQualifiedNameWithWildCard EOF
+            {
+            if ( state.backtracking==0 ) {
+               newCompositeNode(grammarAccess.getActionQualifiedNameWithWildCardRule()); 
+            }
+            pushFollow(FOLLOW_ruleActionQualifiedNameWithWildCard_in_entryRuleActionQualifiedNameWithWildCard2336);
+            iv_ruleActionQualifiedNameWithWildCard=ruleActionQualifiedNameWithWildCard();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+               current =iv_ruleActionQualifiedNameWithWildCard.getText(); 
+            }
+            match(input,EOF,FOLLOW_EOF_in_entryRuleActionQualifiedNameWithWildCard2347); if (state.failed) return current;
+
+            }
+
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleActionQualifiedNameWithWildCard"
+
+
+    // $ANTLR start "ruleActionQualifiedNameWithWildCard"
+    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1058:1: ruleActionQualifiedNameWithWildCard returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (this_QualifiedName_0= ruleQualifiedName (kw= '.' kw= '*' )? ) ;
+    public final AntlrDatatypeRuleToken ruleActionQualifiedNameWithWildCard() throws RecognitionException {
+        AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();
+
+        Token kw=null;
+        AntlrDatatypeRuleToken this_QualifiedName_0 = null;
+
+
+         enterRule(); 
+            
+        try {
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1061:28: ( (this_QualifiedName_0= ruleQualifiedName (kw= '.' kw= '*' )? ) )
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1062:1: (this_QualifiedName_0= ruleQualifiedName (kw= '.' kw= '*' )? )
+            {
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1062:1: (this_QualifiedName_0= ruleQualifiedName (kw= '.' kw= '*' )? )
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1063:5: this_QualifiedName_0= ruleQualifiedName (kw= '.' kw= '*' )?
+            {
+            if ( state.backtracking==0 ) {
+               
+                      newCompositeNode(grammarAccess.getActionQualifiedNameWithWildCardAccess().getQualifiedNameParserRuleCall_0()); 
+                  
+            }
+            pushFollow(FOLLOW_ruleQualifiedName_in_ruleActionQualifiedNameWithWildCard2394);
+            this_QualifiedName_0=ruleQualifiedName();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+              		current.merge(this_QualifiedName_0);
+                  
+            }
+            if ( state.backtracking==0 ) {
+               
+                      afterParserOrEnumRuleCall();
+                  
+            }
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1073:1: (kw= '.' kw= '*' )?
+            int alt15=2;
+            int LA15_0 = input.LA(1);
+
+            if ( (LA15_0==34) ) {
+                alt15=1;
+            }
+            switch (alt15) {
+                case 1 :
+                    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1074:2: kw= '.' kw= '*'
+                    {
+                    kw=(Token)match(input,34,FOLLOW_34_in_ruleActionQualifiedNameWithWildCard2413); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                              current.merge(kw);
+                              newLeafNode(kw, grammarAccess.getActionQualifiedNameWithWildCardAccess().getFullStopKeyword_1_0()); 
+                          
+                    }
+                    kw=(Token)match(input,35,FOLLOW_35_in_ruleActionQualifiedNameWithWildCard2426); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                              current.merge(kw);
+                              newLeafNode(kw, grammarAccess.getActionQualifiedNameWithWildCardAccess().getAsteriskKeyword_1_1()); 
+                          
+                    }
+
+                    }
+                    break;
+
+            }
+
+
+            }
+
+
+            }
+
+            if ( state.backtracking==0 ) {
+               leaveRule(); 
+            }
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleActionQualifiedNameWithWildCard"
+
+
+    // $ANTLR start "entryRuleQualifiedName"
+    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1093:1: entryRuleQualifiedName returns [String current=null] : iv_ruleQualifiedName= ruleQualifiedName EOF ;
+    public final String entryRuleQualifiedName() throws RecognitionException {
+        String current = null;
+
+        AntlrDatatypeRuleToken iv_ruleQualifiedName = null;
+
+
+        try {
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1094:2: (iv_ruleQualifiedName= ruleQualifiedName EOF )
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1095:2: iv_ruleQualifiedName= ruleQualifiedName EOF
+            {
+            if ( state.backtracking==0 ) {
+               newCompositeNode(grammarAccess.getQualifiedNameRule()); 
+            }
+            pushFollow(FOLLOW_ruleQualifiedName_in_entryRuleQualifiedName2469);
+            iv_ruleQualifiedName=ruleQualifiedName();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+               current =iv_ruleQualifiedName.getText(); 
+            }
+            match(input,EOF,FOLLOW_EOF_in_entryRuleQualifiedName2480); if (state.failed) return current;
+
+            }
+
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleQualifiedName"
+
+
+    // $ANTLR start "ruleQualifiedName"
+    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1102:1: ruleQualifiedName returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (this_ValidID_0= ruleValidID ( ( ( '.' )=>kw= '.' ) this_ValidID_2= ruleValidID )* ) ;
+    public final AntlrDatatypeRuleToken ruleQualifiedName() throws RecognitionException {
+        AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();
+
+        Token kw=null;
+        AntlrDatatypeRuleToken this_ValidID_0 = null;
+
+        AntlrDatatypeRuleToken this_ValidID_2 = null;
+
+
+         enterRule(); 
+            
+        try {
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1105:28: ( (this_ValidID_0= ruleValidID ( ( ( '.' )=>kw= '.' ) this_ValidID_2= ruleValidID )* ) )
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1106:1: (this_ValidID_0= ruleValidID ( ( ( '.' )=>kw= '.' ) this_ValidID_2= ruleValidID )* )
+            {
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1106:1: (this_ValidID_0= ruleValidID ( ( ( '.' )=>kw= '.' ) this_ValidID_2= ruleValidID )* )
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1107:5: this_ValidID_0= ruleValidID ( ( ( '.' )=>kw= '.' ) this_ValidID_2= ruleValidID )*
+            {
+            if ( state.backtracking==0 ) {
+               
+                      newCompositeNode(grammarAccess.getQualifiedNameAccess().getValidIDParserRuleCall_0()); 
+                  
+            }
+            pushFollow(FOLLOW_ruleValidID_in_ruleQualifiedName2527);
+            this_ValidID_0=ruleValidID();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+              		current.merge(this_ValidID_0);
+                  
+            }
+            if ( state.backtracking==0 ) {
+               
+                      afterParserOrEnumRuleCall();
+                  
+            }
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1117:1: ( ( ( '.' )=>kw= '.' ) this_ValidID_2= ruleValidID )*
+            loop16:
+            do {
+                int alt16=2;
+                int LA16_0 = input.LA(1);
+
+                if ( (LA16_0==34) ) {
+                    int LA16_2 = input.LA(2);
+
+                    if ( (LA16_2==RULE_ID) ) {
+                        int LA16_3 = input.LA(3);
+
+                        if ( (synpred1_InternalActionDSL()) ) {
+                            alt16=1;
+                        }
+
+
+                    }
+
+
+                }
+
+
+                switch (alt16) {
+            	case 1 :
+            	    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1117:2: ( ( '.' )=>kw= '.' ) this_ValidID_2= ruleValidID
+            	    {
+            	    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1117:2: ( ( '.' )=>kw= '.' )
+            	    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1117:3: ( '.' )=>kw= '.'
+            	    {
+            	    kw=(Token)match(input,34,FOLLOW_34_in_ruleQualifiedName2555); if (state.failed) return current;
+            	    if ( state.backtracking==0 ) {
+
+            	              current.merge(kw);
+            	              newLeafNode(kw, grammarAccess.getQualifiedNameAccess().getFullStopKeyword_1_0()); 
+            	          
+            	    }
+
+            	    }
+
+            	    if ( state.backtracking==0 ) {
+            	       
+            	              newCompositeNode(grammarAccess.getQualifiedNameAccess().getValidIDParserRuleCall_1_1()); 
+            	          
+            	    }
+            	    pushFollow(FOLLOW_ruleValidID_in_ruleQualifiedName2578);
+            	    this_ValidID_2=ruleValidID();
+
+            	    state._fsp--;
+            	    if (state.failed) return current;
+            	    if ( state.backtracking==0 ) {
+
+            	      		current.merge(this_ValidID_2);
+            	          
+            	    }
+            	    if ( state.backtracking==0 ) {
+            	       
+            	              afterParserOrEnumRuleCall();
+            	          
+            	    }
+
+            	    }
+            	    break;
+
+            	default :
+            	    break loop16;
+                }
+            } while (true);
+
+
+            }
+
+
+            }
+
+            if ( state.backtracking==0 ) {
+               leaveRule(); 
+            }
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleQualifiedName"
+
+
+    // $ANTLR start "entryRuleValidID"
+    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1144:1: entryRuleValidID returns [String current=null] : iv_ruleValidID= ruleValidID EOF ;
+    public final String entryRuleValidID() throws RecognitionException {
+        String current = null;
+
+        AntlrDatatypeRuleToken iv_ruleValidID = null;
+
+
+        try {
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1145:2: (iv_ruleValidID= ruleValidID EOF )
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1146:2: iv_ruleValidID= ruleValidID EOF
+            {
+            if ( state.backtracking==0 ) {
+               newCompositeNode(grammarAccess.getValidIDRule()); 
+            }
+            pushFollow(FOLLOW_ruleValidID_in_entryRuleValidID2626);
+            iv_ruleValidID=ruleValidID();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+               current =iv_ruleValidID.getText(); 
+            }
+            match(input,EOF,FOLLOW_EOF_in_entryRuleValidID2637); if (state.failed) return current;
+
+            }
+
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleValidID"
+
+
+    // $ANTLR start "ruleValidID"
+    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1153:1: ruleValidID returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : this_ID_0= RULE_ID ;
+    public final AntlrDatatypeRuleToken ruleValidID() throws RecognitionException {
+        AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();
+
+        Token this_ID_0=null;
+
+         enterRule(); 
+            
+        try {
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1156:28: (this_ID_0= RULE_ID )
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1157:5: this_ID_0= RULE_ID
+            {
+            this_ID_0=(Token)match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleValidID2676); if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+              		current.merge(this_ID_0);
+                  
+            }
+            if ( state.backtracking==0 ) {
+               
+                  newLeafNode(this_ID_0, grammarAccess.getValidIDAccess().getIDTerminalRuleCall()); 
+                  
+            }
+
+            }
+
+            if ( state.backtracking==0 ) {
+               leaveRule(); 
+            }
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleValidID"
+
+
+    // $ANTLR start "entryRuleTRANSLATABLEID"
+    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1172:1: entryRuleTRANSLATABLEID returns [String current=null] : iv_ruleTRANSLATABLEID= ruleTRANSLATABLEID EOF ;
+    public final String entryRuleTRANSLATABLEID() throws RecognitionException {
+        String current = null;
+
+        AntlrDatatypeRuleToken iv_ruleTRANSLATABLEID = null;
+
+
+        try {
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1173:2: (iv_ruleTRANSLATABLEID= ruleTRANSLATABLEID EOF )
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1174:2: iv_ruleTRANSLATABLEID= ruleTRANSLATABLEID EOF
+            {
+            if ( state.backtracking==0 ) {
+               newCompositeNode(grammarAccess.getTRANSLATABLEIDRule()); 
+            }
+            pushFollow(FOLLOW_ruleTRANSLATABLEID_in_entryRuleTRANSLATABLEID2721);
+            iv_ruleTRANSLATABLEID=ruleTRANSLATABLEID();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+               current =iv_ruleTRANSLATABLEID.getText(); 
+            }
+            match(input,EOF,FOLLOW_EOF_in_entryRuleTRANSLATABLEID2732); if (state.failed) return current;
+
+            }
+
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleTRANSLATABLEID"
+
+
+    // $ANTLR start "ruleTRANSLATABLEID"
+    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1181:1: ruleTRANSLATABLEID returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : this_ID_0= RULE_ID ;
+    public final AntlrDatatypeRuleToken ruleTRANSLATABLEID() throws RecognitionException {
+        AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();
+
+        Token this_ID_0=null;
+
+         enterRule(); 
+            
+        try {
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1184:28: (this_ID_0= RULE_ID )
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1185:5: this_ID_0= RULE_ID
+            {
+            this_ID_0=(Token)match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleTRANSLATABLEID2771); if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+              		current.merge(this_ID_0);
+                  
+            }
+            if ( state.backtracking==0 ) {
+               
+                  newLeafNode(this_ID_0, grammarAccess.getTRANSLATABLEIDAccess().getIDTerminalRuleCall()); 
+                  
+            }
+
+            }
+
+            if ( state.backtracking==0 ) {
+               leaveRule(); 
+            }
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleTRANSLATABLEID"
+
+
+    // $ANTLR start "entryRuleTRANSLATABLESTRING"
+    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1200:1: entryRuleTRANSLATABLESTRING returns [String current=null] : iv_ruleTRANSLATABLESTRING= ruleTRANSLATABLESTRING EOF ;
+    public final String entryRuleTRANSLATABLESTRING() throws RecognitionException {
+        String current = null;
+
+        AntlrDatatypeRuleToken iv_ruleTRANSLATABLESTRING = null;
+
+
+        try {
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1201:2: (iv_ruleTRANSLATABLESTRING= ruleTRANSLATABLESTRING EOF )
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1202:2: iv_ruleTRANSLATABLESTRING= ruleTRANSLATABLESTRING EOF
+            {
+            if ( state.backtracking==0 ) {
+               newCompositeNode(grammarAccess.getTRANSLATABLESTRINGRule()); 
+            }
+            pushFollow(FOLLOW_ruleTRANSLATABLESTRING_in_entryRuleTRANSLATABLESTRING2816);
+            iv_ruleTRANSLATABLESTRING=ruleTRANSLATABLESTRING();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+               current =iv_ruleTRANSLATABLESTRING.getText(); 
+            }
+            match(input,EOF,FOLLOW_EOF_in_entryRuleTRANSLATABLESTRING2827); if (state.failed) return current;
+
+            }
+
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleTRANSLATABLESTRING"
+
+
+    // $ANTLR start "ruleTRANSLATABLESTRING"
+    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1209:1: ruleTRANSLATABLESTRING returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : this_STRING_0= RULE_STRING ;
+    public final AntlrDatatypeRuleToken ruleTRANSLATABLESTRING() throws RecognitionException {
+        AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();
+
+        Token this_STRING_0=null;
+
+         enterRule(); 
+            
+        try {
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1212:28: (this_STRING_0= RULE_STRING )
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1213:5: this_STRING_0= RULE_STRING
+            {
+            this_STRING_0=(Token)match(input,RULE_STRING,FOLLOW_RULE_STRING_in_ruleTRANSLATABLESTRING2866); if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+              		current.merge(this_STRING_0);
+                  
+            }
+            if ( state.backtracking==0 ) {
+               
+                  newLeafNode(this_STRING_0, grammarAccess.getTRANSLATABLESTRINGAccess().getSTRINGTerminalRuleCall()); 
+                  
+            }
+
+            }
+
+            if ( state.backtracking==0 ) {
+               leaveRule(); 
+            }
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleTRANSLATABLESTRING"
+
+
+    // $ANTLR start "entryRuleXAnnotation"
+    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1228:1: entryRuleXAnnotation returns [EObject current=null] : iv_ruleXAnnotation= ruleXAnnotation EOF ;
+    public final EObject entryRuleXAnnotation() throws RecognitionException {
+        EObject current = null;
+
+        EObject iv_ruleXAnnotation = null;
+
+
+        try {
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1229:2: (iv_ruleXAnnotation= ruleXAnnotation EOF )
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1230:2: iv_ruleXAnnotation= ruleXAnnotation EOF
+            {
+            if ( state.backtracking==0 ) {
+               newCompositeNode(grammarAccess.getXAnnotationRule()); 
+            }
+            pushFollow(FOLLOW_ruleXAnnotation_in_entryRuleXAnnotation2910);
+            iv_ruleXAnnotation=ruleXAnnotation();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+               current =iv_ruleXAnnotation; 
+            }
+            match(input,EOF,FOLLOW_EOF_in_entryRuleXAnnotation2920); if (state.failed) return current;
+
+            }
+
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleXAnnotation"
+
+
+    // $ANTLR start "ruleXAnnotation"
+    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1237:1: ruleXAnnotation returns [EObject current=null] : ( () otherlv_1= '@' ( ( ruleQualifiedName ) ) ( ( ( '(' )=>otherlv_3= '(' ) ( ( ( ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_4_0= ruleXAnnotationElementValuePair ) ) (otherlv_5= ',' ( ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_6_0= ruleXAnnotationElementValuePair ) ) )* ) | ( (lv_value_7_0= ruleXAnnotationElementValueOrCommaList ) ) )? otherlv_8= ')' )? ) ;
+    public final EObject ruleXAnnotation() throws RecognitionException {
+        EObject current = null;
+
+        Token otherlv_1=null;
+        Token otherlv_3=null;
+        Token otherlv_5=null;
+        Token otherlv_8=null;
+        EObject lv_elementValuePairs_4_0 = null;
+
+        EObject lv_elementValuePairs_6_0 = null;
+
+        EObject lv_value_7_0 = null;
+
+
+         enterRule(); 
+            
+        try {
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1240:28: ( ( () otherlv_1= '@' ( ( ruleQualifiedName ) ) ( ( ( '(' )=>otherlv_3= '(' ) ( ( ( ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_4_0= ruleXAnnotationElementValuePair ) ) (otherlv_5= ',' ( ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_6_0= ruleXAnnotationElementValuePair ) ) )* ) | ( (lv_value_7_0= ruleXAnnotationElementValueOrCommaList ) ) )? otherlv_8= ')' )? ) )
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1241:1: ( () otherlv_1= '@' ( ( ruleQualifiedName ) ) ( ( ( '(' )=>otherlv_3= '(' ) ( ( ( ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_4_0= ruleXAnnotationElementValuePair ) ) (otherlv_5= ',' ( ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_6_0= ruleXAnnotationElementValuePair ) ) )* ) | ( (lv_value_7_0= ruleXAnnotationElementValueOrCommaList ) ) )? otherlv_8= ')' )? )
+            {
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1241:1: ( () otherlv_1= '@' ( ( ruleQualifiedName ) ) ( ( ( '(' )=>otherlv_3= '(' ) ( ( ( ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_4_0= ruleXAnnotationElementValuePair ) ) (otherlv_5= ',' ( ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_6_0= ruleXAnnotationElementValuePair ) ) )* ) | ( (lv_value_7_0= ruleXAnnotationElementValueOrCommaList ) ) )? otherlv_8= ')' )? )
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1241:2: () otherlv_1= '@' ( ( ruleQualifiedName ) ) ( ( ( '(' )=>otherlv_3= '(' ) ( ( ( ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_4_0= ruleXAnnotationElementValuePair ) ) (otherlv_5= ',' ( ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_6_0= ruleXAnnotationElementValuePair ) ) )* ) | ( (lv_value_7_0= ruleXAnnotationElementValueOrCommaList ) ) )? otherlv_8= ')' )?
+            {
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1241:2: ()
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1242:5: 
+            {
+            if ( state.backtracking==0 ) {
+
+                      current = forceCreateModelElement(
+                          grammarAccess.getXAnnotationAccess().getXAnnotationAction_0(),
+                          current);
+                  
+            }
+
+            }
+
+            otherlv_1=(Token)match(input,36,FOLLOW_36_in_ruleXAnnotation2966); if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+                  	newLeafNode(otherlv_1, grammarAccess.getXAnnotationAccess().getCommercialAtKeyword_1());
+                  
+            }
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1251:1: ( ( ruleQualifiedName ) )
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1252:1: ( ruleQualifiedName )
+            {
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1252:1: ( ruleQualifiedName )
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1253:3: ruleQualifiedName
+            {
+            if ( state.backtracking==0 ) {
+
+              			if (current==null) {
+              	            current = createModelElement(grammarAccess.getXAnnotationRule());
+              	        }
+                      
+            }
+            if ( state.backtracking==0 ) {
+               
+              	        newCompositeNode(grammarAccess.getXAnnotationAccess().getAnnotationTypeJvmAnnotationTypeCrossReference_2_0()); 
+              	    
+            }
+            pushFollow(FOLLOW_ruleQualifiedName_in_ruleXAnnotation2989);
+            ruleQualifiedName();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+               
+              	        afterParserOrEnumRuleCall();
+              	    
+            }
+
+            }
+
+
+            }
+
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1266:2: ( ( ( '(' )=>otherlv_3= '(' ) ( ( ( ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_4_0= ruleXAnnotationElementValuePair ) ) (otherlv_5= ',' ( ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_6_0= ruleXAnnotationElementValuePair ) ) )* ) | ( (lv_value_7_0= ruleXAnnotationElementValueOrCommaList ) ) )? otherlv_8= ')' )?
+            int alt19=2;
+            int LA19_0 = input.LA(1);
+
+            if ( (LA19_0==37) && (synpred2_InternalActionDSL())) {
+                alt19=1;
+            }
+            switch (alt19) {
+                case 1 :
+                    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1266:3: ( ( '(' )=>otherlv_3= '(' ) ( ( ( ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_4_0= ruleXAnnotationElementValuePair ) ) (otherlv_5= ',' ( ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_6_0= ruleXAnnotationElementValuePair ) ) )* ) | ( (lv_value_7_0= ruleXAnnotationElementValueOrCommaList ) ) )? otherlv_8= ')'
+                    {
+                    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1266:3: ( ( '(' )=>otherlv_3= '(' )
+                    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1266:4: ( '(' )=>otherlv_3= '('
+                    {
+                    otherlv_3=(Token)match(input,37,FOLLOW_37_in_ruleXAnnotation3010); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                          	newLeafNode(otherlv_3, grammarAccess.getXAnnotationAccess().getLeftParenthesisKeyword_3_0());
+                          
+                    }
+
+                    }
+
+                    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1271:2: ( ( ( ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_4_0= ruleXAnnotationElementValuePair ) ) (otherlv_5= ',' ( ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_6_0= ruleXAnnotationElementValuePair ) ) )* ) | ( (lv_value_7_0= ruleXAnnotationElementValueOrCommaList ) ) )?
+                    int alt18=3;
+                    alt18 = dfa18.predict(input);
+                    switch (alt18) {
+                        case 1 :
+                            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1271:3: ( ( ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_4_0= ruleXAnnotationElementValuePair ) ) (otherlv_5= ',' ( ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_6_0= ruleXAnnotationElementValuePair ) ) )* )
+                            {
+                            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1271:3: ( ( ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_4_0= ruleXAnnotationElementValuePair ) ) (otherlv_5= ',' ( ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_6_0= ruleXAnnotationElementValuePair ) ) )* )
+                            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1271:4: ( ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_4_0= ruleXAnnotationElementValuePair ) ) (otherlv_5= ',' ( ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_6_0= ruleXAnnotationElementValuePair ) ) )*
+                            {
+                            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1271:4: ( ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_4_0= ruleXAnnotationElementValuePair ) )
+                            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1271:5: ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_4_0= ruleXAnnotationElementValuePair )
+                            {
+                            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1277:1: (lv_elementValuePairs_4_0= ruleXAnnotationElementValuePair )
+                            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1278:3: lv_elementValuePairs_4_0= ruleXAnnotationElementValuePair
+                            {
+                            if ( state.backtracking==0 ) {
+                               
+                              	        newCompositeNode(grammarAccess.getXAnnotationAccess().getElementValuePairsXAnnotationElementValuePairParserRuleCall_3_1_0_0_0()); 
+                              	    
+                            }
+                            pushFollow(FOLLOW_ruleXAnnotationElementValuePair_in_ruleXAnnotation3054);
+                            lv_elementValuePairs_4_0=ruleXAnnotationElementValuePair();
+
+                            state._fsp--;
+                            if (state.failed) return current;
+                            if ( state.backtracking==0 ) {
+
+                              	        if (current==null) {
+                              	            current = createModelElementForParent(grammarAccess.getXAnnotationRule());
+                              	        }
+                                     		add(
+                                     			current, 
+                                     			"elementValuePairs",
+                                      		lv_elementValuePairs_4_0, 
+                                      		"XAnnotationElementValuePair");
+                              	        afterParserOrEnumRuleCall();
+                              	    
+                            }
+
+                            }
+
+
+                            }
+
+                            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1294:2: (otherlv_5= ',' ( ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_6_0= ruleXAnnotationElementValuePair ) ) )*
+                            loop17:
+                            do {
+                                int alt17=2;
+                                int LA17_0 = input.LA(1);
+
+                                if ( (LA17_0==38) ) {
+                                    alt17=1;
+                                }
+
+
+                                switch (alt17) {
+                            	case 1 :
+                            	    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1294:4: otherlv_5= ',' ( ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_6_0= ruleXAnnotationElementValuePair ) )
+                            	    {
+                            	    otherlv_5=(Token)match(input,38,FOLLOW_38_in_ruleXAnnotation3067); if (state.failed) return current;
+                            	    if ( state.backtracking==0 ) {
+
+                            	          	newLeafNode(otherlv_5, grammarAccess.getXAnnotationAccess().getCommaKeyword_3_1_0_1_0());
+                            	          
+                            	    }
+                            	    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1298:1: ( ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_6_0= ruleXAnnotationElementValuePair ) )
+                            	    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1298:2: ( ( ( ( ruleValidID ) ) '=' ) )=> (lv_elementValuePairs_6_0= ruleXAnnotationElementValuePair )
+                            	    {
+                            	    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1304:1: (lv_elementValuePairs_6_0= ruleXAnnotationElementValuePair )
+                            	    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1305:3: lv_elementValuePairs_6_0= ruleXAnnotationElementValuePair
+                            	    {
+                            	    if ( state.backtracking==0 ) {
+                            	       
+                            	      	        newCompositeNode(grammarAccess.getXAnnotationAccess().getElementValuePairsXAnnotationElementValuePairParserRuleCall_3_1_0_1_1_0()); 
+                            	      	    
+                            	    }
+                            	    pushFollow(FOLLOW_ruleXAnnotationElementValuePair_in_ruleXAnnotation3108);
+                            	    lv_elementValuePairs_6_0=ruleXAnnotationElementValuePair();
+
+                            	    state._fsp--;
+                            	    if (state.failed) return current;
+                            	    if ( state.backtracking==0 ) {
+
+                            	      	        if (current==null) {
+                            	      	            current = createModelElementForParent(grammarAccess.getXAnnotationRule());
+                            	      	        }
+                            	             		add(
+                            	             			current, 
+                            	             			"elementValuePairs",
+                            	              		lv_elementValuePairs_6_0, 
+                            	              		"XAnnotationElementValuePair");
+                            	      	        afterParserOrEnumRuleCall();
+                            	      	    
+                            	    }
+
+                            	    }
+
+
+                            	    }
+
+
+                            	    }
+                            	    break;
+
+                            	default :
+                            	    break loop17;
+                                }
+                            } while (true);
+
+
+                            }
+
+
+                            }
+                            break;
+                        case 2 :
+                            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1322:6: ( (lv_value_7_0= ruleXAnnotationElementValueOrCommaList ) )
+                            {
+                            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1322:6: ( (lv_value_7_0= ruleXAnnotationElementValueOrCommaList ) )
+                            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1323:1: (lv_value_7_0= ruleXAnnotationElementValueOrCommaList )
+                            {
+                            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1323:1: (lv_value_7_0= ruleXAnnotationElementValueOrCommaList )
+                            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1324:3: lv_value_7_0= ruleXAnnotationElementValueOrCommaList
+                            {
+                            if ( state.backtracking==0 ) {
+                               
+                              	        newCompositeNode(grammarAccess.getXAnnotationAccess().getValueXAnnotationElementValueOrCommaListParserRuleCall_3_1_1_0()); 
+                              	    
+                            }
+                            pushFollow(FOLLOW_ruleXAnnotationElementValueOrCommaList_in_ruleXAnnotation3138);
+                            lv_value_7_0=ruleXAnnotationElementValueOrCommaList();
+
+                            state._fsp--;
+                            if (state.failed) return current;
+                            if ( state.backtracking==0 ) {
+
+                              	        if (current==null) {
+                              	            current = createModelElementForParent(grammarAccess.getXAnnotationRule());
+                              	        }
+                                     		set(
+                                     			current, 
+                                     			"value",
+                                      		lv_value_7_0, 
+                                      		"XAnnotationElementValueOrCommaList");
+                              	        afterParserOrEnumRuleCall();
+                              	    
+                            }
+
+                            }
+
+
+                            }
+
+
+                            }
+                            break;
+
+                    }
+
+                    otherlv_8=(Token)match(input,39,FOLLOW_39_in_ruleXAnnotation3152); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                          	newLeafNode(otherlv_8, grammarAccess.getXAnnotationAccess().getRightParenthesisKeyword_3_2());
+                          
+                    }
+
+                    }
+                    break;
+
+            }
+
+
+            }
+
+
+            }
+
+            if ( state.backtracking==0 ) {
+               leaveRule(); 
+            }
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleXAnnotation"
+
+
+    // $ANTLR start "entryRuleXAnnotationElementValuePair"
+    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1352:1: entryRuleXAnnotationElementValuePair returns [EObject current=null] : iv_ruleXAnnotationElementValuePair= ruleXAnnotationElementValuePair EOF ;
+    public final EObject entryRuleXAnnotationElementValuePair() throws RecognitionException {
+        EObject current = null;
+
+        EObject iv_ruleXAnnotationElementValuePair = null;
+
+
+        try {
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1353:2: (iv_ruleXAnnotationElementValuePair= ruleXAnnotationElementValuePair EOF )
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1354:2: iv_ruleXAnnotationElementValuePair= ruleXAnnotationElementValuePair EOF
+            {
+            if ( state.backtracking==0 ) {
+               newCompositeNode(grammarAccess.getXAnnotationElementValuePairRule()); 
+            }
+            pushFollow(FOLLOW_ruleXAnnotationElementValuePair_in_entryRuleXAnnotationElementValuePair3190);
+            iv_ruleXAnnotationElementValuePair=ruleXAnnotationElementValuePair();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+               current =iv_ruleXAnnotationElementValuePair; 
+            }
+            match(input,EOF,FOLLOW_EOF_in_entryRuleXAnnotationElementValuePair3200); if (state.failed) return current;
+
+            }
+
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleXAnnotationElementValuePair"
+
+
+    // $ANTLR start "ruleXAnnotationElementValuePair"
+    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1361:1: ruleXAnnotationElementValuePair returns [EObject current=null] : ( ( ( ( ( ( ruleValidID ) ) '=' ) )=> ( ( ( ruleValidID ) ) otherlv_1= '=' ) ) ( (lv_value_2_0= ruleXAnnotationElementValue ) ) ) ;
+    public final EObject ruleXAnnotationElementValuePair() throws RecognitionException {
+        EObject current = null;
+
+        Token otherlv_1=null;
+        EObject lv_value_2_0 = null;
+
+
+         enterRule(); 
+            
+        try {
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1364:28: ( ( ( ( ( ( ( ruleValidID ) ) '=' ) )=> ( ( ( ruleValidID ) ) otherlv_1= '=' ) ) ( (lv_value_2_0= ruleXAnnotationElementValue ) ) ) )
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1365:1: ( ( ( ( ( ( ruleValidID ) ) '=' ) )=> ( ( ( ruleValidID ) ) otherlv_1= '=' ) ) ( (lv_value_2_0= ruleXAnnotationElementValue ) ) )
+            {
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1365:1: ( ( ( ( ( ( ruleValidID ) ) '=' ) )=> ( ( ( ruleValidID ) ) otherlv_1= '=' ) ) ( (lv_value_2_0= ruleXAnnotationElementValue ) ) )
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1365:2: ( ( ( ( ( ruleValidID ) ) '=' ) )=> ( ( ( ruleValidID ) ) otherlv_1= '=' ) ) ( (lv_value_2_0= ruleXAnnotationElementValue ) )
+            {
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1365:2: ( ( ( ( ( ruleValidID ) ) '=' ) )=> ( ( ( ruleValidID ) ) otherlv_1= '=' ) )
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1365:3: ( ( ( ( ruleValidID ) ) '=' ) )=> ( ( ( ruleValidID ) ) otherlv_1= '=' )
+            {
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1370:5: ( ( ( ruleValidID ) ) otherlv_1= '=' )
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1370:6: ( ( ruleValidID ) ) otherlv_1= '='
+            {
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1370:6: ( ( ruleValidID ) )
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1371:1: ( ruleValidID )
+            {
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1371:1: ( ruleValidID )
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1372:3: ruleValidID
+            {
+            if ( state.backtracking==0 ) {
+
+              			if (current==null) {
+              	            current = createModelElement(grammarAccess.getXAnnotationElementValuePairRule());
+              	        }
+                      
+            }
+            if ( state.backtracking==0 ) {
+               
+              	        newCompositeNode(grammarAccess.getXAnnotationElementValuePairAccess().getElementJvmOperationCrossReference_0_0_0_0()); 
+              	    
+            }
+            pushFollow(FOLLOW_ruleValidID_in_ruleXAnnotationElementValuePair3270);
+            ruleValidID();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+               
+              	        afterParserOrEnumRuleCall();
+              	    
+            }
+
+            }
+
+
+            }
+
+            otherlv_1=(Token)match(input,40,FOLLOW_40_in_ruleXAnnotationElementValuePair3282); if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+                  	newLeafNode(otherlv_1, grammarAccess.getXAnnotationElementValuePairAccess().getEqualsSignKeyword_0_0_1());
+                  
+            }
+
+            }
+
+
+            }
+
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1389:3: ( (lv_value_2_0= ruleXAnnotationElementValue ) )
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1390:1: (lv_value_2_0= ruleXAnnotationElementValue )
+            {
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1390:1: (lv_value_2_0= ruleXAnnotationElementValue )
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1391:3: lv_value_2_0= ruleXAnnotationElementValue
+            {
+            if ( state.backtracking==0 ) {
+               
+              	        newCompositeNode(grammarAccess.getXAnnotationElementValuePairAccess().getValueXAnnotationElementValueParserRuleCall_1_0()); 
+              	    
+            }
+            pushFollow(FOLLOW_ruleXAnnotationElementValue_in_ruleXAnnotationElementValuePair3305);
+            lv_value_2_0=ruleXAnnotationElementValue();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+              	        if (current==null) {
+              	            current = createModelElementForParent(grammarAccess.getXAnnotationElementValuePairRule());
+              	        }
+                     		set(
+                     			current, 
+                     			"value",
+                      		lv_value_2_0, 
+                      		"XAnnotationElementValue");
+              	        afterParserOrEnumRuleCall();
+              	    
+            }
+
+            }
+
+
+            }
+
+
+            }
+
+
+            }
+
+            if ( state.backtracking==0 ) {
+               leaveRule(); 
+            }
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleXAnnotationElementValuePair"
+
+
+    // $ANTLR start "entryRuleXAnnotationElementValueOrCommaList"
+    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1415:1: entryRuleXAnnotationElementValueOrCommaList returns [EObject current=null] : iv_ruleXAnnotationElementValueOrCommaList= ruleXAnnotationElementValueOrCommaList EOF ;
+    public final EObject entryRuleXAnnotationElementValueOrCommaList() throws RecognitionException {
+        EObject current = null;
+
+        EObject iv_ruleXAnnotationElementValueOrCommaList = null;
+
+
+        try {
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1416:2: (iv_ruleXAnnotationElementValueOrCommaList= ruleXAnnotationElementValueOrCommaList EOF )
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1417:2: iv_ruleXAnnotationElementValueOrCommaList= ruleXAnnotationElementValueOrCommaList EOF
+            {
+            if ( state.backtracking==0 ) {
+               newCompositeNode(grammarAccess.getXAnnotationElementValueOrCommaListRule()); 
+            }
+            pushFollow(FOLLOW_ruleXAnnotationElementValueOrCommaList_in_entryRuleXAnnotationElementValueOrCommaList3341);
+            iv_ruleXAnnotationElementValueOrCommaList=ruleXAnnotationElementValueOrCommaList();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+               current =iv_ruleXAnnotationElementValueOrCommaList; 
+            }
+            match(input,EOF,FOLLOW_EOF_in_entryRuleXAnnotationElementValueOrCommaList3351); if (state.failed) return current;
+
+            }
+
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleXAnnotationElementValueOrCommaList"
+
+
+    // $ANTLR start "ruleXAnnotationElementValueOrCommaList"
+    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1424:1: ruleXAnnotationElementValueOrCommaList returns [EObject current=null] : ( ( ( ( ( () '#' '[' ) )=> ( () otherlv_1= '#' otherlv_2= '[' ) ) ( ( (lv_elements_3_0= ruleXAnnotationOrExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXAnnotationOrExpression ) ) )* )? otherlv_6= ']' ) | (this_XAnnotationOrExpression_7= ruleXAnnotationOrExpression ( () (otherlv_9= ',' ( (lv_elements_10_0= ruleXAnnotationOrExpression ) ) )+ )? ) ) ;
+    public final EObject ruleXAnnotationElementValueOrCommaList() throws RecognitionException {
+        EObject current = null;
+
+        Token otherlv_1=null;
+        Token otherlv_2=null;
+        Token otherlv_4=null;
+        Token otherlv_6=null;
+        Token otherlv_9=null;
+        EObject lv_elements_3_0 = null;
+
+        EObject lv_elements_5_0 = null;
+
+        EObject this_XAnnotationOrExpression_7 = null;
+
+        EObject lv_elements_10_0 = null;
+
+
+         enterRule(); 
+            
+        try {
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1427:28: ( ( ( ( ( ( () '#' '[' ) )=> ( () otherlv_1= '#' otherlv_2= '[' ) ) ( ( (lv_elements_3_0= ruleXAnnotationOrExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXAnnotationOrExpression ) ) )* )? otherlv_6= ']' ) | (this_XAnnotationOrExpression_7= ruleXAnnotationOrExpression ( () (otherlv_9= ',' ( (lv_elements_10_0= ruleXAnnotationOrExpression ) ) )+ )? ) ) )
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1428:1: ( ( ( ( ( () '#' '[' ) )=> ( () otherlv_1= '#' otherlv_2= '[' ) ) ( ( (lv_elements_3_0= ruleXAnnotationOrExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXAnnotationOrExpression ) ) )* )? otherlv_6= ']' ) | (this_XAnnotationOrExpression_7= ruleXAnnotationOrExpression ( () (otherlv_9= ',' ( (lv_elements_10_0= ruleXAnnotationOrExpression ) ) )+ )? ) )
+            {
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1428:1: ( ( ( ( ( () '#' '[' ) )=> ( () otherlv_1= '#' otherlv_2= '[' ) ) ( ( (lv_elements_3_0= ruleXAnnotationOrExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXAnnotationOrExpression ) ) )* )? otherlv_6= ']' ) | (this_XAnnotationOrExpression_7= ruleXAnnotationOrExpression ( () (otherlv_9= ',' ( (lv_elements_10_0= ruleXAnnotationOrExpression ) ) )+ )? ) )
+            int alt24=2;
+            alt24 = dfa24.predict(input);
+            switch (alt24) {
+                case 1 :
+                    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1428:2: ( ( ( ( () '#' '[' ) )=> ( () otherlv_1= '#' otherlv_2= '[' ) ) ( ( (lv_elements_3_0= ruleXAnnotationOrExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXAnnotationOrExpression ) ) )* )? otherlv_6= ']' )
+                    {
+                    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1428:2: ( ( ( ( () '#' '[' ) )=> ( () otherlv_1= '#' otherlv_2= '[' ) ) ( ( (lv_elements_3_0= ruleXAnnotationOrExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXAnnotationOrExpression ) ) )* )? otherlv_6= ']' )
+                    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1428:3: ( ( ( () '#' '[' ) )=> ( () otherlv_1= '#' otherlv_2= '[' ) ) ( ( (lv_elements_3_0= ruleXAnnotationOrExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXAnnotationOrExpression ) ) )* )? otherlv_6= ']'
+                    {
+                    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1428:3: ( ( ( () '#' '[' ) )=> ( () otherlv_1= '#' otherlv_2= '[' ) )
+                    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1428:4: ( ( () '#' '[' ) )=> ( () otherlv_1= '#' otherlv_2= '[' )
+                    {
+                    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1431:5: ( () otherlv_1= '#' otherlv_2= '[' )
+                    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1431:6: () otherlv_1= '#' otherlv_2= '['
+                    {
+                    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1431:6: ()
+                    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1432:5: 
+                    {
+                    if ( state.backtracking==0 ) {
+
+                              current = forceCreateModelElement(
+                                  grammarAccess.getXAnnotationElementValueOrCommaListAccess().getXListLiteralAction_0_0_0_0(),
+                                  current);
+                          
+                    }
+
+                    }
+
+                    otherlv_1=(Token)match(input,41,FOLLOW_41_in_ruleXAnnotationElementValueOrCommaList3416); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                          	newLeafNode(otherlv_1, grammarAccess.getXAnnotationElementValueOrCommaListAccess().getNumberSignKeyword_0_0_0_1());
+                          
+                    }
+                    otherlv_2=(Token)match(input,42,FOLLOW_42_in_ruleXAnnotationElementValueOrCommaList3428); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                          	newLeafNode(otherlv_2, grammarAccess.getXAnnotationElementValueOrCommaListAccess().getLeftSquareBracketKeyword_0_0_0_2());
+                          
+                    }
+
+                    }
+
+
+                    }
+
+                    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1445:3: ( ( (lv_elements_3_0= ruleXAnnotationOrExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXAnnotationOrExpression ) ) )* )?
+                    int alt21=2;
+                    int LA21_0 = input.LA(1);
+
+                    if ( ((LA21_0>=RULE_ID && LA21_0<=RULE_DECIMAL)||LA21_0==14||LA21_0==33||(LA21_0>=36 && LA21_0<=37)||(LA21_0>=41 && LA21_0<=42)||LA21_0==49||(LA21_0>=65 && LA21_0<=66)||LA21_0==70||LA21_0==78||LA21_0==80||(LA21_0>=84 && LA21_0<=86)||(LA21_0>=89 && LA21_0<=100)||LA21_0==102) ) {
+                        alt21=1;
+                    }
+                    switch (alt21) {
+                        case 1 :
+                            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1445:4: ( (lv_elements_3_0= ruleXAnnotationOrExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXAnnotationOrExpression ) ) )*
+                            {
+                            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1445:4: ( (lv_elements_3_0= ruleXAnnotationOrExpression ) )
+                            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1446:1: (lv_elements_3_0= ruleXAnnotationOrExpression )
+                            {
+                            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1446:1: (lv_elements_3_0= ruleXAnnotationOrExpression )
+                            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1447:3: lv_elements_3_0= ruleXAnnotationOrExpression
+                            {
+                            if ( state.backtracking==0 ) {
+                               
+                              	        newCompositeNode(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getElementsXAnnotationOrExpressionParserRuleCall_0_1_0_0()); 
+                              	    
+                            }
+                            pushFollow(FOLLOW_ruleXAnnotationOrExpression_in_ruleXAnnotationElementValueOrCommaList3452);
+                            lv_elements_3_0=ruleXAnnotationOrExpression();
+
+                            state._fsp--;
+                            if (state.failed) return current;
+                            if ( state.backtracking==0 ) {
+
+                              	        if (current==null) {
+                              	            current = createModelElementForParent(grammarAccess.getXAnnotationElementValueOrCommaListRule());
+                              	        }
+                                     		add(
+                                     			current, 
+                                     			"elements",
+                                      		lv_elements_3_0, 
+                                      		"XAnnotationOrExpression");
+                              	        afterParserOrEnumRuleCall();
+                              	    
+                            }
+
+                            }
+
+
+                            }
+
+                            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1463:2: (otherlv_4= ',' ( (lv_elements_5_0= ruleXAnnotationOrExpression ) ) )*
+                            loop20:
+                            do {
+                                int alt20=2;
+                                int LA20_0 = input.LA(1);
+
+                                if ( (LA20_0==38) ) {
+                                    alt20=1;
+                                }
+
+
+                                switch (alt20) {
+                            	case 1 :
+                            	    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1463:4: otherlv_4= ',' ( (lv_elements_5_0= ruleXAnnotationOrExpression ) )
+                            	    {
+                            	    otherlv_4=(Token)match(input,38,FOLLOW_38_in_ruleXAnnotationElementValueOrCommaList3465); if (state.failed) return current;
+                            	    if ( state.backtracking==0 ) {
+
+                            	          	newLeafNode(otherlv_4, grammarAccess.getXAnnotationElementValueOrCommaListAccess().getCommaKeyword_0_1_1_0());
+                            	          
+                            	    }
+                            	    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1467:1: ( (lv_elements_5_0= ruleXAnnotationOrExpression ) )
+                            	    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1468:1: (lv_elements_5_0= ruleXAnnotationOrExpression )
+                            	    {
+                            	    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1468:1: (lv_elements_5_0= ruleXAnnotationOrExpression )
+                            	    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1469:3: lv_elements_5_0= ruleXAnnotationOrExpression
+                            	    {
+                            	    if ( state.backtracking==0 ) {
+                            	       
+                            	      	        newCompositeNode(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getElementsXAnnotationOrExpressionParserRuleCall_0_1_1_1_0()); 
+                            	      	    
+                            	    }
+                            	    pushFollow(FOLLOW_ruleXAnnotationOrExpression_in_ruleXAnnotationElementValueOrCommaList3486);
+                            	    lv_elements_5_0=ruleXAnnotationOrExpression();
+
+                            	    state._fsp--;
+                            	    if (state.failed) return current;
+                            	    if ( state.backtracking==0 ) {
+
+                            	      	        if (current==null) {
+                            	      	            current = createModelElementForParent(grammarAccess.getXAnnotationElementValueOrCommaListRule());
+                            	      	        }
+                            	             		add(
+                            	             			current, 
+                            	             			"elements",
+                            	              		lv_elements_5_0, 
+                            	              		"XAnnotationOrExpression");
+                            	      	        afterParserOrEnumRuleCall();
+                            	      	    
+                            	    }
+
+                            	    }
+
+
+                            	    }
+
+
+                            	    }
+                            	    break;
+
+                            	default :
+                            	    break loop20;
+                                }
+                            } while (true);
+
+
+                            }
+                            break;
+
+                    }
+
+                    otherlv_6=(Token)match(input,43,FOLLOW_43_in_ruleXAnnotationElementValueOrCommaList3502); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                          	newLeafNode(otherlv_6, grammarAccess.getXAnnotationElementValueOrCommaListAccess().getRightSquareBracketKeyword_0_2());
+                          
+                    }
+
+                    }
+
+
+                    }
+                    break;
+                case 2 :
+                    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1490:6: (this_XAnnotationOrExpression_7= ruleXAnnotationOrExpression ( () (otherlv_9= ',' ( (lv_elements_10_0= ruleXAnnotationOrExpression ) ) )+ )? )
+                    {
+                    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1490:6: (this_XAnnotationOrExpression_7= ruleXAnnotationOrExpression ( () (otherlv_9= ',' ( (lv_elements_10_0= ruleXAnnotationOrExpression ) ) )+ )? )
+                    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1491:5: this_XAnnotationOrExpression_7= ruleXAnnotationOrExpression ( () (otherlv_9= ',' ( (lv_elements_10_0= ruleXAnnotationOrExpression ) ) )+ )?
+                    {
+                    if ( state.backtracking==0 ) {
+                       
+                              newCompositeNode(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getXAnnotationOrExpressionParserRuleCall_1_0()); 
+                          
+                    }
+                    pushFollow(FOLLOW_ruleXAnnotationOrExpression_in_ruleXAnnotationElementValueOrCommaList3532);
+                    this_XAnnotationOrExpression_7=ruleXAnnotationOrExpression();
+
+                    state._fsp--;
+                    if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+                       
+                              current = this_XAnnotationOrExpression_7; 
+                              afterParserOrEnumRuleCall();
+                          
+                    }
+                    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1499:1: ( () (otherlv_9= ',' ( (lv_elements_10_0= ruleXAnnotationOrExpression ) ) )+ )?
+                    int alt23=2;
+                    int LA23_0 = input.LA(1);
+
+                    if ( (LA23_0==38) ) {
+                        alt23=1;
+                    }
+                    switch (alt23) {
+                        case 1 :
+                            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1499:2: () (otherlv_9= ',' ( (lv_elements_10_0= ruleXAnnotationOrExpression ) ) )+
+                            {
+                            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1499:2: ()
+                            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1500:5: 
+                            {
+                            if ( state.backtracking==0 ) {
+
+                                      current = forceCreateModelElementAndAdd(
+                                          grammarAccess.getXAnnotationElementValueOrCommaListAccess().getXListLiteralElementsAction_1_1_0(),
+                                          current);
+                                  
+                            }
+
+                            }
+
+                            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1505:2: (otherlv_9= ',' ( (lv_elements_10_0= ruleXAnnotationOrExpression ) ) )+
+                            int cnt22=0;
+                            loop22:
+                            do {
+                                int alt22=2;
+                                int LA22_0 = input.LA(1);
+
+                                if ( (LA22_0==38) ) {
+                                    alt22=1;
+                                }
+
+
+                                switch (alt22) {
+                            	case 1 :
+                            	    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1505:4: otherlv_9= ',' ( (lv_elements_10_0= ruleXAnnotationOrExpression ) )
+                            	    {
+                            	    otherlv_9=(Token)match(input,38,FOLLOW_38_in_ruleXAnnotationElementValueOrCommaList3554); if (state.failed) return current;
+                            	    if ( state.backtracking==0 ) {
+
+                            	          	newLeafNode(otherlv_9, grammarAccess.getXAnnotationElementValueOrCommaListAccess().getCommaKeyword_1_1_1_0());
+                            	          
+                            	    }
+                            	    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1509:1: ( (lv_elements_10_0= ruleXAnnotationOrExpression ) )
+                            	    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1510:1: (lv_elements_10_0= ruleXAnnotationOrExpression )
+                            	    {
+                            	    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1510:1: (lv_elements_10_0= ruleXAnnotationOrExpression )
+                            	    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1511:3: lv_elements_10_0= ruleXAnnotationOrExpression
+                            	    {
+                            	    if ( state.backtracking==0 ) {
+                            	       
+                            	      	        newCompositeNode(grammarAccess.getXAnnotationElementValueOrCommaListAccess().getElementsXAnnotationOrExpressionParserRuleCall_1_1_1_1_0()); 
+                            	      	    
+                            	    }
+                            	    pushFollow(FOLLOW_ruleXAnnotationOrExpression_in_ruleXAnnotationElementValueOrCommaList3575);
+                            	    lv_elements_10_0=ruleXAnnotationOrExpression();
+
+                            	    state._fsp--;
+                            	    if (state.failed) return current;
+                            	    if ( state.backtracking==0 ) {
+
+                            	      	        if (current==null) {
+                            	      	            current = createModelElementForParent(grammarAccess.getXAnnotationElementValueOrCommaListRule());
+                            	      	        }
+                            	             		add(
+                            	             			current, 
+                            	             			"elements",
+                            	              		lv_elements_10_0, 
+                            	              		"XAnnotationOrExpression");
+                            	      	        afterParserOrEnumRuleCall();
+                            	      	    
+                            	    }
+
+                            	    }
+
+
+                            	    }
+
+
+                            	    }
+                            	    break;
+
+                            	default :
+                            	    if ( cnt22 >= 1 ) break loop22;
+                            	    if (state.backtracking>0) {state.failed=true; return current;}
+                                        EarlyExitException eee =
+                                            new EarlyExitException(22, input);
+                                        throw eee;
+                                }
+                                cnt22++;
+                            } while (true);
+
+
+                            }
+                            break;
+
+                    }
+
+
+                    }
+
+
+                    }
+                    break;
+
+            }
+
+
+            }
+
+            if ( state.backtracking==0 ) {
+               leaveRule(); 
+            }
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleXAnnotationElementValueOrCommaList"
+
+
+    // $ANTLR start "entryRuleXAnnotationElementValue"
+    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1535:1: entryRuleXAnnotationElementValue returns [EObject current=null] : iv_ruleXAnnotationElementValue= ruleXAnnotationElementValue EOF ;
+    public final EObject entryRuleXAnnotationElementValue() throws RecognitionException {
+        EObject current = null;
+
+        EObject iv_ruleXAnnotationElementValue = null;
+
+
+        try {
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1536:2: (iv_ruleXAnnotationElementValue= ruleXAnnotationElementValue EOF )
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1537:2: iv_ruleXAnnotationElementValue= ruleXAnnotationElementValue EOF
+            {
+            if ( state.backtracking==0 ) {
+               newCompositeNode(grammarAccess.getXAnnotationElementValueRule()); 
+            }
+            pushFollow(FOLLOW_ruleXAnnotationElementValue_in_entryRuleXAnnotationElementValue3616);
+            iv_ruleXAnnotationElementValue=ruleXAnnotationElementValue();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+               current =iv_ruleXAnnotationElementValue; 
+            }
+            match(input,EOF,FOLLOW_EOF_in_entryRuleXAnnotationElementValue3626); if (state.failed) return current;
+
+            }
+
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleXAnnotationElementValue"
+
+
+    // $ANTLR start "ruleXAnnotationElementValue"
+    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1544:1: ruleXAnnotationElementValue returns [EObject current=null] : ( ( ( ( ( () '#' '[' ) )=> ( () otherlv_1= '#' otherlv_2= '[' ) ) ( ( (lv_elements_3_0= ruleXAnnotationOrExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXAnnotationOrExpression ) ) )* )? otherlv_6= ']' ) | this_XAnnotationOrExpression_7= ruleXAnnotationOrExpression ) ;
+    public final EObject ruleXAnnotationElementValue() throws RecognitionException {
+        EObject current = null;
+
+        Token otherlv_1=null;
+        Token otherlv_2=null;
+        Token otherlv_4=null;
+        Token otherlv_6=null;
+        EObject lv_elements_3_0 = null;
+
+        EObject lv_elements_5_0 = null;
+
+        EObject this_XAnnotationOrExpression_7 = null;
+
+
+         enterRule(); 
+            
+        try {
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1547:28: ( ( ( ( ( ( () '#' '[' ) )=> ( () otherlv_1= '#' otherlv_2= '[' ) ) ( ( (lv_elements_3_0= ruleXAnnotationOrExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXAnnotationOrExpression ) ) )* )? otherlv_6= ']' ) | this_XAnnotationOrExpression_7= ruleXAnnotationOrExpression ) )
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1548:1: ( ( ( ( ( () '#' '[' ) )=> ( () otherlv_1= '#' otherlv_2= '[' ) ) ( ( (lv_elements_3_0= ruleXAnnotationOrExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXAnnotationOrExpression ) ) )* )? otherlv_6= ']' ) | this_XAnnotationOrExpression_7= ruleXAnnotationOrExpression )
+            {
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1548:1: ( ( ( ( ( () '#' '[' ) )=> ( () otherlv_1= '#' otherlv_2= '[' ) ) ( ( (lv_elements_3_0= ruleXAnnotationOrExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXAnnotationOrExpression ) ) )* )? otherlv_6= ']' ) | this_XAnnotationOrExpression_7= ruleXAnnotationOrExpression )
+            int alt27=2;
+            alt27 = dfa27.predict(input);
+            switch (alt27) {
+                case 1 :
+                    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1548:2: ( ( ( ( () '#' '[' ) )=> ( () otherlv_1= '#' otherlv_2= '[' ) ) ( ( (lv_elements_3_0= ruleXAnnotationOrExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXAnnotationOrExpression ) ) )* )? otherlv_6= ']' )
+                    {
+                    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1548:2: ( ( ( ( () '#' '[' ) )=> ( () otherlv_1= '#' otherlv_2= '[' ) ) ( ( (lv_elements_3_0= ruleXAnnotationOrExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXAnnotationOrExpression ) ) )* )? otherlv_6= ']' )
+                    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1548:3: ( ( ( () '#' '[' ) )=> ( () otherlv_1= '#' otherlv_2= '[' ) ) ( ( (lv_elements_3_0= ruleXAnnotationOrExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXAnnotationOrExpression ) ) )* )? otherlv_6= ']'
+                    {
+                    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1548:3: ( ( ( () '#' '[' ) )=> ( () otherlv_1= '#' otherlv_2= '[' ) )
+                    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1548:4: ( ( () '#' '[' ) )=> ( () otherlv_1= '#' otherlv_2= '[' )
+                    {
+                    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1551:5: ( () otherlv_1= '#' otherlv_2= '[' )
+                    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1551:6: () otherlv_1= '#' otherlv_2= '['
+                    {
+                    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1551:6: ()
+                    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1552:5: 
+                    {
+                    if ( state.backtracking==0 ) {
+
+                              current = forceCreateModelElement(
+                                  grammarAccess.getXAnnotationElementValueAccess().getXListLiteralAction_0_0_0_0(),
+                                  current);
+                          
+                    }
+
+                    }
+
+                    otherlv_1=(Token)match(input,41,FOLLOW_41_in_ruleXAnnotationElementValue3691); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                          	newLeafNode(otherlv_1, grammarAccess.getXAnnotationElementValueAccess().getNumberSignKeyword_0_0_0_1());
+                          
+                    }
+                    otherlv_2=(Token)match(input,42,FOLLOW_42_in_ruleXAnnotationElementValue3703); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                          	newLeafNode(otherlv_2, grammarAccess.getXAnnotationElementValueAccess().getLeftSquareBracketKeyword_0_0_0_2());
+                          
+                    }
+
+                    }
+
+
+                    }
+
+                    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1565:3: ( ( (lv_elements_3_0= ruleXAnnotationOrExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXAnnotationOrExpression ) ) )* )?
+                    int alt26=2;
+                    int LA26_0 = input.LA(1);
+
+                    if ( ((LA26_0>=RULE_ID && LA26_0<=RULE_DECIMAL)||LA26_0==14||LA26_0==33||(LA26_0>=36 && LA26_0<=37)||(LA26_0>=41 && LA26_0<=42)||LA26_0==49||(LA26_0>=65 && LA26_0<=66)||LA26_0==70||LA26_0==78||LA26_0==80||(LA26_0>=84 && LA26_0<=86)||(LA26_0>=89 && LA26_0<=100)||LA26_0==102) ) {
+                        alt26=1;
+                    }
+                    switch (alt26) {
+                        case 1 :
+                            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1565:4: ( (lv_elements_3_0= ruleXAnnotationOrExpression ) ) (otherlv_4= ',' ( (lv_elements_5_0= ruleXAnnotationOrExpression ) ) )*
+                            {
+                            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1565:4: ( (lv_elements_3_0= ruleXAnnotationOrExpression ) )
+                            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1566:1: (lv_elements_3_0= ruleXAnnotationOrExpression )
+                            {
+                            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1566:1: (lv_elements_3_0= ruleXAnnotationOrExpression )
+                            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1567:3: lv_elements_3_0= ruleXAnnotationOrExpression
+                            {
+                            if ( state.backtracking==0 ) {
+                               
+                              	        newCompositeNode(grammarAccess.getXAnnotationElementValueAccess().getElementsXAnnotationOrExpressionParserRuleCall_0_1_0_0()); 
+                              	    
+                            }
+                            pushFollow(FOLLOW_ruleXAnnotationOrExpression_in_ruleXAnnotationElementValue3727);
+                            lv_elements_3_0=ruleXAnnotationOrExpression();
+
+                            state._fsp--;
+                            if (state.failed) return current;
+                            if ( state.backtracking==0 ) {
+
+                              	        if (current==null) {
+                              	            current = createModelElementForParent(grammarAccess.getXAnnotationElementValueRule());
+                              	        }
+                                     		add(
+                                     			current, 
+                                     			"elements",
+                                      		lv_elements_3_0, 
+                                      		"XAnnotationOrExpression");
+                              	        afterParserOrEnumRuleCall();
+                              	    
+                            }
+
+                            }
+
+
+                            }
+
+                            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1583:2: (otherlv_4= ',' ( (lv_elements_5_0= ruleXAnnotationOrExpression ) ) )*
+                            loop25:
+                            do {
+                                int alt25=2;
+                                int LA25_0 = input.LA(1);
+
+                                if ( (LA25_0==38) ) {
+                                    alt25=1;
+                                }
+
+
+                                switch (alt25) {
+                            	case 1 :
+                            	    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1583:4: otherlv_4= ',' ( (lv_elements_5_0= ruleXAnnotationOrExpression ) )
+                            	    {
+                            	    otherlv_4=(Token)match(input,38,FOLLOW_38_in_ruleXAnnotationElementValue3740); if (state.failed) return current;
+                            	    if ( state.backtracking==0 ) {
+
+                            	          	newLeafNode(otherlv_4, grammarAccess.getXAnnotationElementValueAccess().getCommaKeyword_0_1_1_0());
+                            	          
+                            	    }
+                            	    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1587:1: ( (lv_elements_5_0= ruleXAnnotationOrExpression ) )
+                            	    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1588:1: (lv_elements_5_0= ruleXAnnotationOrExpression )
+                            	    {
+                            	    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1588:1: (lv_elements_5_0= ruleXAnnotationOrExpression )
+                            	    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1589:3: lv_elements_5_0= ruleXAnnotationOrExpression
+                            	    {
+                            	    if ( state.backtracking==0 ) {
+                            	       
+                            	      	        newCompositeNode(grammarAccess.getXAnnotationElementValueAccess().getElementsXAnnotationOrExpressionParserRuleCall_0_1_1_1_0()); 
+                            	      	    
+                            	    }
+                            	    pushFollow(FOLLOW_ruleXAnnotationOrExpression_in_ruleXAnnotationElementValue3761);
+                            	    lv_elements_5_0=ruleXAnnotationOrExpression();
+
+                            	    state._fsp--;
+                            	    if (state.failed) return current;
+                            	    if ( state.backtracking==0 ) {
+
+                            	      	        if (current==null) {
+                            	      	            current = createModelElementForParent(grammarAccess.getXAnnotationElementValueRule());
+                            	      	        }
+                            	             		add(
+                            	             			current, 
+                            	             			"elements",
+                            	              		lv_elements_5_0, 
+                            	              		"XAnnotationOrExpression");
+                            	      	        afterParserOrEnumRuleCall();
+                            	      	    
+                            	    }
+
+                            	    }
+
+
+                            	    }
+
+
+                            	    }
+                            	    break;
+
+                            	default :
+                            	    break loop25;
+                                }
+                            } while (true);
+
+
+                            }
+                            break;
+
+                    }
+
+                    otherlv_6=(Token)match(input,43,FOLLOW_43_in_ruleXAnnotationElementValue3777); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                          	newLeafNode(otherlv_6, grammarAccess.getXAnnotationElementValueAccess().getRightSquareBracketKeyword_0_2());
+                          
+                    }
+
+                    }
+
+
+                    }
+                    break;
+                case 2 :
+                    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1611:5: this_XAnnotationOrExpression_7= ruleXAnnotationOrExpression
+                    {
+                    if ( state.backtracking==0 ) {
+                       
+                              newCompositeNode(grammarAccess.getXAnnotationElementValueAccess().getXAnnotationOrExpressionParserRuleCall_1()); 
+                          
+                    }
+                    pushFollow(FOLLOW_ruleXAnnotationOrExpression_in_ruleXAnnotationElementValue3806);
+                    this_XAnnotationOrExpression_7=ruleXAnnotationOrExpression();
+
+                    state._fsp--;
+                    if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+                       
+                              current = this_XAnnotationOrExpression_7; 
+                              afterParserOrEnumRuleCall();
+                          
+                    }
+
+                    }
+                    break;
+
+            }
+
+
+            }
+
+            if ( state.backtracking==0 ) {
+               leaveRule(); 
+            }
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleXAnnotationElementValue"
+
+
+    // $ANTLR start "entryRuleXAnnotationOrExpression"
+    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1627:1: entryRuleXAnnotationOrExpression returns [EObject current=null] : iv_ruleXAnnotationOrExpression= ruleXAnnotationOrExpression EOF ;
+    public final EObject entryRuleXAnnotationOrExpression() throws RecognitionException {
+        EObject current = null;
+
+        EObject iv_ruleXAnnotationOrExpression = null;
+
+
+        try {
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1628:2: (iv_ruleXAnnotationOrExpression= ruleXAnnotationOrExpression EOF )
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1629:2: iv_ruleXAnnotationOrExpression= ruleXAnnotationOrExpression EOF
+            {
+            if ( state.backtracking==0 ) {
+               newCompositeNode(grammarAccess.getXAnnotationOrExpressionRule()); 
+            }
+            pushFollow(FOLLOW_ruleXAnnotationOrExpression_in_entryRuleXAnnotationOrExpression3841);
+            iv_ruleXAnnotationOrExpression=ruleXAnnotationOrExpression();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+               current =iv_ruleXAnnotationOrExpression; 
+            }
+            match(input,EOF,FOLLOW_EOF_in_entryRuleXAnnotationOrExpression3851); if (state.failed) return current;
+
+            }
+
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleXAnnotationOrExpression"
+
+
+    // $ANTLR start "ruleXAnnotationOrExpression"
+    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1636:1: ruleXAnnotationOrExpression returns [EObject current=null] : (this_XAnnotation_0= ruleXAnnotation | this_XExpression_1= ruleXExpression ) ;
+    public final EObject ruleXAnnotationOrExpression() throws RecognitionException {
+        EObject current = null;
+
+        EObject this_XAnnotation_0 = null;
+
+        EObject this_XExpression_1 = null;
+
+
+         enterRule(); 
+            
+        try {
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1639:28: ( (this_XAnnotation_0= ruleXAnnotation | this_XExpression_1= ruleXExpression ) )
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1640:1: (this_XAnnotation_0= ruleXAnnotation | this_XExpression_1= ruleXExpression )
+            {
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1640:1: (this_XAnnotation_0= ruleXAnnotation | this_XExpression_1= ruleXExpression )
+            int alt28=2;
+            int LA28_0 = input.LA(1);
+
+            if ( (LA28_0==36) ) {
+                alt28=1;
+            }
+            else if ( ((LA28_0>=RULE_ID && LA28_0<=RULE_DECIMAL)||LA28_0==14||LA28_0==33||LA28_0==37||(LA28_0>=41 && LA28_0<=42)||LA28_0==49||(LA28_0>=65 && LA28_0<=66)||LA28_0==70||LA28_0==78||LA28_0==80||(LA28_0>=84 && LA28_0<=86)||(LA28_0>=89 && LA28_0<=100)||LA28_0==102) ) {
+                alt28=2;
+            }
+            else {
+                if (state.backtracking>0) {state.failed=true; return current;}
+                NoViableAltException nvae =
+                    new NoViableAltException("", 28, 0, input);
+
+                throw nvae;
+            }
+            switch (alt28) {
+                case 1 :
+                    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1641:5: this_XAnnotation_0= ruleXAnnotation
+                    {
+                    if ( state.backtracking==0 ) {
+                       
+                              newCompositeNode(grammarAccess.getXAnnotationOrExpressionAccess().getXAnnotationParserRuleCall_0()); 
+                          
+                    }
+                    pushFollow(FOLLOW_ruleXAnnotation_in_ruleXAnnotationOrExpression3898);
+                    this_XAnnotation_0=ruleXAnnotation();
+
+                    state._fsp--;
+                    if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+                       
+                              current = this_XAnnotation_0; 
+                              afterParserOrEnumRuleCall();
+                          
+                    }
+
+                    }
+                    break;
+                case 2 :
+                    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1651:5: this_XExpression_1= ruleXExpression
+                    {
+                    if ( state.backtracking==0 ) {
+                       
+                              newCompositeNode(grammarAccess.getXAnnotationOrExpressionAccess().getXExpressionParserRuleCall_1()); 
+                          
+                    }
+                    pushFollow(FOLLOW_ruleXExpression_in_ruleXAnnotationOrExpression3925);
+                    this_XExpression_1=ruleXExpression();
+
+                    state._fsp--;
+                    if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+                       
+                              current = this_XExpression_1; 
+                              afterParserOrEnumRuleCall();
+                          
+                    }
+
+                    }
+                    break;
+
+            }
+
+
+            }
+
+            if ( state.backtracking==0 ) {
+               leaveRule(); 
+            }
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleXAnnotationOrExpression"
+
+
+    // $ANTLR start "entryRuleXExpression"
+    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1667:1: entryRuleXExpression returns [EObject current=null] : iv_ruleXExpression= ruleXExpression EOF ;
+    public final EObject entryRuleXExpression() throws RecognitionException {
+        EObject current = null;
+
+        EObject iv_ruleXExpression = null;
+
+
+        try {
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1668:2: (iv_ruleXExpression= ruleXExpression EOF )
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1669:2: iv_ruleXExpression= ruleXExpression EOF
+            {
+            if ( state.backtracking==0 ) {
+               newCompositeNode(grammarAccess.getXExpressionRule()); 
+            }
+            pushFollow(FOLLOW_ruleXExpression_in_entryRuleXExpression3960);
+            iv_ruleXExpression=ruleXExpression();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+               current =iv_ruleXExpression; 
+            }
+            match(input,EOF,FOLLOW_EOF_in_entryRuleXExpression3970); if (state.failed) return current;
+
+            }
+
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleXExpression"
+
+
+    // $ANTLR start "ruleXExpression"
+    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1676:1: ruleXExpression returns [EObject current=null] : this_XAssignment_0= ruleXAssignment ;
+    public final EObject ruleXExpression() throws RecognitionException {
+        EObject current = null;
+
+        EObject this_XAssignment_0 = null;
+
+
+         enterRule(); 
+            
+        try {
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1679:28: (this_XAssignment_0= ruleXAssignment )
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1681:5: this_XAssignment_0= ruleXAssignment
+            {
+            if ( state.backtracking==0 ) {
+               
+                      newCompositeNode(grammarAccess.getXExpressionAccess().getXAssignmentParserRuleCall()); 
+                  
+            }
+            pushFollow(FOLLOW_ruleXAssignment_in_ruleXExpression4016);
+            this_XAssignment_0=ruleXAssignment();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+               
+                      current = this_XAssignment_0; 
+                      afterParserOrEnumRuleCall();
+                  
+            }
+
+            }
+
+            if ( state.backtracking==0 ) {
+               leaveRule(); 
+            }
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleXExpression"
+
+
+    // $ANTLR start "entryRuleXAssignment"
+    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1697:1: entryRuleXAssignment returns [EObject current=null] : iv_ruleXAssignment= ruleXAssignment EOF ;
+    public final EObject entryRuleXAssignment() throws RecognitionException {
+        EObject current = null;
+
+        EObject iv_ruleXAssignment = null;
+
+
+        try {
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1698:2: (iv_ruleXAssignment= ruleXAssignment EOF )
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1699:2: iv_ruleXAssignment= ruleXAssignment EOF
+            {
+            if ( state.backtracking==0 ) {
+               newCompositeNode(grammarAccess.getXAssignmentRule()); 
+            }
+            pushFollow(FOLLOW_ruleXAssignment_in_entryRuleXAssignment4050);
+            iv_ruleXAssignment=ruleXAssignment();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+               current =iv_ruleXAssignment; 
+            }
+            match(input,EOF,FOLLOW_EOF_in_entryRuleXAssignment4060); if (state.failed) return current;
+
+            }
+
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleXAssignment"
+
+
+    // $ANTLR start "ruleXAssignment"
+    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1706:1: ruleXAssignment returns [EObject current=null] : ( ( () ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ( (lv_value_3_0= ruleXAssignment ) ) ) | (this_XOrExpression_4= ruleXOrExpression ( ( ( ( () ( ( ruleOpMultiAssign ) ) ) )=> ( () ( ( ruleOpMultiAssign ) ) ) ) ( (lv_rightOperand_7_0= ruleXAssignment ) ) )? ) ) ;
+    public final EObject ruleXAssignment() throws RecognitionException {
+        EObject current = null;
+
+        EObject lv_value_3_0 = null;
+
+        EObject this_XOrExpression_4 = null;
+
+        EObject lv_rightOperand_7_0 = null;
+
+
+         enterRule(); 
+            
+        try {
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1709:28: ( ( ( () ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ( (lv_value_3_0= ruleXAssignment ) ) ) | (this_XOrExpression_4= ruleXOrExpression ( ( ( ( () ( ( ruleOpMultiAssign ) ) ) )=> ( () ( ( ruleOpMultiAssign ) ) ) ) ( (lv_rightOperand_7_0= ruleXAssignment ) ) )? ) ) )
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1710:1: ( ( () ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ( (lv_value_3_0= ruleXAssignment ) ) ) | (this_XOrExpression_4= ruleXOrExpression ( ( ( ( () ( ( ruleOpMultiAssign ) ) ) )=> ( () ( ( ruleOpMultiAssign ) ) ) ) ( (lv_rightOperand_7_0= ruleXAssignment ) ) )? ) )
+            {
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1710:1: ( ( () ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ( (lv_value_3_0= ruleXAssignment ) ) ) | (this_XOrExpression_4= ruleXOrExpression ( ( ( ( () ( ( ruleOpMultiAssign ) ) ) )=> ( () ( ( ruleOpMultiAssign ) ) ) ) ( (lv_rightOperand_7_0= ruleXAssignment ) ) )? ) )
+            int alt30=2;
+            switch ( input.LA(1) ) {
+            case RULE_ID:
+                {
+                int LA30_1 = input.LA(2);
+
+                if ( (LA30_1==40) ) {
+                    alt30=1;
+                }
+                else if ( (LA30_1==EOF||(LA30_1>=RULE_ID && LA30_1<=RULE_DECIMAL)||(LA30_1>=14 && LA30_1<=15)||(LA30_1>=33 && LA30_1<=35)||(LA30_1>=37 && LA30_1<=39)||(LA30_1>=41 && LA30_1<=75)||(LA30_1>=77 && LA30_1<=103)) ) {
+                    alt30=2;
+                }
+                else {
+                    if (state.backtracking>0) {state.failed=true; return current;}
+                    NoViableAltException nvae =
+                        new NoViableAltException("", 30, 1, input);
+
+                    throw nvae;
+                }
+                }
+                break;
+            case 89:
+                {
+                int LA30_2 = input.LA(2);
+
+                if ( (LA30_2==EOF||(LA30_2>=RULE_ID && LA30_2<=RULE_DECIMAL)||(LA30_2>=14 && LA30_2<=15)||(LA30_2>=33 && LA30_2<=35)||(LA30_2>=37 && LA30_2<=39)||(LA30_2>=41 && LA30_2<=75)||(LA30_2>=77 && LA30_2<=103)) ) {
+                    alt30=2;
+                }
+                else if ( (LA30_2==40) ) {
+                    alt30=1;
+                }
+                else {
+                    if (state.backtracking>0) {state.failed=true; return current;}
+                    NoViableAltException nvae =
+                        new NoViableAltException("", 30, 2, input);
+
+                    throw nvae;
+                }
+                }
+                break;
+            case 90:
+                {
+                int LA30_3 = input.LA(2);
+
+                if ( (LA30_3==EOF||(LA30_3>=RULE_ID && LA30_3<=RULE_DECIMAL)||(LA30_3>=14 && LA30_3<=15)||(LA30_3>=33 && LA30_3<=35)||(LA30_3>=37 && LA30_3<=39)||(LA30_3>=41 && LA30_3<=75)||(LA30_3>=77 && LA30_3<=103)) ) {
+                    alt30=2;
+                }
+                else if ( (LA30_3==40) ) {
+                    alt30=1;
+                }
+                else {
+                    if (state.backtracking>0) {state.failed=true; return current;}
+                    NoViableAltException nvae =
+                        new NoViableAltException("", 30, 3, input);
+
+                    throw nvae;
+                }
+                }
+                break;
+            case 33:
+                {
+                int LA30_4 = input.LA(2);
+
+                if ( (LA30_4==40) ) {
+                    alt30=1;
+                }
+                else if ( (LA30_4==EOF||(LA30_4>=RULE_ID && LA30_4<=RULE_DECIMAL)||(LA30_4>=14 && LA30_4<=15)||(LA30_4>=33 && LA30_4<=35)||(LA30_4>=37 && LA30_4<=39)||(LA30_4>=41 && LA30_4<=75)||(LA30_4>=77 && LA30_4<=103)) ) {
+                    alt30=2;
+                }
+                else {
+                    if (state.backtracking>0) {state.failed=true; return current;}
+                    NoViableAltException nvae =
+                        new NoViableAltException("", 30, 4, input);
+
+                    throw nvae;
+                }
+                }
+                break;
+            case 91:
+                {
+                int LA30_5 = input.LA(2);
+
+                if ( (LA30_5==EOF||(LA30_5>=RULE_ID && LA30_5<=RULE_DECIMAL)||(LA30_5>=14 && LA30_5<=15)||(LA30_5>=33 && LA30_5<=35)||(LA30_5>=37 && LA30_5<=39)||(LA30_5>=41 && LA30_5<=75)||(LA30_5>=77 && LA30_5<=103)) ) {
+                    alt30=2;
+                }
+                else if ( (LA30_5==40) ) {
+                    alt30=1;
+                }
+                else {
+                    if (state.backtracking>0) {state.failed=true; return current;}
+                    NoViableAltException nvae =
+                        new NoViableAltException("", 30, 5, input);
+
+                    throw nvae;
+                }
+                }
+                break;
+            case RULE_STRING:
+            case RULE_HEX:
+            case RULE_INT:
+            case RULE_DECIMAL:
+            case 14:
+            case 37:
+            case 41:
+            case 42:
+            case 49:
+            case 65:
+            case 66:
+            case 70:
+            case 78:
+            case 80:
+            case 84:
+            case 85:
+            case 86:
+            case 92:
+            case 93:
+            case 94:
+            case 95:
+            case 96:
+            case 97:
+            case 98:
+            case 99:
+            case 100:
+            case 102:
+                {
+                alt30=2;
+                }
+                break;
+            default:
+                if (state.backtracking>0) {state.failed=true; return current;}
+                NoViableAltException nvae =
+                    new NoViableAltException("", 30, 0, input);
+
+                throw nvae;
+            }
+
+            switch (alt30) {
+                case 1 :
+                    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1710:2: ( () ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ( (lv_value_3_0= ruleXAssignment ) ) )
+                    {
+                    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1710:2: ( () ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ( (lv_value_3_0= ruleXAssignment ) ) )
+                    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1710:3: () ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ( (lv_value_3_0= ruleXAssignment ) )
+                    {
+                    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1710:3: ()
+                    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1711:5: 
+                    {
+                    if ( state.backtracking==0 ) {
+
+                              current = forceCreateModelElement(
+                                  grammarAccess.getXAssignmentAccess().getXAssignmentAction_0_0(),
+                                  current);
+                          
+                    }
+
+                    }
+
+                    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1716:2: ( ( ruleFeatureCallID ) )
+                    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1717:1: ( ruleFeatureCallID )
+                    {
+                    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1717:1: ( ruleFeatureCallID )
+                    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1718:3: ruleFeatureCallID
+                    {
+                    if ( state.backtracking==0 ) {
+
+                      			if (current==null) {
+                      	            current = createModelElement(grammarAccess.getXAssignmentRule());
+                      	        }
+                              
+                    }
+                    if ( state.backtracking==0 ) {
+                       
+                      	        newCompositeNode(grammarAccess.getXAssignmentAccess().getFeatureJvmIdentifiableElementCrossReference_0_1_0()); 
+                      	    
+                    }
+                    pushFollow(FOLLOW_ruleFeatureCallID_in_ruleXAssignment4118);
+                    ruleFeatureCallID();
+
+                    state._fsp--;
+                    if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+                       
+                      	        afterParserOrEnumRuleCall();
+                      	    
+                    }
+
+                    }
+
+
+                    }
+
+                    if ( state.backtracking==0 ) {
+                       
+                              newCompositeNode(grammarAccess.getXAssignmentAccess().getOpSingleAssignParserRuleCall_0_2()); 
+                          
+                    }
+                    pushFollow(FOLLOW_ruleOpSingleAssign_in_ruleXAssignment4134);
+                    ruleOpSingleAssign();
+
+                    state._fsp--;
+                    if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+                       
+                              afterParserOrEnumRuleCall();
+                          
+                    }
+                    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1739:1: ( (lv_value_3_0= ruleXAssignment ) )
+                    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1740:1: (lv_value_3_0= ruleXAssignment )
+                    {
+                    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1740:1: (lv_value_3_0= ruleXAssignment )
+                    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1741:3: lv_value_3_0= ruleXAssignment
+                    {
+                    if ( state.backtracking==0 ) {
+                       
+                      	        newCompositeNode(grammarAccess.getXAssignmentAccess().getValueXAssignmentParserRuleCall_0_3_0()); 
+                      	    
+                    }
+                    pushFollow(FOLLOW_ruleXAssignment_in_ruleXAssignment4154);
+                    lv_value_3_0=ruleXAssignment();
+
+                    state._fsp--;
+                    if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                      	        if (current==null) {
+                      	            current = createModelElementForParent(grammarAccess.getXAssignmentRule());
+                      	        }
+                             		set(
+                             			current, 
+                             			"value",
+                              		lv_value_3_0, 
+                              		"XAssignment");
+                      	        afterParserOrEnumRuleCall();
+                      	    
+                    }
+
+                    }
+
+
+                    }
+
+
+                    }
+
+
+                    }
+                    break;
+                case 2 :
+                    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1758:6: (this_XOrExpression_4= ruleXOrExpression ( ( ( ( () ( ( ruleOpMultiAssign ) ) ) )=> ( () ( ( ruleOpMultiAssign ) ) ) ) ( (lv_rightOperand_7_0= ruleXAssignment ) ) )? )
+                    {
+                    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1758:6: (this_XOrExpression_4= ruleXOrExpression ( ( ( ( () ( ( ruleOpMultiAssign ) ) ) )=> ( () ( ( ruleOpMultiAssign ) ) ) ) ( (lv_rightOperand_7_0= ruleXAssignment ) ) )? )
+                    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1759:5: this_XOrExpression_4= ruleXOrExpression ( ( ( ( () ( ( ruleOpMultiAssign ) ) ) )=> ( () ( ( ruleOpMultiAssign ) ) ) ) ( (lv_rightOperand_7_0= ruleXAssignment ) ) )?
+                    {
+                    if ( state.backtracking==0 ) {
+                       
+                              newCompositeNode(grammarAccess.getXAssignmentAccess().getXOrExpressionParserRuleCall_1_0()); 
+                          
+                    }
+                    pushFollow(FOLLOW_ruleXOrExpression_in_ruleXAssignment4184);
+                    this_XOrExpression_4=ruleXOrExpression();
+
+                    state._fsp--;
+                    if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+                       
+                              current = this_XOrExpression_4; 
+                              afterParserOrEnumRuleCall();
+                          
+                    }
+                    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1767:1: ( ( ( ( () ( ( ruleOpMultiAssign ) ) ) )=> ( () ( ( ruleOpMultiAssign ) ) ) ) ( (lv_rightOperand_7_0= ruleXAssignment ) ) )?
+                    int alt29=2;
+                    alt29 = dfa29.predict(input);
+                    switch (alt29) {
+                        case 1 :
+                            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1767:2: ( ( ( () ( ( ruleOpMultiAssign ) ) ) )=> ( () ( ( ruleOpMultiAssign ) ) ) ) ( (lv_rightOperand_7_0= ruleXAssignment ) )
+                            {
+                            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1767:2: ( ( ( () ( ( ruleOpMultiAssign ) ) ) )=> ( () ( ( ruleOpMultiAssign ) ) ) )
+                            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1767:3: ( ( () ( ( ruleOpMultiAssign ) ) ) )=> ( () ( ( ruleOpMultiAssign ) ) )
+                            {
+                            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1772:6: ( () ( ( ruleOpMultiAssign ) ) )
+                            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1772:7: () ( ( ruleOpMultiAssign ) )
+                            {
+                            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1772:7: ()
+                            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1773:5: 
+                            {
+                            if ( state.backtracking==0 ) {
+
+                                      current = forceCreateModelElementAndSet(
+                                          grammarAccess.getXAssignmentAccess().getXBinaryOperationLeftOperandAction_1_1_0_0_0(),
+                                          current);
+                                  
+                            }
+
+                            }
+
+                            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1778:2: ( ( ruleOpMultiAssign ) )
+                            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1779:1: ( ruleOpMultiAssign )
+                            {
+                            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1779:1: ( ruleOpMultiAssign )
+                            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1780:3: ruleOpMultiAssign
+                            {
+                            if ( state.backtracking==0 ) {
+
+                              			if (current==null) {
+                              	            current = createModelElement(grammarAccess.getXAssignmentRule());
+                              	        }
+                                      
+                            }
+                            if ( state.backtracking==0 ) {
+                               
+                              	        newCompositeNode(grammarAccess.getXAssignmentAccess().getFeatureJvmIdentifiableElementCrossReference_1_1_0_0_1_0()); 
+                              	    
+                            }
+                            pushFollow(FOLLOW_ruleOpMultiAssign_in_ruleXAssignment4237);
+                            ruleOpMultiAssign();
+
+                            state._fsp--;
+                            if (state.failed) return current;
+                            if ( state.backtracking==0 ) {
+                               
+                              	        afterParserOrEnumRuleCall();
+                              	    
+                            }
+
+                            }
+
+
+                            }
+
+
+                            }
+
+
+                            }
+
+                            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1793:4: ( (lv_rightOperand_7_0= ruleXAssignment ) )
+                            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1794:1: (lv_rightOperand_7_0= ruleXAssignment )
+                            {
+                            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1794:1: (lv_rightOperand_7_0= ruleXAssignment )
+                            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1795:3: lv_rightOperand_7_0= ruleXAssignment
+                            {
+                            if ( state.backtracking==0 ) {
+                               
+                              	        newCompositeNode(grammarAccess.getXAssignmentAccess().getRightOperandXAssignmentParserRuleCall_1_1_1_0()); 
+                              	    
+                            }
+                            pushFollow(FOLLOW_ruleXAssignment_in_ruleXAssignment4260);
+                            lv_rightOperand_7_0=ruleXAssignment();
+
+                            state._fsp--;
+                            if (state.failed) return current;
+                            if ( state.backtracking==0 ) {
+
+                              	        if (current==null) {
+                              	            current = createModelElementForParent(grammarAccess.getXAssignmentRule());
+                              	        }
+                                     		set(
+                                     			current, 
+                                     			"rightOperand",
+                                      		lv_rightOperand_7_0, 
+                                      		"XAssignment");
+                              	        afterParserOrEnumRuleCall();
+                              	    
+                            }
+
+                            }
+
+
+                            }
+
+
+                            }
+                            break;
+
+                    }
+
+
+                    }
+
+
+                    }
+                    break;
+
+            }
+
+
+            }
+
+            if ( state.backtracking==0 ) {
+               leaveRule(); 
+            }
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleXAssignment"
+
+
+    // $ANTLR start "entryRuleOpSingleAssign"
+    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1819:1: entryRuleOpSingleAssign returns [String current=null] : iv_ruleOpSingleAssign= ruleOpSingleAssign EOF ;
+    public final String entryRuleOpSingleAssign() throws RecognitionException {
+        String current = null;
+
+        AntlrDatatypeRuleToken iv_ruleOpSingleAssign = null;
+
+
+        try {
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1820:2: (iv_ruleOpSingleAssign= ruleOpSingleAssign EOF )
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1821:2: iv_ruleOpSingleAssign= ruleOpSingleAssign EOF
+            {
+            if ( state.backtracking==0 ) {
+               newCompositeNode(grammarAccess.getOpSingleAssignRule()); 
+            }
+            pushFollow(FOLLOW_ruleOpSingleAssign_in_entryRuleOpSingleAssign4300);
+            iv_ruleOpSingleAssign=ruleOpSingleAssign();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+               current =iv_ruleOpSingleAssign.getText(); 
+            }
+            match(input,EOF,FOLLOW_EOF_in_entryRuleOpSingleAssign4311); if (state.failed) return current;
+
+            }
+
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleOpSingleAssign"
+
+
+    // $ANTLR start "ruleOpSingleAssign"
+    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1828:1: ruleOpSingleAssign returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : kw= '=' ;
+    public final AntlrDatatypeRuleToken ruleOpSingleAssign() throws RecognitionException {
+        AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();
+
+        Token kw=null;
+
+         enterRule(); 
+            
+        try {
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1831:28: (kw= '=' )
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1833:2: kw= '='
+            {
+            kw=(Token)match(input,40,FOLLOW_40_in_ruleOpSingleAssign4348); if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+                      current.merge(kw);
+                      newLeafNode(kw, grammarAccess.getOpSingleAssignAccess().getEqualsSignKeyword()); 
+                  
+            }
+
+            }
+
+            if ( state.backtracking==0 ) {
+               leaveRule(); 
+            }
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleOpSingleAssign"
+
+
+    // $ANTLR start "entryRuleOpMultiAssign"
+    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1846:1: entryRuleOpMultiAssign returns [String current=null] : iv_ruleOpMultiAssign= ruleOpMultiAssign EOF ;
+    public final String entryRuleOpMultiAssign() throws RecognitionException {
+        String current = null;
+
+        AntlrDatatypeRuleToken iv_ruleOpMultiAssign = null;
+
+
+        try {
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1847:2: (iv_ruleOpMultiAssign= ruleOpMultiAssign EOF )
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1848:2: iv_ruleOpMultiAssign= ruleOpMultiAssign EOF
+            {
+            if ( state.backtracking==0 ) {
+               newCompositeNode(grammarAccess.getOpMultiAssignRule()); 
+            }
+            pushFollow(FOLLOW_ruleOpMultiAssign_in_entryRuleOpMultiAssign4388);
+            iv_ruleOpMultiAssign=ruleOpMultiAssign();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+               current =iv_ruleOpMultiAssign.getText(); 
+            }
+            match(input,EOF,FOLLOW_EOF_in_entryRuleOpMultiAssign4399); if (state.failed) return current;
+
+            }
+
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleOpMultiAssign"
+
+
+    // $ANTLR start "ruleOpMultiAssign"
+    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1855:1: ruleOpMultiAssign returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (kw= '+=' | kw= '-=' | kw= '*=' | kw= '/=' | kw= '%=' | (kw= '<' kw= '<' kw= '=' ) | (kw= '>' (kw= '>' )? kw= '>=' ) ) ;
+    public final AntlrDatatypeRuleToken ruleOpMultiAssign() throws RecognitionException {
+        AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();
+
+        Token kw=null;
+
+         enterRule(); 
+            
+        try {
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1858:28: ( (kw= '+=' | kw= '-=' | kw= '*=' | kw= '/=' | kw= '%=' | (kw= '<' kw= '<' kw= '=' ) | (kw= '>' (kw= '>' )? kw= '>=' ) ) )
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1859:1: (kw= '+=' | kw= '-=' | kw= '*=' | kw= '/=' | kw= '%=' | (kw= '<' kw= '<' kw= '=' ) | (kw= '>' (kw= '>' )? kw= '>=' ) )
+            {
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1859:1: (kw= '+=' | kw= '-=' | kw= '*=' | kw= '/=' | kw= '%=' | (kw= '<' kw= '<' kw= '=' ) | (kw= '>' (kw= '>' )? kw= '>=' ) )
+            int alt32=7;
+            switch ( input.LA(1) ) {
+            case 44:
+                {
+                alt32=1;
+                }
+                break;
+            case 45:
+                {
+                alt32=2;
+                }
+                break;
+            case 46:
+                {
+                alt32=3;
+                }
+                break;
+            case 47:
+                {
+                alt32=4;
+                }
+                break;
+            case 48:
+                {
+                alt32=5;
+                }
+                break;
+            case 49:
+                {
+                alt32=6;
+                }
+                break;
+            case 50:
+                {
+                alt32=7;
+                }
+                break;
+            default:
+                if (state.backtracking>0) {state.failed=true; return current;}
+                NoViableAltException nvae =
+                    new NoViableAltException("", 32, 0, input);
+
+                throw nvae;
+            }
+
+            switch (alt32) {
+                case 1 :
+                    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1860:2: kw= '+='
+                    {
+                    kw=(Token)match(input,44,FOLLOW_44_in_ruleOpMultiAssign4437); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                              current.merge(kw);
+                              newLeafNode(kw, grammarAccess.getOpMultiAssignAccess().getPlusSignEqualsSignKeyword_0()); 
+                          
+                    }
+
+                    }
+                    break;
+                case 2 :
+                    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1867:2: kw= '-='
+                    {
+                    kw=(Token)match(input,45,FOLLOW_45_in_ruleOpMultiAssign4456); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                              current.merge(kw);
+                              newLeafNode(kw, grammarAccess.getOpMultiAssignAccess().getHyphenMinusEqualsSignKeyword_1()); 
+                          
+                    }
+
+                    }
+                    break;
+                case 3 :
+                    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1874:2: kw= '*='
+                    {
+                    kw=(Token)match(input,46,FOLLOW_46_in_ruleOpMultiAssign4475); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                              current.merge(kw);
+                              newLeafNode(kw, grammarAccess.getOpMultiAssignAccess().getAsteriskEqualsSignKeyword_2()); 
+                          
+                    }
+
+                    }
+                    break;
+                case 4 :
+                    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1881:2: kw= '/='
+                    {
+                    kw=(Token)match(input,47,FOLLOW_47_in_ruleOpMultiAssign4494); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                              current.merge(kw);
+                              newLeafNode(kw, grammarAccess.getOpMultiAssignAccess().getSolidusEqualsSignKeyword_3()); 
+                          
+                    }
+
+                    }
+                    break;
+                case 5 :
+                    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1888:2: kw= '%='
+                    {
+                    kw=(Token)match(input,48,FOLLOW_48_in_ruleOpMultiAssign4513); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                              current.merge(kw);
+                              newLeafNode(kw, grammarAccess.getOpMultiAssignAccess().getPercentSignEqualsSignKeyword_4()); 
+                          
+                    }
+
+                    }
+                    break;
+                case 6 :
+                    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1894:6: (kw= '<' kw= '<' kw= '=' )
+                    {
+                    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1894:6: (kw= '<' kw= '<' kw= '=' )
+                    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1895:2: kw= '<' kw= '<' kw= '='
+                    {
+                    kw=(Token)match(input,49,FOLLOW_49_in_ruleOpMultiAssign4533); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                              current.merge(kw);
+                              newLeafNode(kw, grammarAccess.getOpMultiAssignAccess().getLessThanSignKeyword_5_0()); 
+                          
+                    }
+                    kw=(Token)match(input,49,FOLLOW_49_in_ruleOpMultiAssign4546); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                              current.merge(kw);
+                              newLeafNode(kw, grammarAccess.getOpMultiAssignAccess().getLessThanSignKeyword_5_1()); 
+                          
+                    }
+                    kw=(Token)match(input,40,FOLLOW_40_in_ruleOpMultiAssign4559); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                              current.merge(kw);
+                              newLeafNode(kw, grammarAccess.getOpMultiAssignAccess().getEqualsSignKeyword_5_2()); 
+                          
+                    }
+
+                    }
+
+
+                    }
+                    break;
+                case 7 :
+                    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1913:6: (kw= '>' (kw= '>' )? kw= '>=' )
+                    {
+                    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1913:6: (kw= '>' (kw= '>' )? kw= '>=' )
+                    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1914:2: kw= '>' (kw= '>' )? kw= '>='
+                    {
+                    kw=(Token)match(input,50,FOLLOW_50_in_ruleOpMultiAssign4580); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                              current.merge(kw);
+                              newLeafNode(kw, grammarAccess.getOpMultiAssignAccess().getGreaterThanSignKeyword_6_0()); 
+                          
+                    }
+                    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1919:1: (kw= '>' )?
+                    int alt31=2;
+                    int LA31_0 = input.LA(1);
+
+                    if ( (LA31_0==50) ) {
+                        alt31=1;
+                    }
+                    switch (alt31) {
+                        case 1 :
+                            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1920:2: kw= '>'
+                            {
+                            kw=(Token)match(input,50,FOLLOW_50_in_ruleOpMultiAssign4594); if (state.failed) return current;
+                            if ( state.backtracking==0 ) {
+
+                                      current.merge(kw);
+                                      newLeafNode(kw, grammarAccess.getOpMultiAssignAccess().getGreaterThanSignKeyword_6_1()); 
+                                  
+                            }
+
+                            }
+                            break;
+
+                    }
+
+                    kw=(Token)match(input,51,FOLLOW_51_in_ruleOpMultiAssign4609); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                              current.merge(kw);
+                              newLeafNode(kw, grammarAccess.getOpMultiAssignAccess().getGreaterThanSignEqualsSignKeyword_6_2()); 
+                          
+                    }
+
+                    }
+
+
+                    }
+                    break;
+
+            }
+
+
+            }
+
+            if ( state.backtracking==0 ) {
+               leaveRule(); 
+            }
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleOpMultiAssign"
+
+
+    // $ANTLR start "entryRuleXOrExpression"
+    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1939:1: entryRuleXOrExpression returns [EObject current=null] : iv_ruleXOrExpression= ruleXOrExpression EOF ;
+    public final EObject entryRuleXOrExpression() throws RecognitionException {
+        EObject current = null;
+
+        EObject iv_ruleXOrExpression = null;
+
+
+        try {
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1940:2: (iv_ruleXOrExpression= ruleXOrExpression EOF )
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1941:2: iv_ruleXOrExpression= ruleXOrExpression EOF
+            {
+            if ( state.backtracking==0 ) {
+               newCompositeNode(grammarAccess.getXOrExpressionRule()); 
+            }
+            pushFollow(FOLLOW_ruleXOrExpression_in_entryRuleXOrExpression4650);
+            iv_ruleXOrExpression=ruleXOrExpression();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+               current =iv_ruleXOrExpression; 
+            }
+            match(input,EOF,FOLLOW_EOF_in_entryRuleXOrExpression4660); if (state.failed) return current;
+
+            }
+
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleXOrExpression"
+
+
+    // $ANTLR start "ruleXOrExpression"
+    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1948:1: ruleXOrExpression returns [EObject current=null] : (this_XAndExpression_0= ruleXAndExpression ( ( ( ( () ( ( ruleOpOr ) ) ) )=> ( () ( ( ruleOpOr ) ) ) ) ( (lv_rightOperand_3_0= ruleXAndExpression ) ) )* ) ;
+    public final EObject ruleXOrExpression() throws RecognitionException {
+        EObject current = null;
+
+        EObject this_XAndExpression_0 = null;
+
+        EObject lv_rightOperand_3_0 = null;
+
+
+         enterRule(); 
+            
+        try {
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1951:28: ( (this_XAndExpression_0= ruleXAndExpression ( ( ( ( () ( ( ruleOpOr ) ) ) )=> ( () ( ( ruleOpOr ) ) ) ) ( (lv_rightOperand_3_0= ruleXAndExpression ) ) )* ) )
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1952:1: (this_XAndExpression_0= ruleXAndExpression ( ( ( ( () ( ( ruleOpOr ) ) ) )=> ( () ( ( ruleOpOr ) ) ) ) ( (lv_rightOperand_3_0= ruleXAndExpression ) ) )* )
+            {
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1952:1: (this_XAndExpression_0= ruleXAndExpression ( ( ( ( () ( ( ruleOpOr ) ) ) )=> ( () ( ( ruleOpOr ) ) ) ) ( (lv_rightOperand_3_0= ruleXAndExpression ) ) )* )
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1953:5: this_XAndExpression_0= ruleXAndExpression ( ( ( ( () ( ( ruleOpOr ) ) ) )=> ( () ( ( ruleOpOr ) ) ) ) ( (lv_rightOperand_3_0= ruleXAndExpression ) ) )*
+            {
+            if ( state.backtracking==0 ) {
+               
+                      newCompositeNode(grammarAccess.getXOrExpressionAccess().getXAndExpressionParserRuleCall_0()); 
+                  
+            }
+            pushFollow(FOLLOW_ruleXAndExpression_in_ruleXOrExpression4707);
+            this_XAndExpression_0=ruleXAndExpression();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+               
+                      current = this_XAndExpression_0; 
+                      afterParserOrEnumRuleCall();
+                  
+            }
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1961:1: ( ( ( ( () ( ( ruleOpOr ) ) ) )=> ( () ( ( ruleOpOr ) ) ) ) ( (lv_rightOperand_3_0= ruleXAndExpression ) ) )*
+            loop33:
+            do {
+                int alt33=2;
+                int LA33_0 = input.LA(1);
+
+                if ( (LA33_0==52) ) {
+                    int LA33_2 = input.LA(2);
+
+                    if ( (synpred9_InternalActionDSL()) ) {
+                        alt33=1;
+                    }
+
+
+                }
+
+
+                switch (alt33) {
+            	case 1 :
+            	    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1961:2: ( ( ( () ( ( ruleOpOr ) ) ) )=> ( () ( ( ruleOpOr ) ) ) ) ( (lv_rightOperand_3_0= ruleXAndExpression ) )
+            	    {
+            	    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1961:2: ( ( ( () ( ( ruleOpOr ) ) ) )=> ( () ( ( ruleOpOr ) ) ) )
+            	    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1961:3: ( ( () ( ( ruleOpOr ) ) ) )=> ( () ( ( ruleOpOr ) ) )
+            	    {
+            	    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1966:6: ( () ( ( ruleOpOr ) ) )
+            	    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1966:7: () ( ( ruleOpOr ) )
+            	    {
+            	    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1966:7: ()
+            	    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1967:5: 
+            	    {
+            	    if ( state.backtracking==0 ) {
+
+            	              current = forceCreateModelElementAndSet(
+            	                  grammarAccess.getXOrExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0(),
+            	                  current);
+            	          
+            	    }
+
+            	    }
+
+            	    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1972:2: ( ( ruleOpOr ) )
+            	    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1973:1: ( ruleOpOr )
+            	    {
+            	    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1973:1: ( ruleOpOr )
+            	    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1974:3: ruleOpOr
+            	    {
+            	    if ( state.backtracking==0 ) {
+
+            	      			if (current==null) {
+            	      	            current = createModelElement(grammarAccess.getXOrExpressionRule());
+            	      	        }
+            	              
+            	    }
+            	    if ( state.backtracking==0 ) {
+            	       
+            	      	        newCompositeNode(grammarAccess.getXOrExpressionAccess().getFeatureJvmIdentifiableElementCrossReference_1_0_0_1_0()); 
+            	      	    
+            	    }
+            	    pushFollow(FOLLOW_ruleOpOr_in_ruleXOrExpression4760);
+            	    ruleOpOr();
+
+            	    state._fsp--;
+            	    if (state.failed) return current;
+            	    if ( state.backtracking==0 ) {
+            	       
+            	      	        afterParserOrEnumRuleCall();
+            	      	    
+            	    }
+
+            	    }
+
+
+            	    }
+
+
+            	    }
+
+
+            	    }
+
+            	    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1987:4: ( (lv_rightOperand_3_0= ruleXAndExpression ) )
+            	    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1988:1: (lv_rightOperand_3_0= ruleXAndExpression )
+            	    {
+            	    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1988:1: (lv_rightOperand_3_0= ruleXAndExpression )
+            	    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:1989:3: lv_rightOperand_3_0= ruleXAndExpression
+            	    {
+            	    if ( state.backtracking==0 ) {
+            	       
+            	      	        newCompositeNode(grammarAccess.getXOrExpressionAccess().getRightOperandXAndExpressionParserRuleCall_1_1_0()); 
+            	      	    
+            	    }
+            	    pushFollow(FOLLOW_ruleXAndExpression_in_ruleXOrExpression4783);
+            	    lv_rightOperand_3_0=ruleXAndExpression();
+
+            	    state._fsp--;
+            	    if (state.failed) return current;
+            	    if ( state.backtracking==0 ) {
+
+            	      	        if (current==null) {
+            	      	            current = createModelElementForParent(grammarAccess.getXOrExpressionRule());
+            	      	        }
+            	             		set(
+            	             			current, 
+            	             			"rightOperand",
+            	              		lv_rightOperand_3_0, 
+            	              		"XAndExpression");
+            	      	        afterParserOrEnumRuleCall();
+            	      	    
+            	    }
+
+            	    }
+
+
+            	    }
+
+
+            	    }
+            	    break;
+
+            	default :
+            	    break loop33;
+                }
+            } while (true);
+
+
+            }
+
+
+            }
+
+            if ( state.backtracking==0 ) {
+               leaveRule(); 
+            }
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleXOrExpression"
+
+
+    // $ANTLR start "entryRuleOpOr"
+    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:2013:1: entryRuleOpOr returns [String current=null] : iv_ruleOpOr= ruleOpOr EOF ;
+    public final String entryRuleOpOr() throws RecognitionException {
+        String current = null;
+
+        AntlrDatatypeRuleToken iv_ruleOpOr = null;
+
+
+        try {
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:2014:2: (iv_ruleOpOr= ruleOpOr EOF )
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:2015:2: iv_ruleOpOr= ruleOpOr EOF
+            {
+            if ( state.backtracking==0 ) {
+               newCompositeNode(grammarAccess.getOpOrRule()); 
+            }
+            pushFollow(FOLLOW_ruleOpOr_in_entryRuleOpOr4822);
+            iv_ruleOpOr=ruleOpOr();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+               current =iv_ruleOpOr.getText(); 
+            }
+            match(input,EOF,FOLLOW_EOF_in_entryRuleOpOr4833); if (state.failed) return current;
+
+            }
+
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleOpOr"
+
+
+    // $ANTLR start "ruleOpOr"
+    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:2022:1: ruleOpOr returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : kw= '||' ;
+    public final AntlrDatatypeRuleToken ruleOpOr() throws RecognitionException {
+        AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();
+
+        Token kw=null;
+
+         enterRule(); 
+            
+        try {
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:2025:28: (kw= '||' )
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:2027:2: kw= '||'
+            {
+            kw=(Token)match(input,52,FOLLOW_52_in_ruleOpOr4870); if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+                      current.merge(kw);
+                      newLeafNode(kw, grammarAccess.getOpOrAccess().getVerticalLineVerticalLineKeyword()); 
+                  
+            }
+
+            }
+
+            if ( state.backtracking==0 ) {
+               leaveRule(); 
+            }
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleOpOr"
+
+
+    // $ANTLR start "entryRuleXAndExpression"
+    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:2040:1: entryRuleXAndExpression returns [EObject current=null] : iv_ruleXAndExpression= ruleXAndExpression EOF ;
+    public final EObject entryRuleXAndExpression() throws RecognitionException {
+        EObject current = null;
+
+        EObject iv_ruleXAndExpression = null;
+
+
+        try {
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:2041:2: (iv_ruleXAndExpression= ruleXAndExpression EOF )
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:2042:2: iv_ruleXAndExpression= ruleXAndExpression EOF
+            {
+            if ( state.backtracking==0 ) {
+               newCompositeNode(grammarAccess.getXAndExpressionRule()); 
+            }
+            pushFollow(FOLLOW_ruleXAndExpression_in_entryRuleXAndExpression4909);
+            iv_ruleXAndExpression=ruleXAndExpression();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+               current =iv_ruleXAndExpression; 
+            }
+            match(input,EOF,FOLLOW_EOF_in_entryRuleXAndExpression4919); if (state.failed) return current;
+
+            }
+
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleXAndExpression"
+
+
+    // $ANTLR start "ruleXAndExpression"
+    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:2049:1: ruleXAndExpression returns [EObject current=null] : (this_XEqualityExpression_0= ruleXEqualityExpression ( ( ( ( () ( ( ruleOpAnd ) ) ) )=> ( () ( ( ruleOpAnd ) ) ) ) ( (lv_rightOperand_3_0= ruleXEqualityExpression ) ) )* ) ;
+    public final EObject ruleXAndExpression() throws RecognitionException {
+        EObject current = null;
+
+        EObject this_XEqualityExpression_0 = null;
+
+        EObject lv_rightOperand_3_0 = null;
+
+
+         enterRule(); 
+            
+        try {
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:2052:28: ( (this_XEqualityExpression_0= ruleXEqualityExpression ( ( ( ( () ( ( ruleOpAnd ) ) ) )=> ( () ( ( ruleOpAnd ) ) ) ) ( (lv_rightOperand_3_0= ruleXEqualityExpression ) ) )* ) )
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:2053:1: (this_XEqualityExpression_0= ruleXEqualityExpression ( ( ( ( () ( ( ruleOpAnd ) ) ) )=> ( () ( ( ruleOpAnd ) ) ) ) ( (lv_rightOperand_3_0= ruleXEqualityExpression ) ) )* )
+            {
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:2053:1: (this_XEqualityExpression_0= ruleXEqualityExpression ( ( ( ( () ( ( ruleOpAnd ) ) ) )=> ( () ( ( ruleOpAnd ) ) ) ) ( (lv_rightOperand_3_0= ruleXEqualityExpression ) ) )* )
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:2054:5: this_XEqualityExpression_0= ruleXEqualityExpression ( ( ( ( () ( ( ruleOpAnd ) ) ) )=> ( () ( ( ruleOpAnd ) ) ) ) ( (lv_rightOperand_3_0= ruleXEqualityExpression ) ) )*
+            {
+            if ( state.backtracking==0 ) {
+               
+                      newCompositeNode(grammarAccess.getXAndExpressionAccess().getXEqualityExpressionParserRuleCall_0()); 
+                  
+            }
+            pushFollow(FOLLOW_ruleXEqualityExpression_in_ruleXAndExpression4966);
+            this_XEqualityExpression_0=ruleXEqualityExpression();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+               
+                      current = this_XEqualityExpression_0; 
+                      afterParserOrEnumRuleCall();
+                  
+            }
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:2062:1: ( ( ( ( () ( ( ruleOpAnd ) ) ) )=> ( () ( ( ruleOpAnd ) ) ) ) ( (lv_rightOperand_3_0= ruleXEqualityExpression ) ) )*
+            loop34:
+            do {
+                int alt34=2;
+                int LA34_0 = input.LA(1);
+
+                if ( (LA34_0==53) ) {
+                    int LA34_2 = input.LA(2);
+
+                    if ( (synpred10_InternalActionDSL()) ) {
+                        alt34=1;
+                    }
+
+
+                }
+
+
+                switch (alt34) {
+            	case 1 :
+            	    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:2062:2: ( ( ( () ( ( ruleOpAnd ) ) ) )=> ( () ( ( ruleOpAnd ) ) ) ) ( (lv_rightOperand_3_0= ruleXEqualityExpression ) )
+            	    {
+            	    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:2062:2: ( ( ( () ( ( ruleOpAnd ) ) ) )=> ( () ( ( ruleOpAnd ) ) ) )
+            	    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:2062:3: ( ( () ( ( ruleOpAnd ) ) ) )=> ( () ( ( ruleOpAnd ) ) )
+            	    {
+            	    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:2067:6: ( () ( ( ruleOpAnd ) ) )
+            	    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:2067:7: () ( ( ruleOpAnd ) )
+            	    {
+            	    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:2067:7: ()
+            	    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:2068:5: 
+            	    {
+            	    if ( state.backtracking==0 ) {
+
+            	              current = forceCreateModelElementAndSet(
+            	                  grammarAccess.getXAndExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0(),
+            	                  current);
+            	          
+            	    }
+
+            	    }
+
+            	    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:2073:2: ( ( ruleOpAnd ) )
+            	    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:2074:1: ( ruleOpAnd )
+            	    {
+            	    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:2074:1: ( ruleOpAnd )
+            	    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:2075:3: ruleOpAnd
+            	    {
+            	    if ( state.backtracking==0 ) {
+
+            	      			if (current==null) {
+            	      	            current = createModelElement(grammarAccess.getXAndExpressionRule());
+            	      	        }
+            	              
+            	    }
+            	    if ( state.backtracking==0 ) {
+            	       
+            	      	        newCompositeNode(grammarAccess.getXAndExpressionAccess().getFeatureJvmIdentifiableElementCrossReference_1_0_0_1_0()); 
+            	      	    
+            	    }
+            	    pushFollow(FOLLOW_ruleOpAnd_in_ruleXAndExpression5019);
+            	    ruleOpAnd();
+
+            	    state._fsp--;
+            	    if (state.failed) return current;
+            	    if ( state.backtracking==0 ) {
+            	       
+            	      	        afterParserOrEnumRuleCall();
+            	      	    
+            	    }
+
+            	    }
+
+
+            	    }
+
+
+            	    }
+
+
+            	    }
+
+            	    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:2088:4: ( (lv_rightOperand_3_0= ruleXEqualityExpression ) )
+            	    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:2089:1: (lv_rightOperand_3_0= ruleXEqualityExpression )
+            	    {
+            	    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:2089:1: (lv_rightOperand_3_0= ruleXEqualityExpression )
+            	    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:2090:3: lv_rightOperand_3_0= ruleXEqualityExpression
+            	    {
+            	    if ( state.backtracking==0 ) {
+            	       
+            	      	        newCompositeNode(grammarAccess.getXAndExpressionAccess().getRightOperandXEqualityExpressionParserRuleCall_1_1_0()); 
+            	      	    
+            	    }
+            	    pushFollow(FOLLOW_ruleXEqualityExpression_in_ruleXAndExpression5042);
+            	    lv_rightOperand_3_0=ruleXEqualityExpression();
+
+            	    state._fsp--;
+            	    if (state.failed) return current;
+            	    if ( state.backtracking==0 ) {
+
+            	      	        if (current==null) {
+            	      	            current = createModelElementForParent(grammarAccess.getXAndExpressionRule());
+            	      	        }
+            	             		set(
+            	             			current, 
+            	             			"rightOperand",
+            	              		lv_rightOperand_3_0, 
+            	              		"XEqualityExpression");
+            	      	        afterParserOrEnumRuleCall();
+            	      	    
+            	    }
+
+            	    }
+
+
+            	    }
+
+
+            	    }
+            	    break;
+
+            	default :
+            	    break loop34;
+                }
+            } while (true);
+
+
+            }
+
+
+            }
+
+            if ( state.backtracking==0 ) {
+               leaveRule(); 
+            }
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleXAndExpression"
+
+
+    // $ANTLR start "entryRuleOpAnd"
+    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:2114:1: entryRuleOpAnd returns [String current=null] : iv_ruleOpAnd= ruleOpAnd EOF ;
+    public final String entryRuleOpAnd() throws RecognitionException {
+        String current = null;
+
+        AntlrDatatypeRuleToken iv_ruleOpAnd = null;
+
+
+        try {
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:2115:2: (iv_ruleOpAnd= ruleOpAnd EOF )
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:2116:2: iv_ruleOpAnd= ruleOpAnd EOF
+            {
+            if ( state.backtracking==0 ) {
+               newCompositeNode(grammarAccess.getOpAndRule()); 
+            }
+            pushFollow(FOLLOW_ruleOpAnd_in_entryRuleOpAnd5081);
+            iv_ruleOpAnd=ruleOpAnd();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+               current =iv_ruleOpAnd.getText(); 
+            }
+            match(input,EOF,FOLLOW_EOF_in_entryRuleOpAnd5092); if (state.failed) return current;
+
+            }
+
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleOpAnd"
+
+
+    // $ANTLR start "ruleOpAnd"
+    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:2123:1: ruleOpAnd returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : kw= '&&' ;
+    public final AntlrDatatypeRuleToken ruleOpAnd() throws RecognitionException {
+        AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();
+
+        Token kw=null;
+
+         enterRule(); 
+            
+        try {
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:2126:28: (kw= '&&' )
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:2128:2: kw= '&&'
+            {
+            kw=(Token)match(input,53,FOLLOW_53_in_ruleOpAnd5129); if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+                      current.merge(kw);
+                      newLeafNode(kw, grammarAccess.getOpAndAccess().getAmpersandAmpersandKeyword()); 
+                  
+            }
+
+            }
+
+            if ( state.backtracking==0 ) {
+               leaveRule(); 
+            }
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleOpAnd"
+
+
+    // $ANTLR start "entryRuleXEqualityExpression"
+    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:2141:1: entryRuleXEqualityExpression returns [EObject current=null] : iv_ruleXEqualityExpression= ruleXEqualityExpression EOF ;
+    public final EObject entryRuleXEqualityExpression() throws RecognitionException {
+        EObject current = null;
+
+        EObject iv_ruleXEqualityExpression = null;
+
+
+        try {
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:2142:2: (iv_ruleXEqualityExpression= ruleXEqualityExpression EOF )
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:2143:2: iv_ruleXEqualityExpression= ruleXEqualityExpression EOF
+            {
+            if ( state.backtracking==0 ) {
+               newCompositeNode(grammarAccess.getXEqualityExpressionRule()); 
+            }
+            pushFollow(FOLLOW_ruleXEqualityExpression_in_entryRuleXEqualityExpression5168);
+            iv_ruleXEqualityExpression=ruleXEqualityExpression();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+               current =iv_ruleXEqualityExpression; 
+            }
+            match(input,EOF,FOLLOW_EOF_in_entryRuleXEqualityExpression5178); if (state.failed) return current;
+
+            }
+
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleXEqualityExpression"
+
+
+    // $ANTLR start "ruleXEqualityExpression"
+    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:2150:1: ruleXEqualityExpression returns [EObject current=null] : (this_XRelationalExpression_0= ruleXRelationalExpression ( ( ( ( () ( ( ruleOpEquality ) ) ) )=> ( () ( ( ruleOpEquality ) ) ) ) ( (lv_rightOperand_3_0= ruleXRelationalExpression ) ) )* ) ;
+    public final EObject ruleXEqualityExpression() throws RecognitionException {
+        EObject current = null;
+
+        EObject this_XRelationalExpression_0 = null;
+
+        EObject lv_rightOperand_3_0 = null;
+
+
+         enterRule(); 
+            
+        try {
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:2153:28: ( (this_XRelationalExpression_0= ruleXRelationalExpression ( ( ( ( () ( ( ruleOpEquality ) ) ) )=> ( () ( ( ruleOpEquality ) ) ) ) ( (lv_rightOperand_3_0= ruleXRelationalExpression ) ) )* ) )
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:2154:1: (this_XRelationalExpression_0= ruleXRelationalExpression ( ( ( ( () ( ( ruleOpEquality ) ) ) )=> ( () ( ( ruleOpEquality ) ) ) ) ( (lv_rightOperand_3_0= ruleXRelationalExpression ) ) )* )
+            {
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:2154:1: (this_XRelationalExpression_0= ruleXRelationalExpression ( ( ( ( () ( ( ruleOpEquality ) ) ) )=> ( () ( ( ruleOpEquality ) ) ) ) ( (lv_rightOperand_3_0= ruleXRelationalExpression ) ) )* )
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:2155:5: this_XRelationalExpression_0= ruleXRelationalExpression ( ( ( ( () ( ( ruleOpEquality ) ) ) )=> ( () ( ( ruleOpEquality ) ) ) ) ( (lv_rightOperand_3_0= ruleXRelationalExpression ) ) )*
+            {
+            if ( state.backtracking==0 ) {
+               
+                      newCompositeNode(grammarAccess.getXEqualityExpressionAccess().getXRelationalExpressionParserRuleCall_0()); 
+                  
+            }
+            pushFollow(FOLLOW_ruleXRelationalExpression_in_ruleXEqualityExpression5225);
+            this_XRelationalExpression_0=ruleXRelationalExpression();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+               
+                      current = this_XRelationalExpression_0; 
+                      afterParserOrEnumRuleCall();
+                  
+            }
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:2163:1: ( ( ( ( () ( ( ruleOpEquality ) ) ) )=> ( () ( ( ruleOpEquality ) ) ) ) ( (lv_rightOperand_3_0= ruleXRelationalExpression ) ) )*
+            loop35:
+            do {
+                int alt35=2;
+                switch ( input.LA(1) ) {
+                case 54:
+                    {
+                    int LA35_2 = input.LA(2);
+
+                    if ( (synpred11_InternalActionDSL()) ) {
+                        alt35=1;
+                    }
+
+
+                    }
+                    break;
+                case 55:
+                    {
+                    int LA35_3 = input.LA(2);
+
+                    if ( (synpred11_InternalActionDSL()) ) {
+                        alt35=1;
+                    }
+
+
+                    }
+                    break;
+                case 56:
+                    {
+                    int LA35_4 = input.LA(2);
+
+                    if ( (synpred11_InternalActionDSL()) ) {
+                        alt35=1;
+                    }
+
+
+                    }
+                    break;
+                case 57:
+                    {
+                    int LA35_5 = input.LA(2);
+
+                    if ( (synpred11_InternalActionDSL()) ) {
+                        alt35=1;
+                    }
+
+
+                    }
+                    break;
+
+                }
+
+                switch (alt35) {
+            	case 1 :
+            	    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:2163:2: ( ( ( () ( ( ruleOpEquality ) ) ) )=> ( () ( ( ruleOpEquality ) ) ) ) ( (lv_rightOperand_3_0= ruleXRelationalExpression ) )
+            	    {
+            	    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:2163:2: ( ( ( () ( ( ruleOpEquality ) ) ) )=> ( () ( ( ruleOpEquality ) ) ) )
+            	    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:2163:3: ( ( () ( ( ruleOpEquality ) ) ) )=> ( () ( ( ruleOpEquality ) ) )
+            	    {
+            	    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:2168:6: ( () ( ( ruleOpEquality ) ) )
+            	    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:2168:7: () ( ( ruleOpEquality ) )
+            	    {
+            	    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:2168:7: ()
+            	    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:2169:5: 
+            	    {
+            	    if ( state.backtracking==0 ) {
+
+            	              current = forceCreateModelElementAndSet(
+            	                  grammarAccess.getXEqualityExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0(),
+            	                  current);
+            	          
+            	    }
+
+            	    }
+
+            	    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:2174:2: ( ( ruleOpEquality ) )
+            	    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:2175:1: ( ruleOpEquality )
+            	    {
+            	    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:2175:1: ( ruleOpEquality )
+            	    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:2176:3: ruleOpEquality
+            	    {
+            	    if ( state.backtracking==0 ) {
+
+            	      			if (current==null) {
+            	      	            current = createModelElement(grammarAccess.getXEqualityExpressionRule());
+            	      	        }
+            	              
+            	    }
+            	    if ( state.backtracking==0 ) {
+            	       
+            	      	        newCompositeNode(grammarAccess.getXEqualityExpressionAccess().getFeatureJvmIdentifiableElementCrossReference_1_0_0_1_0()); 
+            	      	    
+            	    }
+            	    pushFollow(FOLLOW_ruleOpEquality_in_ruleXEqualityExpression5278);
+            	    ruleOpEquality();
+
+            	    state._fsp--;
+            	    if (state.failed) return current;
+            	    if ( state.backtracking==0 ) {
+            	       
+            	      	        afterParserOrEnumRuleCall();
+            	      	    
+            	    }
+
+            	    }
+
+
+            	    }
+
+
+            	    }
+
+
+            	    }
+
+            	    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:2189:4: ( (lv_rightOperand_3_0= ruleXRelationalExpression ) )
+            	    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:2190:1: (lv_rightOperand_3_0= ruleXRelationalExpression )
+            	    {
+            	    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:2190:1: (lv_rightOperand_3_0= ruleXRelationalExpression )
+            	    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:2191:3: lv_rightOperand_3_0= ruleXRelationalExpression
+            	    {
+            	    if ( state.backtracking==0 ) {
+            	       
+            	      	        newCompositeNode(grammarAccess.getXEqualityExpressionAccess().getRightOperandXRelationalExpressionParserRuleCall_1_1_0()); 
+            	      	    
+            	    }
+            	    pushFollow(FOLLOW_ruleXRelationalExpression_in_ruleXEqualityExpression5301);
+            	    lv_rightOperand_3_0=ruleXRelationalExpression();
+
+            	    state._fsp--;
+            	    if (state.failed) return current;
+            	    if ( state.backtracking==0 ) {
+
+            	      	        if (current==null) {
+            	      	            current = createModelElementForParent(grammarAccess.getXEqualityExpressionRule());
+            	      	        }
+            	             		set(
+            	             			current, 
+            	             			"rightOperand",
+            	              		lv_rightOperand_3_0, 
+            	              		"XRelationalExpression");
+            	      	        afterParserOrEnumRuleCall();
+            	      	    
+            	    }
+
+            	    }
+
+
+            	    }
+
+
+            	    }
+            	    break;
+
+            	default :
+            	    break loop35;
+                }
+            } while (true);
+
+
+            }
+
+
+            }
+
+            if ( state.backtracking==0 ) {
+               leaveRule(); 
+            }
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleXEqualityExpression"
+
+
+    // $ANTLR start "entryRuleOpEquality"
+    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:2215:1: entryRuleOpEquality returns [String current=null] : iv_ruleOpEquality= ruleOpEquality EOF ;
+    public final String entryRuleOpEquality() throws RecognitionException {
+        String current = null;
+
+        AntlrDatatypeRuleToken iv_ruleOpEquality = null;
+
+
+        try {
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:2216:2: (iv_ruleOpEquality= ruleOpEquality EOF )
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:2217:2: iv_ruleOpEquality= ruleOpEquality EOF
+            {
+            if ( state.backtracking==0 ) {
+               newCompositeNode(grammarAccess.getOpEqualityRule()); 
+            }
+            pushFollow(FOLLOW_ruleOpEquality_in_entryRuleOpEquality5340);
+            iv_ruleOpEquality=ruleOpEquality();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+               current =iv_ruleOpEquality.getText(); 
+            }
+            match(input,EOF,FOLLOW_EOF_in_entryRuleOpEquality5351); if (state.failed) return current;
+
+            }
+
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleOpEquality"
+
+
+    // $ANTLR start "ruleOpEquality"
+    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:2224:1: ruleOpEquality returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (kw= '==' | kw= '!=' | kw= '===' | kw= '!==' ) ;
+    public final AntlrDatatypeRuleToken ruleOpEquality() throws RecognitionException {
+        AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();
+
+        Token kw=null;
+
+         enterRule(); 
+            
+        try {
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:2227:28: ( (kw= '==' | kw= '!=' | kw= '===' | kw= '!==' ) )
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:2228:1: (kw= '==' | kw= '!=' | kw= '===' | kw= '!==' )
+            {
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:2228:1: (kw= '==' | kw= '!=' | kw= '===' | kw= '!==' )
+            int alt36=4;
+            switch ( input.LA(1) ) {
+            case 54:
+                {
+                alt36=1;
+                }
+                break;
+            case 55:
+                {
+                alt36=2;
+                }
+                break;
+            case 56:
+                {
+                alt36=3;
+                }
+                break;
+            case 57:
+                {
+                alt36=4;
+                }
+                break;
+            default:
+                if (state.backtracking>0) {state.failed=true; return current;}
+                NoViableAltException nvae =
+                    new NoViableAltException("", 36, 0, input);
+
+                throw nvae;
+            }
+
+            switch (alt36) {
+                case 1 :
+                    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:2229:2: kw= '=='
+                    {
+                    kw=(Token)match(input,54,FOLLOW_54_in_ruleOpEquality5389); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                              current.merge(kw);
+                              newLeafNode(kw, grammarAccess.getOpEqualityAccess().getEqualsSignEqualsSignKeyword_0()); 
+                          
+                    }
+
+                    }
+                    break;
+                case 2 :
+                    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:2236:2: kw= '!='
+                    {
+                    kw=(Token)match(input,55,FOLLOW_55_in_ruleOpEquality5408); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                              current.merge(kw);
+                              newLeafNode(kw, grammarAccess.getOpEqualityAccess().getExclamationMarkEqualsSignKeyword_1()); 
+                          
+                    }
+
+                    }
+                    break;
+                case 3 :
+                    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:2243:2: kw= '==='
+                    {
+                    kw=(Token)match(input,56,FOLLOW_56_in_ruleOpEquality5427); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                              current.merge(kw);
+                              newLeafNode(kw, grammarAccess.getOpEqualityAccess().getEqualsSignEqualsSignEqualsSignKeyword_2()); 
+                          
+                    }
+
+                    }
+                    break;
+                case 4 :
+                    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:2250:2: kw= '!=='
+                    {
+                    kw=(Token)match(input,57,FOLLOW_57_in_ruleOpEquality5446); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                              current.merge(kw);
+                              newLeafNode(kw, grammarAccess.getOpEqualityAccess().getExclamationMarkEqualsSignEqualsSignKeyword_3()); 
+                          
+                    }
+
+                    }
+                    break;
+
+            }
+
+
+            }
+
+            if ( state.backtracking==0 ) {
+               leaveRule(); 
+            }
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleOpEquality"
+
+
+    // $ANTLR start "entryRuleXRelationalExpression"
+    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:2263:1: entryRuleXRelationalExpression returns [EObject current=null] : iv_ruleXRelationalExpression= ruleXRelationalExpression EOF ;
+    public final EObject entryRuleXRelationalExpression() throws RecognitionException {
+        EObject current = null;
+
+        EObject iv_ruleXRelationalExpression = null;
+
+
+        try {
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:2264:2: (iv_ruleXRelationalExpression= ruleXRelationalExpression EOF )
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:2265:2: iv_ruleXRelationalExpression= ruleXRelationalExpression EOF
+            {
+            if ( state.backtracking==0 ) {
+               newCompositeNode(grammarAccess.getXRelationalExpressionRule()); 
+            }
+            pushFollow(FOLLOW_ruleXRelationalExpression_in_entryRuleXRelationalExpression5486);
+            iv_ruleXRelationalExpression=ruleXRelationalExpression();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+               current =iv_ruleXRelationalExpression; 
+            }
+            match(input,EOF,FOLLOW_EOF_in_entryRuleXRelationalExpression5496); if (state.failed) return current;
+
+            }
+
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleXRelationalExpression"
+
+
+    // $ANTLR start "ruleXRelationalExpression"
+    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:2272:1: ruleXRelationalExpression returns [EObject current=null] : (this_XOtherOperatorExpression_0= ruleXOtherOperatorExpression ( ( ( ( ( () 'instanceof' ) )=> ( () otherlv_2= 'instanceof' ) ) ( (lv_type_3_0= ruleJvmTypeReference ) ) ) | ( ( ( ( () ( ( ruleOpCompare ) ) ) )=> ( () ( ( ruleOpCompare ) ) ) ) ( (lv_rightOperand_6_0= ruleXOtherOperatorExpression ) ) ) )* ) ;
+    public final EObject ruleXRelationalExpression() throws RecognitionException {
+        EObject current = null;
+
+        Token otherlv_2=null;
+        EObject this_XOtherOperatorExpression_0 = null;
+
+        EObject lv_type_3_0 = null;
+
+        EObject lv_rightOperand_6_0 = null;
+
+
+         enterRule(); 
+            
+        try {
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:2275:28: ( (this_XOtherOperatorExpression_0= ruleXOtherOperatorExpression ( ( ( ( ( () 'instanceof' ) )=> ( () otherlv_2= 'instanceof' ) ) ( (lv_type_3_0= ruleJvmTypeReference ) ) ) | ( ( ( ( () ( ( ruleOpCompare ) ) ) )=> ( () ( ( ruleOpCompare ) ) ) ) ( (lv_rightOperand_6_0= ruleXOtherOperatorExpression ) ) ) )* ) )
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:2276:1: (this_XOtherOperatorExpression_0= ruleXOtherOperatorExpression ( ( ( ( ( () 'instanceof' ) )=> ( () otherlv_2= 'instanceof' ) ) ( (lv_type_3_0= ruleJvmTypeReference ) ) ) | ( ( ( ( () ( ( ruleOpCompare ) ) ) )=> ( () ( ( ruleOpCompare ) ) ) ) ( (lv_rightOperand_6_0= ruleXOtherOperatorExpression ) ) ) )* )
+            {
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:2276:1: (this_XOtherOperatorExpression_0= ruleXOtherOperatorExpression ( ( ( ( ( () 'instanceof' ) )=> ( () otherlv_2= 'instanceof' ) ) ( (lv_type_3_0= ruleJvmTypeReference ) ) ) | ( ( ( ( () ( ( ruleOpCompare ) ) ) )=> ( () ( ( ruleOpCompare ) ) ) ) ( (lv_rightOperand_6_0= ruleXOtherOperatorExpression ) ) ) )* )
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:2277:5: this_XOtherOperatorExpression_0= ruleXOtherOperatorExpression ( ( ( ( ( () 'instanceof' ) )=> ( () otherlv_2= 'instanceof' ) ) ( (lv_type_3_0= ruleJvmTypeReference ) ) ) | ( ( ( ( () ( ( ruleOpCompare ) ) ) )=> ( () ( ( ruleOpCompare ) ) ) ) ( (lv_rightOperand_6_0= ruleXOtherOperatorExpression ) ) ) )*
+            {
+            if ( state.backtracking==0 ) {
+               
+                      newCompositeNode(grammarAccess.getXRelationalExpressionAccess().getXOtherOperatorExpressionParserRuleCall_0()); 
+                  
+            }
+            pushFollow(FOLLOW_ruleXOtherOperatorExpression_in_ruleXRelationalExpression5543);
+            this_XOtherOperatorExpression_0=ruleXOtherOperatorExpression();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+               
+                      current = this_XOtherOperatorExpression_0; 
+                      afterParserOrEnumRuleCall();
+                  
+            }
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:2285:1: ( ( ( ( ( () 'instanceof' ) )=> ( () otherlv_2= 'instanceof' ) ) ( (lv_type_3_0= ruleJvmTypeReference ) ) ) | ( ( ( ( () ( ( ruleOpCompare ) ) ) )=> ( () ( ( ruleOpCompare ) ) ) ) ( (lv_rightOperand_6_0= ruleXOtherOperatorExpression ) ) ) )*
+            loop37:
+            do {
+                int alt37=3;
+                switch ( input.LA(1) ) {
+                case 49:
+                    {
+                    int LA37_2 = input.LA(2);
+
+                    if ( (synpred13_InternalActionDSL()) ) {
+                        alt37=2;
+                    }
+
+
+                    }
+                    break;
+                case 50:
+                    {
+                    int LA37_3 = input.LA(2);
+
+                    if ( (synpred13_InternalActionDSL()) ) {
+                        alt37=2;
+                    }
+
+
+                    }
+                    break;
+                case 58:
+                    {
+                    int LA37_4 = input.LA(2);
+
+                    if ( (synpred12_InternalActionDSL()) ) {
+                        alt37=1;
+                    }
+
+
+                    }
+                    break;
+                case 51:
+                    {
+                    int LA37_5 = input.LA(2);
+
+                    if ( (synpred13_InternalActionDSL()) ) {
+                        alt37=2;
+                    }
+
+
+                    }
+                    break;
+
+                }
+
+                switch (alt37) {
+            	case 1 :
+            	    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:2285:2: ( ( ( ( () 'instanceof' ) )=> ( () otherlv_2= 'instanceof' ) ) ( (lv_type_3_0= ruleJvmTypeReference ) ) )
+            	    {
+            	    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:2285:2: ( ( ( ( () 'instanceof' ) )=> ( () otherlv_2= 'instanceof' ) ) ( (lv_type_3_0= ruleJvmTypeReference ) ) )
+            	    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:2285:3: ( ( ( () 'instanceof' ) )=> ( () otherlv_2= 'instanceof' ) ) ( (lv_type_3_0= ruleJvmTypeReference ) )
+            	    {
+            	    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:2285:3: ( ( ( () 'instanceof' ) )=> ( () otherlv_2= 'instanceof' ) )
+            	    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:2285:4: ( ( () 'instanceof' ) )=> ( () otherlv_2= 'instanceof' )
+            	    {
+            	    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:2287:5: ( () otherlv_2= 'instanceof' )
+            	    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:2287:6: () otherlv_2= 'instanceof'
+            	    {
+            	    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:2287:6: ()
+            	    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:2288:5: 
+            	    {
+            	    if ( state.backtracking==0 ) {
+
+            	              current = forceCreateModelElementAndSet(
+            	                  grammarAccess.getXRelationalExpressionAccess().getXInstanceOfExpressionExpressionAction_1_0_0_0_0(),
+            	                  current);
+            	          
+            	    }
+
+            	    }
+
+            	    otherlv_2=(Token)match(input,58,FOLLOW_58_in_ruleXRelationalExpression5579); if (state.failed) return current;
+            	    if ( state.backtracking==0 ) {
+
+            	          	newLeafNode(otherlv_2, grammarAccess.getXRelationalExpressionAccess().getInstanceofKeyword_1_0_0_0_1());
+            	          
+            	    }
+
+            	    }
+
+
+            	    }
+
+            	    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:2297:3: ( (lv_type_3_0= ruleJvmTypeReference ) )
+            	    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:2298:1: (lv_type_3_0= ruleJvmTypeReference )
+            	    {
+            	    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:2298:1: (lv_type_3_0= ruleJvmTypeReference )
+            	    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:2299:3: lv_type_3_0= ruleJvmTypeReference
+            	    {
+            	    if ( state.backtracking==0 ) {
+            	       
+            	      	        newCompositeNode(grammarAccess.getXRelationalExpressionAccess().getTypeJvmTypeReferenceParserRuleCall_1_0_1_0()); 
+            	      	    
+            	    }
+            	    pushFollow(FOLLOW_ruleJvmTypeReference_in_ruleXRelationalExpression5602);
+            	    lv_type_3_0=ruleJvmTypeReference();
+
+            	    state._fsp--;
+            	    if (state.failed) return current;
+            	    if ( state.backtracking==0 ) {
+
+            	      	        if (current==null) {
+            	      	            current = createModelElementForParent(grammarAccess.getXRelationalExpressionRule());
+            	      	        }
+            	             		set(
+            	             			current, 
+            	             			"type",
+            	              		lv_type_3_0, 
+            	              		"JvmTypeReference");
+            	      	        afterParserOrEnumRuleCall();
+            	      	    
+            	    }
+
+            	    }
+
+
+            	    }
+
+
+            	    }
+
+
+            	    }
+            	    break;
+            	case 2 :
+            	    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:2316:6: ( ( ( ( () ( ( ruleOpCompare ) ) ) )=> ( () ( ( ruleOpCompare ) ) ) ) ( (lv_rightOperand_6_0= ruleXOtherOperatorExpression ) ) )
+            	    {
+            	    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:2316:6: ( ( ( ( () ( ( ruleOpCompare ) ) ) )=> ( () ( ( ruleOpCompare ) ) ) ) ( (lv_rightOperand_6_0= ruleXOtherOperatorExpression ) ) )
+            	    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:2316:7: ( ( ( () ( ( ruleOpCompare ) ) ) )=> ( () ( ( ruleOpCompare ) ) ) ) ( (lv_rightOperand_6_0= ruleXOtherOperatorExpression ) )
+            	    {
+            	    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:2316:7: ( ( ( () ( ( ruleOpCompare ) ) ) )=> ( () ( ( ruleOpCompare ) ) ) )
+            	    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:2316:8: ( ( () ( ( ruleOpCompare ) ) ) )=> ( () ( ( ruleOpCompare ) ) )
+            	    {
+            	    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:2321:6: ( () ( ( ruleOpCompare ) ) )
+            	    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:2321:7: () ( ( ruleOpCompare ) )
+            	    {
+            	    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:2321:7: ()
+            	    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:2322:5: 
+            	    {
+            	    if ( state.backtracking==0 ) {
+
+            	              current = forceCreateModelElementAndSet(
+            	                  grammarAccess.getXRelationalExpressionAccess().getXBinaryOperationLeftOperandAction_1_1_0_0_0(),
+            	                  current);
+            	          
+            	    }
+
+            	    }
+
+            	    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:2327:2: ( ( ruleOpCompare ) )
+            	    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:2328:1: ( ruleOpCompare )
+            	    {
+            	    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:2328:1: ( ruleOpCompare )
+            	    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:2329:3: ruleOpCompare
+            	    {
+            	    if ( state.backtracking==0 ) {
+
+            	      			if (current==null) {
+            	      	            current = createModelElement(grammarAccess.getXRelationalExpressionRule());
+            	      	        }
+            	              
+            	    }
+            	    if ( state.backtracking==0 ) {
+            	       
+            	      	        newCompositeNode(grammarAccess.getXRelationalExpressionAccess().getFeatureJvmIdentifiableElementCrossReference_1_1_0_0_1_0()); 
+            	      	    
+            	    }
+            	    pushFollow(FOLLOW_ruleOpCompare_in_ruleXRelationalExpression5663);
+            	    ruleOpCompare();
+
+            	    state._fsp--;
+            	    if (state.failed) return current;
+            	    if ( state.backtracking==0 ) {
+            	       
+            	      	        afterParserOrEnumRuleCall();
+            	      	    
+            	    }
+
+            	    }
+
+
+            	    }
+
+
+            	    }
+
+
+            	    }
+
+            	    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:2342:4: ( (lv_rightOperand_6_0= ruleXOtherOperatorExpression ) )
+            	    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:2343:1: (lv_rightOperand_6_0= ruleXOtherOperatorExpression )
+            	    {
+            	    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:2343:1: (lv_rightOperand_6_0= ruleXOtherOperatorExpression )
+            	    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:2344:3: lv_rightOperand_6_0= ruleXOtherOperatorExpression
+            	    {
+            	    if ( state.backtracking==0 ) {
+            	       
+            	      	        newCompositeNode(grammarAccess.getXRelationalExpressionAccess().getRightOperandXOtherOperatorExpressionParserRuleCall_1_1_1_0()); 
+            	      	    
+            	    }
+            	    pushFollow(FOLLOW_ruleXOtherOperatorExpression_in_ruleXRelationalExpression5686);
+            	    lv_rightOperand_6_0=ruleXOtherOperatorExpression();
+
+            	    state._fsp--;
+            	    if (state.failed) return current;
+            	    if ( state.backtracking==0 ) {
+
+            	      	        if (current==null) {
+            	      	            current = createModelElementForParent(grammarAccess.getXRelationalExpressionRule());
+            	      	        }
+            	             		set(
+            	             			current, 
+            	             			"rightOperand",
+            	              		lv_rightOperand_6_0, 
+            	              		"XOtherOperatorExpression");
+            	      	        afterParserOrEnumRuleCall();
+            	      	    
+            	    }
+
+            	    }
+
+
+            	    }
+
+
+            	    }
+
+
+            	    }
+            	    break;
+
+            	default :
+            	    break loop37;
+                }
+            } while (true);
+
+
+            }
+
+
+            }
+
+            if ( state.backtracking==0 ) {
+               leaveRule(); 
+            }
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleXRelationalExpression"
+
+
+    // $ANTLR start "entryRuleOpCompare"
+    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:2368:1: entryRuleOpCompare returns [String current=null] : iv_ruleOpCompare= ruleOpCompare EOF ;
+    public final String entryRuleOpCompare() throws RecognitionException {
+        String current = null;
+
+        AntlrDatatypeRuleToken iv_ruleOpCompare = null;
+
+
+        try {
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:2369:2: (iv_ruleOpCompare= ruleOpCompare EOF )
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:2370:2: iv_ruleOpCompare= ruleOpCompare EOF
+            {
+            if ( state.backtracking==0 ) {
+               newCompositeNode(grammarAccess.getOpCompareRule()); 
+            }
+            pushFollow(FOLLOW_ruleOpCompare_in_entryRuleOpCompare5726);
+            iv_ruleOpCompare=ruleOpCompare();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+               current =iv_ruleOpCompare.getText(); 
+            }
+            match(input,EOF,FOLLOW_EOF_in_entryRuleOpCompare5737); if (state.failed) return current;
+
+            }
+
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleOpCompare"
+
+
+    // $ANTLR start "ruleOpCompare"
+    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:2377:1: ruleOpCompare returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (kw= '>=' | (kw= '<' kw= '=' ) | kw= '>' | kw= '<' ) ;
+    public final AntlrDatatypeRuleToken ruleOpCompare() throws RecognitionException {
+        AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();
+
+        Token kw=null;
+
+         enterRule(); 
+            
+        try {
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:2380:28: ( (kw= '>=' | (kw= '<' kw= '=' ) | kw= '>' | kw= '<' ) )
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:2381:1: (kw= '>=' | (kw= '<' kw= '=' ) | kw= '>' | kw= '<' )
+            {
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:2381:1: (kw= '>=' | (kw= '<' kw= '=' ) | kw= '>' | kw= '<' )
+            int alt38=4;
+            switch ( input.LA(1) ) {
+            case 51:
+                {
+                alt38=1;
+                }
+                break;
+            case 49:
+                {
+                int LA38_2 = input.LA(2);
+
+                if ( (LA38_2==EOF||(LA38_2>=RULE_ID && LA38_2<=RULE_DECIMAL)||LA38_2==14||LA38_2==33||LA38_2==37||(LA38_2>=41 && LA38_2<=42)||LA38_2==49||(LA38_2>=65 && LA38_2<=66)||LA38_2==70||LA38_2==78||LA38_2==80||(LA38_2>=84 && LA38_2<=86)||(LA38_2>=89 && LA38_2<=100)||LA38_2==102) ) {
+                    alt38=4;
+                }
+                else if ( (LA38_2==40) ) {
+                    alt38=2;
+                }
+                else {
+                    if (state.backtracking>0) {state.failed=true; return current;}
+                    NoViableAltException nvae =
+                        new NoViableAltException("", 38, 2, input);
+
+                    throw nvae;
+                }
+                }
+                break;
+            case 50:
+                {
+                alt38=3;
+                }
+                break;
+            default:
+                if (state.backtracking>0) {state.failed=true; return current;}
+                NoViableAltException nvae =
+                    new NoViableAltException("", 38, 0, input);
+
+                throw nvae;
+            }
+
+            switch (alt38) {
+                case 1 :
+                    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:2382:2: kw= '>='
+                    {
+                    kw=(Token)match(input,51,FOLLOW_51_in_ruleOpCompare5775); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                              current.merge(kw);
+                              newLeafNode(kw, grammarAccess.getOpCompareAccess().getGreaterThanSignEqualsSignKeyword_0()); 
+                          
+                    }
+
+                    }
+                    break;
+                case 2 :
+                    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:2388:6: (kw= '<' kw= '=' )
+                    {
+                    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:2388:6: (kw= '<' kw= '=' )
+                    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:2389:2: kw= '<' kw= '='
+                    {
+                    kw=(Token)match(input,49,FOLLOW_49_in_ruleOpCompare5795); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                              current.merge(kw);
+                              newLeafNode(kw, grammarAccess.getOpCompareAccess().getLessThanSignKeyword_1_0()); 
+                          
+                    }
+                    kw=(Token)match(input,40,FOLLOW_40_in_ruleOpCompare5808); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                              current.merge(kw);
+                              newLeafNode(kw, grammarAccess.getOpCompareAccess().getEqualsSignKeyword_1_1()); 
+                          
+                    }
+
+                    }
+
+
+                    }
+                    break;
+                case 3 :
+                    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:2402:2: kw= '>'
+                    {
+                    kw=(Token)match(input,50,FOLLOW_50_in_ruleOpCompare5828); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                              current.merge(kw);
+                              newLeafNode(kw, grammarAccess.getOpCompareAccess().getGreaterThanSignKeyword_2()); 
+                          
+                    }
+
+                    }
+                    break;
+                case 4 :
+                    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:2409:2: kw= '<'
+                    {
+                    kw=(Token)match(input,49,FOLLOW_49_in_ruleOpCompare5847); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                              current.merge(kw);
+                              newLeafNode(kw, grammarAccess.getOpCompareAccess().getLessThanSignKeyword_3()); 
+                          
+                    }
+
+                    }
+                    break;
+
+            }
+
+
+            }
+
+            if ( state.backtracking==0 ) {
+               leaveRule(); 
+            }
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleOpCompare"
+
+
+    // $ANTLR start "entryRuleXOtherOperatorExpression"
+    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:2422:1: entryRuleXOtherOperatorExpression returns [EObject current=null] : iv_ruleXOtherOperatorExpression= ruleXOtherOperatorExpression EOF ;
+    public final EObject entryRuleXOtherOperatorExpression() throws RecognitionException {
+        EObject current = null;
+
+        EObject iv_ruleXOtherOperatorExpression = null;
+
+
+        try {
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:2423:2: (iv_ruleXOtherOperatorExpression= ruleXOtherOperatorExpression EOF )
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:2424:2: iv_ruleXOtherOperatorExpression= ruleXOtherOperatorExpression EOF
+            {
+            if ( state.backtracking==0 ) {
+               newCompositeNode(grammarAccess.getXOtherOperatorExpressionRule()); 
+            }
+            pushFollow(FOLLOW_ruleXOtherOperatorExpression_in_entryRuleXOtherOperatorExpression5887);
+            iv_ruleXOtherOperatorExpression=ruleXOtherOperatorExpression();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+               current =iv_ruleXOtherOperatorExpression; 
+            }
+            match(input,EOF,FOLLOW_EOF_in_entryRuleXOtherOperatorExpression5897); if (state.failed) return current;
+
+            }
+
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleXOtherOperatorExpression"
+
+
+    // $ANTLR start "ruleXOtherOperatorExpression"
+    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:2431:1: ruleXOtherOperatorExpression returns [EObject current=null] : (this_XAdditiveExpression_0= ruleXAdditiveExpression ( ( ( ( () ( ( ruleOpOther ) ) ) )=> ( () ( ( ruleOpOther ) ) ) ) ( (lv_rightOperand_3_0= ruleXAdditiveExpression ) ) )* ) ;
+    public final EObject ruleXOtherOperatorExpression() throws RecognitionException {
+        EObject current = null;
+
+        EObject this_XAdditiveExpression_0 = null;
+
+        EObject lv_rightOperand_3_0 = null;
+
+
+         enterRule(); 
+            
+        try {
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:2434:28: ( (this_XAdditiveExpression_0= ruleXAdditiveExpression ( ( ( ( () ( ( ruleOpOther ) ) ) )=> ( () ( ( ruleOpOther ) ) ) ) ( (lv_rightOperand_3_0= ruleXAdditiveExpression ) ) )* ) )
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:2435:1: (this_XAdditiveExpression_0= ruleXAdditiveExpression ( ( ( ( () ( ( ruleOpOther ) ) ) )=> ( () ( ( ruleOpOther ) ) ) ) ( (lv_rightOperand_3_0= ruleXAdditiveExpression ) ) )* )
+            {
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:2435:1: (this_XAdditiveExpression_0= ruleXAdditiveExpression ( ( ( ( () ( ( ruleOpOther ) ) ) )=> ( () ( ( ruleOpOther ) ) ) ) ( (lv_rightOperand_3_0= ruleXAdditiveExpression ) ) )* )
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:2436:5: this_XAdditiveExpression_0= ruleXAdditiveExpression ( ( ( ( () ( ( ruleOpOther ) ) ) )=> ( () ( ( ruleOpOther ) ) ) ) ( (lv_rightOperand_3_0= ruleXAdditiveExpression ) ) )*
+            {
+            if ( state.backtracking==0 ) {
+               
+                      newCompositeNode(grammarAccess.getXOtherOperatorExpressionAccess().getXAdditiveExpressionParserRuleCall_0()); 
+                  
+            }
+            pushFollow(FOLLOW_ruleXAdditiveExpression_in_ruleXOtherOperatorExpression5944);
+            this_XAdditiveExpression_0=ruleXAdditiveExpression();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+               
+                      current = this_XAdditiveExpression_0; 
+                      afterParserOrEnumRuleCall();
+                  
+            }
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:2444:1: ( ( ( ( () ( ( ruleOpOther ) ) ) )=> ( () ( ( ruleOpOther ) ) ) ) ( (lv_rightOperand_3_0= ruleXAdditiveExpression ) ) )*
+            loop39:
+            do {
+                int alt39=2;
+                alt39 = dfa39.predict(input);
+                switch (alt39) {
+            	case 1 :
+            	    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:2444:2: ( ( ( () ( ( ruleOpOther ) ) ) )=> ( () ( ( ruleOpOther ) ) ) ) ( (lv_rightOperand_3_0= ruleXAdditiveExpression ) )
+            	    {
+            	    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:2444:2: ( ( ( () ( ( ruleOpOther ) ) ) )=> ( () ( ( ruleOpOther ) ) ) )
+            	    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:2444:3: ( ( () ( ( ruleOpOther ) ) ) )=> ( () ( ( ruleOpOther ) ) )
+            	    {
+            	    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:2449:6: ( () ( ( ruleOpOther ) ) )
+            	    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:2449:7: () ( ( ruleOpOther ) )
+            	    {
+            	    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:2449:7: ()
+            	    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:2450:5: 
+            	    {
+            	    if ( state.backtracking==0 ) {
+
+            	              current = forceCreateModelElementAndSet(
+            	                  grammarAccess.getXOtherOperatorExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0(),
+            	                  current);
+            	          
+            	    }
+
+            	    }
+
+            	    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:2455:2: ( ( ruleOpOther ) )
+            	    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:2456:1: ( ruleOpOther )
+            	    {
+            	    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:2456:1: ( ruleOpOther )
+            	    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:2457:3: ruleOpOther
+            	    {
+            	    if ( state.backtracking==0 ) {
+
+            	      			if (current==null) {
+            	      	            current = createModelElement(grammarAccess.getXOtherOperatorExpressionRule());
+            	      	        }
+            	              
+            	    }
+            	    if ( state.backtracking==0 ) {
+            	       
+            	      	        newCompositeNode(grammarAccess.getXOtherOperatorExpressionAccess().getFeatureJvmIdentifiableElementCrossReference_1_0_0_1_0()); 
+            	      	    
+            	    }
+            	    pushFollow(FOLLOW_ruleOpOther_in_ruleXOtherOperatorExpression5997);
+            	    ruleOpOther();
+
+            	    state._fsp--;
+            	    if (state.failed) return current;
+            	    if ( state.backtracking==0 ) {
+            	       
+            	      	        afterParserOrEnumRuleCall();
+            	      	    
+            	    }
+
+            	    }
+
+
+            	    }
+
+
+            	    }
+
+
+            	    }
+
+            	    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:2470:4: ( (lv_rightOperand_3_0= ruleXAdditiveExpression ) )
+            	    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:2471:1: (lv_rightOperand_3_0= ruleXAdditiveExpression )
+            	    {
+            	    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:2471:1: (lv_rightOperand_3_0= ruleXAdditiveExpression )
+            	    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:2472:3: lv_rightOperand_3_0= ruleXAdditiveExpression
+            	    {
+            	    if ( state.backtracking==0 ) {
+            	       
+            	      	        newCompositeNode(grammarAccess.getXOtherOperatorExpressionAccess().getRightOperandXAdditiveExpressionParserRuleCall_1_1_0()); 
+            	      	    
+            	    }
+            	    pushFollow(FOLLOW_ruleXAdditiveExpression_in_ruleXOtherOperatorExpression6020);
+            	    lv_rightOperand_3_0=ruleXAdditiveExpression();
+
+            	    state._fsp--;
+            	    if (state.failed) return current;
+            	    if ( state.backtracking==0 ) {
+
+            	      	        if (current==null) {
+            	      	            current = createModelElementForParent(grammarAccess.getXOtherOperatorExpressionRule());
+            	      	        }
+            	             		set(
+            	             			current, 
+            	             			"rightOperand",
+            	              		lv_rightOperand_3_0, 
+            	              		"XAdditiveExpression");
+            	      	        afterParserOrEnumRuleCall();
+            	      	    
+            	    }
+
+            	    }
+
+
+            	    }
+
+
+            	    }
+            	    break;
+
+            	default :
+            	    break loop39;
+                }
+            } while (true);
+
+
+            }
+
+
+            }
+
+            if ( state.backtracking==0 ) {
+               leaveRule(); 
+            }
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleXOtherOperatorExpression"
+
+
+    // $ANTLR start "entryRuleOpOther"
+    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:2496:1: entryRuleOpOther returns [String current=null] : iv_ruleOpOther= ruleOpOther EOF ;
+    public final String entryRuleOpOther() throws RecognitionException {
+        String current = null;
+
+        AntlrDatatypeRuleToken iv_ruleOpOther = null;
+
+
+        try {
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:2497:2: (iv_ruleOpOther= ruleOpOther EOF )
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:2498:2: iv_ruleOpOther= ruleOpOther EOF
+            {
+            if ( state.backtracking==0 ) {
+               newCompositeNode(grammarAccess.getOpOtherRule()); 
+            }
+            pushFollow(FOLLOW_ruleOpOther_in_entryRuleOpOther6059);
+            iv_ruleOpOther=ruleOpOther();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+               current =iv_ruleOpOther.getText(); 
+            }
+            match(input,EOF,FOLLOW_EOF_in_entryRuleOpOther6070); if (state.failed) return current;
+
+            }
+
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleOpOther"
+
+
+    // $ANTLR start "ruleOpOther"
+    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:2505:1: ruleOpOther returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (kw= '->' | kw= '..<' | (kw= '>' kw= '..' ) | kw= '..' | kw= '=>' | (kw= '>' ( ( ( ( '>' '>' ) )=> (kw= '>' kw= '>' ) ) | kw= '>' ) ) | (kw= '<' ( ( ( ( '<' '<' ) )=> (kw= '<' kw= '<' ) ) | kw= '<' | kw= '=>' ) ) | kw= '<>' | kw= '?:' ) ;
+    public final AntlrDatatypeRuleToken ruleOpOther() throws RecognitionException {
+        AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();
+
+        Token kw=null;
+
+         enterRule(); 
+            
+        try {
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:2508:28: ( (kw= '->' | kw= '..<' | (kw= '>' kw= '..' ) | kw= '..' | kw= '=>' | (kw= '>' ( ( ( ( '>' '>' ) )=> (kw= '>' kw= '>' ) ) | kw= '>' ) ) | (kw= '<' ( ( ( ( '<' '<' ) )=> (kw= '<' kw= '<' ) ) | kw= '<' | kw= '=>' ) ) | kw= '<>' | kw= '?:' ) )
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:2509:1: (kw= '->' | kw= '..<' | (kw= '>' kw= '..' ) | kw= '..' | kw= '=>' | (kw= '>' ( ( ( ( '>' '>' ) )=> (kw= '>' kw= '>' ) ) | kw= '>' ) ) | (kw= '<' ( ( ( ( '<' '<' ) )=> (kw= '<' kw= '<' ) ) | kw= '<' | kw= '=>' ) ) | kw= '<>' | kw= '?:' )
+            {
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:2509:1: (kw= '->' | kw= '..<' | (kw= '>' kw= '..' ) | kw= '..' | kw= '=>' | (kw= '>' ( ( ( ( '>' '>' ) )=> (kw= '>' kw= '>' ) ) | kw= '>' ) ) | (kw= '<' ( ( ( ( '<' '<' ) )=> (kw= '<' kw= '<' ) ) | kw= '<' | kw= '=>' ) ) | kw= '<>' | kw= '?:' )
+            int alt42=9;
+            alt42 = dfa42.predict(input);
+            switch (alt42) {
+                case 1 :
+                    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:2510:2: kw= '->'
+                    {
+                    kw=(Token)match(input,59,FOLLOW_59_in_ruleOpOther6108); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                              current.merge(kw);
+                              newLeafNode(kw, grammarAccess.getOpOtherAccess().getHyphenMinusGreaterThanSignKeyword_0()); 
+                          
+                    }
+
+                    }
+                    break;
+                case 2 :
+                    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:2517:2: kw= '..<'
+                    {
+                    kw=(Token)match(input,60,FOLLOW_60_in_ruleOpOther6127); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                              current.merge(kw);
+                              newLeafNode(kw, grammarAccess.getOpOtherAccess().getFullStopFullStopLessThanSignKeyword_1()); 
+                          
+                    }
+
+                    }
+                    break;
+                case 3 :
+                    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:2523:6: (kw= '>' kw= '..' )
+                    {
+                    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:2523:6: (kw= '>' kw= '..' )
+                    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:2524:2: kw= '>' kw= '..'
+                    {
+                    kw=(Token)match(input,50,FOLLOW_50_in_ruleOpOther6147); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                              current.merge(kw);
+                              newLeafNode(kw, grammarAccess.getOpOtherAccess().getGreaterThanSignKeyword_2_0()); 
+                          
+                    }
+                    kw=(Token)match(input,61,FOLLOW_61_in_ruleOpOther6160); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                              current.merge(kw);
+                              newLeafNode(kw, grammarAccess.getOpOtherAccess().getFullStopFullStopKeyword_2_1()); 
+                          
+                    }
+
+                    }
+
+
+                    }
+                    break;
+                case 4 :
+                    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:2537:2: kw= '..'
+                    {
+                    kw=(Token)match(input,61,FOLLOW_61_in_ruleOpOther6180); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                              current.merge(kw);
+                              newLeafNode(kw, grammarAccess.getOpOtherAccess().getFullStopFullStopKeyword_3()); 
+                          
+                    }
+
+                    }
+                    break;
+                case 5 :
+                    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:2544:2: kw= '=>'
+                    {
+                    kw=(Token)match(input,62,FOLLOW_62_in_ruleOpOther6199); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                              current.merge(kw);
+                              newLeafNode(kw, grammarAccess.getOpOtherAccess().getEqualsSignGreaterThanSignKeyword_4()); 
+                          
+                    }
+
+                    }
+                    break;
+                case 6 :
+                    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:2550:6: (kw= '>' ( ( ( ( '>' '>' ) )=> (kw= '>' kw= '>' ) ) | kw= '>' ) )
+                    {
+                    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:2550:6: (kw= '>' ( ( ( ( '>' '>' ) )=> (kw= '>' kw= '>' ) ) | kw= '>' ) )
+                    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:2551:2: kw= '>' ( ( ( ( '>' '>' ) )=> (kw= '>' kw= '>' ) ) | kw= '>' )
+                    {
+                    kw=(Token)match(input,50,FOLLOW_50_in_ruleOpOther6219); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                              current.merge(kw);
+                              newLeafNode(kw, grammarAccess.getOpOtherAccess().getGreaterThanSignKeyword_5_0()); 
+                          
+                    }
+                    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:2556:1: ( ( ( ( '>' '>' ) )=> (kw= '>' kw= '>' ) ) | kw= '>' )
+                    int alt40=2;
+                    int LA40_0 = input.LA(1);
+
+                    if ( (LA40_0==50) ) {
+                        int LA40_1 = input.LA(2);
+
+                        if ( (LA40_1==EOF||(LA40_1>=RULE_ID && LA40_1<=RULE_DECIMAL)||LA40_1==14||LA40_1==33||LA40_1==37||(LA40_1>=41 && LA40_1<=42)||LA40_1==49||(LA40_1>=65 && LA40_1<=66)||LA40_1==70||LA40_1==78||LA40_1==80||(LA40_1>=84 && LA40_1<=86)||(LA40_1>=89 && LA40_1<=100)||LA40_1==102) ) {
+                            alt40=2;
+                        }
+                        else if ( (LA40_1==50) && (synpred15_InternalActionDSL())) {
+                            alt40=1;
+                        }
+                        else {
+                            if (state.backtracking>0) {state.failed=true; return current;}
+                            NoViableAltException nvae =
+                                new NoViableAltException("", 40, 1, input);
+
+                            throw nvae;
+                        }
+                    }
+                    else {
+                        if (state.backtracking>0) {state.failed=true; return current;}
+                        NoViableAltException nvae =
+                            new NoViableAltException("", 40, 0, input);
+
+                        throw nvae;
+                    }
+                    switch (alt40) {
+                        case 1 :
+                            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:2556:2: ( ( ( '>' '>' ) )=> (kw= '>' kw= '>' ) )
+                            {
+                            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:2556:2: ( ( ( '>' '>' ) )=> (kw= '>' kw= '>' ) )
+                            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:2556:3: ( ( '>' '>' ) )=> (kw= '>' kw= '>' )
+                            {
+                            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:2560:5: (kw= '>' kw= '>' )
+                            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:2561:2: kw= '>' kw= '>'
+                            {
+                            kw=(Token)match(input,50,FOLLOW_50_in_ruleOpOther6250); if (state.failed) return current;
+                            if ( state.backtracking==0 ) {
+
+                                      current.merge(kw);
+                                      newLeafNode(kw, grammarAccess.getOpOtherAccess().getGreaterThanSignKeyword_5_1_0_0_0()); 
+                                  
+                            }
+                            kw=(Token)match(input,50,FOLLOW_50_in_ruleOpOther6263); if (state.failed) return current;
+                            if ( state.backtracking==0 ) {
+
+                                      current.merge(kw);
+                                      newLeafNode(kw, grammarAccess.getOpOtherAccess().getGreaterThanSignKeyword_5_1_0_0_1()); 
+                                  
+                            }
+
+                            }
+
+
+                            }
+
+
+                            }
+                            break;
+                        case 2 :
+                            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:2574:2: kw= '>'
+                            {
+                            kw=(Token)match(input,50,FOLLOW_50_in_ruleOpOther6284); if (state.failed) return current;
+                            if ( state.backtracking==0 ) {
+
+                                      current.merge(kw);
+                                      newLeafNode(kw, grammarAccess.getOpOtherAccess().getGreaterThanSignKeyword_5_1_1()); 
+                                  
+                            }
+
+                            }
+                            break;
+
+                    }
+
+
+                    }
+
+
+                    }
+                    break;
+                case 7 :
+                    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:2580:6: (kw= '<' ( ( ( ( '<' '<' ) )=> (kw= '<' kw= '<' ) ) | kw= '<' | kw= '=>' ) )
+                    {
+                    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:2580:6: (kw= '<' ( ( ( ( '<' '<' ) )=> (kw= '<' kw= '<' ) ) | kw= '<' | kw= '=>' ) )
+                    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:2581:2: kw= '<' ( ( ( ( '<' '<' ) )=> (kw= '<' kw= '<' ) ) | kw= '<' | kw= '=>' )
+                    {
+                    kw=(Token)match(input,49,FOLLOW_49_in_ruleOpOther6306); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                              current.merge(kw);
+                              newLeafNode(kw, grammarAccess.getOpOtherAccess().getLessThanSignKeyword_6_0()); 
+                          
+                    }
+                    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:2586:1: ( ( ( ( '<' '<' ) )=> (kw= '<' kw= '<' ) ) | kw= '<' | kw= '=>' )
+                    int alt41=3;
+                    int LA41_0 = input.LA(1);
+
+                    if ( (LA41_0==49) ) {
+                        int LA41_1 = input.LA(2);
+
+                        if ( (synpred16_InternalActionDSL()) ) {
+                            alt41=1;
+                        }
+                        else if ( (true) ) {
+                            alt41=2;
+                        }
+                        else {
+                            if (state.backtracking>0) {state.failed=true; return current;}
+                            NoViableAltException nvae =
+                                new NoViableAltException("", 41, 1, input);
+
+                            throw nvae;
+                        }
+                    }
+                    else if ( (LA41_0==62) ) {
+                        alt41=3;
+                    }
+                    else {
+                        if (state.backtracking>0) {state.failed=true; return current;}
+                        NoViableAltException nvae =
+                            new NoViableAltException("", 41, 0, input);
+
+                        throw nvae;
+                    }
+                    switch (alt41) {
+                        case 1 :
+                            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:2586:2: ( ( ( '<' '<' ) )=> (kw= '<' kw= '<' ) )
+                            {
+                            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:2586:2: ( ( ( '<' '<' ) )=> (kw= '<' kw= '<' ) )
+                            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:2586:3: ( ( '<' '<' ) )=> (kw= '<' kw= '<' )
+                            {
+                            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:2590:5: (kw= '<' kw= '<' )
+                            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:2591:2: kw= '<' kw= '<'
+                            {
+                            kw=(Token)match(input,49,FOLLOW_49_in_ruleOpOther6337); if (state.failed) return current;
+                            if ( state.backtracking==0 ) {
+
+                                      current.merge(kw);
+                                      newLeafNode(kw, grammarAccess.getOpOtherAccess().getLessThanSignKeyword_6_1_0_0_0()); 
+                                  
+                            }
+                            kw=(Token)match(input,49,FOLLOW_49_in_ruleOpOther6350); if (state.failed) return current;
+                            if ( state.backtracking==0 ) {
+
+                                      current.merge(kw);
+                                      newLeafNode(kw, grammarAccess.getOpOtherAccess().getLessThanSignKeyword_6_1_0_0_1()); 
+                                  
+                            }
+
+                            }
+
+
+                            }
+
+
+                            }
+                            break;
+                        case 2 :
+                            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:2604:2: kw= '<'
+                            {
+                            kw=(Token)match(input,49,FOLLOW_49_in_ruleOpOther6371); if (state.failed) return current;
+                            if ( state.backtracking==0 ) {
+
+                                      current.merge(kw);
+                                      newLeafNode(kw, grammarAccess.getOpOtherAccess().getLessThanSignKeyword_6_1_1()); 
+                                  
+                            }
+
+                            }
+                            break;
+                        case 3 :
+                            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:2611:2: kw= '=>'
+                            {
+                            kw=(Token)match(input,62,FOLLOW_62_in_ruleOpOther6390); if (state.failed) return current;
+                            if ( state.backtracking==0 ) {
+
+                                      current.merge(kw);
+                                      newLeafNode(kw, grammarAccess.getOpOtherAccess().getEqualsSignGreaterThanSignKeyword_6_1_2()); 
+                                  
+                            }
+
+                            }
+                            break;
+
+                    }
+
+
+                    }
+
+
+                    }
+                    break;
+                case 8 :
+                    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:2618:2: kw= '<>'
+                    {
+                    kw=(Token)match(input,63,FOLLOW_63_in_ruleOpOther6411); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                              current.merge(kw);
+                              newLeafNode(kw, grammarAccess.getOpOtherAccess().getLessThanSignGreaterThanSignKeyword_7()); 
+                          
+                    }
+
+                    }
+                    break;
+                case 9 :
+                    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:2625:2: kw= '?:'
+                    {
+                    kw=(Token)match(input,64,FOLLOW_64_in_ruleOpOther6430); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                              current.merge(kw);
+                              newLeafNode(kw, grammarAccess.getOpOtherAccess().getQuestionMarkColonKeyword_8()); 
+                          
+                    }
+
+                    }
+                    break;
+
+            }
+
+
+            }
+
+            if ( state.backtracking==0 ) {
+               leaveRule(); 
+            }
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleOpOther"
+
+
+    // $ANTLR start "entryRuleXAdditiveExpression"
+    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:2638:1: entryRuleXAdditiveExpression returns [EObject current=null] : iv_ruleXAdditiveExpression= ruleXAdditiveExpression EOF ;
+    public final EObject entryRuleXAdditiveExpression() throws RecognitionException {
+        EObject current = null;
+
+        EObject iv_ruleXAdditiveExpression = null;
+
+
+        try {
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:2639:2: (iv_ruleXAdditiveExpression= ruleXAdditiveExpression EOF )
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:2640:2: iv_ruleXAdditiveExpression= ruleXAdditiveExpression EOF
+            {
+            if ( state.backtracking==0 ) {
+               newCompositeNode(grammarAccess.getXAdditiveExpressionRule()); 
+            }
+            pushFollow(FOLLOW_ruleXAdditiveExpression_in_entryRuleXAdditiveExpression6470);
+            iv_ruleXAdditiveExpression=ruleXAdditiveExpression();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+               current =iv_ruleXAdditiveExpression; 
+            }
+            match(input,EOF,FOLLOW_EOF_in_entryRuleXAdditiveExpression6480); if (state.failed) return current;
+
+            }
+
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleXAdditiveExpression"
+
+
+    // $ANTLR start "ruleXAdditiveExpression"
+    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:2647:1: ruleXAdditiveExpression returns [EObject current=null] : (this_XMultiplicativeExpression_0= ruleXMultiplicativeExpression ( ( ( ( () ( ( ruleOpAdd ) ) ) )=> ( () ( ( ruleOpAdd ) ) ) ) ( (lv_rightOperand_3_0= ruleXMultiplicativeExpression ) ) )* ) ;
+    public final EObject ruleXAdditiveExpression() throws RecognitionException {
+        EObject current = null;
+
+        EObject this_XMultiplicativeExpression_0 = null;
+
+        EObject lv_rightOperand_3_0 = null;
+
+
+         enterRule(); 
+            
+        try {
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:2650:28: ( (this_XMultiplicativeExpression_0= ruleXMultiplicativeExpression ( ( ( ( () ( ( ruleOpAdd ) ) ) )=> ( () ( ( ruleOpAdd ) ) ) ) ( (lv_rightOperand_3_0= ruleXMultiplicativeExpression ) ) )* ) )
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:2651:1: (this_XMultiplicativeExpression_0= ruleXMultiplicativeExpression ( ( ( ( () ( ( ruleOpAdd ) ) ) )=> ( () ( ( ruleOpAdd ) ) ) ) ( (lv_rightOperand_3_0= ruleXMultiplicativeExpression ) ) )* )
+            {
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:2651:1: (this_XMultiplicativeExpression_0= ruleXMultiplicativeExpression ( ( ( ( () ( ( ruleOpAdd ) ) ) )=> ( () ( ( ruleOpAdd ) ) ) ) ( (lv_rightOperand_3_0= ruleXMultiplicativeExpression ) ) )* )
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:2652:5: this_XMultiplicativeExpression_0= ruleXMultiplicativeExpression ( ( ( ( () ( ( ruleOpAdd ) ) ) )=> ( () ( ( ruleOpAdd ) ) ) ) ( (lv_rightOperand_3_0= ruleXMultiplicativeExpression ) ) )*
+            {
+            if ( state.backtracking==0 ) {
+               
+                      newCompositeNode(grammarAccess.getXAdditiveExpressionAccess().getXMultiplicativeExpressionParserRuleCall_0()); 
+                  
+            }
+            pushFollow(FOLLOW_ruleXMultiplicativeExpression_in_ruleXAdditiveExpression6527);
+            this_XMultiplicativeExpression_0=ruleXMultiplicativeExpression();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+               
+                      current = this_XMultiplicativeExpression_0; 
+                      afterParserOrEnumRuleCall();
+                  
+            }
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:2660:1: ( ( ( ( () ( ( ruleOpAdd ) ) ) )=> ( () ( ( ruleOpAdd ) ) ) ) ( (lv_rightOperand_3_0= ruleXMultiplicativeExpression ) ) )*
+            loop43:
+            do {
+                int alt43=2;
+                int LA43_0 = input.LA(1);
+
+                if ( (LA43_0==65) ) {
+                    int LA43_2 = input.LA(2);
+
+                    if ( (synpred17_InternalActionDSL()) ) {
+                        alt43=1;
+                    }
+
+
+                }
+                else if ( (LA43_0==66) ) {
+                    int LA43_3 = input.LA(2);
+
+                    if ( (synpred17_InternalActionDSL()) ) {
+                        alt43=1;
+                    }
+
+
+                }
+
+
+                switch (alt43) {
+            	case 1 :
+            	    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:2660:2: ( ( ( () ( ( ruleOpAdd ) ) ) )=> ( () ( ( ruleOpAdd ) ) ) ) ( (lv_rightOperand_3_0= ruleXMultiplicativeExpression ) )
+            	    {
+            	    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:2660:2: ( ( ( () ( ( ruleOpAdd ) ) ) )=> ( () ( ( ruleOpAdd ) ) ) )
+            	    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:2660:3: ( ( () ( ( ruleOpAdd ) ) ) )=> ( () ( ( ruleOpAdd ) ) )
+            	    {
+            	    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:2665:6: ( () ( ( ruleOpAdd ) ) )
+            	    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:2665:7: () ( ( ruleOpAdd ) )
+            	    {
+            	    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:2665:7: ()
+            	    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:2666:5: 
+            	    {
+            	    if ( state.backtracking==0 ) {
+
+            	              current = forceCreateModelElementAndSet(
+            	                  grammarAccess.getXAdditiveExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0(),
+            	                  current);
+            	          
+            	    }
+
+            	    }
+
+            	    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:2671:2: ( ( ruleOpAdd ) )
+            	    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:2672:1: ( ruleOpAdd )
+            	    {
+            	    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:2672:1: ( ruleOpAdd )
+            	    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:2673:3: ruleOpAdd
+            	    {
+            	    if ( state.backtracking==0 ) {
+
+            	      			if (current==null) {
+            	      	            current = createModelElement(grammarAccess.getXAdditiveExpressionRule());
+            	      	        }
+            	              
+            	    }
+            	    if ( state.backtracking==0 ) {
+            	       
+            	      	        newCompositeNode(grammarAccess.getXAdditiveExpressionAccess().getFeatureJvmIdentifiableElementCrossReference_1_0_0_1_0()); 
+            	      	    
+            	    }
+            	    pushFollow(FOLLOW_ruleOpAdd_in_ruleXAdditiveExpression6580);
+            	    ruleOpAdd();
+
+            	    state._fsp--;
+            	    if (state.failed) return current;
+            	    if ( state.backtracking==0 ) {
+            	       
+            	      	        afterParserOrEnumRuleCall();
+            	      	    
+            	    }
+
+            	    }
+
+
+            	    }
+
+
+            	    }
+
+
+            	    }
+
+            	    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:2686:4: ( (lv_rightOperand_3_0= ruleXMultiplicativeExpression ) )
+            	    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:2687:1: (lv_rightOperand_3_0= ruleXMultiplicativeExpression )
+            	    {
+            	    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:2687:1: (lv_rightOperand_3_0= ruleXMultiplicativeExpression )
+            	    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:2688:3: lv_rightOperand_3_0= ruleXMultiplicativeExpression
+            	    {
+            	    if ( state.backtracking==0 ) {
+            	       
+            	      	        newCompositeNode(grammarAccess.getXAdditiveExpressionAccess().getRightOperandXMultiplicativeExpressionParserRuleCall_1_1_0()); 
+            	      	    
+            	    }
+            	    pushFollow(FOLLOW_ruleXMultiplicativeExpression_in_ruleXAdditiveExpression6603);
+            	    lv_rightOperand_3_0=ruleXMultiplicativeExpression();
+
+            	    state._fsp--;
+            	    if (state.failed) return current;
+            	    if ( state.backtracking==0 ) {
+
+            	      	        if (current==null) {
+            	      	            current = createModelElementForParent(grammarAccess.getXAdditiveExpressionRule());
+            	      	        }
+            	             		set(
+            	             			current, 
+            	             			"rightOperand",
+            	              		lv_rightOperand_3_0, 
+            	              		"XMultiplicativeExpression");
+            	      	        afterParserOrEnumRuleCall();
+            	      	    
+            	    }
+
+            	    }
+
+
+            	    }
+
+
+            	    }
+            	    break;
+
+            	default :
+            	    break loop43;
+                }
+            } while (true);
+
+
+            }
+
+
+            }
+
+            if ( state.backtracking==0 ) {
+               leaveRule(); 
+            }
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleXAdditiveExpression"
+
+
+    // $ANTLR start "entryRuleOpAdd"
+    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:2712:1: entryRuleOpAdd returns [String current=null] : iv_ruleOpAdd= ruleOpAdd EOF ;
+    public final String entryRuleOpAdd() throws RecognitionException {
+        String current = null;
+
+        AntlrDatatypeRuleToken iv_ruleOpAdd = null;
+
+
+        try {
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:2713:2: (iv_ruleOpAdd= ruleOpAdd EOF )
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:2714:2: iv_ruleOpAdd= ruleOpAdd EOF
+            {
+            if ( state.backtracking==0 ) {
+               newCompositeNode(grammarAccess.getOpAddRule()); 
+            }
+            pushFollow(FOLLOW_ruleOpAdd_in_entryRuleOpAdd6642);
+            iv_ruleOpAdd=ruleOpAdd();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+               current =iv_ruleOpAdd.getText(); 
+            }
+            match(input,EOF,FOLLOW_EOF_in_entryRuleOpAdd6653); if (state.failed) return current;
+
+            }
+
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleOpAdd"
+
+
+    // $ANTLR start "ruleOpAdd"
+    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:2721:1: ruleOpAdd returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (kw= '+' | kw= '-' ) ;
+    public final AntlrDatatypeRuleToken ruleOpAdd() throws RecognitionException {
+        AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();
+
+        Token kw=null;
+
+         enterRule(); 
+            
+        try {
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:2724:28: ( (kw= '+' | kw= '-' ) )
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:2725:1: (kw= '+' | kw= '-' )
+            {
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:2725:1: (kw= '+' | kw= '-' )
+            int alt44=2;
+            int LA44_0 = input.LA(1);
+
+            if ( (LA44_0==65) ) {
+                alt44=1;
+            }
+            else if ( (LA44_0==66) ) {
+                alt44=2;
+            }
+            else {
+                if (state.backtracking>0) {state.failed=true; return current;}
+                NoViableAltException nvae =
+                    new NoViableAltException("", 44, 0, input);
+
+                throw nvae;
+            }
+            switch (alt44) {
+                case 1 :
+                    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:2726:2: kw= '+'
+                    {
+                    kw=(Token)match(input,65,FOLLOW_65_in_ruleOpAdd6691); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                              current.merge(kw);
+                              newLeafNode(kw, grammarAccess.getOpAddAccess().getPlusSignKeyword_0()); 
+                          
+                    }
+
+                    }
+                    break;
+                case 2 :
+                    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:2733:2: kw= '-'
+                    {
+                    kw=(Token)match(input,66,FOLLOW_66_in_ruleOpAdd6710); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                              current.merge(kw);
+                              newLeafNode(kw, grammarAccess.getOpAddAccess().getHyphenMinusKeyword_1()); 
+                          
+                    }
+
+                    }
+                    break;
+
+            }
+
+
+            }
+
+            if ( state.backtracking==0 ) {
+               leaveRule(); 
+            }
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleOpAdd"
+
+
+    // $ANTLR start "entryRuleXMultiplicativeExpression"
+    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:2746:1: entryRuleXMultiplicativeExpression returns [EObject current=null] : iv_ruleXMultiplicativeExpression= ruleXMultiplicativeExpression EOF ;
+    public final EObject entryRuleXMultiplicativeExpression() throws RecognitionException {
+        EObject current = null;
+
+        EObject iv_ruleXMultiplicativeExpression = null;
+
+
+        try {
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:2747:2: (iv_ruleXMultiplicativeExpression= ruleXMultiplicativeExpression EOF )
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:2748:2: iv_ruleXMultiplicativeExpression= ruleXMultiplicativeExpression EOF
+            {
+            if ( state.backtracking==0 ) {
+               newCompositeNode(grammarAccess.getXMultiplicativeExpressionRule()); 
+            }
+            pushFollow(FOLLOW_ruleXMultiplicativeExpression_in_entryRuleXMultiplicativeExpression6750);
+            iv_ruleXMultiplicativeExpression=ruleXMultiplicativeExpression();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+               current =iv_ruleXMultiplicativeExpression; 
+            }
+            match(input,EOF,FOLLOW_EOF_in_entryRuleXMultiplicativeExpression6760); if (state.failed) return current;
+
+            }
+
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleXMultiplicativeExpression"
+
+
+    // $ANTLR start "ruleXMultiplicativeExpression"
+    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:2755:1: ruleXMultiplicativeExpression returns [EObject current=null] : (this_XUnaryOperation_0= ruleXUnaryOperation ( ( ( ( () ( ( ruleOpMulti ) ) ) )=> ( () ( ( ruleOpMulti ) ) ) ) ( (lv_rightOperand_3_0= ruleXUnaryOperation ) ) )* ) ;
+    public final EObject ruleXMultiplicativeExpression() throws RecognitionException {
+        EObject current = null;
+
+        EObject this_XUnaryOperation_0 = null;
+
+        EObject lv_rightOperand_3_0 = null;
+
+
+         enterRule(); 
+            
+        try {
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:2758:28: ( (this_XUnaryOperation_0= ruleXUnaryOperation ( ( ( ( () ( ( ruleOpMulti ) ) ) )=> ( () ( ( ruleOpMulti ) ) ) ) ( (lv_rightOperand_3_0= ruleXUnaryOperation ) ) )* ) )
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:2759:1: (this_XUnaryOperation_0= ruleXUnaryOperation ( ( ( ( () ( ( ruleOpMulti ) ) ) )=> ( () ( ( ruleOpMulti ) ) ) ) ( (lv_rightOperand_3_0= ruleXUnaryOperation ) ) )* )
+            {
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:2759:1: (this_XUnaryOperation_0= ruleXUnaryOperation ( ( ( ( () ( ( ruleOpMulti ) ) ) )=> ( () ( ( ruleOpMulti ) ) ) ) ( (lv_rightOperand_3_0= ruleXUnaryOperation ) ) )* )
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:2760:5: this_XUnaryOperation_0= ruleXUnaryOperation ( ( ( ( () ( ( ruleOpMulti ) ) ) )=> ( () ( ( ruleOpMulti ) ) ) ) ( (lv_rightOperand_3_0= ruleXUnaryOperation ) ) )*
+            {
+            if ( state.backtracking==0 ) {
+               
+                      newCompositeNode(grammarAccess.getXMultiplicativeExpressionAccess().getXUnaryOperationParserRuleCall_0()); 
+                  
+            }
+            pushFollow(FOLLOW_ruleXUnaryOperation_in_ruleXMultiplicativeExpression6807);
+            this_XUnaryOperation_0=ruleXUnaryOperation();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+               
+                      current = this_XUnaryOperation_0; 
+                      afterParserOrEnumRuleCall();
+                  
+            }
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:2768:1: ( ( ( ( () ( ( ruleOpMulti ) ) ) )=> ( () ( ( ruleOpMulti ) ) ) ) ( (lv_rightOperand_3_0= ruleXUnaryOperation ) ) )*
+            loop45:
+            do {
+                int alt45=2;
+                switch ( input.LA(1) ) {
+                case 35:
+                    {
+                    int LA45_2 = input.LA(2);
+
+                    if ( (synpred18_InternalActionDSL()) ) {
+                        alt45=1;
+                    }
+
+
+                    }
+                    break;
+                case 67:
+                    {
+                    int LA45_3 = input.LA(2);
+
+                    if ( (synpred18_InternalActionDSL()) ) {
+                        alt45=1;
+                    }
+
+
+                    }
+                    break;
+                case 68:
+                    {
+                    int LA45_4 = input.LA(2);
+
+                    if ( (synpred18_InternalActionDSL()) ) {
+                        alt45=1;
+                    }
+
+
+                    }
+                    break;
+                case 69:
+                    {
+                    int LA45_5 = input.LA(2);
+
+                    if ( (synpred18_InternalActionDSL()) ) {
+                        alt45=1;
+                    }
+
+
+                    }
+                    break;
+
+                }
+
+                switch (alt45) {
+            	case 1 :
+            	    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:2768:2: ( ( ( () ( ( ruleOpMulti ) ) ) )=> ( () ( ( ruleOpMulti ) ) ) ) ( (lv_rightOperand_3_0= ruleXUnaryOperation ) )
+            	    {
+            	    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:2768:2: ( ( ( () ( ( ruleOpMulti ) ) ) )=> ( () ( ( ruleOpMulti ) ) ) )
+            	    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:2768:3: ( ( () ( ( ruleOpMulti ) ) ) )=> ( () ( ( ruleOpMulti ) ) )
+            	    {
+            	    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:2773:6: ( () ( ( ruleOpMulti ) ) )
+            	    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:2773:7: () ( ( ruleOpMulti ) )
+            	    {
+            	    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:2773:7: ()
+            	    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:2774:5: 
+            	    {
+            	    if ( state.backtracking==0 ) {
+
+            	              current = forceCreateModelElementAndSet(
+            	                  grammarAccess.getXMultiplicativeExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0(),
+            	                  current);
+            	          
+            	    }
+
+            	    }
+
+            	    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:2779:2: ( ( ruleOpMulti ) )
+            	    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:2780:1: ( ruleOpMulti )
+            	    {
+            	    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:2780:1: ( ruleOpMulti )
+            	    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:2781:3: ruleOpMulti
+            	    {
+            	    if ( state.backtracking==0 ) {
+
+            	      			if (current==null) {
+            	      	            current = createModelElement(grammarAccess.getXMultiplicativeExpressionRule());
+            	      	        }
+            	              
+            	    }
+            	    if ( state.backtracking==0 ) {
+            	       
+            	      	        newCompositeNode(grammarAccess.getXMultiplicativeExpressionAccess().getFeatureJvmIdentifiableElementCrossReference_1_0_0_1_0()); 
+            	      	    
+            	    }
+            	    pushFollow(FOLLOW_ruleOpMulti_in_ruleXMultiplicativeExpression6860);
+            	    ruleOpMulti();
+
+            	    state._fsp--;
+            	    if (state.failed) return current;
+            	    if ( state.backtracking==0 ) {
+            	       
+            	      	        afterParserOrEnumRuleCall();
+            	      	    
+            	    }
+
+            	    }
+
+
+            	    }
+
+
+            	    }
+
+
+            	    }
+
+            	    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:2794:4: ( (lv_rightOperand_3_0= ruleXUnaryOperation ) )
+            	    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:2795:1: (lv_rightOperand_3_0= ruleXUnaryOperation )
+            	    {
+            	    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:2795:1: (lv_rightOperand_3_0= ruleXUnaryOperation )
+            	    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:2796:3: lv_rightOperand_3_0= ruleXUnaryOperation
+            	    {
+            	    if ( state.backtracking==0 ) {
+            	       
+            	      	        newCompositeNode(grammarAccess.getXMultiplicativeExpressionAccess().getRightOperandXUnaryOperationParserRuleCall_1_1_0()); 
+            	      	    
+            	    }
+            	    pushFollow(FOLLOW_ruleXUnaryOperation_in_ruleXMultiplicativeExpression6883);
+            	    lv_rightOperand_3_0=ruleXUnaryOperation();
+
+            	    state._fsp--;
+            	    if (state.failed) return current;
+            	    if ( state.backtracking==0 ) {
+
+            	      	        if (current==null) {
+            	      	            current = createModelElementForParent(grammarAccess.getXMultiplicativeExpressionRule());
+            	      	        }
+            	             		set(
+            	             			current, 
+            	             			"rightOperand",
+            	              		lv_rightOperand_3_0, 
+            	              		"XUnaryOperation");
+            	      	        afterParserOrEnumRuleCall();
+            	      	    
+            	    }
+
+            	    }
+
+
+            	    }
+
+
+            	    }
+            	    break;
+
+            	default :
+            	    break loop45;
+                }
+            } while (true);
+
+
+            }
+
+
+            }
+
+            if ( state.backtracking==0 ) {
+               leaveRule(); 
+            }
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleXMultiplicativeExpression"
+
+
+    // $ANTLR start "entryRuleOpMulti"
+    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:2820:1: entryRuleOpMulti returns [String current=null] : iv_ruleOpMulti= ruleOpMulti EOF ;
+    public final String entryRuleOpMulti() throws RecognitionException {
+        String current = null;
+
+        AntlrDatatypeRuleToken iv_ruleOpMulti = null;
+
+
+        try {
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:2821:2: (iv_ruleOpMulti= ruleOpMulti EOF )
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:2822:2: iv_ruleOpMulti= ruleOpMulti EOF
+            {
+            if ( state.backtracking==0 ) {
+               newCompositeNode(grammarAccess.getOpMultiRule()); 
+            }
+            pushFollow(FOLLOW_ruleOpMulti_in_entryRuleOpMulti6922);
+            iv_ruleOpMulti=ruleOpMulti();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+               current =iv_ruleOpMulti.getText(); 
+            }
+            match(input,EOF,FOLLOW_EOF_in_entryRuleOpMulti6933); if (state.failed) return current;
+
+            }
+
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleOpMulti"
+
+
+    // $ANTLR start "ruleOpMulti"
+    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:2829:1: ruleOpMulti returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (kw= '*' | kw= '**' | kw= '/' | kw= '%' ) ;
+    public final AntlrDatatypeRuleToken ruleOpMulti() throws RecognitionException {
+        AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();
+
+        Token kw=null;
+
+         enterRule(); 
+            
+        try {
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:2832:28: ( (kw= '*' | kw= '**' | kw= '/' | kw= '%' ) )
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:2833:1: (kw= '*' | kw= '**' | kw= '/' | kw= '%' )
+            {
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:2833:1: (kw= '*' | kw= '**' | kw= '/' | kw= '%' )
+            int alt46=4;
+            switch ( input.LA(1) ) {
+            case 35:
+                {
+                alt46=1;
+                }
+                break;
+            case 67:
+                {
+                alt46=2;
+                }
+                break;
+            case 68:
+                {
+                alt46=3;
+                }
+                break;
+            case 69:
+                {
+                alt46=4;
+                }
+                break;
+            default:
+                if (state.backtracking>0) {state.failed=true; return current;}
+                NoViableAltException nvae =
+                    new NoViableAltException("", 46, 0, input);
+
+                throw nvae;
+            }
+
+            switch (alt46) {
+                case 1 :
+                    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:2834:2: kw= '*'
+                    {
+                    kw=(Token)match(input,35,FOLLOW_35_in_ruleOpMulti6971); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                              current.merge(kw);
+                              newLeafNode(kw, grammarAccess.getOpMultiAccess().getAsteriskKeyword_0()); 
+                          
+                    }
+
+                    }
+                    break;
+                case 2 :
+                    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:2841:2: kw= '**'
+                    {
+                    kw=(Token)match(input,67,FOLLOW_67_in_ruleOpMulti6990); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                              current.merge(kw);
+                              newLeafNode(kw, grammarAccess.getOpMultiAccess().getAsteriskAsteriskKeyword_1()); 
+                          
+                    }
+
+                    }
+                    break;
+                case 3 :
+                    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:2848:2: kw= '/'
+                    {
+                    kw=(Token)match(input,68,FOLLOW_68_in_ruleOpMulti7009); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                              current.merge(kw);
+                              newLeafNode(kw, grammarAccess.getOpMultiAccess().getSolidusKeyword_2()); 
+                          
+                    }
+
+                    }
+                    break;
+                case 4 :
+                    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:2855:2: kw= '%'
+                    {
+                    kw=(Token)match(input,69,FOLLOW_69_in_ruleOpMulti7028); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                              current.merge(kw);
+                              newLeafNode(kw, grammarAccess.getOpMultiAccess().getPercentSignKeyword_3()); 
+                          
+                    }
+
+                    }
+                    break;
+
+            }
+
+
+            }
+
+            if ( state.backtracking==0 ) {
+               leaveRule(); 
+            }
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleOpMulti"
+
+
+    // $ANTLR start "entryRuleXUnaryOperation"
+    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:2868:1: entryRuleXUnaryOperation returns [EObject current=null] : iv_ruleXUnaryOperation= ruleXUnaryOperation EOF ;
+    public final EObject entryRuleXUnaryOperation() throws RecognitionException {
+        EObject current = null;
+
+        EObject iv_ruleXUnaryOperation = null;
+
+
+        try {
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:2869:2: (iv_ruleXUnaryOperation= ruleXUnaryOperation EOF )
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:2870:2: iv_ruleXUnaryOperation= ruleXUnaryOperation EOF
+            {
+            if ( state.backtracking==0 ) {
+               newCompositeNode(grammarAccess.getXUnaryOperationRule()); 
+            }
+            pushFollow(FOLLOW_ruleXUnaryOperation_in_entryRuleXUnaryOperation7068);
+            iv_ruleXUnaryOperation=ruleXUnaryOperation();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+               current =iv_ruleXUnaryOperation; 
+            }
+            match(input,EOF,FOLLOW_EOF_in_entryRuleXUnaryOperation7078); if (state.failed) return current;
+
+            }
+
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleXUnaryOperation"
+
+
+    // $ANTLR start "ruleXUnaryOperation"
+    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:2877:1: ruleXUnaryOperation returns [EObject current=null] : ( ( () ( ( ruleOpUnary ) ) ( (lv_operand_2_0= ruleXUnaryOperation ) ) ) | this_XCastedExpression_3= ruleXCastedExpression ) ;
+    public final EObject ruleXUnaryOperation() throws RecognitionException {
+        EObject current = null;
+
+        EObject lv_operand_2_0 = null;
+
+        EObject this_XCastedExpression_3 = null;
+
+
+         enterRule(); 
+            
+        try {
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:2880:28: ( ( ( () ( ( ruleOpUnary ) ) ( (lv_operand_2_0= ruleXUnaryOperation ) ) ) | this_XCastedExpression_3= ruleXCastedExpression ) )
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:2881:1: ( ( () ( ( ruleOpUnary ) ) ( (lv_operand_2_0= ruleXUnaryOperation ) ) ) | this_XCastedExpression_3= ruleXCastedExpression )
+            {
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:2881:1: ( ( () ( ( ruleOpUnary ) ) ( (lv_operand_2_0= ruleXUnaryOperation ) ) ) | this_XCastedExpression_3= ruleXCastedExpression )
+            int alt47=2;
+            int LA47_0 = input.LA(1);
+
+            if ( ((LA47_0>=65 && LA47_0<=66)||LA47_0==70) ) {
+                alt47=1;
+            }
+            else if ( ((LA47_0>=RULE_ID && LA47_0<=RULE_DECIMAL)||LA47_0==14||LA47_0==33||LA47_0==37||(LA47_0>=41 && LA47_0<=42)||LA47_0==49||LA47_0==78||LA47_0==80||(LA47_0>=84 && LA47_0<=86)||(LA47_0>=89 && LA47_0<=100)||LA47_0==102) ) {
+                alt47=2;
+            }
+            else {
+                if (state.backtracking>0) {state.failed=true; return current;}
+                NoViableAltException nvae =
+                    new NoViableAltException("", 47, 0, input);
+
+                throw nvae;
+            }
+            switch (alt47) {
+                case 1 :
+                    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:2881:2: ( () ( ( ruleOpUnary ) ) ( (lv_operand_2_0= ruleXUnaryOperation ) ) )
+                    {
+                    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:2881:2: ( () ( ( ruleOpUnary ) ) ( (lv_operand_2_0= ruleXUnaryOperation ) ) )
+                    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:2881:3: () ( ( ruleOpUnary ) ) ( (lv_operand_2_0= ruleXUnaryOperation ) )
+                    {
+                    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:2881:3: ()
+                    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:2882:5: 
+                    {
+                    if ( state.backtracking==0 ) {
+
+                              current = forceCreateModelElement(
+                                  grammarAccess.getXUnaryOperationAccess().getXUnaryOperationAction_0_0(),
+                                  current);
+                          
+                    }
+
+                    }
+
+                    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:2887:2: ( ( ruleOpUnary ) )
+                    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:2888:1: ( ruleOpUnary )
+                    {
+                    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:2888:1: ( ruleOpUnary )
+                    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:2889:3: ruleOpUnary
+                    {
+                    if ( state.backtracking==0 ) {
+
+                      			if (current==null) {
+                      	            current = createModelElement(grammarAccess.getXUnaryOperationRule());
+                      	        }
+                              
+                    }
+                    if ( state.backtracking==0 ) {
+                       
+                      	        newCompositeNode(grammarAccess.getXUnaryOperationAccess().getFeatureJvmIdentifiableElementCrossReference_0_1_0()); 
+                      	    
+                    }
+                    pushFollow(FOLLOW_ruleOpUnary_in_ruleXUnaryOperation7136);
+                    ruleOpUnary();
+
+                    state._fsp--;
+                    if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+                       
+                      	        afterParserOrEnumRuleCall();
+                      	    
+                    }
+
+                    }
+
+
+                    }
+
+                    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:2902:2: ( (lv_operand_2_0= ruleXUnaryOperation ) )
+                    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:2903:1: (lv_operand_2_0= ruleXUnaryOperation )
+                    {
+                    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:2903:1: (lv_operand_2_0= ruleXUnaryOperation )
+                    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:2904:3: lv_operand_2_0= ruleXUnaryOperation
+                    {
+                    if ( state.backtracking==0 ) {
+                       
+                      	        newCompositeNode(grammarAccess.getXUnaryOperationAccess().getOperandXUnaryOperationParserRuleCall_0_2_0()); 
+                      	    
+                    }
+                    pushFollow(FOLLOW_ruleXUnaryOperation_in_ruleXUnaryOperation7157);
+                    lv_operand_2_0=ruleXUnaryOperation();
+
+                    state._fsp--;
+                    if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                      	        if (current==null) {
+                      	            current = createModelElementForParent(grammarAccess.getXUnaryOperationRule());
+                      	        }
+                             		set(
+                             			current, 
+                             			"operand",
+                              		lv_operand_2_0, 
+                              		"XUnaryOperation");
+                      	        afterParserOrEnumRuleCall();
+                      	    
+                    }
+
+                    }
+
+
+                    }
+
+
+                    }
+
+
+                    }
+                    break;
+                case 2 :
+                    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:2922:5: this_XCastedExpression_3= ruleXCastedExpression
+                    {
+                    if ( state.backtracking==0 ) {
+                       
+                              newCompositeNode(grammarAccess.getXUnaryOperationAccess().getXCastedExpressionParserRuleCall_1()); 
+                          
+                    }
+                    pushFollow(FOLLOW_ruleXCastedExpression_in_ruleXUnaryOperation7186);
+                    this_XCastedExpression_3=ruleXCastedExpression();
+
+                    state._fsp--;
+                    if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+                       
+                              current = this_XCastedExpression_3; 
+                              afterParserOrEnumRuleCall();
+                          
+                    }
+
+                    }
+                    break;
+
+            }
+
+
+            }
+
+            if ( state.backtracking==0 ) {
+               leaveRule(); 
+            }
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleXUnaryOperation"
+
+
+    // $ANTLR start "entryRuleOpUnary"
+    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:2938:1: entryRuleOpUnary returns [String current=null] : iv_ruleOpUnary= ruleOpUnary EOF ;
+    public final String entryRuleOpUnary() throws RecognitionException {
+        String current = null;
+
+        AntlrDatatypeRuleToken iv_ruleOpUnary = null;
+
+
+        try {
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:2939:2: (iv_ruleOpUnary= ruleOpUnary EOF )
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:2940:2: iv_ruleOpUnary= ruleOpUnary EOF
+            {
+            if ( state.backtracking==0 ) {
+               newCompositeNode(grammarAccess.getOpUnaryRule()); 
+            }
+            pushFollow(FOLLOW_ruleOpUnary_in_entryRuleOpUnary7222);
+            iv_ruleOpUnary=ruleOpUnary();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+               current =iv_ruleOpUnary.getText(); 
+            }
+            match(input,EOF,FOLLOW_EOF_in_entryRuleOpUnary7233); if (state.failed) return current;
+
+            }
+
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleOpUnary"
+
+
+    // $ANTLR start "ruleOpUnary"
+    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:2947:1: ruleOpUnary returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (kw= '!' | kw= '-' | kw= '+' ) ;
+    public final AntlrDatatypeRuleToken ruleOpUnary() throws RecognitionException {
+        AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();
+
+        Token kw=null;
+
+         enterRule(); 
+            
+        try {
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:2950:28: ( (kw= '!' | kw= '-' | kw= '+' ) )
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:2951:1: (kw= '!' | kw= '-' | kw= '+' )
+            {
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:2951:1: (kw= '!' | kw= '-' | kw= '+' )
+            int alt48=3;
+            switch ( input.LA(1) ) {
+            case 70:
+                {
+                alt48=1;
+                }
+                break;
+            case 66:
+                {
+                alt48=2;
+                }
+                break;
+            case 65:
+                {
+                alt48=3;
+                }
+                break;
+            default:
+                if (state.backtracking>0) {state.failed=true; return current;}
+                NoViableAltException nvae =
+                    new NoViableAltException("", 48, 0, input);
+
+                throw nvae;
+            }
+
+            switch (alt48) {
+                case 1 :
+                    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:2952:2: kw= '!'
+                    {
+                    kw=(Token)match(input,70,FOLLOW_70_in_ruleOpUnary7271); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                              current.merge(kw);
+                              newLeafNode(kw, grammarAccess.getOpUnaryAccess().getExclamationMarkKeyword_0()); 
+                          
+                    }
+
+                    }
+                    break;
+                case 2 :
+                    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:2959:2: kw= '-'
+                    {
+                    kw=(Token)match(input,66,FOLLOW_66_in_ruleOpUnary7290); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                              current.merge(kw);
+                              newLeafNode(kw, grammarAccess.getOpUnaryAccess().getHyphenMinusKeyword_1()); 
+                          
+                    }
+
+                    }
+                    break;
+                case 3 :
+                    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:2966:2: kw= '+'
+                    {
+                    kw=(Token)match(input,65,FOLLOW_65_in_ruleOpUnary7309); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                              current.merge(kw);
+                              newLeafNode(kw, grammarAccess.getOpUnaryAccess().getPlusSignKeyword_2()); 
+                          
+                    }
+
+                    }
+                    break;
+
+            }
+
+
+            }
+
+            if ( state.backtracking==0 ) {
+               leaveRule(); 
+            }
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleOpUnary"
+
+
+    // $ANTLR start "entryRuleXCastedExpression"
+    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:2979:1: entryRuleXCastedExpression returns [EObject current=null] : iv_ruleXCastedExpression= ruleXCastedExpression EOF ;
+    public final EObject entryRuleXCastedExpression() throws RecognitionException {
+        EObject current = null;
+
+        EObject iv_ruleXCastedExpression = null;
+
+
+        try {
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:2980:2: (iv_ruleXCastedExpression= ruleXCastedExpression EOF )
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:2981:2: iv_ruleXCastedExpression= ruleXCastedExpression EOF
+            {
+            if ( state.backtracking==0 ) {
+               newCompositeNode(grammarAccess.getXCastedExpressionRule()); 
+            }
+            pushFollow(FOLLOW_ruleXCastedExpression_in_entryRuleXCastedExpression7349);
+            iv_ruleXCastedExpression=ruleXCastedExpression();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+               current =iv_ruleXCastedExpression; 
+            }
+            match(input,EOF,FOLLOW_EOF_in_entryRuleXCastedExpression7359); if (state.failed) return current;
+
+            }
+
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleXCastedExpression"
+
+
+    // $ANTLR start "ruleXCastedExpression"
+    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:2988:1: ruleXCastedExpression returns [EObject current=null] : (this_XPostfixOperation_0= ruleXPostfixOperation ( ( ( ( () 'as' ) )=> ( () otherlv_2= 'as' ) ) ( (lv_type_3_0= ruleJvmTypeReference ) ) )* ) ;
+    public final EObject ruleXCastedExpression() throws RecognitionException {
+        EObject current = null;
+
+        Token otherlv_2=null;
+        EObject this_XPostfixOperation_0 = null;
+
+        EObject lv_type_3_0 = null;
+
+
+         enterRule(); 
+            
+        try {
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:2991:28: ( (this_XPostfixOperation_0= ruleXPostfixOperation ( ( ( ( () 'as' ) )=> ( () otherlv_2= 'as' ) ) ( (lv_type_3_0= ruleJvmTypeReference ) ) )* ) )
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:2992:1: (this_XPostfixOperation_0= ruleXPostfixOperation ( ( ( ( () 'as' ) )=> ( () otherlv_2= 'as' ) ) ( (lv_type_3_0= ruleJvmTypeReference ) ) )* )
+            {
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:2992:1: (this_XPostfixOperation_0= ruleXPostfixOperation ( ( ( ( () 'as' ) )=> ( () otherlv_2= 'as' ) ) ( (lv_type_3_0= ruleJvmTypeReference ) ) )* )
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:2993:5: this_XPostfixOperation_0= ruleXPostfixOperation ( ( ( ( () 'as' ) )=> ( () otherlv_2= 'as' ) ) ( (lv_type_3_0= ruleJvmTypeReference ) ) )*
+            {
+            if ( state.backtracking==0 ) {
+               
+                      newCompositeNode(grammarAccess.getXCastedExpressionAccess().getXPostfixOperationParserRuleCall_0()); 
+                  
+            }
+            pushFollow(FOLLOW_ruleXPostfixOperation_in_ruleXCastedExpression7406);
+            this_XPostfixOperation_0=ruleXPostfixOperation();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+               
+                      current = this_XPostfixOperation_0; 
+                      afterParserOrEnumRuleCall();
+                  
+            }
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:3001:1: ( ( ( ( () 'as' ) )=> ( () otherlv_2= 'as' ) ) ( (lv_type_3_0= ruleJvmTypeReference ) ) )*
+            loop49:
+            do {
+                int alt49=2;
+                int LA49_0 = input.LA(1);
+
+                if ( (LA49_0==71) ) {
+                    int LA49_2 = input.LA(2);
+
+                    if ( (synpred19_InternalActionDSL()) ) {
+                        alt49=1;
+                    }
+
+
+                }
+
+
+                switch (alt49) {
+            	case 1 :
+            	    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:3001:2: ( ( ( () 'as' ) )=> ( () otherlv_2= 'as' ) ) ( (lv_type_3_0= ruleJvmTypeReference ) )
+            	    {
+            	    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:3001:2: ( ( ( () 'as' ) )=> ( () otherlv_2= 'as' ) )
+            	    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:3001:3: ( ( () 'as' ) )=> ( () otherlv_2= 'as' )
+            	    {
+            	    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:3003:5: ( () otherlv_2= 'as' )
+            	    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:3003:6: () otherlv_2= 'as'
+            	    {
+            	    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:3003:6: ()
+            	    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:3004:5: 
+            	    {
+            	    if ( state.backtracking==0 ) {
+
+            	              current = forceCreateModelElementAndSet(
+            	                  grammarAccess.getXCastedExpressionAccess().getXCastedExpressionTargetAction_1_0_0_0(),
+            	                  current);
+            	          
+            	    }
+
+            	    }
+
+            	    otherlv_2=(Token)match(input,71,FOLLOW_71_in_ruleXCastedExpression7441); if (state.failed) return current;
+            	    if ( state.backtracking==0 ) {
+
+            	          	newLeafNode(otherlv_2, grammarAccess.getXCastedExpressionAccess().getAsKeyword_1_0_0_1());
+            	          
+            	    }
+
+            	    }
+
+
+            	    }
+
+            	    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:3013:3: ( (lv_type_3_0= ruleJvmTypeReference ) )
+            	    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:3014:1: (lv_type_3_0= ruleJvmTypeReference )
+            	    {
+            	    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:3014:1: (lv_type_3_0= ruleJvmTypeReference )
+            	    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:3015:3: lv_type_3_0= ruleJvmTypeReference
+            	    {
+            	    if ( state.backtracking==0 ) {
+            	       
+            	      	        newCompositeNode(grammarAccess.getXCastedExpressionAccess().getTypeJvmTypeReferenceParserRuleCall_1_1_0()); 
+            	      	    
+            	    }
+            	    pushFollow(FOLLOW_ruleJvmTypeReference_in_ruleXCastedExpression7464);
+            	    lv_type_3_0=ruleJvmTypeReference();
+
+            	    state._fsp--;
+            	    if (state.failed) return current;
+            	    if ( state.backtracking==0 ) {
+
+            	      	        if (current==null) {
+            	      	            current = createModelElementForParent(grammarAccess.getXCastedExpressionRule());
+            	      	        }
+            	             		set(
+            	             			current, 
+            	             			"type",
+            	              		lv_type_3_0, 
+            	              		"JvmTypeReference");
+            	      	        afterParserOrEnumRuleCall();
+            	      	    
+            	    }
+
+            	    }
+
+
+            	    }
+
+
+            	    }
+            	    break;
+
+            	default :
+            	    break loop49;
+                }
+            } while (true);
+
+
+            }
+
+
+            }
+
+            if ( state.backtracking==0 ) {
+               leaveRule(); 
+            }
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleXCastedExpression"
+
+
+    // $ANTLR start "entryRuleXPostfixOperation"
+    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:3039:1: entryRuleXPostfixOperation returns [EObject current=null] : iv_ruleXPostfixOperation= ruleXPostfixOperation EOF ;
+    public final EObject entryRuleXPostfixOperation() throws RecognitionException {
+        EObject current = null;
+
+        EObject iv_ruleXPostfixOperation = null;
+
+
+        try {
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:3040:2: (iv_ruleXPostfixOperation= ruleXPostfixOperation EOF )
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:3041:2: iv_ruleXPostfixOperation= ruleXPostfixOperation EOF
+            {
+            if ( state.backtracking==0 ) {
+               newCompositeNode(grammarAccess.getXPostfixOperationRule()); 
+            }
+            pushFollow(FOLLOW_ruleXPostfixOperation_in_entryRuleXPostfixOperation7502);
+            iv_ruleXPostfixOperation=ruleXPostfixOperation();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+               current =iv_ruleXPostfixOperation; 
+            }
+            match(input,EOF,FOLLOW_EOF_in_entryRuleXPostfixOperation7512); if (state.failed) return current;
+
+            }
+
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleXPostfixOperation"
+
+
+    // $ANTLR start "ruleXPostfixOperation"
+    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:3048:1: ruleXPostfixOperation returns [EObject current=null] : (this_XMemberFeatureCall_0= ruleXMemberFeatureCall ( ( ( () ( ( ruleOpPostfix ) ) ) )=> ( () ( ( ruleOpPostfix ) ) ) )? ) ;
+    public final EObject ruleXPostfixOperation() throws RecognitionException {
+        EObject current = null;
+
+        EObject this_XMemberFeatureCall_0 = null;
+
+
+         enterRule(); 
+            
+        try {
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:3051:28: ( (this_XMemberFeatureCall_0= ruleXMemberFeatureCall ( ( ( () ( ( ruleOpPostfix ) ) ) )=> ( () ( ( ruleOpPostfix ) ) ) )? ) )
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:3052:1: (this_XMemberFeatureCall_0= ruleXMemberFeatureCall ( ( ( () ( ( ruleOpPostfix ) ) ) )=> ( () ( ( ruleOpPostfix ) ) ) )? )
+            {
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:3052:1: (this_XMemberFeatureCall_0= ruleXMemberFeatureCall ( ( ( () ( ( ruleOpPostfix ) ) ) )=> ( () ( ( ruleOpPostfix ) ) ) )? )
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:3053:5: this_XMemberFeatureCall_0= ruleXMemberFeatureCall ( ( ( () ( ( ruleOpPostfix ) ) ) )=> ( () ( ( ruleOpPostfix ) ) ) )?
+            {
+            if ( state.backtracking==0 ) {
+               
+                      newCompositeNode(grammarAccess.getXPostfixOperationAccess().getXMemberFeatureCallParserRuleCall_0()); 
+                  
+            }
+            pushFollow(FOLLOW_ruleXMemberFeatureCall_in_ruleXPostfixOperation7559);
+            this_XMemberFeatureCall_0=ruleXMemberFeatureCall();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+               
+                      current = this_XMemberFeatureCall_0; 
+                      afterParserOrEnumRuleCall();
+                  
+            }
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:3061:1: ( ( ( () ( ( ruleOpPostfix ) ) ) )=> ( () ( ( ruleOpPostfix ) ) ) )?
+            int alt50=2;
+            int LA50_0 = input.LA(1);
+
+            if ( (LA50_0==72) ) {
+                int LA50_1 = input.LA(2);
+
+                if ( (synpred20_InternalActionDSL()) ) {
+                    alt50=1;
+                }
+            }
+            else if ( (LA50_0==73) ) {
+                int LA50_2 = input.LA(2);
+
+                if ( (synpred20_InternalActionDSL()) ) {
+                    alt50=1;
+                }
+            }
+            switch (alt50) {
+                case 1 :
+                    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:3061:2: ( ( () ( ( ruleOpPostfix ) ) ) )=> ( () ( ( ruleOpPostfix ) ) )
+                    {
+                    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:3066:6: ( () ( ( ruleOpPostfix ) ) )
+                    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:3066:7: () ( ( ruleOpPostfix ) )
+                    {
+                    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:3066:7: ()
+                    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:3067:5: 
+                    {
+                    if ( state.backtracking==0 ) {
+
+                              current = forceCreateModelElementAndSet(
+                                  grammarAccess.getXPostfixOperationAccess().getXPostfixOperationOperandAction_1_0_0(),
+                                  current);
+                          
+                    }
+
+                    }
+
+                    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:3072:2: ( ( ruleOpPostfix ) )
+                    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:3073:1: ( ruleOpPostfix )
+                    {
+                    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:3073:1: ( ruleOpPostfix )
+                    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:3074:3: ruleOpPostfix
+                    {
+                    if ( state.backtracking==0 ) {
+
+                      			if (current==null) {
+                      	            current = createModelElement(grammarAccess.getXPostfixOperationRule());
+                      	        }
+                              
+                    }
+                    if ( state.backtracking==0 ) {
+                       
+                      	        newCompositeNode(grammarAccess.getXPostfixOperationAccess().getFeatureJvmIdentifiableElementCrossReference_1_0_1_0()); 
+                      	    
+                    }
+                    pushFollow(FOLLOW_ruleOpPostfix_in_ruleXPostfixOperation7611);
+                    ruleOpPostfix();
+
+                    state._fsp--;
+                    if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+                       
+                      	        afterParserOrEnumRuleCall();
+                      	    
+                    }
+
+                    }
+
+
+                    }
+
+
+                    }
+
+
+                    }
+                    break;
+
+            }
+
+
+            }
+
+
+            }
+
+            if ( state.backtracking==0 ) {
+               leaveRule(); 
+            }
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleXPostfixOperation"
+
+
+    // $ANTLR start "entryRuleOpPostfix"
+    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:3095:1: entryRuleOpPostfix returns [String current=null] : iv_ruleOpPostfix= ruleOpPostfix EOF ;
+    public final String entryRuleOpPostfix() throws RecognitionException {
+        String current = null;
+
+        AntlrDatatypeRuleToken iv_ruleOpPostfix = null;
+
+
+        try {
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:3096:2: (iv_ruleOpPostfix= ruleOpPostfix EOF )
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:3097:2: iv_ruleOpPostfix= ruleOpPostfix EOF
+            {
+            if ( state.backtracking==0 ) {
+               newCompositeNode(grammarAccess.getOpPostfixRule()); 
+            }
+            pushFollow(FOLLOW_ruleOpPostfix_in_entryRuleOpPostfix7651);
+            iv_ruleOpPostfix=ruleOpPostfix();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+               current =iv_ruleOpPostfix.getText(); 
+            }
+            match(input,EOF,FOLLOW_EOF_in_entryRuleOpPostfix7662); if (state.failed) return current;
+
+            }
+
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleOpPostfix"
+
+
+    // $ANTLR start "ruleOpPostfix"
+    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:3104:1: ruleOpPostfix returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (kw= '++' | kw= '--' ) ;
+    public final AntlrDatatypeRuleToken ruleOpPostfix() throws RecognitionException {
+        AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();
+
+        Token kw=null;
+
+         enterRule(); 
+            
+        try {
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:3107:28: ( (kw= '++' | kw= '--' ) )
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:3108:1: (kw= '++' | kw= '--' )
+            {
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:3108:1: (kw= '++' | kw= '--' )
+            int alt51=2;
+            int LA51_0 = input.LA(1);
+
+            if ( (LA51_0==72) ) {
+                alt51=1;
+            }
+            else if ( (LA51_0==73) ) {
+                alt51=2;
+            }
+            else {
+                if (state.backtracking>0) {state.failed=true; return current;}
+                NoViableAltException nvae =
+                    new NoViableAltException("", 51, 0, input);
+
+                throw nvae;
+            }
+            switch (alt51) {
+                case 1 :
+                    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:3109:2: kw= '++'
+                    {
+                    kw=(Token)match(input,72,FOLLOW_72_in_ruleOpPostfix7700); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                              current.merge(kw);
+                              newLeafNode(kw, grammarAccess.getOpPostfixAccess().getPlusSignPlusSignKeyword_0()); 
+                          
+                    }
+
+                    }
+                    break;
+                case 2 :
+                    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:3116:2: kw= '--'
+                    {
+                    kw=(Token)match(input,73,FOLLOW_73_in_ruleOpPostfix7719); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                              current.merge(kw);
+                              newLeafNode(kw, grammarAccess.getOpPostfixAccess().getHyphenMinusHyphenMinusKeyword_1()); 
+                          
+                    }
+
+                    }
+                    break;
+
+            }
+
+
+            }
+
+            if ( state.backtracking==0 ) {
+               leaveRule(); 
+            }
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleOpPostfix"
+
+
+    // $ANTLR start "entryRuleXMemberFeatureCall"
+    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:3129:1: entryRuleXMemberFeatureCall returns [EObject current=null] : iv_ruleXMemberFeatureCall= ruleXMemberFeatureCall EOF ;
+    public final EObject entryRuleXMemberFeatureCall() throws RecognitionException {
+        EObject current = null;
+
+        EObject iv_ruleXMemberFeatureCall = null;
+
+
+        try {
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:3130:2: (iv_ruleXMemberFeatureCall= ruleXMemberFeatureCall EOF )
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:3131:2: iv_ruleXMemberFeatureCall= ruleXMemberFeatureCall EOF
+            {
+            if ( state.backtracking==0 ) {
+               newCompositeNode(grammarAccess.getXMemberFeatureCallRule()); 
+            }
+            pushFollow(FOLLOW_ruleXMemberFeatureCall_in_entryRuleXMemberFeatureCall7759);
+            iv_ruleXMemberFeatureCall=ruleXMemberFeatureCall();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+               current =iv_ruleXMemberFeatureCall; 
+            }
+            match(input,EOF,FOLLOW_EOF_in_entryRuleXMemberFeatureCall7769); if (state.failed) return current;
+
+            }
+
+        }
+         
+            catch (RecognitionException re) { 
+                recover(input,re); 
+                appendSkippedTokens();
+            } 
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleXMemberFeatureCall"
+
+
+    // $ANTLR start "ruleXMemberFeatureCall"
+    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:3138:1: ruleXMemberFeatureCall returns [EObject current=null] : (this_XPrimaryExpression_0= ruleXPrimaryExpression ( ( ( ( ( () ( '.' | ( ( '::' ) ) ) ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ) )=> ( () (otherlv_2= '.' | ( (lv_explicitStatic_3_0= '::' ) ) ) ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ) ) ( (lv_value_6_0= ruleXAssignment ) ) ) | ( ( ( ( () ( '.' | ( ( '?.' ) ) | ( ( '::' ) ) ) ) )=> ( () (otherlv_8= '.' | ( (lv_nullSafe_9_0= '?.' ) ) | ( (lv_explicitStatic_10_0= '::' ) ) ) ) ) (otherlv_11= '<' ( (lv_typeArguments_12_0= ruleJvmArgumentTypeReference ) ) (otherlv_13= ',' ( (lv_typeArguments_14_0= ruleJvmArgumentTypeReference ) ) )* otherlv_15= '>' )? ( ( ruleIdOrSuper ) ) ( ( ( ( '(' ) )=> (lv_explicitOperationCall_17_0= '(' ) ) ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_memberCallArguments_18_0= ruleXShortClosure ) ) | ( ( (lv_memberCallArguments_19_0= ruleXExpression ) ) (otherlv_20= ',' ( (lv_memberCallArguments_21_0= ruleXExpression ) ) )* ) )? otherlv_22= ')' )? ( ( ( () '[' ) )=> (lv_memberCallArguments_23_0= ruleXClosure ) )? ) )* ) ;
+    public final EObject ruleXMemberFeatureCall() throws RecognitionException {
+        EObject current = null;
+
+        Token otherlv_2=null;
+        Token lv_explicitStatic_3_0=null;
+        Token otherlv_8=null;
+        Token lv_nullSafe_9_0=null;
+        Token lv_explicitStatic_10_0=null;
+        Token otherlv_11=null;
+        Token otherlv_13=null;
+        Token otherlv_15=null;
+        Token lv_explicitOperationCall_17_0=null;
+        Token otherlv_20=null;
+        Token otherlv_22=null;
+        EObject this_XPrimaryExpression_0 = null;
+
+        EObject lv_value_6_0 = null;
+
+        EObject lv_typeArguments_12_0 = null;
+
+        EObject lv_typeArguments_14_0 = null;
+
+        EObject lv_memberCallArguments_18_0 = null;
+
+        EObject lv_memberCallArguments_19_0 = null;
+
+        EObject lv_memberCallArguments_21_0 = null;
+
+        EObject lv_memberCallArguments_23_0 = null;
+
+
+         enterRule(); 
+            
+        try {
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:3141:28: ( (this_XPrimaryExpression_0= ruleXPrimaryExpression ( ( ( ( ( () ( '.' | ( ( '::' ) ) ) ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ) )=> ( () (otherlv_2= '.' | ( (lv_explicitStatic_3_0= '::' ) ) ) ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ) ) ( (lv_value_6_0= ruleXAssignment ) ) ) | ( ( ( ( () ( '.' | ( ( '?.' ) ) | ( ( '::' ) ) ) ) )=> ( () (otherlv_8= '.' | ( (lv_nullSafe_9_0= '?.' ) ) | ( (lv_explicitStatic_10_0= '::' ) ) ) ) ) (otherlv_11= '<' ( (lv_typeArguments_12_0= ruleJvmArgumentTypeReference ) ) (otherlv_13= ',' ( (lv_typeArguments_14_0= ruleJvmArgumentTypeReference ) ) )* otherlv_15= '>' )? ( ( ruleIdOrSuper ) ) ( ( ( ( '(' ) )=> (lv_explicitOperationCall_17_0= '(' ) ) ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_memberCallArguments_18_0= ruleXShortClosure ) ) | ( ( (lv_memberCallArguments_19_0= ruleXExpression ) ) (otherlv_20= ',' ( (lv_memberCallArguments_21_0= ruleXExpression ) ) )* ) )? otherlv_22= ')' )? ( ( ( () '[' ) )=> (lv_memberCallArguments_23_0= ruleXClosure ) )? ) )* ) )
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:3142:1: (this_XPrimaryExpression_0= ruleXPrimaryExpression ( ( ( ( ( () ( '.' | ( ( '::' ) ) ) ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ) )=> ( () (otherlv_2= '.' | ( (lv_explicitStatic_3_0= '::' ) ) ) ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ) ) ( (lv_value_6_0= ruleXAssignment ) ) ) | ( ( ( ( () ( '.' | ( ( '?.' ) ) | ( ( '::' ) ) ) ) )=> ( () (otherlv_8= '.' | ( (lv_nullSafe_9_0= '?.' ) ) | ( (lv_explicitStatic_10_0= '::' ) ) ) ) ) (otherlv_11= '<' ( (lv_typeArguments_12_0= ruleJvmArgumentTypeReference ) ) (otherlv_13= ',' ( (lv_typeArguments_14_0= ruleJvmArgumentTypeReference ) ) )* otherlv_15= '>' )? ( ( ruleIdOrSuper ) ) ( ( ( ( '(' ) )=> (lv_explicitOperationCall_17_0= '(' ) ) ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_memberCallArguments_18_0= ruleXShortClosure ) ) | ( ( (lv_memberCallArguments_19_0= ruleXExpression ) ) (otherlv_20= ',' ( (lv_memberCallArguments_21_0= ruleXExpression ) ) )* ) )? otherlv_22= ')' )? ( ( ( () '[' ) )=> (lv_memberCallArguments_23_0= ruleXClosure ) )? ) )* )
+            {
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:3142:1: (this_XPrimaryExpression_0= ruleXPrimaryExpression ( ( ( ( ( () ( '.' | ( ( '::' ) ) ) ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ) )=> ( () (otherlv_2= '.' | ( (lv_explicitStatic_3_0= '::' ) ) ) ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ) ) ( (lv_value_6_0= ruleXAssignment ) ) ) | ( ( ( ( () ( '.' | ( ( '?.' ) ) | ( ( '::' ) ) ) ) )=> ( () (otherlv_8= '.' | ( (lv_nullSafe_9_0= '?.' ) ) | ( (lv_explicitStatic_10_0= '::' ) ) ) ) ) (otherlv_11= '<' ( (lv_typeArguments_12_0= ruleJvmArgumentTypeReference ) ) (otherlv_13= ',' ( (lv_typeArguments_14_0= ruleJvmArgumentTypeReference ) ) )* otherlv_15= '>' )? ( ( ruleIdOrSuper ) ) ( ( ( ( '(' ) )=> (lv_explicitOperationCall_17_0= '(' ) ) ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_memberCallArguments_18_0= ruleXShortClosure ) ) | ( ( (lv_memberCallArguments_19_0= ruleXExpression ) ) (otherlv_20= ',' ( (lv_memberCallArguments_21_0= ruleXExpression ) ) )* ) )? otherlv_22= ')' )? ( ( ( () '[' ) )=> (lv_memberCallArguments_23_0= ruleXClosure ) )? ) )* )
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:3143:5: this_XPrimaryExpression_0= ruleXPrimaryExpression ( ( ( ( ( () ( '.' | ( ( '::' ) ) ) ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ) )=> ( () (otherlv_2= '.' | ( (lv_explicitStatic_3_0= '::' ) ) ) ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ) ) ( (lv_value_6_0= ruleXAssignment ) ) ) | ( ( ( ( () ( '.' | ( ( '?.' ) ) | ( ( '::' ) ) ) ) )=> ( () (otherlv_8= '.' | ( (lv_nullSafe_9_0= '?.' ) ) | ( (lv_explicitStatic_10_0= '::' ) ) ) ) ) (otherlv_11= '<' ( (lv_typeArguments_12_0= ruleJvmArgumentTypeReference ) ) (otherlv_13= ',' ( (lv_typeArguments_14_0= ruleJvmArgumentTypeReference ) ) )* otherlv_15= '>' )? ( ( ruleIdOrSuper ) ) ( ( ( ( '(' ) )=> (lv_explicitOperationCall_17_0= '(' ) ) ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_memberCallArguments_18_0= ruleXShortClosure ) ) | ( ( (lv_memberCallArguments_19_0= ruleXExpression ) ) (otherlv_20= ',' ( (lv_memberCallArguments_21_0= ruleXExpression ) ) )* ) )? otherlv_22= ')' )? ( ( ( () '[' ) )=> (lv_memberCallArguments_23_0= ruleXClosure ) )? ) )*
+            {
+            if ( state.backtracking==0 ) {
+               
+                      newCompositeNode(grammarAccess.getXMemberFeatureCallAccess().getXPrimaryExpressionParserRuleCall_0()); 
+                  
+            }
+            pushFollow(FOLLOW_ruleXPrimaryExpression_in_ruleXMemberFeatureCall7816);
+            this_XPrimaryExpression_0=ruleXPrimaryExpression();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+               
+                      current = this_XPrimaryExpression_0; 
+                      afterParserOrEnumRuleCall();
+                  
+            }
+            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:3151:1: ( ( ( ( ( () ( '.' | ( ( '::' ) ) ) ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ) )=> ( () (otherlv_2= '.' | ( (lv_explicitStatic_3_0= '::' ) ) ) ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ) ) ( (lv_value_6_0= ruleXAssignment ) ) ) | ( ( ( ( () ( '.' | ( ( '?.' ) ) | ( ( '::' ) ) ) ) )=> ( () (otherlv_8= '.' | ( (lv_nullSafe_9_0= '?.' ) ) | ( (lv_explicitStatic_10_0= '::' ) ) ) ) ) (otherlv_11= '<' ( (lv_typeArguments_12_0= ruleJvmArgumentTypeReference ) ) (otherlv_13= ',' ( (lv_typeArguments_14_0= ruleJvmArgumentTypeReference ) ) )* otherlv_15= '>' )? ( ( ruleIdOrSuper ) ) ( ( ( ( '(' ) )=> (lv_explicitOperationCall_17_0= '(' ) ) ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_memberCallArguments_18_0= ruleXShortClosure ) ) | ( ( (lv_memberCallArguments_19_0= ruleXExpression ) ) (otherlv_20= ',' ( (lv_memberCallArguments_21_0= ruleXExpression ) ) )* ) )? otherlv_22= ')' )? ( ( ( () '[' ) )=> (lv_memberCallArguments_23_0= ruleXClosure ) )? ) )*
+            loop60:
+            do {
+                int alt60=3;
+                switch ( input.LA(1) ) {
+                case 34:
+                    {
+                    int LA60_2 = input.LA(2);
+
+                    if ( (synpred21_InternalActionDSL()) ) {
+                        alt60=1;
+                    }
+                    else if ( (synpred22_InternalActionDSL()) ) {
+                        alt60=2;
+                    }
+
+
+                    }
+                    break;
+                case 74:
+                    {
+                    int LA60_3 = input.LA(2);
+
+                    if ( (synpred21_InternalActionDSL()) ) {
+                        alt60=1;
+                    }
+                    else if ( (synpred22_InternalActionDSL()) ) {
+                        alt60=2;
+                    }
+
+
+                    }
+                    break;
+                case 75:
+                    {
+                    int LA60_4 = input.LA(2);
+
+                    if ( (synpred22_InternalActionDSL()) ) {
+                        alt60=2;
+                    }
+
+
+                    }
+                    break;
+
+                }
+
+                switch (alt60) {
+            	case 1 :
+            	    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:3151:2: ( ( ( ( () ( '.' | ( ( '::' ) ) ) ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ) )=> ( () (otherlv_2= '.' | ( (lv_explicitStatic_3_0= '::' ) ) ) ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ) ) ( (lv_value_6_0= ruleXAssignment ) ) )
+            	    {
+            	    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:3151:2: ( ( ( ( () ( '.' | ( ( '::' ) ) ) ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ) )=> ( () (otherlv_2= '.' | ( (lv_explicitStatic_3_0= '::' ) ) ) ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ) ) ( (lv_value_6_0= ruleXAssignment ) ) )
+            	    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:3151:3: ( ( ( () ( '.' | ( ( '::' ) ) ) ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ) )=> ( () (otherlv_2= '.' | ( (lv_explicitStatic_3_0= '::' ) ) ) ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ) ) ( (lv_value_6_0= ruleXAssignment ) )
+            	    {
+            	    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:3151:3: ( ( ( () ( '.' | ( ( '::' ) ) ) ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ) )=> ( () (otherlv_2= '.' | ( (lv_explicitStatic_3_0= '::' ) ) ) ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ) )
+            	    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:3151:4: ( ( () ( '.' | ( ( '::' ) ) ) ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ) )=> ( () (otherlv_2= '.' | ( (lv_explicitStatic_3_0= '::' ) ) ) ( ( ruleFeatureCallID ) ) ruleOpSingleAssign )
+            	    {
+            	    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:3164:25: ( () (otherlv_2= '.' | ( (lv_explicitStatic_3_0= '::' ) ) ) ( ( ruleFeatureCallID ) ) ruleOpSingleAssign )
+            	    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:3164:26: () (otherlv_2= '.' | ( (lv_explicitStatic_3_0= '::' ) ) ) ( ( ruleFeatureCallID ) ) ruleOpSingleAssign
+            	    {
+            	    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:3164:26: ()
+            	    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:3165:5: 
+            	    {
+            	    if ( state.backtracking==0 ) {
+
+            	              current = forceCreateModelElementAndSet(
+            	                  grammarAccess.getXMemberFeatureCallAccess().getXAssignmentAssignableAction_1_0_0_0_0(),
+            	                  current);
+            	          
+            	    }
+
+            	    }
+
+            	    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:3170:2: (otherlv_2= '.' | ( (lv_explicitStatic_3_0= '::' ) ) )
+            	    int alt52=2;
+            	    int LA52_0 = input.LA(1);
+
+            	    if ( (LA52_0==34) ) {
+            	        alt52=1;
+            	    }
+            	    else if ( (LA52_0==74) ) {
+            	        alt52=2;
+            	    }
+            	    else {
+            	        if (state.backtracking>0) {state.failed=true; return current;}
+            	        NoViableAltException nvae =
+            	            new NoViableAltException("", 52, 0, input);
+
+            	        throw nvae;
+            	    }
+            	    switch (alt52) {
+            	        case 1 :
+            	            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:3170:4: otherlv_2= '.'
+            	            {
+            	            otherlv_2=(Token)match(input,34,FOLLOW_34_in_ruleXMemberFeatureCall7888); if (state.failed) return current;
+            	            if ( state.backtracking==0 ) {
+
+            	                  	newLeafNode(otherlv_2, grammarAccess.getXMemberFeatureCallAccess().getFullStopKeyword_1_0_0_0_1_0());
+            	                  
+            	            }
+
+            	            }
+            	            break;
+            	        case 2 :
+            	            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:3175:6: ( (lv_explicitStatic_3_0= '::' ) )
+            	            {
+            	            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:3175:6: ( (lv_explicitStatic_3_0= '::' ) )
+            	            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:3176:1: (lv_explicitStatic_3_0= '::' )
+            	            {
+            	            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:3176:1: (lv_explicitStatic_3_0= '::' )
+            	            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:3177:3: lv_explicitStatic_3_0= '::'
+            	            {
+            	            lv_explicitStatic_3_0=(Token)match(input,74,FOLLOW_74_in_ruleXMemberFeatureCall7912); if (state.failed) return current;
+            	            if ( state.backtracking==0 ) {
+
+            	                      newLeafNode(lv_explicitStatic_3_0, grammarAccess.getXMemberFeatureCallAccess().getExplicitStaticColonColonKeyword_1_0_0_0_1_1_0());
+            	                  
+            	            }
+            	            if ( state.backtracking==0 ) {
+
+            	              	        if (current==null) {
+            	              	            current = createModelElement(grammarAccess.getXMemberFeatureCallRule());
+            	              	        }
+            	                     		setWithLastConsumed(current, "explicitStatic", true, "::");
+            	              	    
+            	            }
+
+            	            }
+
+
+            	            }
+
+
+            	            }
+            	            break;
+
+            	    }
+
+            	    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:3190:3: ( ( ruleFeatureCallID ) )
+            	    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:3191:1: ( ruleFeatureCallID )
+            	    {
+            	    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:3191:1: ( ruleFeatureCallID )
+            	    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:3192:3: ruleFeatureCallID
+            	    {
+            	    if ( state.backtracking==0 ) {
+
+            	      			if (current==null) {
+            	      	            current = createModelElement(grammarAccess.getXMemberFeatureCallRule());
+            	      	        }
+            	              
+            	    }
+            	    if ( state.backtracking==0 ) {
+            	       
+            	      	        newCompositeNode(grammarAccess.getXMemberFeatureCallAccess().getFeatureJvmIdentifiableElementCrossReference_1_0_0_0_2_0()); 
+            	      	    
+            	    }
+            	    pushFollow(FOLLOW_ruleFeatureCallID_in_ruleXMemberFeatureCall7949);
+            	    ruleFeatureCallID();
+
+            	    state._fsp--;
+            	    if (state.failed) return current;
+            	    if ( state.backtracking==0 ) {
+            	       
+            	      	        afterParserOrEnumRuleCall();
+            	      	    
+            	    }
+
+            	    }
+
+
+            	    }
+
+            	    if ( state.backtracking==0 ) {
+            	       
+            	              newCompositeNode(grammarAccess.getXMemberFeatureCallAccess().getOpSingleAssignParserRuleCall_1_0_0_0_3()); 
+            	          
+            	    }
+            	    pushFollow(FOLLOW_ruleOpSingleAssign_in_ruleXMemberFeatureCall7965);
+            	    ruleOpSingleAssign();
+
+            	    state._fsp--;
+            	    if (state.failed) return current;
+            	    if ( state.backtracking==0 ) {
+            	       
+            	              afterParserOrEnumRuleCall();
+            	          
+            	    }
+
+            	    }
+
+
+            	    }
+
+            	    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:3213:3: ( (lv_value_6_0= ruleXAssignment ) )
+            	    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:3214:1: (lv_value_6_0= ruleXAssignment )
+            	    {
+            	    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:3214:1: (lv_value_6_0= ruleXAssignment )
+            	    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:3215:3: lv_value_6_0= ruleXAssignment
+            	    {
+            	    if ( state.backtracking==0 ) {
+            	       
+            	      	        newCompositeNode(grammarAccess.getXMemberFeatureCallAccess().getValueXAssignmentParserRuleCall_1_0_1_0()); 
+            	      	    
+            	    }
+            	    pushFollow(FOLLOW_ruleXAssignment_in_ruleXMemberFeatureCall7987);
+            	    lv_value_6_0=ruleXAssignment();
+
+            	    state._fsp--;
+            	    if (state.failed) return current;
+            	    if ( state.backtracking==0 ) {
+
+            	      	        if (current==null) {
+            	      	            current = createModelElementForParent(grammarAccess.getXMemberFeatureCallRule());
+            	      	        }
+            	             		set(
+            	             			current, 
+            	             			"value",
+            	              		lv_value_6_0, 
+            	              		"XAssignment");
+            	      	        afterParserOrEnumRuleCall();
+            	      	    
+            	    }
+
+            	    }
+
+
+            	    }
+
+
+            	    }
+
+
+            	    }
+            	    break;
+            	case 2 :
+            	    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:3232:6: ( ( ( ( () ( '.' | ( ( '?.' ) ) | ( ( '::' ) ) ) ) )=> ( () (otherlv_8= '.' | ( (lv_nullSafe_9_0= '?.' ) ) | ( (lv_explicitStatic_10_0= '::' ) ) ) ) ) (otherlv_11= '<' ( (lv_typeArguments_12_0= ruleJvmArgumentTypeReference ) ) (otherlv_13= ',' ( (lv_typeArguments_14_0= ruleJvmArgumentTypeReference ) ) )* otherlv_15= '>' )? ( ( ruleIdOrSuper ) ) ( ( ( ( '(' ) )=> (lv_explicitOperationCall_17_0= '(' ) ) ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_memberCallArguments_18_0= ruleXShortClosure ) ) | ( ( (lv_memberCallArguments_19_0= ruleXExpression ) ) (otherlv_20= ',' ( (lv_memberCallArguments_21_0= ruleXExpression ) ) )* ) )? otherlv_22= ')' )? ( ( ( () '[' ) )=> (lv_memberCallArguments_23_0= ruleXClosure ) )? )
+            	    {
+            	    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:3232:6: ( ( ( ( () ( '.' | ( ( '?.' ) ) | ( ( '::' ) ) ) ) )=> ( () (otherlv_8= '.' | ( (lv_nullSafe_9_0= '?.' ) ) | ( (lv_explicitStatic_10_0= '::' ) ) ) ) ) (otherlv_11= '<' ( (lv_typeArguments_12_0= ruleJvmArgumentTypeReference ) ) (otherlv_13= ',' ( (lv_typeArguments_14_0= ruleJvmArgumentTypeReference ) ) )* otherlv_15= '>' )? ( ( ruleIdOrSuper ) ) ( ( ( ( '(' ) )=> (lv_explicitOperationCall_17_0= '(' ) ) ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_memberCallArguments_18_0= ruleXShortClosure ) ) | ( ( (lv_memberCallArguments_19_0= ruleXExpression ) ) (otherlv_20= ',' ( (lv_memberCallArguments_21_0= ruleXExpression ) ) )* ) )? otherlv_22= ')' )? ( ( ( () '[' ) )=> (lv_memberCallArguments_23_0= ruleXClosure ) )? )
+            	    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:3232:7: ( ( ( () ( '.' | ( ( '?.' ) ) | ( ( '::' ) ) ) ) )=> ( () (otherlv_8= '.' | ( (lv_nullSafe_9_0= '?.' ) ) | ( (lv_explicitStatic_10_0= '::' ) ) ) ) ) (otherlv_11= '<' ( (lv_typeArguments_12_0= ruleJvmArgumentTypeReference ) ) (otherlv_13= ',' ( (lv_typeArguments_14_0= ruleJvmArgumentTypeReference ) ) )* otherlv_15= '>' )? ( ( ruleIdOrSuper ) ) ( ( ( ( '(' ) )=> (lv_explicitOperationCall_17_0= '(' ) ) ( ( ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )=> (lv_memberCallArguments_18_0= ruleXShortClosure ) ) | ( ( (lv_memberCallArguments_19_0= ruleXExpression ) ) (otherlv_20= ',' ( (lv_memberCallArguments_21_0= ruleXExpression ) ) )* ) )? otherlv_22= ')' )? ( ( ( () '[' ) )=> (lv_memberCallArguments_23_0= ruleXClosure ) )?
+            	    {
+            	    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:3232:7: ( ( ( () ( '.' | ( ( '?.' ) ) | ( ( '::' ) ) ) ) )=> ( () (otherlv_8= '.' | ( (lv_nullSafe_9_0= '?.' ) ) | ( (lv_explicitStatic_10_0= '::' ) ) ) ) )
+            	    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:3232:8: ( ( () ( '.' | ( ( '?.' ) ) | ( ( '::' ) ) ) ) )=> ( () (otherlv_8= '.' | ( (lv_nullSafe_9_0= '?.' ) ) | ( (lv_explicitStatic_10_0= '::' ) ) ) )
+            	    {
+            	    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:3248:7: ( () (otherlv_8= '.' | ( (lv_nullSafe_9_0= '?.' ) ) | ( (lv_explicitStatic_10_0= '::' ) ) ) )
+            	    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:3248:8: () (otherlv_8= '.' | ( (lv_nullSafe_9_0= '?.' ) ) | ( (lv_explicitStatic_10_0= '::' ) ) )
+            	    {
+            	    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:3248:8: ()
+            	    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:3249:5: 
+            	    {
+            	    if ( state.backtracking==0 ) {
+
+            	              current = forceCreateModelElementAndSet(
+            	                  grammarAccess.getXMemberFeatureCallAccess().getXMemberFeatureCallMemberCallTargetAction_1_1_0_0_0(),
+            	                  current);
+            	          
+            	    }
+
+            	    }
+
+            	    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:3254:2: (otherlv_8= '.' | ( (lv_nullSafe_9_0= '?.' ) ) | ( (lv_explicitStatic_10_0= '::' ) ) )
+            	    int alt53=3;
+            	    switch ( input.LA(1) ) {
+            	    case 34:
+            	        {
+            	        alt53=1;
+            	        }
+            	        break;
+            	    case 75:
+            	        {
+            	        alt53=2;
+            	        }
+            	        break;
+            	    case 74:
+            	        {
+            	        alt53=3;
+            	        }
+            	        break;
+            	    default:
+            	        if (state.backtracking>0) {state.failed=true; return current;}
+            	        NoViableAltException nvae =
+            	            new NoViableAltException("", 53, 0, input);
+
+            	        throw nvae;
+            	    }
+
+            	    switch (alt53) {
+            	        case 1 :
+            	            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:3254:4: otherlv_8= '.'
+            	            {
+            	            otherlv_8=(Token)match(input,34,FOLLOW_34_in_ruleXMemberFeatureCall8073); if (state.failed) return current;
+            	            if ( state.backtracking==0 ) {
+
+            	                  	newLeafNode(otherlv_8, grammarAccess.getXMemberFeatureCallAccess().getFullStopKeyword_1_1_0_0_1_0());
+            	                  
+            	            }
+
+            	            }
+            	            break;
+            	        case 2 :
+            	            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:3259:6: ( (lv_nullSafe_9_0= '?.' ) )
+            	            {
+            	            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:3259:6: ( (lv_nullSafe_9_0= '?.' ) )
+            	            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:3260:1: (lv_nullSafe_9_0= '?.' )
+            	            {
+            	            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:3260:1: (lv_nullSafe_9_0= '?.' )
+            	            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:3261:3: lv_nullSafe_9_0= '?.'
+            	            {
+            	            lv_nullSafe_9_0=(Token)match(input,75,FOLLOW_75_in_ruleXMemberFeatureCall8097); if (state.failed) return current;
+            	            if ( state.backtracking==0 ) {
+
+            	                      newLeafNode(lv_nullSafe_9_0, grammarAccess.getXMemberFeatureCallAccess().getNullSafeQuestionMarkFullStopKeyword_1_1_0_0_1_1_0());
+            	                  
+            	            }
+            	            if ( state.backtracking==0 ) {
+
+            	              	        if (current==null) {
+            	              	            current = createModelElement(grammarAccess.getXMemberFeatureCallRule());
+            	              	        }
+            	                     		setWithLastConsumed(current, "nullSafe", true, "?.");
+            	              	    
+            	            }
+
+            	            }
+
+
+            	            }
+
+
+            	            }
+            	            break;
+            	        case 3 :
+            	            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:3275:6: ( (lv_explicitStatic_10_0= '::' ) )
+            	            {
+            	            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:3275:6: ( (lv_explicitStatic_10_0= '::' ) )
+            	            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:3276:1: (lv_explicitStatic_10_0= '::' )
+            	            {
+            	            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:3276:1: (lv_explicitStatic_10_0= '::' )
+            	            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:3277:3: lv_explicitStatic_10_0= '::'
+            	            {
+            	            lv_explicitStatic_10_0=(Token)match(input,74,FOLLOW_74_in_ruleXMemberFeatureCall8134); if (state.failed) return current;
+            	            if ( state.backtracking==0 ) {
+
+            	                      newLeafNode(lv_explicitStatic_10_0, grammarAccess.getXMemberFeatureCallAccess().getExplicitStaticColonColonKeyword_1_1_0_0_1_2_0());
+            	                  
+            	            }
+            	            if ( state.backtracking==0 ) {
+
+            	              	        if (current==null) {
+            	              	            current = createModelElement(grammarAccess.getXMemberFeatureCallRule());
+            	              	        }
+            	                     		setWithLastConsumed(current, "explicitStatic", true, "::");
+            	              	    
+            	            }
+
+            	            }
+
+
+            	            }
+
+
+            	            }
+            	            break;
+
+            	    }
+
+
+            	    }
+
+
+            	    }
+
+            	    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:3290:5: (otherlv_11= '<' ( (lv_typeArguments_12_0= ruleJvmArgumentTypeReference ) ) (otherlv_13= ',' ( (lv_typeArguments_14_0= ruleJvmArgumentTypeReference ) ) )* otherlv_15= '>' )?
+            	    int alt55=2;
+            	    int LA55_0 = input.LA(1);
+
+            	    if ( (LA55_0==49) ) {
+            	        alt55=1;
+            	    }
+            	    switch (alt55) {
+            	        case 1 :
+            	            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:3290:7: otherlv_11= '<' ( (lv_typeArguments_12_0= ruleJvmArgumentTypeReference ) ) (otherlv_13= ',' ( (lv_typeArguments_14_0= ruleJvmArgumentTypeReference ) ) )* otherlv_15= '>'
+            	            {
+            	            otherlv_11=(Token)match(input,49,FOLLOW_49_in_ruleXMemberFeatureCall8163); if (state.failed) return current;
+            	            if ( state.backtracking==0 ) {
+
+            	                  	newLeafNode(otherlv_11, grammarAccess.getXMemberFeatureCallAccess().getLessThanSignKeyword_1_1_1_0());
+            	                  
+            	            }
+            	            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:3294:1: ( (lv_typeArguments_12_0= ruleJvmArgumentTypeReference ) )
+            	            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:3295:1: (lv_typeArguments_12_0= ruleJvmArgumentTypeReference )
+            	            {
+            	            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:3295:1: (lv_typeArguments_12_0= ruleJvmArgumentTypeReference )
+            	            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:3296:3: lv_typeArguments_12_0= ruleJvmArgumentTypeReference
+            	            {
+            	            if ( state.backtracking==0 ) {
+            	               
+            	              	        newCompositeNode(grammarAccess.getXMemberFeatureCallAccess().getTypeArgumentsJvmArgumentTypeReferenceParserRuleCall_1_1_1_1_0()); 
+            	              	    
+            	            }
+            	            pushFollow(FOLLOW_ruleJvmArgumentTypeReference_in_ruleXMemberFeatureCall8184);
+            	            lv_typeArguments_12_0=ruleJvmArgumentTypeReference();
+
+            	            state._fsp--;
+            	            if (state.failed) return current;
+            	            if ( state.backtracking==0 ) {
+
+            	              	        if (current==null) {
+            	              	            current = createModelElementForParent(grammarAccess.getXMemberFeatureCallRule());
+            	              	        }
+            	                     		add(
+            	                     			current, 
+            	                     			"typeArguments",
+            	                      		lv_typeArguments_12_0, 
+            	                      		"JvmArgumentTypeReference");
+            	              	        afterParserOrEnumRuleCall();
+            	              	    
+            	            }
+
+            	            }
+
+
+            	            }
+
+            	            // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:3312:2: (otherlv_13= ',' ( (lv_typeArguments_14_0= ruleJvmArgumentTypeReference ) ) )*
+            	            loop54:
+            	            do {
+            	                int alt54=2;
+            	                int LA54_0 = input.LA(1);
+
+            	                if ( (LA54_0==38) ) {
+            	                    alt54=1;
+            	                }
+
+
+            	                switch (alt54) {
+            	            	case 1 :
+            	            	    // ../org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/parser/antlr/internal/InternalActionDSL.g:3312:4: otherlv_13= ',' ( (lv_typeArguments_14_0= ruleJvmArgumentTypeReference ) )
+            	            	    {
+            	            	    otherlv_13=(Token)match(input,38,FOLLOW_38_in_ruleXMemberFeatureCall8197); if (state.failed) return current;
+            	            	    if ( state.backtracking==0 ) {
+
+            	            	          	newLeafNode(otherlv_13, grammarAccess.getXMemberFeatureCallAccess().getCommaKeyword_1_1_1_2_0());
+            	            	          
+            	            	    }
diff --git a/org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/serializer/ActionDSLSemanticSequencer.java b/org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/serializer/ActionDSLSemanticSequencer.java
new file mode 100644
index 0000000..29135c9
--- /dev/null
+++ b/org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/serializer/ActionDSLSemanticSequencer.java
@@ -0,0 +1,1641 @@
+/**
+ *                                                                            
+ *  Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) 
+ *                                                                            
+ *  All rights reserved. This program and the accompanying materials           
+ *  are made available under the 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.action.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.action.ActionButton;
+import org.eclipse.osbp.xtext.action.ActionChart;
+import org.eclipse.osbp.xtext.action.ActionDSLPackage;
+import org.eclipse.osbp.xtext.action.ActionDatainterchange;
+import org.eclipse.osbp.xtext.action.ActionDialog;
+import org.eclipse.osbp.xtext.action.ActionGeneric;
+import org.eclipse.osbp.xtext.action.ActionModel;
+import org.eclipse.osbp.xtext.action.ActionPackage;
+import org.eclipse.osbp.xtext.action.ActionParameter;
+import org.eclipse.osbp.xtext.action.ActionReport;
+import org.eclipse.osbp.xtext.action.ActionSelectWorkload;
+import org.eclipse.osbp.xtext.action.ActionTask;
+import org.eclipse.osbp.xtext.action.ActionToolbar;
+import org.eclipse.osbp.xtext.action.ActionWorkflow;
+import org.eclipse.osbp.xtext.action.services.ActionDSLGrammarAccess;
+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 ActionDSLSemanticSequencer extends XbaseWithAnnotationsSemanticSequencer {
+
+	@Inject
+	private ActionDSLGrammarAccess grammarAccess;
+	
+	public void createSequence(EObject context, EObject semanticObject) {
+		if(semanticObject.eClass().getEPackage() == ActionDSLPackage.eINSTANCE) switch(semanticObject.eClass().getClassifierID()) {
+			case ActionDSLPackage.ACTION_BUTTON:
+				if(context == grammarAccess.getActionButtonRule()) {
+					sequence_ActionButton(context, (ActionButton) semanticObject); 
+					return; 
+				}
+				else break;
+			case ActionDSLPackage.ACTION_CHART:
+				if(context == grammarAccess.getActionChartRule() ||
+				   context == grammarAccess.getActionTypeRule()) {
+					sequence_ActionChart(context, (ActionChart) semanticObject); 
+					return; 
+				}
+				else break;
+			case ActionDSLPackage.ACTION_DATAINTERCHANGE:
+				if(context == grammarAccess.getActionDatainterchangeRule() ||
+				   context == grammarAccess.getActionTypeRule()) {
+					sequence_ActionDatainterchange(context, (ActionDatainterchange) semanticObject); 
+					return; 
+				}
+				else break;
+			case ActionDSLPackage.ACTION_DIALOG:
+				if(context == grammarAccess.getActionDialogRule() ||
+				   context == grammarAccess.getActionTypeRule()) {
+					sequence_ActionDialog(context, (ActionDialog) semanticObject); 
+					return; 
+				}
+				else break;
+			case ActionDSLPackage.ACTION_GENERIC:
+				if(context == grammarAccess.getActionGenericRule() ||
+				   context == grammarAccess.getActionTypeRule()) {
+					sequence_ActionGeneric(context, (ActionGeneric) semanticObject); 
+					return; 
+				}
+				else break;
+			case ActionDSLPackage.ACTION_MODEL:
+				if(context == grammarAccess.getActionModelRule()) {
+					sequence_ActionModel(context, (ActionModel) semanticObject); 
+					return; 
+				}
+				else break;
+			case ActionDSLPackage.ACTION_PACKAGE:
+				if(context == grammarAccess.getActionPackageRule()) {
+					sequence_ActionPackage(context, (ActionPackage) semanticObject); 
+					return; 
+				}
+				else break;
+			case ActionDSLPackage.ACTION_PARAMETER:
+				if(context == grammarAccess.getActionParameterRule()) {
+					sequence_ActionParameter(context, (ActionParameter) semanticObject); 
+					return; 
+				}
+				else break;
+			case ActionDSLPackage.ACTION_REPORT:
+				if(context == grammarAccess.getActionReportRule() ||
+				   context == grammarAccess.getActionTypeRule()) {
+					sequence_ActionReport(context, (ActionReport) semanticObject); 
+					return; 
+				}
+				else break;
+			case ActionDSLPackage.ACTION_SELECT_WORKLOAD:
+				if(context == grammarAccess.getActionSelectWorkloadRule() ||
+				   context == grammarAccess.getActionTypeRule()) {
+					sequence_ActionSelectWorkload(context, (ActionSelectWorkload) semanticObject); 
+					return; 
+				}
+				else break;
+			case ActionDSLPackage.ACTION_TASK:
+				if(context == grammarAccess.getActionTaskRule() ||
+				   context == grammarAccess.getActionTypeRule()) {
+					sequence_ActionTask(context, (ActionTask) semanticObject); 
+					return; 
+				}
+				else break;
+			case ActionDSLPackage.ACTION_TOOLBAR:
+				if(context == grammarAccess.getActionToolbarRule()) {
+					sequence_ActionToolbar(context, (ActionToolbar) semanticObject); 
+					return; 
+				}
+				else break;
+			case ActionDSLPackage.ACTION_WORKFLOW:
+				if(context == grammarAccess.getActionTypeRule() ||
+				   context == grammarAccess.getActionWorkflowRule()) {
+					sequence_ActionWorkflow(context, (ActionWorkflow) semanticObject); 
+					return; 
+				}
+				else break;
+			}
+		else if(semanticObject.eClass().getEPackage() == OSBPTypesPackage.eINSTANCE) switch(semanticObject.eClass().getClassifierID()) {
+			case OSBPTypesPackage.LIMPORT:
+				if(context == grammarAccess.getActionImportRule()) {
+					sequence_ActionImport(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:
+	 *     (
+	 *         name=TRANSLATABLEID 
+	 *         (description?='described by' descriptionValue=TRANSLATABLESTRING)? 
+	 *         iconURI=STRING? 
+	 *         (group=[FunctionLibraryGroup|ID] canexecute=[FunctionLibraryFunction|ID]? executeparameter=[FunctionLibraryFunction|ID]?)? 
+	 *         actionType=ActionType 
+	 *         message=[MessageItem|QualifiedName]?
+	 *     )
+	 */
+	protected void sequence_ActionButton(EObject context, ActionButton semanticObject) {
+		genericSequencer.createSequence(context, semanticObject);
+	}
+	
+	
+	/**
+	 * Constraint:
+	 *     action=ChartActionEnum
+	 */
+	protected void sequence_ActionChart(EObject context, ActionChart semanticObject) {
+		if(errorAcceptor != null) {
+			if(transientValues.isValueTransient(semanticObject, ActionDSLPackage.Literals.ACTION_CHART__ACTION) == ValueTransient.YES)
+				errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, ActionDSLPackage.Literals.ACTION_CHART__ACTION));
+		}
+		INodesForEObjectProvider nodes = createNodeProvider(semanticObject);
+		SequenceFeeder feeder = createSequencerFeeder(semanticObject, nodes);
+		feeder.accept(grammarAccess.getActionChartAccess().getActionChartActionEnumEnumRuleCall_1_0(), semanticObject.getAction());
+		feeder.finish();
+	}
+	
+	
+	/**
+	 * Constraint:
+	 *     (action=DatainterchangeActionEnum dataRef=[DataInterchange|ID])
+	 */
+	protected void sequence_ActionDatainterchange(EObject context, ActionDatainterchange semanticObject) {
+		if(errorAcceptor != null) {
+			if(transientValues.isValueTransient(semanticObject, ActionDSLPackage.Literals.ACTION_DATAINTERCHANGE__ACTION) == ValueTransient.YES)
+				errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, ActionDSLPackage.Literals.ACTION_DATAINTERCHANGE__ACTION));
+			if(transientValues.isValueTransient(semanticObject, ActionDSLPackage.Literals.ACTION_DATAINTERCHANGE__DATA_REF) == ValueTransient.YES)
+				errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, ActionDSLPackage.Literals.ACTION_DATAINTERCHANGE__DATA_REF));
+		}
+		INodesForEObjectProvider nodes = createNodeProvider(semanticObject);
+		SequenceFeeder feeder = createSequencerFeeder(semanticObject, nodes);
+		feeder.accept(grammarAccess.getActionDatainterchangeAccess().getActionDatainterchangeActionEnumEnumRuleCall_1_0(), semanticObject.getAction());
+		feeder.accept(grammarAccess.getActionDatainterchangeAccess().getDataRefDataInterchangeIDTerminalRuleCall_2_0_1(), semanticObject.getDataRef());
+		feeder.finish();
+	}
+	
+	
+	/**
+	 * Constraint:
+	 *     action=DialogActionEnum
+	 */
+	protected void sequence_ActionDialog(EObject context, ActionDialog semanticObject) {
+		if(errorAcceptor != null) {
+			if(transientValues.isValueTransient(semanticObject, ActionDSLPackage.Literals.ACTION_DIALOG__ACTION) == ValueTransient.YES)
+				errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, ActionDSLPackage.Literals.ACTION_DIALOG__ACTION));
+		}
+		INodesForEObjectProvider nodes = createNodeProvider(semanticObject);
+		SequenceFeeder feeder = createSequencerFeeder(semanticObject, nodes);
+		feeder.accept(grammarAccess.getActionDialogAccess().getActionDialogActionEnumEnumRuleCall_1_0(), semanticObject.getAction());
+		feeder.finish();
+	}
+	
+	
+	/**
+	 * Constraint:
+	 *     action=STRING
+	 */
+	protected void sequence_ActionGeneric(EObject context, ActionGeneric semanticObject) {
+		if(errorAcceptor != null) {
+			if(transientValues.isValueTransient(semanticObject, ActionDSLPackage.Literals.ACTION_GENERIC__ACTION) == ValueTransient.YES)
+				errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, ActionDSLPackage.Literals.ACTION_GENERIC__ACTION));
+		}
+		INodesForEObjectProvider nodes = createNodeProvider(semanticObject);
+		SequenceFeeder feeder = createSequencerFeeder(semanticObject, nodes);
+		feeder.accept(grammarAccess.getActionGenericAccess().getActionSTRINGTerminalRuleCall_1_0(), semanticObject.getAction());
+		feeder.finish();
+	}
+	
+	
+	/**
+	 * Constraint:
+	 *     importedNamespace=ActionQualifiedNameWithWildCard
+	 */
+	protected void sequence_ActionImport(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.getActionImportAccess().getImportedNamespaceActionQualifiedNameWithWildCardParserRuleCall_1_0(), semanticObject.getImportedNamespace());
+		feeder.finish();
+	}
+	
+	
+	/**
+	 * Constraint:
+	 *     packages+=ActionPackage*
+	 */
+	protected void sequence_ActionModel(EObject context, ActionModel semanticObject) {
+		genericSequencer.createSequence(context, semanticObject);
+	}
+	
+	
+	/**
+	 * Constraint:
+	 *     (name=QualifiedName (imports+=ActionImport* toolbars+=ActionToolbar*)?)
+	 */
+	protected void sequence_ActionPackage(EObject context, ActionPackage semanticObject) {
+		genericSequencer.createSequence(context, semanticObject);
+	}
+	
+	
+	/**
+	 * Constraint:
+	 *     parameter=[FunctionLibraryParameter|ID]
+	 */
+	protected void sequence_ActionParameter(EObject context, ActionParameter semanticObject) {
+		genericSequencer.createSequence(context, semanticObject);
+	}
+	
+	
+	/**
+	 * Constraint:
+	 *     action=ReportActionEnum
+	 */
+	protected void sequence_ActionReport(EObject context, ActionReport semanticObject) {
+		if(errorAcceptor != null) {
+			if(transientValues.isValueTransient(semanticObject, ActionDSLPackage.Literals.ACTION_REPORT__ACTION) == ValueTransient.YES)
+				errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, ActionDSLPackage.Literals.ACTION_REPORT__ACTION));
+		}
+		INodesForEObjectProvider nodes = createNodeProvider(semanticObject);
+		SequenceFeeder feeder = createSequencerFeeder(semanticObject, nodes);
+		feeder.accept(grammarAccess.getActionReportAccess().getActionReportActionEnumEnumRuleCall_1_0(), semanticObject.getAction());
+		feeder.finish();
+	}
+	
+	
+	/**
+	 * Constraint:
+	 *     action=SelectWorkloadActionEnum
+	 */
+	protected void sequence_ActionSelectWorkload(EObject context, ActionSelectWorkload semanticObject) {
+		if(errorAcceptor != null) {
+			if(transientValues.isValueTransient(semanticObject, ActionDSLPackage.Literals.ACTION_SELECT_WORKLOAD__ACTION) == ValueTransient.YES)
+				errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, ActionDSLPackage.Literals.ACTION_SELECT_WORKLOAD__ACTION));
+		}
+		INodesForEObjectProvider nodes = createNodeProvider(semanticObject);
+		SequenceFeeder feeder = createSequencerFeeder(semanticObject, nodes);
+		feeder.accept(grammarAccess.getActionSelectWorkloadAccess().getActionSelectWorkloadActionEnumEnumRuleCall_1_0(), semanticObject.getAction());
+		feeder.finish();
+	}
+	
+	
+	/**
+	 * Constraint:
+	 *     action=TaskActionEnum
+	 */
+	protected void sequence_ActionTask(EObject context, ActionTask semanticObject) {
+		if(errorAcceptor != null) {
+			if(transientValues.isValueTransient(semanticObject, ActionDSLPackage.Literals.ACTION_TASK__ACTION) == ValueTransient.YES)
+				errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, ActionDSLPackage.Literals.ACTION_TASK__ACTION));
+		}
+		INodesForEObjectProvider nodes = createNodeProvider(semanticObject);
+		SequenceFeeder feeder = createSequencerFeeder(semanticObject, nodes);
+		feeder.accept(grammarAccess.getActionTaskAccess().getActionTaskActionEnumEnumRuleCall_1_0(), semanticObject.getAction());
+		feeder.finish();
+	}
+	
+	
+	/**
+	 * Constraint:
+	 *     (name=ID (description?='described by' descriptionValue=TRANSLATABLESTRING)? actions+=ActionButton*)
+	 */
+	protected void sequence_ActionToolbar(EObject context, ActionToolbar semanticObject) {
+		genericSequencer.createSequence(context, semanticObject);
+	}
+	
+	
+	/**
+	 * Constraint:
+	 *     action=WorkflowActionEnum
+	 */
+	protected void sequence_ActionWorkflow(EObject context, ActionWorkflow semanticObject) {
+		if(errorAcceptor != null) {
+			if(transientValues.isValueTransient(semanticObject, ActionDSLPackage.Literals.ACTION_WORKFLOW__ACTION) == ValueTransient.YES)
+				errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, ActionDSLPackage.Literals.ACTION_WORKFLOW__ACTION));
+		}
+		INodesForEObjectProvider nodes = createNodeProvider(semanticObject);
+		SequenceFeeder feeder = createSequencerFeeder(semanticObject, nodes);
+		feeder.accept(grammarAccess.getActionWorkflowAccess().getActionWorkflowActionEnumEnumRuleCall_1_0(), semanticObject.getAction());
+		feeder.finish();
+	}
+}
diff --git a/org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/serializer/ActionDSLSyntacticSequencer.java b/org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/serializer/ActionDSLSyntacticSequencer.java
new file mode 100644
index 0000000..6217251
--- /dev/null
+++ b/org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/serializer/ActionDSLSyntacticSequencer.java
@@ -0,0 +1,189 @@
+/**
+ *                                                                            
+ *  Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) 
+ *                                                                            
+ *  All rights reserved. This program and the accompanying materials           
+ *  are made available under the 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.action.serializer;
+
+import com.google.inject.Inject;
+import java.util.List;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.osbp.xtext.action.services.ActionDSLGrammarAccess;
+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.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 ActionDSLSyntacticSequencer extends AbstractSyntacticSequencer {
+
+	protected ActionDSLGrammarAccess grammarAccess;
+	protected AbstractElementAlias match_ActionPackage___LeftCurlyBracketKeyword_3_0_RightCurlyBracketKeyword_3_3__q;
+	protected AbstractElementAlias match_ActionToolbar___ItemsKeyword_4_0_LeftCurlyBracketKeyword_4_1_RightCurlyBracketKeyword_4_3__q;
+	protected AbstractElementAlias match_XAnnotation___LeftParenthesisKeyword_3_0_RightParenthesisKeyword_3_2__q;
+	protected AbstractElementAlias match_XBlockExpression_SemicolonKeyword_2_1_q;
+	protected AbstractElementAlias match_XExpressionInClosure_SemicolonKeyword_1_1_q;
+	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 = (ActionDSLGrammarAccess) access;
+		match_ActionPackage___LeftCurlyBracketKeyword_3_0_RightCurlyBracketKeyword_3_3__q = new GroupAlias(false, true, new TokenAlias(false, false, grammarAccess.getActionPackageAccess().getLeftCurlyBracketKeyword_3_0()), new TokenAlias(false, false, grammarAccess.getActionPackageAccess().getRightCurlyBracketKeyword_3_3()));
+		match_ActionToolbar___ItemsKeyword_4_0_LeftCurlyBracketKeyword_4_1_RightCurlyBracketKeyword_4_3__q = new GroupAlias(false, true, new TokenAlias(false, false, grammarAccess.getActionToolbarAccess().getItemsKeyword_4_0()), new TokenAlias(false, false, grammarAccess.getActionToolbarAccess().getLeftCurlyBracketKeyword_4_1()), new TokenAlias(false, false, grammarAccess.getActionToolbarAccess().getRightCurlyBracketKeyword_4_3()));
+		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_ActionPackage___LeftCurlyBracketKeyword_3_0_RightCurlyBracketKeyword_3_3__q.equals(syntax))
+				emit_ActionPackage___LeftCurlyBracketKeyword_3_0_RightCurlyBracketKeyword_3_3__q(semanticObject, getLastNavigableState(), syntaxNodes);
+			else if(match_ActionToolbar___ItemsKeyword_4_0_LeftCurlyBracketKeyword_4_1_RightCurlyBracketKeyword_4_3__q.equals(syntax))
+				emit_ActionToolbar___ItemsKeyword_4_0_LeftCurlyBracketKeyword_4_1_RightCurlyBracketKeyword_4_3__q(semanticObject, getLastNavigableState(), syntaxNodes);
+			else if(match_XAnnotation___LeftParenthesisKeyword_3_0_RightParenthesisKeyword_3_2__q.equals(syntax))
+				emit_XAnnotation___LeftParenthesisKeyword_3_0_RightParenthesisKeyword_3_2__q(semanticObject, getLastNavigableState(), syntaxNodes);
+			else if(match_XBlockExpression_SemicolonKeyword_2_1_q.equals(syntax))
+				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:
+	 *     ('{' '}')?
+	 */
+	protected void emit_ActionPackage___LeftCurlyBracketKeyword_3_0_RightCurlyBracketKeyword_3_3__q(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
+		acceptNodes(transition, nodes);
+	}
+	
+	/**
+	 * Syntax:
+	 *     ('items' '{' '}')?
+	 */
+	protected void emit_ActionToolbar___ItemsKeyword_4_0_LeftCurlyBracketKeyword_4_1_RightCurlyBracketKeyword_4_3__q(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.action/src-gen/org/eclipse/osbp/xtext/action/services/ActionDSLGrammarAccess.java b/org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/services/ActionDSLGrammarAccess.java
new file mode 100644
index 0000000..00fd5dc
--- /dev/null
+++ b/org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/services/ActionDSLGrammarAccess.java
@@ -0,0 +1,2357 @@
+/**
+ *                                                                            
+ *  Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) 
+ *                                                                            
+ *  All rights reserved. This program and the accompanying materials           
+ *  are made available under the 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.action.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 ActionDSLGrammarAccess extends AbstractGrammarElementFinder {
+	
+	
+	public class ActionModelElements extends AbstractParserRuleElementFinder {
+		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "ActionModel");
+		private final Assignment cPackagesAssignment = (Assignment)rule.eContents().get(1);
+		private final RuleCall cPackagesActionPackageParserRuleCall_0 = (RuleCall)cPackagesAssignment.eContents().get(0);
+		
+		//ActionModel:
+		//	packages+=ActionPackage*;
+		public ParserRule getRule() { return rule; }
+
+		//packages+=ActionPackage*
+		public Assignment getPackagesAssignment() { return cPackagesAssignment; }
+
+		//ActionPackage
+		public RuleCall getPackagesActionPackageParserRuleCall_0() { return cPackagesActionPackageParserRuleCall_0; }
+	}
+
+	public class ActionPackageElements extends AbstractParserRuleElementFinder {
+		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "ActionPackage");
+		private final Group cGroup = (Group)rule.eContents().get(1);
+		private final Action cActionPackageAction_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 Group cGroup_3 = (Group)cGroup.eContents().get(3);
+		private final Keyword cLeftCurlyBracketKeyword_3_0 = (Keyword)cGroup_3.eContents().get(0);
+		private final Assignment cImportsAssignment_3_1 = (Assignment)cGroup_3.eContents().get(1);
+		private final RuleCall cImportsActionImportParserRuleCall_3_1_0 = (RuleCall)cImportsAssignment_3_1.eContents().get(0);
+		private final Assignment cToolbarsAssignment_3_2 = (Assignment)cGroup_3.eContents().get(2);
+		private final RuleCall cToolbarsActionToolbarParserRuleCall_3_2_0 = (RuleCall)cToolbarsAssignment_3_2.eContents().get(0);
+		private final Keyword cRightCurlyBracketKeyword_3_3 = (Keyword)cGroup_3.eContents().get(3);
+		
+		//ActionPackage:
+		//	{ActionPackage} "package" name=QualifiedName ("{" imports+=ActionImport* toolbars+=ActionToolbar* "}")?;
+		public ParserRule getRule() { return rule; }
+
+		//{ActionPackage} "package" name=QualifiedName ("{" imports+=ActionImport* toolbars+=ActionToolbar* "}")?
+		public Group getGroup() { return cGroup; }
+
+		//{ActionPackage}
+		public Action getActionPackageAction_0() { return cActionPackageAction_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; }
+
+		//("{" imports+=ActionImport* toolbars+=ActionToolbar* "}")?
+		public Group getGroup_3() { return cGroup_3; }
+
+		//"{"
+		public Keyword getLeftCurlyBracketKeyword_3_0() { return cLeftCurlyBracketKeyword_3_0; }
+
+		//imports+=ActionImport*
+		public Assignment getImportsAssignment_3_1() { return cImportsAssignment_3_1; }
+
+		//ActionImport
+		public RuleCall getImportsActionImportParserRuleCall_3_1_0() { return cImportsActionImportParserRuleCall_3_1_0; }
+
+		//toolbars+=ActionToolbar*
+		public Assignment getToolbarsAssignment_3_2() { return cToolbarsAssignment_3_2; }
+
+		//ActionToolbar
+		public RuleCall getToolbarsActionToolbarParserRuleCall_3_2_0() { return cToolbarsActionToolbarParserRuleCall_3_2_0; }
+
+		//"}"
+		public Keyword getRightCurlyBracketKeyword_3_3() { return cRightCurlyBracketKeyword_3_3; }
+	}
+
+	public class ActionToolbarElements extends AbstractParserRuleElementFinder {
+		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "ActionToolbar");
+		private final Group cGroup = (Group)rule.eContents().get(1);
+		private final Action cActionToolbarAction_0 = (Action)cGroup.eContents().get(0);
+		private final Keyword cToolbarKeyword_1 = (Keyword)cGroup.eContents().get(1);
+		private final Assignment cNameAssignment_2 = (Assignment)cGroup.eContents().get(2);
+		private final RuleCall cNameIDTerminalRuleCall_2_0 = (RuleCall)cNameAssignment_2.eContents().get(0);
+		private final Group cGroup_3 = (Group)cGroup.eContents().get(3);
+		private final Assignment cDescriptionAssignment_3_0 = (Assignment)cGroup_3.eContents().get(0);
+		private final Keyword cDescriptionDescribedByKeyword_3_0_0 = (Keyword)cDescriptionAssignment_3_0.eContents().get(0);
+		private final Assignment cDescriptionValueAssignment_3_1 = (Assignment)cGroup_3.eContents().get(1);
+		private final RuleCall cDescriptionValueTRANSLATABLESTRINGParserRuleCall_3_1_0 = (RuleCall)cDescriptionValueAssignment_3_1.eContents().get(0);
+		private final Group cGroup_4 = (Group)cGroup.eContents().get(4);
+		private final Keyword cItemsKeyword_4_0 = (Keyword)cGroup_4.eContents().get(0);
+		private final Keyword cLeftCurlyBracketKeyword_4_1 = (Keyword)cGroup_4.eContents().get(1);
+		private final Assignment cActionsAssignment_4_2 = (Assignment)cGroup_4.eContents().get(2);
+		private final RuleCall cActionsActionButtonParserRuleCall_4_2_0 = (RuleCall)cActionsAssignment_4_2.eContents().get(0);
+		private final Keyword cRightCurlyBracketKeyword_4_3 = (Keyword)cGroup_4.eContents().get(3);
+		
+		//ActionToolbar:
+		//	{ActionToolbar} "toolbar" name=ID (description?="described by" descriptionValue=TRANSLATABLESTRING)? ("items" "{"
+		//	actions+=ActionButton* "}")?;
+		public ParserRule getRule() { return rule; }
+
+		//{ActionToolbar} "toolbar" name=ID (description?="described by" descriptionValue=TRANSLATABLESTRING)? ("items" "{"
+		//actions+=ActionButton* "}")?
+		public Group getGroup() { return cGroup; }
+
+		//{ActionToolbar}
+		public Action getActionToolbarAction_0() { return cActionToolbarAction_0; }
+
+		//"toolbar"
+		public Keyword getToolbarKeyword_1() { return cToolbarKeyword_1; }
+
+		//name=ID
+		public Assignment getNameAssignment_2() { return cNameAssignment_2; }
+
+		//ID
+		public RuleCall getNameIDTerminalRuleCall_2_0() { return cNameIDTerminalRuleCall_2_0; }
+
+		//(description?="described by" descriptionValue=TRANSLATABLESTRING)?
+		public Group getGroup_3() { return cGroup_3; }
+
+		//description?="described by"
+		public Assignment getDescriptionAssignment_3_0() { return cDescriptionAssignment_3_0; }
+
+		//"described by"
+		public Keyword getDescriptionDescribedByKeyword_3_0_0() { return cDescriptionDescribedByKeyword_3_0_0; }
+
+		//descriptionValue=TRANSLATABLESTRING
+		public Assignment getDescriptionValueAssignment_3_1() { return cDescriptionValueAssignment_3_1; }
+
+		//TRANSLATABLESTRING
+		public RuleCall getDescriptionValueTRANSLATABLESTRINGParserRuleCall_3_1_0() { return cDescriptionValueTRANSLATABLESTRINGParserRuleCall_3_1_0; }
+
+		//("items" "{" actions+=ActionButton* "}")?
+		public Group getGroup_4() { return cGroup_4; }
+
+		//"items"
+		public Keyword getItemsKeyword_4_0() { return cItemsKeyword_4_0; }
+
+		//"{"
+		public Keyword getLeftCurlyBracketKeyword_4_1() { return cLeftCurlyBracketKeyword_4_1; }
+
+		//actions+=ActionButton*
+		public Assignment getActionsAssignment_4_2() { return cActionsAssignment_4_2; }
+
+		//ActionButton
+		public RuleCall getActionsActionButtonParserRuleCall_4_2_0() { return cActionsActionButtonParserRuleCall_4_2_0; }
+
+		//"}"
+		public Keyword getRightCurlyBracketKeyword_4_3() { return cRightCurlyBracketKeyword_4_3; }
+	}
+
+	public class ActionButtonElements extends AbstractParserRuleElementFinder {
+		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "ActionButton");
+		private final Group cGroup = (Group)rule.eContents().get(1);
+		private final Action cActionButtonAction_0 = (Action)cGroup.eContents().get(0);
+		private final Keyword cItemKeyword_1 = (Keyword)cGroup.eContents().get(1);
+		private final Assignment cNameAssignment_2 = (Assignment)cGroup.eContents().get(2);
+		private final RuleCall cNameTRANSLATABLEIDParserRuleCall_2_0 = (RuleCall)cNameAssignment_2.eContents().get(0);
+		private final Group cGroup_3 = (Group)cGroup.eContents().get(3);
+		private final Assignment cDescriptionAssignment_3_0 = (Assignment)cGroup_3.eContents().get(0);
+		private final Keyword cDescriptionDescribedByKeyword_3_0_0 = (Keyword)cDescriptionAssignment_3_0.eContents().get(0);
+		private final Assignment cDescriptionValueAssignment_3_1 = (Assignment)cGroup_3.eContents().get(1);
+		private final RuleCall cDescriptionValueTRANSLATABLESTRINGParserRuleCall_3_1_0 = (RuleCall)cDescriptionValueAssignment_3_1.eContents().get(0);
+		private final Group cGroup_4 = (Group)cGroup.eContents().get(4);
+		private final Keyword cIconKeyword_4_0 = (Keyword)cGroup_4.eContents().get(0);
+		private final Assignment cIconURIAssignment_4_1 = (Assignment)cGroup_4.eContents().get(1);
+		private final RuleCall cIconURISTRINGTerminalRuleCall_4_1_0 = (RuleCall)cIconURIAssignment_4_1.eContents().get(0);
+		private final UnorderedGroup cUnorderedGroup_5 = (UnorderedGroup)cGroup.eContents().get(5);
+		private final Group cGroup_5_0 = (Group)cUnorderedGroup_5.eContents().get(0);
+		private final Keyword cGroupKeyword_5_0_0 = (Keyword)cGroup_5_0.eContents().get(0);
+		private final Assignment cGroupAssignment_5_0_1 = (Assignment)cGroup_5_0.eContents().get(1);
+		private final CrossReference cGroupFunctionLibraryGroupCrossReference_5_0_1_0 = (CrossReference)cGroupAssignment_5_0_1.eContents().get(0);
+		private final RuleCall cGroupFunctionLibraryGroupIDTerminalRuleCall_5_0_1_0_1 = (RuleCall)cGroupFunctionLibraryGroupCrossReference_5_0_1_0.eContents().get(1);
+		private final Group cGroup_5_0_2 = (Group)cGroup_5_0.eContents().get(2);
+		private final Keyword cCanExecuteKeyword_5_0_2_0 = (Keyword)cGroup_5_0_2.eContents().get(0);
+		private final Assignment cCanexecuteAssignment_5_0_2_1 = (Assignment)cGroup_5_0_2.eContents().get(1);
+		private final CrossReference cCanexecuteFunctionLibraryFunctionCrossReference_5_0_2_1_0 = (CrossReference)cCanexecuteAssignment_5_0_2_1.eContents().get(0);
+		private final RuleCall cCanexecuteFunctionLibraryFunctionIDTerminalRuleCall_5_0_2_1_0_1 = (RuleCall)cCanexecuteFunctionLibraryFunctionCrossReference_5_0_2_1_0.eContents().get(1);
+		private final Group cGroup_5_1 = (Group)cUnorderedGroup_5.eContents().get(1);
+		private final Keyword cExecuteParameterKeyword_5_1_0 = (Keyword)cGroup_5_1.eContents().get(0);
+		private final Assignment cExecuteparameterAssignment_5_1_1 = (Assignment)cGroup_5_1.eContents().get(1);
+		private final CrossReference cExecuteparameterFunctionLibraryFunctionCrossReference_5_1_1_0 = (CrossReference)cExecuteparameterAssignment_5_1_1.eContents().get(0);
+		private final RuleCall cExecuteparameterFunctionLibraryFunctionIDTerminalRuleCall_5_1_1_0_1 = (RuleCall)cExecuteparameterFunctionLibraryFunctionCrossReference_5_1_1_0.eContents().get(1);
+		private final Assignment cActionTypeAssignment_6 = (Assignment)cGroup.eContents().get(6);
+		private final RuleCall cActionTypeActionTypeParserRuleCall_6_0 = (RuleCall)cActionTypeAssignment_6.eContents().get(0);
+		private final Group cGroup_7 = (Group)cGroup.eContents().get(7);
+		private final Keyword cMessageKeyword_7_0 = (Keyword)cGroup_7.eContents().get(0);
+		private final Assignment cMessageAssignment_7_1 = (Assignment)cGroup_7.eContents().get(1);
+		private final CrossReference cMessageMessageItemCrossReference_7_1_0 = (CrossReference)cMessageAssignment_7_1.eContents().get(0);
+		private final RuleCall cMessageMessageItemQualifiedNameParserRuleCall_7_1_0_1 = (RuleCall)cMessageMessageItemCrossReference_7_1_0.eContents().get(1);
+		
+		//ActionButton:
+		//	{ActionButton} "item" name=TRANSLATABLEID (description?="described by" descriptionValue=TRANSLATABLESTRING)? ("icon"
+		//	iconURI=STRING)? ("group" group=[func::FunctionLibraryGroup] ("canExecute"
+		//	canexecute=[func::FunctionLibraryFunction])? & ("executeParameter"
+		//	executeparameter=[func::FunctionLibraryFunction])?)? actionType=ActionType ("message"
+		//	message=[msg::MessageItem|QualifiedName])?;
+		public ParserRule getRule() { return rule; }
+
+		//{ActionButton} "item" name=TRANSLATABLEID (description?="described by" descriptionValue=TRANSLATABLESTRING)? ("icon"
+		//iconURI=STRING)? ("group" group=[func::FunctionLibraryGroup] ("canExecute"
+		//canexecute=[func::FunctionLibraryFunction])? & ("executeParameter"
+		//executeparameter=[func::FunctionLibraryFunction])?)? actionType=ActionType ("message"
+		//message=[msg::MessageItem|QualifiedName])?
+		public Group getGroup() { return cGroup; }
+
+		//{ActionButton}
+		public Action getActionButtonAction_0() { return cActionButtonAction_0; }
+
+		//"item"
+		public Keyword getItemKeyword_1() { return cItemKeyword_1; }
+
+		//name=TRANSLATABLEID
+		public Assignment getNameAssignment_2() { return cNameAssignment_2; }
+
+		//TRANSLATABLEID
+		public RuleCall getNameTRANSLATABLEIDParserRuleCall_2_0() { return cNameTRANSLATABLEIDParserRuleCall_2_0; }
+
+		//(description?="described by" descriptionValue=TRANSLATABLESTRING)?
+		public Group getGroup_3() { return cGroup_3; }
+
+		//description?="described by"
+		public Assignment getDescriptionAssignment_3_0() { return cDescriptionAssignment_3_0; }
+
+		//"described by"
+		public Keyword getDescriptionDescribedByKeyword_3_0_0() { return cDescriptionDescribedByKeyword_3_0_0; }
+
+		//descriptionValue=TRANSLATABLESTRING
+		public Assignment getDescriptionValueAssignment_3_1() { return cDescriptionValueAssignment_3_1; }
+
+		//TRANSLATABLESTRING
+		public RuleCall getDescriptionValueTRANSLATABLESTRINGParserRuleCall_3_1_0() { return cDescriptionValueTRANSLATABLESTRINGParserRuleCall_3_1_0; }
+
+		//("icon" iconURI=STRING)?
+		public Group getGroup_4() { return cGroup_4; }
+
+		//"icon"
+		public Keyword getIconKeyword_4_0() { return cIconKeyword_4_0; }
+
+		//iconURI=STRING
+		public Assignment getIconURIAssignment_4_1() { return cIconURIAssignment_4_1; }
+
+		//STRING
+		public RuleCall getIconURISTRINGTerminalRuleCall_4_1_0() { return cIconURISTRINGTerminalRuleCall_4_1_0; }
+
+		//("group" group=[func::FunctionLibraryGroup] ("canExecute" canexecute=[func::FunctionLibraryFunction])? &
+		//("executeParameter" executeparameter=[func::FunctionLibraryFunction])?)?
+		public UnorderedGroup getUnorderedGroup_5() { return cUnorderedGroup_5; }
+
+		//"group" group=[func::FunctionLibraryGroup] ("canExecute" canexecute=[func::FunctionLibraryFunction])?
+		public Group getGroup_5_0() { return cGroup_5_0; }
+
+		//"group"
+		public Keyword getGroupKeyword_5_0_0() { return cGroupKeyword_5_0_0; }
+
+		//group=[func::FunctionLibraryGroup]
+		public Assignment getGroupAssignment_5_0_1() { return cGroupAssignment_5_0_1; }
+
+		//[func::FunctionLibraryGroup]
+		public CrossReference getGroupFunctionLibraryGroupCrossReference_5_0_1_0() { return cGroupFunctionLibraryGroupCrossReference_5_0_1_0; }
+
+		//ID
+		public RuleCall getGroupFunctionLibraryGroupIDTerminalRuleCall_5_0_1_0_1() { return cGroupFunctionLibraryGroupIDTerminalRuleCall_5_0_1_0_1; }
+
+		//("canExecute" canexecute=[func::FunctionLibraryFunction])?
+		public Group getGroup_5_0_2() { return cGroup_5_0_2; }
+
+		//"canExecute"
+		public Keyword getCanExecuteKeyword_5_0_2_0() { return cCanExecuteKeyword_5_0_2_0; }
+
+		//canexecute=[func::FunctionLibraryFunction]
+		public Assignment getCanexecuteAssignment_5_0_2_1() { return cCanexecuteAssignment_5_0_2_1; }
+
+		//[func::FunctionLibraryFunction]
+		public CrossReference getCanexecuteFunctionLibraryFunctionCrossReference_5_0_2_1_0() { return cCanexecuteFunctionLibraryFunctionCrossReference_5_0_2_1_0; }
+
+		//ID
+		public RuleCall getCanexecuteFunctionLibraryFunctionIDTerminalRuleCall_5_0_2_1_0_1() { return cCanexecuteFunctionLibraryFunctionIDTerminalRuleCall_5_0_2_1_0_1; }
+
+		//("executeParameter" executeparameter=[func::FunctionLibraryFunction])?
+		public Group getGroup_5_1() { return cGroup_5_1; }
+
+		//"executeParameter"
+		public Keyword getExecuteParameterKeyword_5_1_0() { return cExecuteParameterKeyword_5_1_0; }
+
+		//executeparameter=[func::FunctionLibraryFunction]
+		public Assignment getExecuteparameterAssignment_5_1_1() { return cExecuteparameterAssignment_5_1_1; }
+
+		//[func::FunctionLibraryFunction]
+		public CrossReference getExecuteparameterFunctionLibraryFunctionCrossReference_5_1_1_0() { return cExecuteparameterFunctionLibraryFunctionCrossReference_5_1_1_0; }
+
+		//ID
+		public RuleCall getExecuteparameterFunctionLibraryFunctionIDTerminalRuleCall_5_1_1_0_1() { return cExecuteparameterFunctionLibraryFunctionIDTerminalRuleCall_5_1_1_0_1; }
+
+		//actionType=ActionType
+		public Assignment getActionTypeAssignment_6() { return cActionTypeAssignment_6; }
+
+		//ActionType
+		public RuleCall getActionTypeActionTypeParserRuleCall_6_0() { return cActionTypeActionTypeParserRuleCall_6_0; }
+
+		//("message" message=[msg::MessageItem|QualifiedName])?
+		public Group getGroup_7() { return cGroup_7; }
+
+		//"message"
+		public Keyword getMessageKeyword_7_0() { return cMessageKeyword_7_0; }
+
+		//message=[msg::MessageItem|QualifiedName]
+		public Assignment getMessageAssignment_7_1() { return cMessageAssignment_7_1; }
+
+		//[msg::MessageItem|QualifiedName]
+		public CrossReference getMessageMessageItemCrossReference_7_1_0() { return cMessageMessageItemCrossReference_7_1_0; }
+
+		//QualifiedName
+		public RuleCall getMessageMessageItemQualifiedNameParserRuleCall_7_1_0_1() { return cMessageMessageItemQualifiedNameParserRuleCall_7_1_0_1; }
+	}
+
+	public class ActionTypeElements extends AbstractParserRuleElementFinder {
+		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "ActionType");
+		private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1);
+		private final RuleCall cActionTaskParserRuleCall_0 = (RuleCall)cAlternatives.eContents().get(0);
+		private final RuleCall cActionSelectWorkloadParserRuleCall_1 = (RuleCall)cAlternatives.eContents().get(1);
+		private final RuleCall cActionDialogParserRuleCall_2 = (RuleCall)cAlternatives.eContents().get(2);
+		private final RuleCall cActionReportParserRuleCall_3 = (RuleCall)cAlternatives.eContents().get(3);
+		private final RuleCall cActionChartParserRuleCall_4 = (RuleCall)cAlternatives.eContents().get(4);
+		private final RuleCall cActionWorkflowParserRuleCall_5 = (RuleCall)cAlternatives.eContents().get(5);
+		private final RuleCall cActionGenericParserRuleCall_6 = (RuleCall)cAlternatives.eContents().get(6);
+		private final RuleCall cActionDatainterchangeParserRuleCall_7 = (RuleCall)cAlternatives.eContents().get(7);
+		
+		//ActionType:
+		//	ActionTask | ActionSelectWorkload | ActionDialog | ActionReport | ActionChart | ActionWorkflow | ActionGeneric |
+		//	ActionDatainterchange;
+		public ParserRule getRule() { return rule; }
+
+		//ActionTask | ActionSelectWorkload | ActionDialog | ActionReport | ActionChart | ActionWorkflow | ActionGeneric |
+		//ActionDatainterchange
+		public Alternatives getAlternatives() { return cAlternatives; }
+
+		//ActionTask
+		public RuleCall getActionTaskParserRuleCall_0() { return cActionTaskParserRuleCall_0; }
+
+		//ActionSelectWorkload
+		public RuleCall getActionSelectWorkloadParserRuleCall_1() { return cActionSelectWorkloadParserRuleCall_1; }
+
+		//ActionDialog
+		public RuleCall getActionDialogParserRuleCall_2() { return cActionDialogParserRuleCall_2; }
+
+		//ActionReport
+		public RuleCall getActionReportParserRuleCall_3() { return cActionReportParserRuleCall_3; }
+
+		//ActionChart
+		public RuleCall getActionChartParserRuleCall_4() { return cActionChartParserRuleCall_4; }
+
+		//ActionWorkflow
+		public RuleCall getActionWorkflowParserRuleCall_5() { return cActionWorkflowParserRuleCall_5; }
+
+		//ActionGeneric
+		public RuleCall getActionGenericParserRuleCall_6() { return cActionGenericParserRuleCall_6; }
+
+		//ActionDatainterchange
+		public RuleCall getActionDatainterchangeParserRuleCall_7() { return cActionDatainterchangeParserRuleCall_7; }
+	}
+
+	public class ActionTaskElements extends AbstractParserRuleElementFinder {
+		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "ActionTask");
+		private final Group cGroup = (Group)rule.eContents().get(1);
+		private final Keyword cTaskActionKeyword_0 = (Keyword)cGroup.eContents().get(0);
+		private final Assignment cActionAssignment_1 = (Assignment)cGroup.eContents().get(1);
+		private final RuleCall cActionTaskActionEnumEnumRuleCall_1_0 = (RuleCall)cActionAssignment_1.eContents().get(0);
+		
+		//ActionTask:
+		//	"taskAction" action=TaskActionEnum;
+		public ParserRule getRule() { return rule; }
+
+		//"taskAction" action=TaskActionEnum
+		public Group getGroup() { return cGroup; }
+
+		//"taskAction"
+		public Keyword getTaskActionKeyword_0() { return cTaskActionKeyword_0; }
+
+		//action=TaskActionEnum
+		public Assignment getActionAssignment_1() { return cActionAssignment_1; }
+
+		//TaskActionEnum
+		public RuleCall getActionTaskActionEnumEnumRuleCall_1_0() { return cActionTaskActionEnumEnumRuleCall_1_0; }
+	}
+
+	public class ActionSelectWorkloadElements extends AbstractParserRuleElementFinder {
+		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "ActionSelectWorkload");
+		private final Group cGroup = (Group)rule.eContents().get(1);
+		private final Keyword cSelectWorkloadActionKeyword_0 = (Keyword)cGroup.eContents().get(0);
+		private final Assignment cActionAssignment_1 = (Assignment)cGroup.eContents().get(1);
+		private final RuleCall cActionSelectWorkloadActionEnumEnumRuleCall_1_0 = (RuleCall)cActionAssignment_1.eContents().get(0);
+		
+		//ActionSelectWorkload:
+		//	"selectWorkloadAction" action=SelectWorkloadActionEnum;
+		public ParserRule getRule() { return rule; }
+
+		//"selectWorkloadAction" action=SelectWorkloadActionEnum
+		public Group getGroup() { return cGroup; }
+
+		//"selectWorkloadAction"
+		public Keyword getSelectWorkloadActionKeyword_0() { return cSelectWorkloadActionKeyword_0; }
+
+		//action=SelectWorkloadActionEnum
+		public Assignment getActionAssignment_1() { return cActionAssignment_1; }
+
+		//SelectWorkloadActionEnum
+		public RuleCall getActionSelectWorkloadActionEnumEnumRuleCall_1_0() { return cActionSelectWorkloadActionEnumEnumRuleCall_1_0; }
+	}
+
+	public class ActionDialogElements extends AbstractParserRuleElementFinder {
+		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "ActionDialog");
+		private final Group cGroup = (Group)rule.eContents().get(1);
+		private final Keyword cDialogActionKeyword_0 = (Keyword)cGroup.eContents().get(0);
+		private final Assignment cActionAssignment_1 = (Assignment)cGroup.eContents().get(1);
+		private final RuleCall cActionDialogActionEnumEnumRuleCall_1_0 = (RuleCall)cActionAssignment_1.eContents().get(0);
+		
+		//ActionDialog:
+		//	"dialogAction" action=DialogActionEnum;
+		public ParserRule getRule() { return rule; }
+
+		//"dialogAction" action=DialogActionEnum
+		public Group getGroup() { return cGroup; }
+
+		//"dialogAction"
+		public Keyword getDialogActionKeyword_0() { return cDialogActionKeyword_0; }
+
+		//action=DialogActionEnum
+		public Assignment getActionAssignment_1() { return cActionAssignment_1; }
+
+		//DialogActionEnum
+		public RuleCall getActionDialogActionEnumEnumRuleCall_1_0() { return cActionDialogActionEnumEnumRuleCall_1_0; }
+	}
+
+	public class ActionReportElements extends AbstractParserRuleElementFinder {
+		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "ActionReport");
+		private final Group cGroup = (Group)rule.eContents().get(1);
+		private final Keyword cReportActionKeyword_0 = (Keyword)cGroup.eContents().get(0);
+		private final Assignment cActionAssignment_1 = (Assignment)cGroup.eContents().get(1);
+		private final RuleCall cActionReportActionEnumEnumRuleCall_1_0 = (RuleCall)cActionAssignment_1.eContents().get(0);
+		
+		//ActionReport:
+		//	"reportAction" action=ReportActionEnum;
+		public ParserRule getRule() { return rule; }
+
+		//"reportAction" action=ReportActionEnum
+		public Group getGroup() { return cGroup; }
+
+		//"reportAction"
+		public Keyword getReportActionKeyword_0() { return cReportActionKeyword_0; }
+
+		//action=ReportActionEnum
+		public Assignment getActionAssignment_1() { return cActionAssignment_1; }
+
+		//ReportActionEnum
+		public RuleCall getActionReportActionEnumEnumRuleCall_1_0() { return cActionReportActionEnumEnumRuleCall_1_0; }
+	}
+
+	public class ActionChartElements extends AbstractParserRuleElementFinder {
+		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "ActionChart");
+		private final Group cGroup = (Group)rule.eContents().get(1);
+		private final Keyword cChartActionKeyword_0 = (Keyword)cGroup.eContents().get(0);
+		private final Assignment cActionAssignment_1 = (Assignment)cGroup.eContents().get(1);
+		private final RuleCall cActionChartActionEnumEnumRuleCall_1_0 = (RuleCall)cActionAssignment_1.eContents().get(0);
+		
+		//ActionChart:
+		//	"chartAction" action=ChartActionEnum;
+		public ParserRule getRule() { return rule; }
+
+		//"chartAction" action=ChartActionEnum
+		public Group getGroup() { return cGroup; }
+
+		//"chartAction"
+		public Keyword getChartActionKeyword_0() { return cChartActionKeyword_0; }
+
+		//action=ChartActionEnum
+		public Assignment getActionAssignment_1() { return cActionAssignment_1; }
+
+		//ChartActionEnum
+		public RuleCall getActionChartActionEnumEnumRuleCall_1_0() { return cActionChartActionEnumEnumRuleCall_1_0; }
+	}
+
+	public class ActionWorkflowElements extends AbstractParserRuleElementFinder {
+		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "ActionWorkflow");
+		private final Group cGroup = (Group)rule.eContents().get(1);
+		private final Keyword cWorkflowActionKeyword_0 = (Keyword)cGroup.eContents().get(0);
+		private final Assignment cActionAssignment_1 = (Assignment)cGroup.eContents().get(1);
+		private final RuleCall cActionWorkflowActionEnumEnumRuleCall_1_0 = (RuleCall)cActionAssignment_1.eContents().get(0);
+		
+		//ActionWorkflow:
+		//	"workflowAction" action=WorkflowActionEnum;
+		public ParserRule getRule() { return rule; }
+
+		//"workflowAction" action=WorkflowActionEnum
+		public Group getGroup() { return cGroup; }
+
+		//"workflowAction"
+		public Keyword getWorkflowActionKeyword_0() { return cWorkflowActionKeyword_0; }
+
+		//action=WorkflowActionEnum
+		public Assignment getActionAssignment_1() { return cActionAssignment_1; }
+
+		//WorkflowActionEnum
+		public RuleCall getActionWorkflowActionEnumEnumRuleCall_1_0() { return cActionWorkflowActionEnumEnumRuleCall_1_0; }
+	}
+
+	public class ActionDatainterchangeElements extends AbstractParserRuleElementFinder {
+		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "ActionDatainterchange");
+		private final Group cGroup = (Group)rule.eContents().get(1);
+		private final Keyword cDatainterchangeActionKeyword_0 = (Keyword)cGroup.eContents().get(0);
+		private final Assignment cActionAssignment_1 = (Assignment)cGroup.eContents().get(1);
+		private final RuleCall cActionDatainterchangeActionEnumEnumRuleCall_1_0 = (RuleCall)cActionAssignment_1.eContents().get(0);
+		private final Assignment cDataRefAssignment_2 = (Assignment)cGroup.eContents().get(2);
+		private final CrossReference cDataRefDataInterchangeCrossReference_2_0 = (CrossReference)cDataRefAssignment_2.eContents().get(0);
+		private final RuleCall cDataRefDataInterchangeIDTerminalRuleCall_2_0_1 = (RuleCall)cDataRefDataInterchangeCrossReference_2_0.eContents().get(1);
+		
+		//ActionDatainterchange:
+		//	"datainterchangeAction" action=DatainterchangeActionEnum dataRef=[data::DataInterchange];
+		public ParserRule getRule() { return rule; }
+
+		//"datainterchangeAction" action=DatainterchangeActionEnum dataRef=[data::DataInterchange]
+		public Group getGroup() { return cGroup; }
+
+		//"datainterchangeAction"
+		public Keyword getDatainterchangeActionKeyword_0() { return cDatainterchangeActionKeyword_0; }
+
+		//action=DatainterchangeActionEnum
+		public Assignment getActionAssignment_1() { return cActionAssignment_1; }
+
+		//DatainterchangeActionEnum
+		public RuleCall getActionDatainterchangeActionEnumEnumRuleCall_1_0() { return cActionDatainterchangeActionEnumEnumRuleCall_1_0; }
+
+		//dataRef=[data::DataInterchange]
+		public Assignment getDataRefAssignment_2() { return cDataRefAssignment_2; }
+
+		//[data::DataInterchange]
+		public CrossReference getDataRefDataInterchangeCrossReference_2_0() { return cDataRefDataInterchangeCrossReference_2_0; }
+
+		//ID
+		public RuleCall getDataRefDataInterchangeIDTerminalRuleCall_2_0_1() { return cDataRefDataInterchangeIDTerminalRuleCall_2_0_1; }
+	}
+
+	public class ActionGenericElements extends AbstractParserRuleElementFinder {
+		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "ActionGeneric");
+		private final Group cGroup = (Group)rule.eContents().get(1);
+		private final Keyword cGenericActionKeyword_0 = (Keyword)cGroup.eContents().get(0);
+		private final Assignment cActionAssignment_1 = (Assignment)cGroup.eContents().get(1);
+		private final RuleCall cActionSTRINGTerminalRuleCall_1_0 = (RuleCall)cActionAssignment_1.eContents().get(0);
+		
+		//ActionGeneric:
+		//	"genericAction" action=STRING;
+		public ParserRule getRule() { return rule; }
+
+		//"genericAction" action=STRING
+		public Group getGroup() { return cGroup; }
+
+		//"genericAction"
+		public Keyword getGenericActionKeyword_0() { return cGenericActionKeyword_0; }
+
+		//action=STRING
+		public Assignment getActionAssignment_1() { return cActionAssignment_1; }
+
+		//STRING
+		public RuleCall getActionSTRINGTerminalRuleCall_1_0() { return cActionSTRINGTerminalRuleCall_1_0; }
+	}
+
+	public class ActionParameterElements extends AbstractParserRuleElementFinder {
+		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "ActionParameter");
+		private final Group cGroup = (Group)rule.eContents().get(1);
+		private final Action cActionParameterAction_0 = (Action)cGroup.eContents().get(0);
+		private final Keyword cParameterKeyword_1 = (Keyword)cGroup.eContents().get(1);
+		private final Assignment cParameterAssignment_2 = (Assignment)cGroup.eContents().get(2);
+		private final CrossReference cParameterFunctionLibraryParameterCrossReference_2_0 = (CrossReference)cParameterAssignment_2.eContents().get(0);
+		private final RuleCall cParameterFunctionLibraryParameterIDTerminalRuleCall_2_0_1 = (RuleCall)cParameterFunctionLibraryParameterCrossReference_2_0.eContents().get(1);
+		
+		//ActionParameter:
+		//	{ActionParameter} "parameter" parameter=[func::FunctionLibraryParameter];
+		public ParserRule getRule() { return rule; }
+
+		//{ActionParameter} "parameter" parameter=[func::FunctionLibraryParameter]
+		public Group getGroup() { return cGroup; }
+
+		//{ActionParameter}
+		public Action getActionParameterAction_0() { return cActionParameterAction_0; }
+
+		//"parameter"
+		public Keyword getParameterKeyword_1() { return cParameterKeyword_1; }
+
+		//parameter=[func::FunctionLibraryParameter]
+		public Assignment getParameterAssignment_2() { return cParameterAssignment_2; }
+
+		//[func::FunctionLibraryParameter]
+		public CrossReference getParameterFunctionLibraryParameterCrossReference_2_0() { return cParameterFunctionLibraryParameterCrossReference_2_0; }
+
+		//ID
+		public RuleCall getParameterFunctionLibraryParameterIDTerminalRuleCall_2_0_1() { return cParameterFunctionLibraryParameterIDTerminalRuleCall_2_0_1; }
+	}
+
+	public class ActionImportElements extends AbstractParserRuleElementFinder {
+		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "ActionImport");
+		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 cImportedNamespaceActionQualifiedNameWithWildCardParserRuleCall_1_0 = (RuleCall)cImportedNamespaceAssignment_1.eContents().get(0);
+		
+		//ActionImport returns types::LImport:
+		//	"import" importedNamespace=ActionQualifiedNameWithWildCard;
+		public ParserRule getRule() { return rule; }
+
+		//"import" importedNamespace=ActionQualifiedNameWithWildCard
+		public Group getGroup() { return cGroup; }
+
+		//"import"
+		public Keyword getImportKeyword_0() { return cImportKeyword_0; }
+
+		//importedNamespace=ActionQualifiedNameWithWildCard
+		public Assignment getImportedNamespaceAssignment_1() { return cImportedNamespaceAssignment_1; }
+
+		//ActionQualifiedNameWithWildCard
+		public RuleCall getImportedNamespaceActionQualifiedNameWithWildCardParserRuleCall_1_0() { return cImportedNamespaceActionQualifiedNameWithWildCardParserRuleCall_1_0; }
+	}
+
+	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 ActionQualifiedNameWithWildCardElements extends AbstractParserRuleElementFinder {
+		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "ActionQualifiedNameWithWildCard");
+		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);
+		
+		//ActionQualifiedNameWithWildCard:
+		//	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 QualifiedNameElements extends AbstractParserRuleElementFinder {
+		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "QualifiedName");
+		private final Group cGroup = (Group)rule.eContents().get(1);
+		private final RuleCall cValidIDParserRuleCall_0 = (RuleCall)cGroup.eContents().get(0);
+		private final Group cGroup_1 = (Group)cGroup.eContents().get(1);
+		private final Keyword cFullStopKeyword_1_0 = (Keyword)cGroup_1.eContents().get(0);
+		private final RuleCall cValidIDParserRuleCall_1_1 = (RuleCall)cGroup_1.eContents().get(1);
+		
+		//QualifiedName:
+		//	ValidID ("." ValidID)*;
+		public ParserRule getRule() { return rule; }
+
+		//ValidID ("." ValidID)*
+		public Group getGroup() { return cGroup; }
+
+		//ValidID
+		public RuleCall getValidIDParserRuleCall_0() { return cValidIDParserRuleCall_0; }
+
+		//(=> "." ValidID)*
+		public Group getGroup_1() { return cGroup_1; }
+
+		//=> "."
+		public Keyword getFullStopKeyword_1_0() { return cFullStopKeyword_1_0; }
+
+		//ValidID
+		public RuleCall getValidIDParserRuleCall_1_1() { return cValidIDParserRuleCall_1_1; }
+	}
+
+	public class ValidIDElements extends AbstractParserRuleElementFinder {
+		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "ValidID");
+		private final RuleCall cIDTerminalRuleCall = (RuleCall)rule.eContents().get(1);
+		
+		//ValidID:
+		//	ID;
+		public ParserRule getRule() { return rule; }
+
+		//ID
+		public RuleCall getIDTerminalRuleCall() { return cIDTerminalRuleCall; }
+	}
+
+	public class TRANSLATABLEIDElements extends AbstractParserRuleElementFinder {
+		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "TRANSLATABLEID");
+		private final RuleCall cIDTerminalRuleCall = (RuleCall)rule.eContents().get(1);
+		
+		//TRANSLATABLEID:
+		//	ID;
+		public ParserRule getRule() { return rule; }
+
+		//ID
+		public RuleCall getIDTerminalRuleCall() { return cIDTerminalRuleCall; }
+	}
+
+	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 TaskActionEnumElements extends AbstractEnumRuleElementFinder {
+		private final EnumRule rule = (EnumRule) GrammarUtil.findRuleForName(getGrammar(), "TaskActionEnum");
+		private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1);
+		private final EnumLiteralDeclaration cTASK_ACTION_CLAIMEnumLiteralDeclaration_0 = (EnumLiteralDeclaration)cAlternatives.eContents().get(0);
+		private final Keyword cTASK_ACTION_CLAIMClaimKeyword_0_0 = (Keyword)cTASK_ACTION_CLAIMEnumLiteralDeclaration_0.eContents().get(0);
+		private final EnumLiteralDeclaration cTASK_ACTION_STARTEnumLiteralDeclaration_1 = (EnumLiteralDeclaration)cAlternatives.eContents().get(1);
+		private final Keyword cTASK_ACTION_STARTStartKeyword_1_0 = (Keyword)cTASK_ACTION_STARTEnumLiteralDeclaration_1.eContents().get(0);
+		private final EnumLiteralDeclaration cTASK_ACTION_STOPEnumLiteralDeclaration_2 = (EnumLiteralDeclaration)cAlternatives.eContents().get(2);
+		private final Keyword cTASK_ACTION_STOPStopKeyword_2_0 = (Keyword)cTASK_ACTION_STOPEnumLiteralDeclaration_2.eContents().get(0);
+		private final EnumLiteralDeclaration cTASK_ACTION_RELEASEEnumLiteralDeclaration_3 = (EnumLiteralDeclaration)cAlternatives.eContents().get(3);
+		private final Keyword cTASK_ACTION_RELEASEReleaseKeyword_3_0 = (Keyword)cTASK_ACTION_RELEASEEnumLiteralDeclaration_3.eContents().get(0);
+		private final EnumLiteralDeclaration cTASK_ACTION_SUSPENDEnumLiteralDeclaration_4 = (EnumLiteralDeclaration)cAlternatives.eContents().get(4);
+		private final Keyword cTASK_ACTION_SUSPENDSuspendKeyword_4_0 = (Keyword)cTASK_ACTION_SUSPENDEnumLiteralDeclaration_4.eContents().get(0);
+		private final EnumLiteralDeclaration cTASK_ACTION_RESUMEEnumLiteralDeclaration_5 = (EnumLiteralDeclaration)cAlternatives.eContents().get(5);
+		private final Keyword cTASK_ACTION_RESUMEResumeKeyword_5_0 = (Keyword)cTASK_ACTION_RESUMEEnumLiteralDeclaration_5.eContents().get(0);
+		private final EnumLiteralDeclaration cTASK_ACTION_SKIPEnumLiteralDeclaration_6 = (EnumLiteralDeclaration)cAlternatives.eContents().get(6);
+		private final Keyword cTASK_ACTION_SKIPSkipKeyword_6_0 = (Keyword)cTASK_ACTION_SKIPEnumLiteralDeclaration_6.eContents().get(0);
+		private final EnumLiteralDeclaration cTASK_ACTION_COMPLETEEnumLiteralDeclaration_7 = (EnumLiteralDeclaration)cAlternatives.eContents().get(7);
+		private final Keyword cTASK_ACTION_COMPLETECompleteKeyword_7_0 = (Keyword)cTASK_ACTION_COMPLETEEnumLiteralDeclaration_7.eContents().get(0);
+		private final EnumLiteralDeclaration cTASK_ACTION_DELEGATEEnumLiteralDeclaration_8 = (EnumLiteralDeclaration)cAlternatives.eContents().get(8);
+		private final Keyword cTASK_ACTION_DELEGATEDelegateKeyword_8_0 = (Keyword)cTASK_ACTION_DELEGATEEnumLiteralDeclaration_8.eContents().get(0);
+		private final EnumLiteralDeclaration cTASK_ACTION_FORWARDEnumLiteralDeclaration_9 = (EnumLiteralDeclaration)cAlternatives.eContents().get(9);
+		private final Keyword cTASK_ACTION_FORWARDForwardKeyword_9_0 = (Keyword)cTASK_ACTION_FORWARDEnumLiteralDeclaration_9.eContents().get(0);
+		private final EnumLiteralDeclaration cTASK_ACTION_FAILEnumLiteralDeclaration_10 = (EnumLiteralDeclaration)cAlternatives.eContents().get(10);
+		private final Keyword cTASK_ACTION_FAILFailKeyword_10_0 = (Keyword)cTASK_ACTION_FAILEnumLiteralDeclaration_10.eContents().get(0);
+		private final EnumLiteralDeclaration cTASK_ACTION_REGISTEREnumLiteralDeclaration_11 = (EnumLiteralDeclaration)cAlternatives.eContents().get(11);
+		private final Keyword cTASK_ACTION_REGISTERRegisterKeyword_11_0 = (Keyword)cTASK_ACTION_REGISTEREnumLiteralDeclaration_11.eContents().get(0);
+		private final EnumLiteralDeclaration cTASK_ACTION_REMOVEEnumLiteralDeclaration_12 = (EnumLiteralDeclaration)cAlternatives.eContents().get(12);
+		private final Keyword cTASK_ACTION_REMOVERemoveKeyword_12_0 = (Keyword)cTASK_ACTION_REMOVEEnumLiteralDeclaration_12.eContents().get(0);
+		private final EnumLiteralDeclaration cTASK_ACTION_ACTIVATEEnumLiteralDeclaration_13 = (EnumLiteralDeclaration)cAlternatives.eContents().get(13);
+		private final Keyword cTASK_ACTION_ACTIVATEActivateKeyword_13_0 = (Keyword)cTASK_ACTION_ACTIVATEEnumLiteralDeclaration_13.eContents().get(0);
+		private final EnumLiteralDeclaration cTASK_ACTION_EXITEnumLiteralDeclaration_14 = (EnumLiteralDeclaration)cAlternatives.eContents().get(14);
+		private final Keyword cTASK_ACTION_EXITExitKeyword_14_0 = (Keyword)cTASK_ACTION_EXITEnumLiteralDeclaration_14.eContents().get(0);
+		
+		//enum TaskActionEnum:
+		//	TASK_ACTION_CLAIM="Claim" | TASK_ACTION_START="Start" | TASK_ACTION_STOP="Stop" | TASK_ACTION_RELEASE="Release" |
+		//	TASK_ACTION_SUSPEND="Suspend" | TASK_ACTION_RESUME="Resume" | TASK_ACTION_SKIP="Skip" |
+		//	TASK_ACTION_COMPLETE="Complete" | TASK_ACTION_DELEGATE="Delegate" | TASK_ACTION_FORWARD="Forward" |
+		//	TASK_ACTION_FAIL="Fail" | TASK_ACTION_REGISTER="Register" | TASK_ACTION_REMOVE="Remove" |
+		//	TASK_ACTION_ACTIVATE="Activate" | TASK_ACTION_EXIT="Exit";
+		public EnumRule getRule() { return rule; }
+
+		//TASK_ACTION_CLAIM="Claim" | TASK_ACTION_START="Start" | TASK_ACTION_STOP="Stop" | TASK_ACTION_RELEASE="Release" |
+		//TASK_ACTION_SUSPEND="Suspend" | TASK_ACTION_RESUME="Resume" | TASK_ACTION_SKIP="Skip" |
+		//TASK_ACTION_COMPLETE="Complete" | TASK_ACTION_DELEGATE="Delegate" | TASK_ACTION_FORWARD="Forward" |
+		//TASK_ACTION_FAIL="Fail" | TASK_ACTION_REGISTER="Register" | TASK_ACTION_REMOVE="Remove" |
+		//TASK_ACTION_ACTIVATE="Activate" | TASK_ACTION_EXIT="Exit"
+		public Alternatives getAlternatives() { return cAlternatives; }
+
+		//TASK_ACTION_CLAIM="Claim"
+		public EnumLiteralDeclaration getTASK_ACTION_CLAIMEnumLiteralDeclaration_0() { return cTASK_ACTION_CLAIMEnumLiteralDeclaration_0; }
+
+		//"Claim"
+		public Keyword getTASK_ACTION_CLAIMClaimKeyword_0_0() { return cTASK_ACTION_CLAIMClaimKeyword_0_0; }
+
+		//TASK_ACTION_START="Start"
+		public EnumLiteralDeclaration getTASK_ACTION_STARTEnumLiteralDeclaration_1() { return cTASK_ACTION_STARTEnumLiteralDeclaration_1; }
+
+		//"Start"
+		public Keyword getTASK_ACTION_STARTStartKeyword_1_0() { return cTASK_ACTION_STARTStartKeyword_1_0; }
+
+		//TASK_ACTION_STOP="Stop"
+		public EnumLiteralDeclaration getTASK_ACTION_STOPEnumLiteralDeclaration_2() { return cTASK_ACTION_STOPEnumLiteralDeclaration_2; }
+
+		//"Stop"
+		public Keyword getTASK_ACTION_STOPStopKeyword_2_0() { return cTASK_ACTION_STOPStopKeyword_2_0; }
+
+		//TASK_ACTION_RELEASE="Release"
+		public EnumLiteralDeclaration getTASK_ACTION_RELEASEEnumLiteralDeclaration_3() { return cTASK_ACTION_RELEASEEnumLiteralDeclaration_3; }
+
+		//"Release"
+		public Keyword getTASK_ACTION_RELEASEReleaseKeyword_3_0() { return cTASK_ACTION_RELEASEReleaseKeyword_3_0; }
+
+		//TASK_ACTION_SUSPEND="Suspend"
+		public EnumLiteralDeclaration getTASK_ACTION_SUSPENDEnumLiteralDeclaration_4() { return cTASK_ACTION_SUSPENDEnumLiteralDeclaration_4; }
+
+		//"Suspend"
+		public Keyword getTASK_ACTION_SUSPENDSuspendKeyword_4_0() { return cTASK_ACTION_SUSPENDSuspendKeyword_4_0; }
+
+		//TASK_ACTION_RESUME="Resume"
+		public EnumLiteralDeclaration getTASK_ACTION_RESUMEEnumLiteralDeclaration_5() { return cTASK_ACTION_RESUMEEnumLiteralDeclaration_5; }
+
+		//"Resume"
+		public Keyword getTASK_ACTION_RESUMEResumeKeyword_5_0() { return cTASK_ACTION_RESUMEResumeKeyword_5_0; }
+
+		//TASK_ACTION_SKIP="Skip"
+		public EnumLiteralDeclaration getTASK_ACTION_SKIPEnumLiteralDeclaration_6() { return cTASK_ACTION_SKIPEnumLiteralDeclaration_6; }
+
+		//"Skip"
+		public Keyword getTASK_ACTION_SKIPSkipKeyword_6_0() { return cTASK_ACTION_SKIPSkipKeyword_6_0; }
+
+		//TASK_ACTION_COMPLETE="Complete"
+		public EnumLiteralDeclaration getTASK_ACTION_COMPLETEEnumLiteralDeclaration_7() { return cTASK_ACTION_COMPLETEEnumLiteralDeclaration_7; }
+
+		//"Complete"
+		public Keyword getTASK_ACTION_COMPLETECompleteKeyword_7_0() { return cTASK_ACTION_COMPLETECompleteKeyword_7_0; }
+
+		//TASK_ACTION_DELEGATE="Delegate"
+		public EnumLiteralDeclaration getTASK_ACTION_DELEGATEEnumLiteralDeclaration_8() { return cTASK_ACTION_DELEGATEEnumLiteralDeclaration_8; }
+
+		//"Delegate"
+		public Keyword getTASK_ACTION_DELEGATEDelegateKeyword_8_0() { return cTASK_ACTION_DELEGATEDelegateKeyword_8_0; }
+
+		//TASK_ACTION_FORWARD="Forward"
+		public EnumLiteralDeclaration getTASK_ACTION_FORWARDEnumLiteralDeclaration_9() { return cTASK_ACTION_FORWARDEnumLiteralDeclaration_9; }
+
+		//"Forward"
+		public Keyword getTASK_ACTION_FORWARDForwardKeyword_9_0() { return cTASK_ACTION_FORWARDForwardKeyword_9_0; }
+
+		//TASK_ACTION_FAIL="Fail"
+		public EnumLiteralDeclaration getTASK_ACTION_FAILEnumLiteralDeclaration_10() { return cTASK_ACTION_FAILEnumLiteralDeclaration_10; }
+
+		//"Fail"
+		public Keyword getTASK_ACTION_FAILFailKeyword_10_0() { return cTASK_ACTION_FAILFailKeyword_10_0; }
+
+		//TASK_ACTION_REGISTER="Register"
+		public EnumLiteralDeclaration getTASK_ACTION_REGISTEREnumLiteralDeclaration_11() { return cTASK_ACTION_REGISTEREnumLiteralDeclaration_11; }
+
+		//"Register"
+		public Keyword getTASK_ACTION_REGISTERRegisterKeyword_11_0() { return cTASK_ACTION_REGISTERRegisterKeyword_11_0; }
+
+		//TASK_ACTION_REMOVE="Remove"
+		public EnumLiteralDeclaration getTASK_ACTION_REMOVEEnumLiteralDeclaration_12() { return cTASK_ACTION_REMOVEEnumLiteralDeclaration_12; }
+
+		//"Remove"
+		public Keyword getTASK_ACTION_REMOVERemoveKeyword_12_0() { return cTASK_ACTION_REMOVERemoveKeyword_12_0; }
+
+		//TASK_ACTION_ACTIVATE="Activate"
+		public EnumLiteralDeclaration getTASK_ACTION_ACTIVATEEnumLiteralDeclaration_13() { return cTASK_ACTION_ACTIVATEEnumLiteralDeclaration_13; }
+
+		//"Activate"
+		public Keyword getTASK_ACTION_ACTIVATEActivateKeyword_13_0() { return cTASK_ACTION_ACTIVATEActivateKeyword_13_0; }
+
+		//TASK_ACTION_EXIT="Exit"
+		public EnumLiteralDeclaration getTASK_ACTION_EXITEnumLiteralDeclaration_14() { return cTASK_ACTION_EXITEnumLiteralDeclaration_14; }
+
+		//"Exit"
+		public Keyword getTASK_ACTION_EXITExitKeyword_14_0() { return cTASK_ACTION_EXITExitKeyword_14_0; }
+	}
+
+	public class SelectWorkloadActionEnumElements extends AbstractEnumRuleElementFinder {
+		private final EnumRule rule = (EnumRule) GrammarUtil.findRuleForName(getGrammar(), "SelectWorkloadActionEnum");
+		private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1);
+		private final EnumLiteralDeclaration cWORKLOAD_SELECT_ACTION_REMOVE_ALLEnumLiteralDeclaration_0 = (EnumLiteralDeclaration)cAlternatives.eContents().get(0);
+		private final Keyword cWORKLOAD_SELECT_ACTION_REMOVE_ALLRemoveAllKeyword_0_0 = (Keyword)cWORKLOAD_SELECT_ACTION_REMOVE_ALLEnumLiteralDeclaration_0.eContents().get(0);
+		private final EnumLiteralDeclaration cWORKLOAD_SELECT_ACTION_ADD_ALLEnumLiteralDeclaration_1 = (EnumLiteralDeclaration)cAlternatives.eContents().get(1);
+		private final Keyword cWORKLOAD_SELECT_ACTION_ADD_ALLAddAllKeyword_1_0 = (Keyword)cWORKLOAD_SELECT_ACTION_ADD_ALLEnumLiteralDeclaration_1.eContents().get(0);
+		
+		//enum SelectWorkloadActionEnum:
+		//	WORKLOAD_SELECT_ACTION_REMOVE_ALL="RemoveAll" | WORKLOAD_SELECT_ACTION_ADD_ALL="AddAll";
+		public EnumRule getRule() { return rule; }
+
+		//WORKLOAD_SELECT_ACTION_REMOVE_ALL="RemoveAll" | WORKLOAD_SELECT_ACTION_ADD_ALL="AddAll"
+		public Alternatives getAlternatives() { return cAlternatives; }
+
+		//WORKLOAD_SELECT_ACTION_REMOVE_ALL="RemoveAll"
+		public EnumLiteralDeclaration getWORKLOAD_SELECT_ACTION_REMOVE_ALLEnumLiteralDeclaration_0() { return cWORKLOAD_SELECT_ACTION_REMOVE_ALLEnumLiteralDeclaration_0; }
+
+		//"RemoveAll"
+		public Keyword getWORKLOAD_SELECT_ACTION_REMOVE_ALLRemoveAllKeyword_0_0() { return cWORKLOAD_SELECT_ACTION_REMOVE_ALLRemoveAllKeyword_0_0; }
+
+		//WORKLOAD_SELECT_ACTION_ADD_ALL="AddAll"
+		public EnumLiteralDeclaration getWORKLOAD_SELECT_ACTION_ADD_ALLEnumLiteralDeclaration_1() { return cWORKLOAD_SELECT_ACTION_ADD_ALLEnumLiteralDeclaration_1; }
+
+		//"AddAll"
+		public Keyword getWORKLOAD_SELECT_ACTION_ADD_ALLAddAllKeyword_1_0() { return cWORKLOAD_SELECT_ACTION_ADD_ALLAddAllKeyword_1_0; }
+	}
+
+	public class DialogActionEnumElements extends AbstractEnumRuleElementFinder {
+		private final EnumRule rule = (EnumRule) GrammarUtil.findRuleForName(getGrammar(), "DialogActionEnum");
+		private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1);
+		private final EnumLiteralDeclaration cDIALOG_ACTION_NEWEnumLiteralDeclaration_0 = (EnumLiteralDeclaration)cAlternatives.eContents().get(0);
+		private final Keyword cDIALOG_ACTION_NEWNewKeyword_0_0 = (Keyword)cDIALOG_ACTION_NEWEnumLiteralDeclaration_0.eContents().get(0);
+		private final EnumLiteralDeclaration cDIALOG_ACTION_SAVEEnumLiteralDeclaration_1 = (EnumLiteralDeclaration)cAlternatives.eContents().get(1);
+		private final Keyword cDIALOG_ACTION_SAVESaveKeyword_1_0 = (Keyword)cDIALOG_ACTION_SAVEEnumLiteralDeclaration_1.eContents().get(0);
+		private final EnumLiteralDeclaration cDIALOG_ACTION_DELETEEnumLiteralDeclaration_2 = (EnumLiteralDeclaration)cAlternatives.eContents().get(2);
+		private final Keyword cDIALOG_ACTION_DELETEDeleteKeyword_2_0 = (Keyword)cDIALOG_ACTION_DELETEEnumLiteralDeclaration_2.eContents().get(0);
+		private final EnumLiteralDeclaration cDIALOG_ACTION_CANCELEnumLiteralDeclaration_3 = (EnumLiteralDeclaration)cAlternatives.eContents().get(3);
+		private final Keyword cDIALOG_ACTION_CANCELCancelKeyword_3_0 = (Keyword)cDIALOG_ACTION_CANCELEnumLiteralDeclaration_3.eContents().get(0);
+		
+		//enum DialogActionEnum:
+		//	DIALOG_ACTION_NEW="New" | DIALOG_ACTION_SAVE="Save" | DIALOG_ACTION_DELETE="Delete" | DIALOG_ACTION_CANCEL="Cancel";
+		public EnumRule getRule() { return rule; }
+
+		//DIALOG_ACTION_NEW="New" | DIALOG_ACTION_SAVE="Save" | DIALOG_ACTION_DELETE="Delete" | DIALOG_ACTION_CANCEL="Cancel"
+		public Alternatives getAlternatives() { return cAlternatives; }
+
+		//DIALOG_ACTION_NEW="New"
+		public EnumLiteralDeclaration getDIALOG_ACTION_NEWEnumLiteralDeclaration_0() { return cDIALOG_ACTION_NEWEnumLiteralDeclaration_0; }
+
+		//"New"
+		public Keyword getDIALOG_ACTION_NEWNewKeyword_0_0() { return cDIALOG_ACTION_NEWNewKeyword_0_0; }
+
+		//DIALOG_ACTION_SAVE="Save"
+		public EnumLiteralDeclaration getDIALOG_ACTION_SAVEEnumLiteralDeclaration_1() { return cDIALOG_ACTION_SAVEEnumLiteralDeclaration_1; }
+
+		//"Save"
+		public Keyword getDIALOG_ACTION_SAVESaveKeyword_1_0() { return cDIALOG_ACTION_SAVESaveKeyword_1_0; }
+
+		//DIALOG_ACTION_DELETE="Delete"
+		public EnumLiteralDeclaration getDIALOG_ACTION_DELETEEnumLiteralDeclaration_2() { return cDIALOG_ACTION_DELETEEnumLiteralDeclaration_2; }
+
+		//"Delete"
+		public Keyword getDIALOG_ACTION_DELETEDeleteKeyword_2_0() { return cDIALOG_ACTION_DELETEDeleteKeyword_2_0; }
+
+		//DIALOG_ACTION_CANCEL="Cancel"
+		public EnumLiteralDeclaration getDIALOG_ACTION_CANCELEnumLiteralDeclaration_3() { return cDIALOG_ACTION_CANCELEnumLiteralDeclaration_3; }
+
+		//"Cancel"
+		public Keyword getDIALOG_ACTION_CANCELCancelKeyword_3_0() { return cDIALOG_ACTION_CANCELCancelKeyword_3_0; }
+	}
+
+	public class ReportActionEnumElements extends AbstractEnumRuleElementFinder {
+		private final EnumRule rule = (EnumRule) GrammarUtil.findRuleForName(getGrammar(), "ReportActionEnum");
+		private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1);
+		private final EnumLiteralDeclaration cREPORT_ACTION_PRINT_ON_SERVER_PDFEnumLiteralDeclaration_0 = (EnumLiteralDeclaration)cAlternatives.eContents().get(0);
+		private final Keyword cREPORT_ACTION_PRINT_ON_SERVER_PDFPrintOnServerKeyword_0_0 = (Keyword)cREPORT_ACTION_PRINT_ON_SERVER_PDFEnumLiteralDeclaration_0.eContents().get(0);
+		private final EnumLiteralDeclaration cREPORT_ACTION_DOWNLOAD_PDFEnumLiteralDeclaration_1 = (EnumLiteralDeclaration)cAlternatives.eContents().get(1);
+		private final Keyword cREPORT_ACTION_DOWNLOAD_PDFDownloadKeyword_1_0 = (Keyword)cREPORT_ACTION_DOWNLOAD_PDFEnumLiteralDeclaration_1.eContents().get(0);
+		
+		//enum ReportActionEnum:
+		//	REPORT_ACTION_PRINT_ON_SERVER_PDF="PrintOnServer" | REPORT_ACTION_DOWNLOAD_PDF="Download";
+		public EnumRule getRule() { return rule; }
+
+		//REPORT_ACTION_PRINT_ON_SERVER_PDF="PrintOnServer" | REPORT_ACTION_DOWNLOAD_PDF="Download"
+		public Alternatives getAlternatives() { return cAlternatives; }
+
+		//REPORT_ACTION_PRINT_ON_SERVER_PDF="PrintOnServer"
+		public EnumLiteralDeclaration getREPORT_ACTION_PRINT_ON_SERVER_PDFEnumLiteralDeclaration_0() { return cREPORT_ACTION_PRINT_ON_SERVER_PDFEnumLiteralDeclaration_0; }
+
+		//"PrintOnServer"
+		public Keyword getREPORT_ACTION_PRINT_ON_SERVER_PDFPrintOnServerKeyword_0_0() { return cREPORT_ACTION_PRINT_ON_SERVER_PDFPrintOnServerKeyword_0_0; }
+
+		//REPORT_ACTION_DOWNLOAD_PDF="Download"
+		public EnumLiteralDeclaration getREPORT_ACTION_DOWNLOAD_PDFEnumLiteralDeclaration_1() { return cREPORT_ACTION_DOWNLOAD_PDFEnumLiteralDeclaration_1; }
+
+		//"Download"
+		public Keyword getREPORT_ACTION_DOWNLOAD_PDFDownloadKeyword_1_0() { return cREPORT_ACTION_DOWNLOAD_PDFDownloadKeyword_1_0; }
+	}
+
+	public class ChartActionEnumElements extends AbstractEnumRuleElementFinder {
+		private final EnumRule rule = (EnumRule) GrammarUtil.findRuleForName(getGrammar(), "ChartActionEnum");
+		private final EnumLiteralDeclaration cCHART_ACTION_DOWNLOADEnumLiteralDeclaration = (EnumLiteralDeclaration)rule.eContents().get(1);
+		private final Keyword cCHART_ACTION_DOWNLOADDownloadKeyword_0 = (Keyword)cCHART_ACTION_DOWNLOADEnumLiteralDeclaration.eContents().get(0);
+		
+		//enum ChartActionEnum:
+		//	CHART_ACTION_DOWNLOAD="Download";
+		public EnumRule getRule() { return rule; }
+
+		//CHART_ACTION_DOWNLOAD="Download"
+		public EnumLiteralDeclaration getCHART_ACTION_DOWNLOADEnumLiteralDeclaration() { return cCHART_ACTION_DOWNLOADEnumLiteralDeclaration; }
+
+		//"Download"
+		public Keyword getCHART_ACTION_DOWNLOADDownloadKeyword_0() { return cCHART_ACTION_DOWNLOADDownloadKeyword_0; }
+	}
+
+	public class WorkflowActionEnumElements extends AbstractEnumRuleElementFinder {
+		private final EnumRule rule = (EnumRule) GrammarUtil.findRuleForName(getGrammar(), "WorkflowActionEnum");
+		private final EnumLiteralDeclaration cWORKFLOW_ACTION_STARTEnumLiteralDeclaration = (EnumLiteralDeclaration)rule.eContents().get(1);
+		private final Keyword cWORKFLOW_ACTION_STARTStartKeyword_0 = (Keyword)cWORKFLOW_ACTION_STARTEnumLiteralDeclaration.eContents().get(0);
+		
+		//enum WorkflowActionEnum:
+		//	WORKFLOW_ACTION_START="Start";
+		public EnumRule getRule() { return rule; }
+
+		//WORKFLOW_ACTION_START="Start"
+		public EnumLiteralDeclaration getWORKFLOW_ACTION_STARTEnumLiteralDeclaration() { return cWORKFLOW_ACTION_STARTEnumLiteralDeclaration; }
+
+		//"Start"
+		public Keyword getWORKFLOW_ACTION_STARTStartKeyword_0() { return cWORKFLOW_ACTION_STARTStartKeyword_0; }
+	}
+
+	public class DatainterchangeActionEnumElements extends AbstractEnumRuleElementFinder {
+		private final EnumRule rule = (EnumRule) GrammarUtil.findRuleForName(getGrammar(), "DatainterchangeActionEnum");
+		private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1);
+		private final EnumLiteralDeclaration cDATAINTERCHANGE_ACTION_IMPORTEnumLiteralDeclaration_0 = (EnumLiteralDeclaration)cAlternatives.eContents().get(0);
+		private final Keyword cDATAINTERCHANGE_ACTION_IMPORTImportKeyword_0_0 = (Keyword)cDATAINTERCHANGE_ACTION_IMPORTEnumLiteralDeclaration_0.eContents().get(0);
+		private final EnumLiteralDeclaration cDATAINTERCHANGE_ACTION_EXPORTEnumLiteralDeclaration_1 = (EnumLiteralDeclaration)cAlternatives.eContents().get(1);
+		private final Keyword cDATAINTERCHANGE_ACTION_EXPORTExportKeyword_1_0 = (Keyword)cDATAINTERCHANGE_ACTION_EXPORTEnumLiteralDeclaration_1.eContents().get(0);
+		
+		//enum DatainterchangeActionEnum:
+		//	DATAINTERCHANGE_ACTION_IMPORT="Import" | DATAINTERCHANGE_ACTION_EXPORT="Export";
+		public EnumRule getRule() { return rule; }
+
+		//DATAINTERCHANGE_ACTION_IMPORT="Import" | DATAINTERCHANGE_ACTION_EXPORT="Export"
+		public Alternatives getAlternatives() { return cAlternatives; }
+
+		//DATAINTERCHANGE_ACTION_IMPORT="Import"
+		public EnumLiteralDeclaration getDATAINTERCHANGE_ACTION_IMPORTEnumLiteralDeclaration_0() { return cDATAINTERCHANGE_ACTION_IMPORTEnumLiteralDeclaration_0; }
+
+		//"Import"
+		public Keyword getDATAINTERCHANGE_ACTION_IMPORTImportKeyword_0_0() { return cDATAINTERCHANGE_ACTION_IMPORTImportKeyword_0_0; }
+
+		//DATAINTERCHANGE_ACTION_EXPORT="Export"
+		public EnumLiteralDeclaration getDATAINTERCHANGE_ACTION_EXPORTEnumLiteralDeclaration_1() { return cDATAINTERCHANGE_ACTION_EXPORTEnumLiteralDeclaration_1; }
+
+		//"Export"
+		public Keyword getDATAINTERCHANGE_ACTION_EXPORTExportKeyword_1_0() { return cDATAINTERCHANGE_ACTION_EXPORTExportKeyword_1_0; }
+	}
+	
+	private final ActionModelElements pActionModel;
+	private final ActionPackageElements pActionPackage;
+	private final ActionToolbarElements pActionToolbar;
+	private final ActionButtonElements pActionButton;
+	private final ActionTypeElements pActionType;
+	private final ActionTaskElements pActionTask;
+	private final ActionSelectWorkloadElements pActionSelectWorkload;
+	private final ActionDialogElements pActionDialog;
+	private final ActionReportElements pActionReport;
+	private final ActionChartElements pActionChart;
+	private final ActionWorkflowElements pActionWorkflow;
+	private final ActionDatainterchangeElements pActionDatainterchange;
+	private final ActionGenericElements pActionGeneric;
+	private final ActionParameterElements pActionParameter;
+	private final ActionImportElements pActionImport;
+	private final SignedNumberElements pSignedNumber;
+	private final ActionQualifiedNameWithWildCardElements pActionQualifiedNameWithWildCard;
+	private final QualifiedNameElements pQualifiedName;
+	private final ValidIDElements pValidID;
+	private final TRANSLATABLEIDElements pTRANSLATABLEID;
+	private final TRANSLATABLESTRINGElements pTRANSLATABLESTRING;
+	private final TaskActionEnumElements unknownRuleTaskActionEnum;
+	private final SelectWorkloadActionEnumElements unknownRuleSelectWorkloadActionEnum;
+	private final DialogActionEnumElements unknownRuleDialogActionEnum;
+	private final ReportActionEnumElements unknownRuleReportActionEnum;
+	private final ChartActionEnumElements unknownRuleChartActionEnum;
+	private final WorkflowActionEnumElements unknownRuleWorkflowActionEnum;
+	private final DatainterchangeActionEnumElements unknownRuleDatainterchangeActionEnum;
+	
+	private final Grammar grammar;
+
+	private final XbaseWithAnnotationsGrammarAccess gaXbaseWithAnnotations;
+
+	@Inject
+	public ActionDSLGrammarAccess(GrammarProvider grammarProvider,
+		XbaseWithAnnotationsGrammarAccess gaXbaseWithAnnotations) {
+		this.grammar = internalFindGrammar(grammarProvider);
+		this.gaXbaseWithAnnotations = gaXbaseWithAnnotations;
+		this.pActionModel = new ActionModelElements();
+		this.pActionPackage = new ActionPackageElements();
+		this.pActionToolbar = new ActionToolbarElements();
+		this.pActionButton = new ActionButtonElements();
+		this.pActionType = new ActionTypeElements();
+		this.pActionTask = new ActionTaskElements();
+		this.pActionSelectWorkload = new ActionSelectWorkloadElements();
+		this.pActionDialog = new ActionDialogElements();
+		this.pActionReport = new ActionReportElements();
+		this.pActionChart = new ActionChartElements();
+		this.pActionWorkflow = new ActionWorkflowElements();
+		this.pActionDatainterchange = new ActionDatainterchangeElements();
+		this.pActionGeneric = new ActionGenericElements();
+		this.pActionParameter = new ActionParameterElements();
+		this.pActionImport = new ActionImportElements();
+		this.pSignedNumber = new SignedNumberElements();
+		this.pActionQualifiedNameWithWildCard = new ActionQualifiedNameWithWildCardElements();
+		this.pQualifiedName = new QualifiedNameElements();
+		this.pValidID = new ValidIDElements();
+		this.pTRANSLATABLEID = new TRANSLATABLEIDElements();
+		this.pTRANSLATABLESTRING = new TRANSLATABLESTRINGElements();
+		this.unknownRuleTaskActionEnum = new TaskActionEnumElements();
+		this.unknownRuleSelectWorkloadActionEnum = new SelectWorkloadActionEnumElements();
+		this.unknownRuleDialogActionEnum = new DialogActionEnumElements();
+		this.unknownRuleReportActionEnum = new ReportActionEnumElements();
+		this.unknownRuleChartActionEnum = new ChartActionEnumElements();
+		this.unknownRuleWorkflowActionEnum = new WorkflowActionEnumElements();
+		this.unknownRuleDatainterchangeActionEnum = new DatainterchangeActionEnumElements();
+	}
+	
+	protected Grammar internalFindGrammar(GrammarProvider grammarProvider) {
+		Grammar grammar = grammarProvider.getGrammar(this);
+		while (grammar != null) {
+			if ("org.eclipse.osbp.xtext.action.ActionDSL".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;
+	}
+
+	
+	//ActionModel:
+	//	packages+=ActionPackage*;
+	public ActionModelElements getActionModelAccess() {
+		return pActionModel;
+	}
+	
+	public ParserRule getActionModelRule() {
+		return getActionModelAccess().getRule();
+	}
+
+	//ActionPackage:
+	//	{ActionPackage} "package" name=QualifiedName ("{" imports+=ActionImport* toolbars+=ActionToolbar* "}")?;
+	public ActionPackageElements getActionPackageAccess() {
+		return pActionPackage;
+	}
+	
+	public ParserRule getActionPackageRule() {
+		return getActionPackageAccess().getRule();
+	}
+
+	//ActionToolbar:
+	//	{ActionToolbar} "toolbar" name=ID (description?="described by" descriptionValue=TRANSLATABLESTRING)? ("items" "{"
+	//	actions+=ActionButton* "}")?;
+	public ActionToolbarElements getActionToolbarAccess() {
+		return pActionToolbar;
+	}
+	
+	public ParserRule getActionToolbarRule() {
+		return getActionToolbarAccess().getRule();
+	}
+
+	//ActionButton:
+	//	{ActionButton} "item" name=TRANSLATABLEID (description?="described by" descriptionValue=TRANSLATABLESTRING)? ("icon"
+	//	iconURI=STRING)? ("group" group=[func::FunctionLibraryGroup] ("canExecute"
+	//	canexecute=[func::FunctionLibraryFunction])? & ("executeParameter"
+	//	executeparameter=[func::FunctionLibraryFunction])?)? actionType=ActionType ("message"
+	//	message=[msg::MessageItem|QualifiedName])?;
+	public ActionButtonElements getActionButtonAccess() {
+		return pActionButton;
+	}
+	
+	public ParserRule getActionButtonRule() {
+		return getActionButtonAccess().getRule();
+	}
+
+	//ActionType:
+	//	ActionTask | ActionSelectWorkload | ActionDialog | ActionReport | ActionChart | ActionWorkflow | ActionGeneric |
+	//	ActionDatainterchange;
+	public ActionTypeElements getActionTypeAccess() {
+		return pActionType;
+	}
+	
+	public ParserRule getActionTypeRule() {
+		return getActionTypeAccess().getRule();
+	}
+
+	//ActionTask:
+	//	"taskAction" action=TaskActionEnum;
+	public ActionTaskElements getActionTaskAccess() {
+		return pActionTask;
+	}
+	
+	public ParserRule getActionTaskRule() {
+		return getActionTaskAccess().getRule();
+	}
+
+	//ActionSelectWorkload:
+	//	"selectWorkloadAction" action=SelectWorkloadActionEnum;
+	public ActionSelectWorkloadElements getActionSelectWorkloadAccess() {
+		return pActionSelectWorkload;
+	}
+	
+	public ParserRule getActionSelectWorkloadRule() {
+		return getActionSelectWorkloadAccess().getRule();
+	}
+
+	//ActionDialog:
+	//	"dialogAction" action=DialogActionEnum;
+	public ActionDialogElements getActionDialogAccess() {
+		return pActionDialog;
+	}
+	
+	public ParserRule getActionDialogRule() {
+		return getActionDialogAccess().getRule();
+	}
+
+	//ActionReport:
+	//	"reportAction" action=ReportActionEnum;
+	public ActionReportElements getActionReportAccess() {
+		return pActionReport;
+	}
+	
+	public ParserRule getActionReportRule() {
+		return getActionReportAccess().getRule();
+	}
+
+	//ActionChart:
+	//	"chartAction" action=ChartActionEnum;
+	public ActionChartElements getActionChartAccess() {
+		return pActionChart;
+	}
+	
+	public ParserRule getActionChartRule() {
+		return getActionChartAccess().getRule();
+	}
+
+	//ActionWorkflow:
+	//	"workflowAction" action=WorkflowActionEnum;
+	public ActionWorkflowElements getActionWorkflowAccess() {
+		return pActionWorkflow;
+	}
+	
+	public ParserRule getActionWorkflowRule() {
+		return getActionWorkflowAccess().getRule();
+	}
+
+	//ActionDatainterchange:
+	//	"datainterchangeAction" action=DatainterchangeActionEnum dataRef=[data::DataInterchange];
+	public ActionDatainterchangeElements getActionDatainterchangeAccess() {
+		return pActionDatainterchange;
+	}
+	
+	public ParserRule getActionDatainterchangeRule() {
+		return getActionDatainterchangeAccess().getRule();
+	}
+
+	//ActionGeneric:
+	//	"genericAction" action=STRING;
+	public ActionGenericElements getActionGenericAccess() {
+		return pActionGeneric;
+	}
+	
+	public ParserRule getActionGenericRule() {
+		return getActionGenericAccess().getRule();
+	}
+
+	//ActionParameter:
+	//	{ActionParameter} "parameter" parameter=[func::FunctionLibraryParameter];
+	public ActionParameterElements getActionParameterAccess() {
+		return pActionParameter;
+	}
+	
+	public ParserRule getActionParameterRule() {
+		return getActionParameterAccess().getRule();
+	}
+
+	//ActionImport returns types::LImport:
+	//	"import" importedNamespace=ActionQualifiedNameWithWildCard;
+	public ActionImportElements getActionImportAccess() {
+		return pActionImport;
+	}
+	
+	public ParserRule getActionImportRule() {
+		return getActionImportAccess().getRule();
+	}
+
+	//SignedNumber returns ecore::EDouble:
+	//	"-"? Number;
+	public SignedNumberElements getSignedNumberAccess() {
+		return pSignedNumber;
+	}
+	
+	public ParserRule getSignedNumberRule() {
+		return getSignedNumberAccess().getRule();
+	}
+
+	//ActionQualifiedNameWithWildCard:
+	//	QualifiedName ("." "*")?;
+	public ActionQualifiedNameWithWildCardElements getActionQualifiedNameWithWildCardAccess() {
+		return pActionQualifiedNameWithWildCard;
+	}
+	
+	public ParserRule getActionQualifiedNameWithWildCardRule() {
+		return getActionQualifiedNameWithWildCardAccess().getRule();
+	}
+
+	//QualifiedName:
+	//	ValidID ("." ValidID)*;
+	public QualifiedNameElements getQualifiedNameAccess() {
+		return pQualifiedName;
+	}
+	
+	public ParserRule getQualifiedNameRule() {
+		return getQualifiedNameAccess().getRule();
+	}
+
+	//ValidID:
+	//	ID;
+	public ValidIDElements getValidIDAccess() {
+		return pValidID;
+	}
+	
+	public ParserRule getValidIDRule() {
+		return getValidIDAccess().getRule();
+	}
+
+	//TRANSLATABLEID:
+	//	ID;
+	public TRANSLATABLEIDElements getTRANSLATABLEIDAccess() {
+		return pTRANSLATABLEID;
+	}
+	
+	public ParserRule getTRANSLATABLEIDRule() {
+		return getTRANSLATABLEIDAccess().getRule();
+	}
+
+	//TRANSLATABLESTRING:
+	//	STRING;
+	public TRANSLATABLESTRINGElements getTRANSLATABLESTRINGAccess() {
+		return pTRANSLATABLESTRING;
+	}
+	
+	public ParserRule getTRANSLATABLESTRINGRule() {
+		return getTRANSLATABLESTRINGAccess().getRule();
+	}
+
+	//enum TaskActionEnum:
+	//	TASK_ACTION_CLAIM="Claim" | TASK_ACTION_START="Start" | TASK_ACTION_STOP="Stop" | TASK_ACTION_RELEASE="Release" |
+	//	TASK_ACTION_SUSPEND="Suspend" | TASK_ACTION_RESUME="Resume" | TASK_ACTION_SKIP="Skip" |
+	//	TASK_ACTION_COMPLETE="Complete" | TASK_ACTION_DELEGATE="Delegate" | TASK_ACTION_FORWARD="Forward" |
+	//	TASK_ACTION_FAIL="Fail" | TASK_ACTION_REGISTER="Register" | TASK_ACTION_REMOVE="Remove" |
+	//	TASK_ACTION_ACTIVATE="Activate" | TASK_ACTION_EXIT="Exit";
+	public TaskActionEnumElements getTaskActionEnumAccess() {
+		return unknownRuleTaskActionEnum;
+	}
+	
+	public EnumRule getTaskActionEnumRule() {
+		return getTaskActionEnumAccess().getRule();
+	}
+
+	//enum SelectWorkloadActionEnum:
+	//	WORKLOAD_SELECT_ACTION_REMOVE_ALL="RemoveAll" | WORKLOAD_SELECT_ACTION_ADD_ALL="AddAll";
+	public SelectWorkloadActionEnumElements getSelectWorkloadActionEnumAccess() {
+		return unknownRuleSelectWorkloadActionEnum;
+	}
+	
+	public EnumRule getSelectWorkloadActionEnumRule() {
+		return getSelectWorkloadActionEnumAccess().getRule();
+	}
+
+	//enum DialogActionEnum:
+	//	DIALOG_ACTION_NEW="New" | DIALOG_ACTION_SAVE="Save" | DIALOG_ACTION_DELETE="Delete" | DIALOG_ACTION_CANCEL="Cancel";
+	public DialogActionEnumElements getDialogActionEnumAccess() {
+		return unknownRuleDialogActionEnum;
+	}
+	
+	public EnumRule getDialogActionEnumRule() {
+		return getDialogActionEnumAccess().getRule();
+	}
+
+	//enum ReportActionEnum:
+	//	REPORT_ACTION_PRINT_ON_SERVER_PDF="PrintOnServer" | REPORT_ACTION_DOWNLOAD_PDF="Download";
+	public ReportActionEnumElements getReportActionEnumAccess() {
+		return unknownRuleReportActionEnum;
+	}
+	
+	public EnumRule getReportActionEnumRule() {
+		return getReportActionEnumAccess().getRule();
+	}
+
+	//enum ChartActionEnum:
+	//	CHART_ACTION_DOWNLOAD="Download";
+	public ChartActionEnumElements getChartActionEnumAccess() {
+		return unknownRuleChartActionEnum;
+	}
+	
+	public EnumRule getChartActionEnumRule() {
+		return getChartActionEnumAccess().getRule();
+	}
+
+	//enum WorkflowActionEnum:
+	//	WORKFLOW_ACTION_START="Start";
+	public WorkflowActionEnumElements getWorkflowActionEnumAccess() {
+		return unknownRuleWorkflowActionEnum;
+	}
+	
+	public EnumRule getWorkflowActionEnumRule() {
+		return getWorkflowActionEnumAccess().getRule();
+	}
+
+	//enum DatainterchangeActionEnum:
+	//	DATAINTERCHANGE_ACTION_IMPORT="Import" | DATAINTERCHANGE_ACTION_EXPORT="Export";
+	public DatainterchangeActionEnumElements getDatainterchangeActionEnumAccess() {
+		return unknownRuleDatainterchangeActionEnum;
+	}
+	
+	public EnumRule getDatainterchangeActionEnumRule() {
+		return getDatainterchangeActionEnumAccess().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();
+	}
+
+	//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();
+	}
+
+	//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.action/src-gen/org/eclipse/osbp/xtext/action/validation/AbstractActionDSLValidator.java b/org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/validation/AbstractActionDSLValidator.java
new file mode 100644
index 0000000..8618627
--- /dev/null
+++ b/org.eclipse.osbp.xtext.action/src-gen/org/eclipse/osbp/xtext/action/validation/AbstractActionDSLValidator.java
@@ -0,0 +1,33 @@
+/**
+ *                                                                            
+ *  Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) 
+ *                                                                            
+ *  All rights reserved. This program and the accompanying materials           
+ *  are made available under the 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.action.validation;
+
+import java.util.ArrayList;
+import java.util.List;
+import org.eclipse.emf.ecore.EPackage;
+
+public class AbstractActionDSLValidator 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/action/ActionDSL"));
+	    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.action/src/org/eclipse/osbp/xtext/action/ActionDSLBundleSpaceRuntimeModule.java b/org.eclipse.osbp.xtext.action/src/org/eclipse/osbp/xtext/action/ActionDSLBundleSpaceRuntimeModule.java
new file mode 100644
index 0000000..a9ecb33
--- /dev/null
+++ b/org.eclipse.osbp.xtext.action/src/org/eclipse/osbp/xtext/action/ActionDSLBundleSpaceRuntimeModule.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.action;
+
+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 ActionDSLBundleSpaceRuntimeModule extends ActionDSLRuntimeModule {
+	// 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.action/src/org/eclipse/osbp/xtext/action/ActionDSLBundleSpaceStandaloneSetup.java b/org.eclipse.osbp.xtext.action/src/org/eclipse/osbp/xtext/action/ActionDSLBundleSpaceStandaloneSetup.java
new file mode 100644
index 0000000..c100364
--- /dev/null
+++ b/org.eclipse.osbp.xtext.action/src/org/eclipse/osbp/xtext/action/ActionDSLBundleSpaceStandaloneSetup.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.action;
+
+import org.eclipse.osbp.xtext.builder.xbase.setups.XbaseBundleSpaceStandaloneSetup;
+
+import com.google.inject.Guice;
+import com.google.inject.Injector;
+
+@SuppressWarnings("restriction")
+public class ActionDSLBundleSpaceStandaloneSetup extends
+		ActionDSLStandaloneSetup {
+	public static void doSetup() {
+		new ActionDSLBundleSpaceStandaloneSetup().createInjectorAndDoEMFRegistration();
+	}
+	
+	@Override
+	public Injector createInjectorAndDoEMFRegistration() {
+		XbaseBundleSpaceStandaloneSetup.doSetup();
+
+		Injector injector = createInjector();
+		register(injector);
+		return injector;
+	}
+
+	@Override
+	public Injector createInjector() {
+		return Guice.createInjector(new ActionDSLBundleSpaceRuntimeModule());
+	}
+}
diff --git a/org.eclipse.osbp.xtext.action/src/org/eclipse/osbp/xtext/action/ActionDSLRuntimeModule.java b/org.eclipse.osbp.xtext.action/src/org/eclipse/osbp/xtext/action/ActionDSLRuntimeModule.java
new file mode 100644
index 0000000..c80e21d
--- /dev/null
+++ b/org.eclipse.osbp.xtext.action/src/org/eclipse/osbp/xtext/action/ActionDSLRuntimeModule.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                                 
+ *                                                                            
+ *  Contributors:                                                      
+ * 	   Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
+ * 
+ */
+ package org.eclipse.osbp.xtext.action;
+
+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.action.jvmmodel.ActionModelGenerator;
+import org.eclipse.osbp.xtext.action.scoping.ActionScopeProvider;
+import org.eclipse.osbp.xtext.action.valueconverter.ActionValueConverterService;
+import org.eclipse.osbp.xtext.i18n.DSLOutputConfigurationProvider;
+import org.eclipse.xtext.conversion.IValueConverterService;
+import org.eclipse.xtext.generator.IGenerator;
+import org.eclipse.xtext.generator.IOutputConfigurationProvider;
+import org.eclipse.xtext.resource.XtextResource;
+import org.eclipse.xtext.scoping.IScopeProvider;
+import org.eclipse.xtext.xbase.scoping.batch.XbaseBatchScopeProvider;
+
+import com.google.inject.Binder;
+
+/**
+ * Use this class to register components to be used at runtime / without the
+ * Equinox extension registry.
+ */
+public class ActionDSLRuntimeModule extends
+		org.eclipse.osbp.xtext.action.AbstractActionDSLRuntimeModule {
+	@Override
+	public Class<? extends IGenerator> bindIGenerator() {
+		return ActionModelGenerator.class;
+	}
+
+	@Override
+	public Class<? extends IScopeProvider> bindIScopeProvider() {
+		return ActionScopeProvider.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 ActionQualifiedNameProvider.class;
+//	}
+//
+	@Override
+	public Class<? extends IValueConverterService> bindIValueConverterService() {
+		return ActionValueConverterService.class;
+	}
+
+	@Override
+	public void configure(Binder binder) {
+		super.configure(binder);
+		binder.bind(IOutputConfigurationProvider.class)
+				.to(DSLOutputConfigurationProvider.class).in(Singleton.class);
+	}
+
+	@Override
+	public Class<? extends 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;
+	}
+
+	@Override
+	public Class<? extends XbaseBatchScopeProvider> bindXbaseBatchScopeProvider() {
+		return ActionScopeProvider.class;
+	}
+
+}
diff --git a/org.eclipse.osbp.xtext.action/src/org/eclipse/osbp/xtext/action/ActionDSLStandaloneSetup.java b/org.eclipse.osbp.xtext.action/src/org/eclipse/osbp/xtext/action/ActionDSLStandaloneSetup.java
new file mode 100644
index 0000000..a9104b3
--- /dev/null
+++ b/org.eclipse.osbp.xtext.action/src/org/eclipse/osbp/xtext/action/ActionDSLStandaloneSetup.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.action;
+
+/**
+ * Initialization support for running Xtext languages 
+ * without equinox extension registry
+ */
+public class ActionDSLStandaloneSetup extends ActionDSLStandaloneSetupGenerated{
+
+	public static void doSetup() {
+		new ActionDSLStandaloneSetup().createInjectorAndDoEMFRegistration();
+	}
+}
+
diff --git a/org.eclipse.osbp.xtext.action/src/org/eclipse/osbp/xtext/action/ActionDsl.xtext b/org.eclipse.osbp.xtext.action/src/org/eclipse/osbp/xtext/action/ActionDsl.xtext
new file mode 100644
index 0000000..b671f02
--- /dev/null
+++ b/org.eclipse.osbp.xtext.action/src/org/eclipse/osbp/xtext/action/ActionDsl.xtext
@@ -0,0 +1,116 @@
+/**
+ *                                                                            
+ *  Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) 
+ *                                                                            
+ *  All rights reserved. This program and the accompanying materials           
+ *  are made available under the 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.action.ActionDSL with org.eclipse.xtext.xbase.annotations.XbaseWithAnnotations
+
+import "http://osbp.eclipse.org/xtext/action/ActionDSL"
+
+import "http://osbp.eclipse.org/xtext/functionlibrarydsl/FunctionLibraryDSL" as func
+import "http://osbp.eclipse.org/xtext/messagedsl/MessageDSL" as msg
+import "http://osbp.eclipse.org/xtext/datainterchange/DataDSL" as data
+import "http://osbp.eclipse.org/dsl/common/types/v1" as types
+import "http://www.eclipse.org/emf/2002/Ecore" as ecore 
+
+ActionModel:
+	packages+=ActionPackage*;
+
+ActionPackage:
+	{ActionPackage} 'package' name=QualifiedName
+	('{' (imports+=ActionImport)* (toolbars+=ActionToolbar)* '}' )?;
+
+ActionToolbar:
+	{ActionToolbar} 'toolbar' name=ID (description?='described by' descriptionValue=TRANSLATABLESTRING)?
+	('items' '{' (actions+=ActionButton)* '}')?;
+	
+ActionButton:
+	{ActionButton} 'item' name=TRANSLATABLEID (description?='described by' descriptionValue=TRANSLATABLESTRING)?
+	('icon' iconURI=STRING)?
+	('group' group = [func::FunctionLibraryGroup]	('canExecute' canexecute = [func::FunctionLibraryFunction])? & ('executeParameter' executeparameter = [func::FunctionLibraryFunction])?)?
+	actionType = ActionType
+	('message' message=[msg::MessageItem|QualifiedName])?;
+	
+ActionType:
+	ActionTask | ActionSelectWorkload | ActionDialog | ActionReport |ActionChart | ActionWorkflow | ActionGeneric | ActionDatainterchange;
+	
+ActionTask:
+	'taskAction' action=TaskActionEnum;
+
+ActionSelectWorkload:
+	'selectWorkloadAction' action=SelectWorkloadActionEnum;
+	
+ActionDialog:
+	'dialogAction' action=DialogActionEnum;
+	
+ActionReport:
+	'reportAction' action=ReportActionEnum;
+	
+ActionChart:
+	'chartAction' action=ChartActionEnum;
+	
+ActionWorkflow:
+	'workflowAction' action=WorkflowActionEnum;
+
+ActionDatainterchange:
+	'datainterchangeAction' action=DatainterchangeActionEnum dataRef=[data::DataInterchange];
+
+ActionGeneric:
+	'genericAction' action=STRING;
+
+ActionParameter:
+	{ActionParameter} 'parameter' parameter = [func::FunctionLibraryParameter];
+	
+ActionImport returns types::LImport:
+	'import' importedNamespace=ActionQualifiedNameWithWildCard;
+
+SignedNumber returns ecore::EDouble:
+	'-'? Number;
+	
+ActionQualifiedNameWithWildCard:
+	QualifiedName ('.' '*')?;
+	
+QualifiedName:
+  ValidID (=>'.' ValidID)*;
+  
+ValidID:
+	ID;
+
+TRANSLATABLEID:
+	ID;
+		
+TRANSLATABLESTRING:
+	STRING;
+
+enum TaskActionEnum:
+	TASK_ACTION_CLAIM='Claim' | TASK_ACTION_START='Start' | TASK_ACTION_STOP='Stop' | TASK_ACTION_RELEASE='Release' | TASK_ACTION_SUSPEND='Suspend' | 
+	TASK_ACTION_RESUME='Resume' | TASK_ACTION_SKIP='Skip' | TASK_ACTION_COMPLETE='Complete' | TASK_ACTION_DELEGATE='Delegate' |
+	TASK_ACTION_FORWARD='Forward' | TASK_ACTION_FAIL='Fail' | TASK_ACTION_REGISTER='Register' | TASK_ACTION_REMOVE='Remove' | 
+	TASK_ACTION_ACTIVATE='Activate' | TASK_ACTION_EXIT='Exit';
+
+enum SelectWorkloadActionEnum:
+	WORKLOAD_SELECT_ACTION_REMOVE_ALL='RemoveAll' | WORKLOAD_SELECT_ACTION_ADD_ALL='AddAll';
+
+enum DialogActionEnum:
+	DIALOG_ACTION_NEW='New' | DIALOG_ACTION_SAVE='Save' | DIALOG_ACTION_DELETE='Delete' | DIALOG_ACTION_CANCEL='Cancel';
+
+enum ReportActionEnum:
+	REPORT_ACTION_PRINT_ON_SERVER_PDF='PrintOnServer' | REPORT_ACTION_DOWNLOAD_PDF='Download';
+
+enum ChartActionEnum:
+	CHART_ACTION_DOWNLOAD='Download';
+
+enum WorkflowActionEnum:
+	WORKFLOW_ACTION_START='Start';
+
+enum DatainterchangeActionEnum:
+	DATAINTERCHANGE_ACTION_IMPORT='Import' | DATAINTERCHANGE_ACTION_EXPORT='Export'; 
+	
\ No newline at end of file
diff --git a/org.eclipse.osbp.xtext.action/src/org/eclipse/osbp/xtext/action/Activator.java b/org.eclipse.osbp.xtext.action/src/org/eclipse/osbp/xtext/action/Activator.java
new file mode 100644
index 0000000..e4f003a
--- /dev/null
+++ b/org.eclipse.osbp.xtext.action/src/org/eclipse/osbp/xtext/action/Activator.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.action;
+
+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;
+		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 {
+		Activator.context = null;
+	}
+
+}
diff --git a/org.eclipse.osbp.xtext.action/src/org/eclipse/osbp/xtext/action/GenerateActionDsl.mwe2 b/org.eclipse.osbp.xtext.action/src/org/eclipse/osbp/xtext/action/GenerateActionDsl.mwe2
new file mode 100644
index 0000000..a77144e
--- /dev/null
+++ b/org.eclipse.osbp.xtext.action/src/org/eclipse/osbp/xtext/action/GenerateActionDsl.mwe2
@@ -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:                                                      
+ * 	   Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
+ * 
+ */
+ module org.eclipse.osbp.xtext.action.GenerateActionDsl
+
+import org.eclipse.emf.mwe.utils.*
+import org.eclipse.xtext.generator.*
+import org.eclipse.xtext.ui.generator.*
+import org.eclipse.osbp.dsl.mwe.*
+import org.eclipse.osbp.xtext.basic.generator.*
+
+var projectName = "org.eclipse.osbp.xtext.action"
+var grammarURI = "platform:/resource/${projectName}/src/org/eclipse/osbp/xtext/action/ActionDsl.xtext"
+var fileExtensions = "action"
+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/${projectName}/model/ActionDSL.xcore"
+		registerGeneratedEPackage 	= "org.eclipse.osbp.xtext.action.ActionDSLPackage"
+		registerGenModelFile 		= "platform:/resource/org.eclipse.osbp.xtext.action/model/ActionDSL.xcore"
+
+		registerGenModelFile 		= "platform:/resource/org.eclipse.osbp.xtext.functionlibrarydsl/model/FunctionLibraryDSL.xcore"
+		registerGeneratedEPackage 	= "org.eclipse.osbp.xtext.functionlibrarydsl.FunctionLibraryDSLPackage"
+
+		registerGenModelFile 		= "platform:/resource/org.eclipse.osbp.xtext.messagedsl/model/MessageDSL.xcore"
+		registerGeneratedEPackage 	= "org.eclipse.osbp.xtext.messagedsl.MessageDSLPackage"
+
+		registerGenModelFile 		= "platform:/resource/org.eclipse.osbp.xtext.datainterchange/model/DataDSL.xcore"
+		registerGeneratedEPackage 	= "org.eclipse.osbp.xtext.datainterchange.DataDSLPackage"
+
+		registerGenModelFile 		= "platform:/resource/org.eclipse.osbp.dsl.common.xtext/model/types.xcore"
+		registerGeneratedEPackage 	= "org.eclipse.osbp.dsl.semantic.common.types.OSBPTypesPackage"
+		
+		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"
+    }
+    
+    component = DirectoryCleaner {
+    	directory = "${runtimeProject}.ui/src-gen"
+    }
+    
+    component = DirectoryCleaner {
+    	directory = "${runtimeProject}.tests/src-gen"
+    }
+    
+    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 {
+    		//  options = {
+    		//      backtrack = true
+    		//  }
+    		}
+    
+    		// Xtend-based API for validation
+    		fragment = validation.ValidatorFragment auto-inject {
+    		//    composedCheck = "org.eclipse.xtext.validation.ImportUriValidator"
+    		//    composedCheck = "org.eclipse.xtext.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 {}
+    
+    		// generates junit test support classes into Generator#pathTestProject
+    		fragment = junit.Junit4Fragment auto-inject {}
+    
+    		// rename refactoring
+    		fragment = refactoring.RefactorElementNameFragment auto-inject {}
+    
+    		// provides the necessary bindings for java types integration
+    		fragment = types.TypesGeneratorFragment auto-inject {}
+    
+    		// generates the required bindings only if the grammar inherits from Xbase
+    		fragment = xbase.XbaseGeneratorFragment auto-inject {}
+    		
+    		// generates the required bindings only if the grammar inherits from Xtype
+    		fragment = xbase.XtypeGeneratorFragment 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.action/src/org/eclipse/osbp/xtext/action/XcoreResourceFactory.java b/org.eclipse.osbp.xtext.action/src/org/eclipse/osbp/xtext/action/XcoreResourceFactory.java
new file mode 100644
index 0000000..a80fa9c
--- /dev/null
+++ b/org.eclipse.osbp.xtext.action/src/org/eclipse/osbp/xtext/action/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.action;
+
+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.action/src/org/eclipse/osbp/xtext/action/common/IToolbarAction.java b/org.eclipse.osbp.xtext.action/src/org/eclipse/osbp/xtext/action/common/IToolbarAction.java
new file mode 100644
index 0000000..54efcab
--- /dev/null
+++ b/org.eclipse.osbp.xtext.action/src/org/eclipse/osbp/xtext/action/common/IToolbarAction.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.action.common;
+
+import org.eclipse.e4.core.contexts.IEclipseContext;
+import org.eclipse.e4.ui.model.application.ui.menu.MToolBar;
+import org.eclipse.e4.ui.workbench.IPresentationEngine;
+import org.eclipse.osbp.ui.api.themes.IThemeResourceService;
+
+public interface IToolbarAction {
+
+	void createToolbar(IEclipseContext eclipseContext, IPresentationEngine renderingEngine, IThemeResourceService themeResourceService);
+
+	MToolBar getToolBar();
+}
diff --git a/org.eclipse.osbp.xtext.action/src/org/eclipse/osbp/xtext/action/formatting/ActionDSLFormatter.xtend b/org.eclipse.osbp.xtext.action/src/org/eclipse/osbp/xtext/action/formatting/ActionDSLFormatter.xtend
new file mode 100644
index 0000000..1e9f3d8
--- /dev/null
+++ b/org.eclipse.osbp.xtext.action/src/org/eclipse/osbp/xtext/action/formatting/ActionDSLFormatter.xtend
@@ -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
+ * 
+ * 
+ *  This copyright notice shows up in the generated Java code
+ *
+ */
+ 
+package org.eclipse.osbp.xtext.action.formatting
+
+//import javax.inject.Inject
+
+import com.google.inject.Inject
+import org.eclipse.osbp.utils.xtext.GenericFormatter
+import org.eclipse.xtext.formatting.impl.AbstractDeclarativeFormatter
+import org.eclipse.xtext.formatting.impl.FormattingConfig
+import org.eclipse.xtext.xbase.services.XtypeGrammarAccess
+//import org.eclipse.osbp.xtext.action.services.ActionDSLGrammarAccess
+
+/**
+ * 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 ActionDSLFormatter extends AbstractDeclarativeFormatter {
+
+//	@Inject extension ActionDSLGrammarAccess
+	@Inject XtypeGrammarAccess grammarAccess
+
+	override protected void configureFormatting(FormattingConfig c) {
+		val genericFormatter	= new GenericFormatter()
+
+		genericFormatter.formatFirstLevelBlocks( c, grammar.grammar, "ActionToolbar", "ActionImport" )
+		genericFormatter.genericFormatting( c, grammar, grammarAccess )
+	}
+}
diff --git a/org.eclipse.osbp.xtext.action/src/org/eclipse/osbp/xtext/action/jvmmodel/ActionDSLJvmModelInferrer.xtend b/org.eclipse.osbp.xtext.action/src/org/eclipse/osbp/xtext/action/jvmmodel/ActionDSLJvmModelInferrer.xtend
new file mode 100644
index 0000000..78dadc3
--- /dev/null
+++ b/org.eclipse.osbp.xtext.action/src/org/eclipse/osbp/xtext/action/jvmmodel/ActionDSLJvmModelInferrer.xtend
@@ -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                                 
+ *                                                                            
+ *  Contributors:                                                      
+ * 	   Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
+ * 
+ * 
+ *  This copyright notice shows up in the generated Java code
+ *
+ */
+ 
+package org.eclipse.osbp.xtext.action.jvmmodel
+
+import java.util.concurrent.ExecutorService
+import javax.inject.Inject
+import org.eclipse.e4.core.contexts.IEclipseContext
+import org.eclipse.e4.core.di.annotations.CanExecute
+import org.eclipse.e4.core.di.annotations.Execute
+import org.eclipse.e4.core.services.events.IEventBroker
+import org.eclipse.e4.ui.model.application.ui.menu.MToolBar
+import org.eclipse.e4.ui.workbench.IPresentationEngine
+import org.eclipse.osbp.persistence.IPersistenceService
+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.ActionButton
+import org.eclipse.osbp.xtext.action.ActionChart
+import org.eclipse.osbp.xtext.action.ActionDatainterchange
+import org.eclipse.osbp.xtext.action.ActionDialog
+import org.eclipse.osbp.xtext.action.ActionGeneric
+import org.eclipse.osbp.xtext.action.ActionPackage
+import org.eclipse.osbp.xtext.action.ActionReport
+import org.eclipse.osbp.xtext.action.ActionSelectWorkload
+import org.eclipse.osbp.xtext.action.ActionTask
+import org.eclipse.osbp.xtext.action.ActionToolbar
+import org.eclipse.osbp.xtext.action.ActionWorkflow
+import org.eclipse.osbp.xtext.action.common.IToolbarAction
+import org.eclipse.osbp.xtext.datainterchange.DataInterchange
+import org.eclipse.osbp.xtext.datainterchange.jvmmodel.DataDSLJvmModelInferrer
+import org.eclipse.osbp.xtext.functionlibrarydsl.FunctionLibraryPackage
+import org.eclipse.osbp.xtext.functionlibrarydsl.util.Library.Context
+import org.eclipse.xtext.common.types.JvmDeclaredType
+import org.eclipse.xtext.common.types.JvmField
+import org.eclipse.xtext.common.types.JvmGenericType
+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
+import org.slf4j.Logger
+
+/**
+ * <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 ActionDSLJvmModelInferrer extends AbstractModelInferrer {
+
+	@Inject extension JvmTypesBuilder
+	@Inject extension IQualifiedNameProvider
+	@Inject extension DataDSLJvmModelInferrer data
+
+   	def dispatch void infer(ActionPackage pkg, IJvmDeclaredTypeAcceptor acceptor, boolean isPreIndexingPhase) {
+		for(toolbar:pkg.toolbars) {
+			var toolbarClass = toolbar.toClass(toolbar.className)
+	   		acceptor.accept(toolbarClass,
+	   			[
+				 	documentation = GeneratorConstants.GENERATED_CLASSES_DOCUMENTATION
+				 	superTypes += _typeReferenceBuilder.typeRef(IToolbarAction)
+	   				it.toToolbarConstructor(toolbar)
+	   				it.toToolbarFields(toolbar)
+					it.toToolbarOperations(toolbar)
+	   			])
+			
+			for(action: toolbar.actions) {
+				var handlerClass = toolbar.toClass(toolbar.className(action))
+		   		acceptor.accept(handlerClass,
+		   			[
+					 	documentation = GeneratorConstants.GENERATED_CLASSES_DOCUMENTATION
+		   				it.toHandlerFields(action)
+						it.toHandlerOperations(toolbar, action)
+						it.toHandlerConstructor(action)
+		   			])
+			}
+	   	}
+   	}
+	
+	/**
+	 * <p>build the constructors including the uuid.</p> 
+	 *
+	 */
+	def void toToolbarConstructor(JvmGenericType type, ActionToolbar toolbar){
+		type.members += toolbar.toConstructor(
+		[
+			parameters += toolbar.toParameter("uuid", _typeReferenceBuilder.typeRef(String))
+			body = [
+				append(
+					'''
+					super();
+					this.uuid = uuid;''')]
+		])
+	}
+
+	def String className(ActionToolbar toolbar) {
+		return className(toolbar, null)
+	}
+	
+	def String className(ActionToolbar toolbar, ActionButton action) {
+		var actionId = ""
+		var pkg = toolbar.eContainer as ActionPackage 
+		if (action != null) {
+			switch action.actionType {
+				ActionTask: {
+					actionId = (action.actionType as ActionTask).action.literal
+				}
+				ActionSelectWorkload: {
+					actionId = (action.actionType as ActionSelectWorkload).action.literal
+				}
+				ActionDialog: {
+					actionId = (action.actionType as ActionDialog).action.literal
+				}
+				ActionReport: {
+					actionId = (action.actionType as ActionReport).action.literal
+				}
+				ActionChart: {
+					actionId = (action.actionType as ActionChart).action.literal
+				}
+				ActionWorkflow: {
+					actionId = (action.actionType as ActionWorkflow).action.literal
+				}
+				ActionDatainterchange: {
+					actionId = (action.actionType as ActionDatainterchange).action.literal
+				}
+				ActionGeneric: {
+					 actionId = (action.actionType as ActionGeneric).action
+				}
+			}
+		}
+		return pkg.name.toString.concat(".").concat(toolbar.name.toFirstUpper).concat(actionId.toFirstUpper).concat("Action")
+	}
+	
+	def void toToolbarOperations(JvmGenericType type, ActionToolbar toolbar) {
+		// create a toolbar
+		type.members += toolbar.toMethod("createToolbar", _typeReferenceBuilder.typeRef(Void::TYPE), [
+   			parameters += toolbar.toParameter("eclipseContext", _typeReferenceBuilder.typeRef(IEclipseContext))
+   			parameters += toolbar.toParameter("renderingEngine", _typeReferenceBuilder.typeRef(IPresentationEngine))
+   			parameters += toolbar.toParameter("themeResourceService", _typeReferenceBuilder.typeRef(IThemeResourceService))
+   			
+			visibility = JvmVisibility.PUBLIC
+			annotations += _annotationTypesBuilder.annotationRef(Override)
+			body = [append('''«toolbar.createToolbar»''')]
+		])
+   		// get toolbar
+   		type.members += toolbar.toMethod("getToolBar", _typeReferenceBuilder.typeRef(MToolBar), [
+			annotations += _annotationTypesBuilder.annotationRef(Override)
+   			body = [ append('''return toolbar;''')]
+   		])
+	}
+	
+	def String createToolbar(ActionToolbar toolbar) {
+		var body = ""
+		body = '''
+		«body»
+		this.eclipseContext = eclipseContext;
+		this.themeResourceService = themeResourceService;
+
+		MenuFactoryImpl factory = MenuFactoryImpl.eINSTANCE;
+		MDirectToolItem toolItem = null;
+
+		MPart part = (MPart)eclipseContext.get(MPart.class);
+		if(part != null) {
+			toolbar = part.getToolbar();
+			if (toolbar == null) {
+				toolbar = factory.createToolBar();
+				toolbar.setElementId(uuid);
+				eclipseContext.set("«toolbar.name»_TOOLBAR_ID", toolbar.getElementId());
+				toolbar.setToBeRendered(true);
+				part.setToolbar(toolbar);
+				
+				Panel panel = (Panel) part.getWidget();
+				if (panel != null) {		// it is already visible in terms of vaadin
+					//create toolbar area
+					VerticalLayout rootContainer = (VerticalLayout)panel.getContent();
+					CssLayout toolbarArea = new CssLayout();
+					toolbarArea.setStyleName(EnumCssClass.MPARTTOOLBARAREA.toString());
+					toolbarArea.setSizeUndefined();
+					toolbarArea.setWidth("100%");
+					rootContainer.addComponentAsFirst(toolbarArea);
+					
+					//create toolbar
+					Component toolbarWidget = (Component) renderingEngine.createGui(toolbar);
+					((AbstractLayout)toolbarWidget).setSizeUndefined();
+					toolbarWidget.setStyleName(EnumCssClass.MPARTTOOLBAR.toString());
+					toolbarArea.addComponent(toolbarWidget);
+				}
+			}
+			else {
+				toolbar.getChildren().removeIf(c -> c.isToBeRendered());
+			}
+		'''
+		for(action : toolbar.actions) {
+			body = '''«body»«toolbar.createToolItem(action)»'''
+		}
+		body = '''
+		«body»
+		}'''
+		return body
+	}
+	
+	def String createToolItem(ActionToolbar toolbar, ActionButton action) {
+		var body = ""
+		body = '''
+		«body»
+			toolItem = factory.createDirectToolItem();
+			toolItem.setType(ItemType.PUSH);
+			toolItem.setTooltip("«action.name»");
+			toolItem.setIconURI(themeResourceService.getThemeURI("«action.iconURI»", ThemeResourceType.ICON));
+			toolItem.setEnabled(true);
+			toolItem.setToBeRendered(true);
+			toolItem.setVisible(true);
+			toolItem.setContributionURI("bundleclass://"+FrameworkUtil.getBundle(«toolbar.className(action)».class).getSymbolicName()+"/«toolbar.className(action)»");
+			toolbar.getChildren().add(toolItem);
+			«IF action.actionType instanceof ActionReport»
+			toolItem.getTags().add("«(action.actionType as ActionReport).action.literal»");
+			«ENDIF»
+		'''
+		return body 
+	}
+	
+	def void toToolbarFields(JvmGenericType type, ActionToolbar toolbar) {
+   		var JvmField field = null
+   		// create logger
+		field = toolbar.toField("log", _typeReferenceBuilder.typeRef(Logger))[setInitializer([append('''org.slf4j.LoggerFactory.getLogger("toolbar")''')])]
+   		field.static = true
+   		field.visibility = JvmVisibility::PRIVATE
+		type.members += field
+		// create UUID
+		field = toolbar.toField("uuid", _typeReferenceBuilder.typeRef(String))
+   		field.visibility = JvmVisibility::PRIVATE
+		type.members += field
+		field = toolbar.toField("eclipseContext", _typeReferenceBuilder.typeRef(IEclipseContext))
+		type.members += field
+		field = toolbar.toField("themeResourceService", _typeReferenceBuilder.typeRef(IThemeResourceService))
+		type.members += field	
+		field = toolbar.toField("toolbar", _typeReferenceBuilder.typeRef(MToolBar))
+		type.members += field	
+	}
+   	
+	// handler stuff	
+	def void toHandlerFields(JvmGenericType type, ActionButton action) {
+   		var JvmField field = null
+   		// create logger
+		field = action.toField("log", _typeReferenceBuilder.typeRef(Logger))[setInitializer([append('''org.slf4j.LoggerFactory.getLogger("action")''')])]
+   		field.static = true
+   		field.visibility = JvmVisibility::PRIVATE
+		type.members += field
+		field = action.toField("eventBroker", _typeReferenceBuilder.typeRef(IEventBroker)) [annotations += _annotationTypesBuilder.annotationRef(Inject)]
+		type.members += field
+		field = action.toField("user", _typeReferenceBuilder.typeRef(IUser)) [annotations += _annotationTypesBuilder.annotationRef(Inject)]
+		type.members += field
+		field = action.toField("eclipseContext", _typeReferenceBuilder.typeRef(IEclipseContext)) [annotations += _annotationTypesBuilder.annotationRef(Inject)]
+		type.members += field
+		field = action.toField("persistenceService", _typeReferenceBuilder.typeRef(IPersistenceService)) [annotations += _annotationTypesBuilder.annotationRef(Inject)]
+		type.members += field
+		field = action.toField("executorService", _typeReferenceBuilder.typeRef(ExecutorService))
+   		field.static = true
+		type.members += field
+	}
+	
+	/**
+	 * <p>build the constructors to be used by an e4 application.</p> 
+	 *
+	 */
+	def void toHandlerConstructor(JvmDeclaredType type, ActionButton action) {
+		type.members += action.toConstructor([
+			body = [ append('''«action.handlerConstructor»''')]
+		])
+	}
+	
+	def handlerConstructor(ActionButton action) {
+		'''
+		executorService = Executors.newFixedThreadPool(10);
+		'''
+	}
+	
+	/**
+	 * <p>build the methods to be used as toolbar handlers by an e4 application.</p> 
+	 *
+	 */
+	def void toHandlerOperations(JvmDeclaredType type, ActionToolbar toolbar, ActionButton action) {
+   		// create getContent
+   		type.members += action.toMethod("getContent", _typeReferenceBuilder.typeRef(Context), [
+   			visibility = JvmVisibility::PRIVATE
+   			body = [ append('''«action.getContent»''')]
+   		])
+   		// create canExecute
+   		type.members += action.toMethod("canExecute", _typeReferenceBuilder.typeRef(boolean), [
+   			annotations += _annotationTypesBuilder.annotationRef(CanExecute)
+   			body = [ append('''«action.canExecute»''')]
+   		])
+   		// create execute
+   		type.members += action.toMethod("execute", _typeReferenceBuilder.typeRef(Void::TYPE), [
+   			annotations += _annotationTypesBuilder.annotationRef(Execute)
+   			parameters += action.toParameter("eventBroker", _typeReferenceBuilder.typeRef(IEventBroker))
+   			body = [ append('''«action.execute(toolbar)»''')]
+   		])
+   	}
+	
+	def execute(ActionButton action, ActionToolbar toolbar) {
+		var packageFQN = ""
+		if(action.group != null) {
+			var FunctionLibraryPackage pkg = action.group.eContainer as FunctionLibraryPackage
+			packageFQN = pkg.fullyQualifiedName.toString
+		}
+		switch action.actionType {
+			ActionTask:				(action.actionType as ActionTask).action.literal.doBroadcast(action, toolbar, packageFQN)
+			ActionSelectWorkload:	(action.actionType as ActionSelectWorkload).action.literal.doBroadcast(action, toolbar, packageFQN)
+			ActionDialog:			(action.actionType as ActionDialog).action.literal.doBroadcast(action, toolbar, packageFQN)
+			ActionReport:			(action.actionType as ActionReport).action.literal.doBroadcast(action, toolbar, packageFQN)
+			ActionChart:			(action.actionType as ActionChart).action.literal.doBroadcast(action, toolbar, packageFQN)
+			ActionWorkflow:			(action.actionType as ActionWorkflow).action.literal.doBroadcast(action, toolbar, packageFQN)
+			ActionDatainterchange:	(action.actionType as ActionDatainterchange).dataRef?.doInterchange(action)
+			ActionGeneric:			(action.actionType as ActionGeneric).action.doBroadcast(action, toolbar, packageFQN)
+		}
+	}
+	
+	def doInterchange(DataInterchange dataInterchange, ActionButton action)
+		'''
+		«data.getBasicRunConfiguration(dataInterchange, true, data.getFileURL(dataInterchange))»
+		«dataInterchange.getDefaultVariableName()».setDirection(WorkerThreadRunnable.Direction.«(action.actionType as ActionDatainterchange).action.literal.toUpperCase»);
+		«dataInterchange.getDefaultVariableName()».setEventBroker(eventBroker);
+		executorService.execute(«dataInterchange.getDefaultVariableName()»);'''
+	
+	def doBroadcast(String identifier, ActionButton action, ActionToolbar toolbar, String packageFQN)
+		'''
+		log.debug("action execute called for «action.name»");
+		String uuid = (String)eclipseContext.get("«toolbar.name»_TOOLBAR_ID");
+		eventBroker.send(EventBrokerMsg.ACTION_BUTTON_EXECUTE_PREFIX+"«toolbar.name»Action"+uuid, new EventBrokerMsg(-1, "«identifier»", «IF action.group==null || action.executeparameter==null»0L«ELSE»«packageFQN».«action.group.name.toString.toFirstUpper».«action.executeparameter.name.toString»(getContent())«ENDIF»));'''
+	
+	def canExecute(ActionButton action) {
+		if (action != null) {
+			if (action.group != null) {
+				var pkg = action.group.eContainer as FunctionLibraryPackage
+				'''
+				«IF action.group==null»return true;«ELSE»return «pkg.fullyQualifiedName.toString».«action.group.name.toString.toFirstUpper».«action.canexecute.name.toString»(getContent());«ENDIF»'''
+			}
+			else
+			{
+				'''return true;'''
+			}
+		}
+		else
+		{
+			'''return true;'''
+		}
+	}
+	
+	def getContent(ActionButton action) {
+		'''
+	    Context result = new Context();
+	    result.put(Context.USER, user);
+	    MContext context = eclipseContext.get(MContext.class);
+	    if (context instanceof MPart && ((MPart)context).getTransientData().containsKey("tablePositionInfo")) {
+	    	result.put(Context.TABLE, ((MPart)context).getTransientData().get("tablePositionInfo"));
+	    	result.put(Context.TASKSUMMARY, ((MPart)context).getTransientData().get("taskSummary"));
+	    }
+	    else if (context instanceof MTrimmedWindow) {
+	    	if (((MTrimmedWindow)context).getSelectedElement()!=null && ((MTrimmedWindow)context).getSelectedElement() instanceof MPerspectiveStack) {
+	    		MPerspectiveStack perspectiveStack = (MPerspectiveStack)((MTrimmedWindow)context).getSelectedElement();
+	    		if (perspectiveStack.getSelectedElement() != null && perspectiveStack.getSelectedElement() instanceof MPerspective) {
+	    			MPerspective perspective = (MPerspective)perspectiveStack.getSelectedElement();
+	    			if (perspective.getTransientData().containsKey("taskSummary")) {
+	    				result.put(Context.TASKSUMMARY, perspective.getTransientData().get("taskSummary"));
+	    			}
+	    		}
+	    	}
+	    }
+	    return result;'''
+	}
+}
+
diff --git a/org.eclipse.osbp.xtext.action/src/org/eclipse/osbp/xtext/action/jvmmodel/ActionModelGenerator.xtend b/org.eclipse.osbp.xtext.action/src/org/eclipse/osbp/xtext/action/jvmmodel/ActionModelGenerator.xtend
new file mode 100644
index 0000000..be1b702
--- /dev/null
+++ b/org.eclipse.osbp.xtext.action/src/org/eclipse/osbp/xtext/action/jvmmodel/ActionModelGenerator.xtend
@@ -0,0 +1,104 @@
+/**
+ *                                                                            
+ *  Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) 
+ *                                                                            
+ *  All rights reserved. This program and the accompanying materials           
+ *  are made available under the 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.action.jvmmodel
+
+import com.vaadin.ui.AbstractLayout
+import com.vaadin.ui.Component
+import com.vaadin.ui.CssLayout
+import com.vaadin.ui.Panel
+import com.vaadin.ui.UI
+import com.vaadin.ui.VerticalLayout
+import java.lang.reflect.Method
+import java.util.Locale
+import java.util.concurrent.Executors
+import javax.inject.Inject
+import org.eclipse.e4.core.di.extensions.EventUtils
+import org.eclipse.e4.core.services.translation.TranslationService
+import org.eclipse.e4.ui.model.application.ui.MContext
+import org.eclipse.e4.ui.model.application.ui.advanced.MPerspective
+import org.eclipse.e4.ui.model.application.ui.advanced.MPerspectiveStack
+import org.eclipse.e4.ui.model.application.ui.basic.MPart
+import org.eclipse.e4.ui.model.application.ui.basic.MTrimmedWindow
+import org.eclipse.e4.ui.model.application.ui.menu.ItemType
+import org.eclipse.e4.ui.model.application.ui.menu.MDirectToolItem
+import org.eclipse.e4.ui.model.application.ui.menu.MToolBar
+import org.eclipse.e4.ui.model.application.ui.menu.impl.MenuFactoryImpl
+import org.eclipse.emf.ecore.EObject
+import org.eclipse.emf.ecore.resource.Resource
+import org.eclipse.osbp.eventbroker.EventBrokerMsg
+import org.eclipse.osbp.persistence.IPersistenceService
+import org.eclipse.osbp.ui.api.themes.IThemeResourceService
+import org.eclipse.osbp.utils.theme.EnumCssClass
+import org.eclipse.osbp.xtext.basic.generator.BasicDslGeneratorUtils
+import org.eclipse.osbp.xtext.datainterchange.common.WorkerThreadRunnable
+import org.eclipse.osbp.xtext.i18n.I18NModelGenerator
+import org.eclipse.xtext.generator.IFileSystemAccess
+import org.eclipse.xtext.xbase.compiler.GeneratorConfig
+import org.eclipse.xtext.xbase.compiler.ImportManager
+import org.eclipse.xtext.xbase.jvmmodel.JvmTypesBuilder
+import org.osgi.framework.FrameworkUtil
+import org.osgi.service.event.Event
+import org.eclipse.osbp.ui.api.themes.IThemeResourceService.ThemeResourceType
+import org.eclipse.osbp.xtext.functionlibrarydsl.util.Library
+
+class ActionModelGenerator extends I18NModelGenerator {
+	@Inject extension JvmTypesBuilder
+	@Inject extension BasicDslGeneratorUtils
+	
+	override createAppendable(EObject context, ImportManager importManager, GeneratorConfig config) {
+		// required to initialize the needed builder to avoid deprecated methods
+		builder = context.eResource
+		// ---------
+        addImportFor(importManager, _typeReferenceBuilder
+			, Event
+			, EventUtils
+			, MToolBar
+			, MenuFactoryImpl
+			, ItemType
+			, VerticalLayout
+			, Panel
+			, CssLayout
+			, Component
+			, AbstractLayout
+			, MDirectToolItem
+			, MContext
+			, MTrimmedWindow
+			, MPerspectiveStack
+			, MPerspective
+			, MPart
+			, Method
+			, EventBrokerMsg
+			, FrameworkUtil
+			, UI
+			, Locale
+			, TranslationService
+			, IThemeResourceService
+			, ThemeResourceType
+			, EnumCssClass
+			, IPersistenceService
+			, WorkerThreadRunnable
+			, Executors
+			, Library.Context
+		)
+		super.createAppendable(context, importManager, config)
+	}
+	
+	override doGenerate(Resource input, IFileSystemAccess fsa) {
+		super.doGenerate(input, fsa)
+	}
+}
diff --git a/org.eclipse.osbp.xtext.action/src/org/eclipse/osbp/xtext/action/scoping/ActionScopeProvider.xtend b/org.eclipse.osbp.xtext.action/src/org/eclipse/osbp/xtext/action/scoping/ActionScopeProvider.xtend
new file mode 100644
index 0000000..45f3df5
--- /dev/null
+++ b/org.eclipse.osbp.xtext.action/src/org/eclipse/osbp/xtext/action/scoping/ActionScopeProvider.xtend
@@ -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                                 
+ *                                                                            
+ *  Contributors:                                                      
+ * 	   Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
+ * 
+ * 
+ *  This copyright notice shows up in the generated Java code
+ *
+ */
+ 
+package org.eclipse.osbp.xtext.action.scoping
+
+import org.eclipse.xtext.xbase.annotations.typesystem.XbaseWithAnnotationsBatchScopeProvider
+import org.eclipse.emf.ecore.EObject
+import org.eclipse.emf.ecore.EReference
+import org.eclipse.osbp.xtext.action.ActionDSLPackage
+import org.eclipse.xtext.resource.IEObjectDescription
+import org.eclipse.xtext.scoping.impl.MapBasedScope
+import org.eclipse.osbp.xtext.action.ActionButton
+import org.eclipse.osbp.xtext.functionlibrarydsl.FunctionLibraryGroup
+import org.eclipse.xtext.resource.EObjectDescription
+import org.eclipse.xtext.scoping.Scopes
+import org.eclipse.osbp.xtext.messagedsl.MessageItem
+
+class ActionScopeProvider extends XbaseWithAnnotationsBatchScopeProvider {
+
+	override getScope(EObject context, EReference reference) {
+		if (reference == ActionDSLPackage.Literals.ACTION_BUTTON__CANEXECUTE) {
+			return getScope_ActionButtonCanExecute(context as ActionButton, reference)
+		}
+		else if (reference == ActionDSLPackage.Literals.ACTION_BUTTON__EXECUTEPARAMETER) {
+			return getScope_ActionButtonExecuteParameter(context as ActionButton, reference)
+		}
+//		else if (reference == ActionDSLPackage.Literals._ACTION_BUTTON__MESSAGE) {
+//			return getScope_ActionButtonMessage(context as ActionButton, reference)
+//		}
+		return super.getScope(context, reference)
+	}
+	
+	def getScope_ActionButtonCanExecute(ActionButton context, EReference reference) {
+		var parentScope = super.getScope(context, reference)
+		var result = <EObject>newArrayList
+		for(function : (context.group as FunctionLibraryGroup).functions) {
+			if (function.params == null || function.params.size == 0) {
+				var ofType = function.oftype.simpleName
+				if("boolean".equals(ofType)) {
+					result.add(function)
+				}
+			}
+		}
+		return Scopes::scopeFor(result, parentScope)
+	}
+
+	def getScope_ActionButtonExecuteParameter(ActionButton context, EReference reference) {
+		var parentScope = super.getScope(context, reference)
+		var result = <EObject>newArrayList
+		for(function : (context.group as FunctionLibraryGroup).functions) {
+			if (function.params == null || function.params.size == 0) {
+				result.add(function)
+			}
+		}
+		return Scopes::scopeFor(result, parentScope)
+	}
+	
+	def getScope_ActionButtonMessage(ActionButton context, EReference reference) {
+		var parentScope = super.getScope(context, reference)
+		var elements = parentScope.allElements
+		for (element : elements){
+			var elementname = element.name
+			println('''elementname: «elementname»''')
+		}
+		var result = <EObject>newArrayList
+		var message = (context.message as MessageItem)
+		var EObject eObj = message.eContainer
+		if (message != null) {
+			result.add(message)
+		}
+		return Scopes::scopeFor(result, parentScope)
+	}
+		
+}
diff --git a/org.eclipse.osbp.xtext.action/src/org/eclipse/osbp/xtext/action/validation/ActionDSLValidator.xtend b/org.eclipse.osbp.xtext.action/src/org/eclipse/osbp/xtext/action/validation/ActionDSLValidator.xtend
new file mode 100644
index 0000000..9c5e4d0
--- /dev/null
+++ b/org.eclipse.osbp.xtext.action/src/org/eclipse/osbp/xtext/action/validation/ActionDSLValidator.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.action.validation
+//import org.eclipse.xtext.validation.Check
+
+/**
+ * Custom validation rules. 
+ *
+ * see http://www.eclipse.org/Xtext/documentation.html#validation
+ */
+class ActionDSLValidator extends AbstractActionDSLValidator {
+
+//  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.action/src/org/eclipse/osbp/xtext/action/valueconverter/ActionQualifiedNameProvider.java b/org.eclipse.osbp.xtext.action/src/org/eclipse/osbp/xtext/action/valueconverter/ActionQualifiedNameProvider.java
new file mode 100644
index 0000000..1763967
--- /dev/null
+++ b/org.eclipse.osbp.xtext.action/src/org/eclipse/osbp/xtext/action/valueconverter/ActionQualifiedNameProvider.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.action.valueconverter;
+
+import java.util.List;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.xtext.naming.IQualifiedNameConverter;
+import org.eclipse.xtext.naming.QualifiedName;
+import org.eclipse.xtext.nodemodel.INode;
+import org.eclipse.xtext.nodemodel.util.NodeModelUtils;
+import org.eclipse.xtext.xbase.scoping.XbaseQualifiedNameProvider;
+import org.eclipse.osbp.dsl.entity.xtext.extensions.ModelExtensions;
+import org.eclipse.osbp.dsl.semantic.common.types.LFeature;
+import org.eclipse.osbp.dsl.semantic.common.types.LPackage;
+import org.eclipse.osbp.dsl.semantic.common.types.LType;
+
+import com.google.inject.Inject;
+
+import org.eclipse.osbp.xtext.functionlibrarydsl.FunctionLibraryFunction;
+import org.eclipse.osbp.xtext.functionlibrarydsl.FunctionLibraryGroup;
+import org.eclipse.osbp.xtext.action.ActionDSLPackage;
+import org.eclipse.osbp.xtext.action.ActionToolbar;
+
+@SuppressWarnings("restriction")
+public class ActionQualifiedNameProvider extends XbaseQualifiedNameProvider {
+
+	@Inject
+	private IQualifiedNameConverter qualifiedNameConverter;
+
+	@Inject
+	private ModelExtensions extensions;
+
+	@Override
+	public QualifiedName getFullyQualifiedName(EObject obj) {
+		if (obj == null) {
+			return QualifiedName.create("");
+		}
+		if (obj instanceof ActionToolbar) {
+			ActionToolbar toolbar = (ActionToolbar) obj;
+            if (toolbar.getName() == null) {
+            	return null;
+            }
+            return qualifiedNameConverter.toQualifiedName(toolbar.getName());
+		}
+		else if (obj instanceof FunctionLibraryGroup) {
+            return qualifiedCrossReferenceNameConverter(obj, ActionDSLPackage.eINSTANCE.getActionButton_Group());
+		}
+		else if (obj instanceof FunctionLibraryFunction) {
+			return qualifiedCrossReferenceNameConverter(obj, ActionDSLPackage.eINSTANCE.getActionButton_Canexecute());
+		}
+		return super.getFullyQualifiedName(obj);
+	}
+
+	// this method evaluates the cross referenced name of an object without causing cyclic lazy linking errors
+	private QualifiedName qualifiedCrossReferenceNameConverter(EObject obj, EStructuralFeature feature) {
+		List<INode> nodes = NodeModelUtils.findNodesForFeature(obj, feature);
+		if (nodes.size() == 0) {
+			return QualifiedName.create("");
+		}
+		return qualifiedNameConverter.toQualifiedName(NodeModelUtils.getTokenText(nodes.get(0)));
+	}
+	
+	public QualifiedName getFQN(LFeature lfeature){
+		   if(lfeature.getName() == null){
+		    return QualifiedName.create("");
+		   }
+		   LType type = (LType) lfeature.eContainer();
+		   LPackage pkg = extensions.getPackage(type);
+		   if (pkg != null && type != null) {
+		    final String qualifiedName = String.format("%s.%s.%s",
+		      pkg.getName(), type.getName(), lfeature.getName());
+		    if (qualifiedName == null)
+		     return null;
+		    return qualifiedNameConverter.toQualifiedName(qualifiedName);
+		   } else {
+		    return lfeature.getName() != null ? qualifiedNameConverter
+		      .toQualifiedName(lfeature.getName()) : null;
+		   }
+	  }
+}
diff --git a/org.eclipse.osbp.xtext.action/src/org/eclipse/osbp/xtext/action/valueconverter/ActionValueConverterService.java b/org.eclipse.osbp.xtext.action/src/org/eclipse/osbp/xtext/action/valueconverter/ActionValueConverterService.java
new file mode 100644
index 0000000..0e6a34b
--- /dev/null
+++ b/org.eclipse.osbp.xtext.action/src/org/eclipse/osbp/xtext/action/valueconverter/ActionValueConverterService.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 - Initial implementation
+ */
+package org.eclipse.osbp.xtext.action.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.
+ */
+@SuppressWarnings("restriction")
+@Singleton
+public class ActionValueConverterService 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.action/xtend-gen/org/eclipse/osbp/xtext/action/formatting/ActionDSLFormatter.java b/org.eclipse.osbp.xtext.action/xtend-gen/org/eclipse/osbp/xtext/action/formatting/ActionDSLFormatter.java
new file mode 100644
index 0000000..a1801f9
--- /dev/null
+++ b/org.eclipse.osbp.xtext.action/xtend-gen/org/eclipse/osbp/xtext/action/formatting/ActionDSLFormatter.java
@@ -0,0 +1,43 @@
+/**
+ * Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 
+ *  All rights reserved. This program and the accompanying materials
+ *  are made available under the 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.action.formatting;
+
+import com.google.inject.Inject;
+import org.eclipse.osbp.utils.xtext.GenericFormatter;
+import org.eclipse.xtext.Grammar;
+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 ActionDSLFormatter extends AbstractDeclarativeFormatter {
+  @Inject
+  private XtypeGrammarAccess grammarAccess;
+  
+  protected void configureFormatting(final FormattingConfig c) {
+    final GenericFormatter genericFormatter = new GenericFormatter();
+    Grammar _grammar = this.grammar.getGrammar();
+    genericFormatter.formatFirstLevelBlocks(c, _grammar, "ActionToolbar", "ActionImport");
+    genericFormatter.genericFormatting(c, this.grammar, this.grammarAccess);
+  }
+}
diff --git a/org.eclipse.osbp.xtext.action/xtend-gen/org/eclipse/osbp/xtext/action/jvmmodel/ActionDSLJvmModelInferrer.java b/org.eclipse.osbp.xtext.action/xtend-gen/org/eclipse/osbp/xtext/action/jvmmodel/ActionDSLJvmModelInferrer.java
new file mode 100644
index 0000000..0b5695a
--- /dev/null
+++ b/org.eclipse.osbp.xtext.action/xtend-gen/org/eclipse/osbp/xtext/action/jvmmodel/ActionDSLJvmModelInferrer.java
@@ -0,0 +1,1010 @@
+/**
+ * Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 
+ *  All rights reserved. This program and the accompanying materials
+ *  are made available under the 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.action.jvmmodel;
+
+import com.google.common.base.Objects;
+import java.util.Arrays;
+import java.util.concurrent.ExecutorService;
+import javax.inject.Inject;
+import org.eclipse.e4.core.contexts.IEclipseContext;
+import org.eclipse.e4.core.di.annotations.CanExecute;
+import org.eclipse.e4.core.di.annotations.Execute;
+import org.eclipse.e4.core.services.events.IEventBroker;
+import org.eclipse.e4.ui.model.application.ui.menu.MToolBar;
+import org.eclipse.e4.ui.workbench.IPresentationEngine;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.osbp.persistence.IPersistenceService;
+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.ActionButton;
+import org.eclipse.osbp.xtext.action.ActionChart;
+import org.eclipse.osbp.xtext.action.ActionDatainterchange;
+import org.eclipse.osbp.xtext.action.ActionDialog;
+import org.eclipse.osbp.xtext.action.ActionGeneric;
+import org.eclipse.osbp.xtext.action.ActionPackage;
+import org.eclipse.osbp.xtext.action.ActionReport;
+import org.eclipse.osbp.xtext.action.ActionSelectWorkload;
+import org.eclipse.osbp.xtext.action.ActionTask;
+import org.eclipse.osbp.xtext.action.ActionToolbar;
+import org.eclipse.osbp.xtext.action.ActionType;
+import org.eclipse.osbp.xtext.action.ActionWorkflow;
+import org.eclipse.osbp.xtext.action.ChartActionEnum;
+import org.eclipse.osbp.xtext.action.DatainterchangeActionEnum;
+import org.eclipse.osbp.xtext.action.DialogActionEnum;
+import org.eclipse.osbp.xtext.action.ReportActionEnum;
+import org.eclipse.osbp.xtext.action.SelectWorkloadActionEnum;
+import org.eclipse.osbp.xtext.action.TaskActionEnum;
+import org.eclipse.osbp.xtext.action.WorkflowActionEnum;
+import org.eclipse.osbp.xtext.action.common.IToolbarAction;
+import org.eclipse.osbp.xtext.datainterchange.DataInterchange;
+import org.eclipse.osbp.xtext.datainterchange.jvmmodel.DataDSLJvmModelInferrer;
+import org.eclipse.osbp.xtext.functionlibrarydsl.FunctionLibraryFunction;
+import org.eclipse.osbp.xtext.functionlibrarydsl.FunctionLibraryGroup;
+import org.eclipse.osbp.xtext.functionlibrarydsl.FunctionLibraryPackage;
+import org.eclipse.osbp.xtext.functionlibrarydsl.util.Library;
+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;
+import org.slf4j.Logger;
+
+/**
+ * <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 ActionDSLJvmModelInferrer extends AbstractModelInferrer {
+  @Inject
+  @Extension
+  private JvmTypesBuilder _jvmTypesBuilder;
+  
+  @Inject
+  @Extension
+  private IQualifiedNameProvider _iQualifiedNameProvider;
+  
+  @Inject
+  @Extension
+  private DataDSLJvmModelInferrer data;
+  
+  protected void _infer(final ActionPackage pkg, final IJvmDeclaredTypeAcceptor acceptor, final boolean isPreIndexingPhase) {
+    EList<ActionToolbar> _toolbars = pkg.getToolbars();
+    for (final ActionToolbar toolbar : _toolbars) {
+      {
+        String _className = this.className(toolbar);
+        JvmGenericType toolbarClass = this._jvmTypesBuilder.toClass(toolbar, _className);
+        final Procedure1<JvmGenericType> _function = new Procedure1<JvmGenericType>() {
+          public void apply(final JvmGenericType it) {
+            ActionDSLJvmModelInferrer.this._jvmTypesBuilder.setDocumentation(it, GeneratorConstants.GENERATED_CLASSES_DOCUMENTATION);
+            EList<JvmTypeReference> _superTypes = it.getSuperTypes();
+            JvmTypeReference _typeRef = ActionDSLJvmModelInferrer.this._typeReferenceBuilder.typeRef(IToolbarAction.class);
+            ActionDSLJvmModelInferrer.this._jvmTypesBuilder.<JvmTypeReference>operator_add(_superTypes, _typeRef);
+            ActionDSLJvmModelInferrer.this.toToolbarConstructor(it, toolbar);
+            ActionDSLJvmModelInferrer.this.toToolbarFields(it, toolbar);
+            ActionDSLJvmModelInferrer.this.toToolbarOperations(it, toolbar);
+          }
+        };
+        acceptor.<JvmGenericType>accept(toolbarClass, _function);
+        EList<ActionButton> _actions = toolbar.getActions();
+        for (final ActionButton action : _actions) {
+          {
+            String _className_1 = this.className(toolbar, action);
+            JvmGenericType handlerClass = this._jvmTypesBuilder.toClass(toolbar, _className_1);
+            final Procedure1<JvmGenericType> _function_1 = new Procedure1<JvmGenericType>() {
+              public void apply(final JvmGenericType it) {
+                ActionDSLJvmModelInferrer.this._jvmTypesBuilder.setDocumentation(it, GeneratorConstants.GENERATED_CLASSES_DOCUMENTATION);
+                ActionDSLJvmModelInferrer.this.toHandlerFields(it, action);
+                ActionDSLJvmModelInferrer.this.toHandlerOperations(it, toolbar, action);
+                ActionDSLJvmModelInferrer.this.toHandlerConstructor(it, action);
+              }
+            };
+            acceptor.<JvmGenericType>accept(handlerClass, _function_1);
+          }
+        }
+      }
+    }
+  }
+  
+  /**
+   * <p>build the constructors including the uuid.</p>
+   */
+  public void toToolbarConstructor(final JvmGenericType type, final ActionToolbar toolbar) {
+    EList<JvmMember> _members = type.getMembers();
+    final Procedure1<JvmConstructor> _function = new Procedure1<JvmConstructor>() {
+      public void apply(final JvmConstructor it) {
+        EList<JvmFormalParameter> _parameters = it.getParameters();
+        JvmTypeReference _typeRef = ActionDSLJvmModelInferrer.this._typeReferenceBuilder.typeRef(String.class);
+        JvmFormalParameter _parameter = ActionDSLJvmModelInferrer.this._jvmTypesBuilder.toParameter(toolbar, "uuid", _typeRef);
+        ActionDSLJvmModelInferrer.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("super();");
+            _builder.newLine();
+            _builder.append("this.uuid = uuid;");
+            it.append(_builder);
+          }
+        };
+        ActionDSLJvmModelInferrer.this._jvmTypesBuilder.setBody(it, _function);
+      }
+    };
+    JvmConstructor _constructor = this._jvmTypesBuilder.toConstructor(toolbar, _function);
+    this._jvmTypesBuilder.<JvmConstructor>operator_add(_members, _constructor);
+  }
+  
+  public String className(final ActionToolbar toolbar) {
+    return this.className(toolbar, null);
+  }
+  
+  public String className(final ActionToolbar toolbar, final ActionButton action) {
+    String actionId = "";
+    EObject _eContainer = toolbar.eContainer();
+    ActionPackage pkg = ((ActionPackage) _eContainer);
+    boolean _notEquals = (!Objects.equal(action, null));
+    if (_notEquals) {
+      ActionType _actionType = action.getActionType();
+      boolean _matched = false;
+      if (!_matched) {
+        if (_actionType instanceof ActionTask) {
+          _matched=true;
+          ActionType _actionType_1 = action.getActionType();
+          TaskActionEnum _action = ((ActionTask) _actionType_1).getAction();
+          String _literal = _action.getLiteral();
+          actionId = _literal;
+        }
+      }
+      if (!_matched) {
+        if (_actionType instanceof ActionSelectWorkload) {
+          _matched=true;
+          ActionType _actionType_1 = action.getActionType();
+          SelectWorkloadActionEnum _action = ((ActionSelectWorkload) _actionType_1).getAction();
+          String _literal = _action.getLiteral();
+          actionId = _literal;
+        }
+      }
+      if (!_matched) {
+        if (_actionType instanceof ActionDialog) {
+          _matched=true;
+          ActionType _actionType_1 = action.getActionType();
+          DialogActionEnum _action = ((ActionDialog) _actionType_1).getAction();
+          String _literal = _action.getLiteral();
+          actionId = _literal;
+        }
+      }
+      if (!_matched) {
+        if (_actionType instanceof ActionReport) {
+          _matched=true;
+          ActionType _actionType_1 = action.getActionType();
+          ReportActionEnum _action = ((ActionReport) _actionType_1).getAction();
+          String _literal = _action.getLiteral();
+          actionId = _literal;
+        }
+      }
+      if (!_matched) {
+        if (_actionType instanceof ActionChart) {
+          _matched=true;
+          ActionType _actionType_1 = action.getActionType();
+          ChartActionEnum _action = ((ActionChart) _actionType_1).getAction();
+          String _literal = _action.getLiteral();
+          actionId = _literal;
+        }
+      }
+      if (!_matched) {
+        if (_actionType instanceof ActionWorkflow) {
+          _matched=true;
+          ActionType _actionType_1 = action.getActionType();
+          WorkflowActionEnum _action = ((ActionWorkflow) _actionType_1).getAction();
+          String _literal = _action.getLiteral();
+          actionId = _literal;
+        }
+      }
+      if (!_matched) {
+        if (_actionType instanceof ActionDatainterchange) {
+          _matched=true;
+          ActionType _actionType_1 = action.getActionType();
+          DatainterchangeActionEnum _action = ((ActionDatainterchange) _actionType_1).getAction();
+          String _literal = _action.getLiteral();
+          actionId = _literal;
+        }
+      }
+      if (!_matched) {
+        if (_actionType instanceof ActionGeneric) {
+          _matched=true;
+          ActionType _actionType_1 = action.getActionType();
+          String _action = ((ActionGeneric) _actionType_1).getAction();
+          actionId = _action;
+        }
+      }
+    }
+    String _name = pkg.getName();
+    String _string = _name.toString();
+    String _concat = _string.concat(".");
+    String _name_1 = toolbar.getName();
+    String _firstUpper = StringExtensions.toFirstUpper(_name_1);
+    String _concat_1 = _concat.concat(_firstUpper);
+    String _firstUpper_1 = StringExtensions.toFirstUpper(actionId);
+    String _concat_2 = _concat_1.concat(_firstUpper_1);
+    return _concat_2.concat("Action");
+  }
+  
+  public void toToolbarOperations(final JvmGenericType type, final ActionToolbar toolbar) {
+    EList<JvmMember> _members = type.getMembers();
+    JvmTypeReference _typeRef = this._typeReferenceBuilder.typeRef(Void.TYPE);
+    final Procedure1<JvmOperation> _function = new Procedure1<JvmOperation>() {
+      public void apply(final JvmOperation it) {
+        EList<JvmFormalParameter> _parameters = it.getParameters();
+        JvmTypeReference _typeRef = ActionDSLJvmModelInferrer.this._typeReferenceBuilder.typeRef(IEclipseContext.class);
+        JvmFormalParameter _parameter = ActionDSLJvmModelInferrer.this._jvmTypesBuilder.toParameter(toolbar, "eclipseContext", _typeRef);
+        ActionDSLJvmModelInferrer.this._jvmTypesBuilder.<JvmFormalParameter>operator_add(_parameters, _parameter);
+        EList<JvmFormalParameter> _parameters_1 = it.getParameters();
+        JvmTypeReference _typeRef_1 = ActionDSLJvmModelInferrer.this._typeReferenceBuilder.typeRef(IPresentationEngine.class);
+        JvmFormalParameter _parameter_1 = ActionDSLJvmModelInferrer.this._jvmTypesBuilder.toParameter(toolbar, "renderingEngine", _typeRef_1);
+        ActionDSLJvmModelInferrer.this._jvmTypesBuilder.<JvmFormalParameter>operator_add(_parameters_1, _parameter_1);
+        EList<JvmFormalParameter> _parameters_2 = it.getParameters();
+        JvmTypeReference _typeRef_2 = ActionDSLJvmModelInferrer.this._typeReferenceBuilder.typeRef(IThemeResourceService.class);
+        JvmFormalParameter _parameter_2 = ActionDSLJvmModelInferrer.this._jvmTypesBuilder.toParameter(toolbar, "themeResourceService", _typeRef_2);
+        ActionDSLJvmModelInferrer.this._jvmTypesBuilder.<JvmFormalParameter>operator_add(_parameters_2, _parameter_2);
+        it.setVisibility(JvmVisibility.PUBLIC);
+        EList<JvmAnnotationReference> _annotations = it.getAnnotations();
+        JvmAnnotationReference _annotationRef = ActionDSLJvmModelInferrer.this._annotationTypesBuilder.annotationRef(Override.class);
+        ActionDSLJvmModelInferrer.this._jvmTypesBuilder.<JvmAnnotationReference>operator_add(_annotations, _annotationRef);
+        final Procedure1<ITreeAppendable> _function = new Procedure1<ITreeAppendable>() {
+          public void apply(final ITreeAppendable it) {
+            StringConcatenation _builder = new StringConcatenation();
+            String _createToolbar = ActionDSLJvmModelInferrer.this.createToolbar(toolbar);
+            _builder.append(_createToolbar, "");
+            it.append(_builder);
+          }
+        };
+        ActionDSLJvmModelInferrer.this._jvmTypesBuilder.setBody(it, _function);
+      }
+    };
+    JvmOperation _method = this._jvmTypesBuilder.toMethod(toolbar, "createToolbar", _typeRef, _function);
+    this._jvmTypesBuilder.<JvmOperation>operator_add(_members, _method);
+    EList<JvmMember> _members_1 = type.getMembers();
+    JvmTypeReference _typeRef_1 = this._typeReferenceBuilder.typeRef(MToolBar.class);
+    final Procedure1<JvmOperation> _function_1 = new Procedure1<JvmOperation>() {
+      public void apply(final JvmOperation it) {
+        EList<JvmAnnotationReference> _annotations = it.getAnnotations();
+        JvmAnnotationReference _annotationRef = ActionDSLJvmModelInferrer.this._annotationTypesBuilder.annotationRef(Override.class);
+        ActionDSLJvmModelInferrer.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 toolbar;");
+            it.append(_builder);
+          }
+        };
+        ActionDSLJvmModelInferrer.this._jvmTypesBuilder.setBody(it, _function);
+      }
+    };
+    JvmOperation _method_1 = this._jvmTypesBuilder.toMethod(toolbar, "getToolBar", _typeRef_1, _function_1);
+    this._jvmTypesBuilder.<JvmOperation>operator_add(_members_1, _method_1);
+  }
+  
+  public String createToolbar(final ActionToolbar toolbar) {
+    String body = "";
+    StringConcatenation _builder = new StringConcatenation();
+    _builder.append(body, "");
+    _builder.newLineIfNotEmpty();
+    _builder.append("this.eclipseContext = eclipseContext;");
+    _builder.newLine();
+    _builder.append("this.themeResourceService = themeResourceService;");
+    _builder.newLine();
+    _builder.newLine();
+    _builder.append("MenuFactoryImpl factory = MenuFactoryImpl.eINSTANCE;");
+    _builder.newLine();
+    _builder.append("MDirectToolItem toolItem = null;");
+    _builder.newLine();
+    _builder.newLine();
+    _builder.append("MPart part = (MPart)eclipseContext.get(MPart.class);");
+    _builder.newLine();
+    _builder.append("if(part != null) {");
+    _builder.newLine();
+    _builder.append("\t");
+    _builder.append("toolbar = part.getToolbar();");
+    _builder.newLine();
+    _builder.append("\t");
+    _builder.append("if (toolbar == null) {");
+    _builder.newLine();
+    _builder.append("\t\t");
+    _builder.append("toolbar = factory.createToolBar();");
+    _builder.newLine();
+    _builder.append("\t\t");
+    _builder.append("toolbar.setElementId(uuid);");
+    _builder.newLine();
+    _builder.append("\t\t");
+    _builder.append("eclipseContext.set(\"");
+    String _name = toolbar.getName();
+    _builder.append(_name, "\t\t");
+    _builder.append("_TOOLBAR_ID\", toolbar.getElementId());");
+    _builder.newLineIfNotEmpty();
+    _builder.append("\t\t");
+    _builder.append("toolbar.setToBeRendered(true);");
+    _builder.newLine();
+    _builder.append("\t\t");
+    _builder.append("part.setToolbar(toolbar);");
+    _builder.newLine();
+    _builder.append("\t\t");
+    _builder.newLine();
+    _builder.append("\t\t");
+    _builder.append("Panel panel = (Panel) part.getWidget();");
+    _builder.newLine();
+    _builder.append("\t\t");
+    _builder.append("if (panel != null) {\t\t// it is already visible in terms of vaadin");
+    _builder.newLine();
+    _builder.append("\t\t\t");
+    _builder.append("//create toolbar area");
+    _builder.newLine();
+    _builder.append("\t\t\t");
+    _builder.append("VerticalLayout rootContainer = (VerticalLayout)panel.getContent();");
+    _builder.newLine();
+    _builder.append("\t\t\t");
+    _builder.append("CssLayout toolbarArea = new CssLayout();");
+    _builder.newLine();
+    _builder.append("\t\t\t");
+    _builder.append("toolbarArea.setStyleName(EnumCssClass.MPARTTOOLBARAREA.toString());");
+    _builder.newLine();
+    _builder.append("\t\t\t");
+    _builder.append("toolbarArea.setSizeUndefined();");
+    _builder.newLine();
+    _builder.append("\t\t\t");
+    _builder.append("toolbarArea.setWidth(\"100%\");");
+    _builder.newLine();
+    _builder.append("\t\t\t");
+    _builder.append("rootContainer.addComponentAsFirst(toolbarArea);");
+    _builder.newLine();
+    _builder.append("\t\t\t");
+    _builder.newLine();
+    _builder.append("\t\t\t");
+    _builder.append("//create toolbar");
+    _builder.newLine();
+    _builder.append("\t\t\t");
+    _builder.append("Component toolbarWidget = (Component) renderingEngine.createGui(toolbar);");
+    _builder.newLine();
+    _builder.append("\t\t\t");
+    _builder.append("((AbstractLayout)toolbarWidget).setSizeUndefined();");
+    _builder.newLine();
+    _builder.append("\t\t\t");
+    _builder.append("toolbarWidget.setStyleName(EnumCssClass.MPARTTOOLBAR.toString());");
+    _builder.newLine();
+    _builder.append("\t\t\t");
+    _builder.append("toolbarArea.addComponent(toolbarWidget);");
+    _builder.newLine();
+    _builder.append("\t\t");
+    _builder.append("}");
+    _builder.newLine();
+    _builder.append("\t");
+    _builder.append("}");
+    _builder.newLine();
+    _builder.append("\t");
+    _builder.append("else {");
+    _builder.newLine();
+    _builder.append("\t\t");
+    _builder.append("toolbar.getChildren().removeIf(c -> c.isToBeRendered());");
+    _builder.newLine();
+    _builder.append("\t");
+    _builder.append("}");
+    _builder.newLine();
+    body = _builder.toString();
+    EList<ActionButton> _actions = toolbar.getActions();
+    for (final ActionButton action : _actions) {
+      StringConcatenation _builder_1 = new StringConcatenation();
+      _builder_1.append(body, "");
+      String _createToolItem = this.createToolItem(toolbar, action);
+      _builder_1.append(_createToolItem, "");
+      body = _builder_1.toString();
+    }
+    StringConcatenation _builder_2 = new StringConcatenation();
+    _builder_2.append(body, "");
+    _builder_2.newLineIfNotEmpty();
+    _builder_2.append("}");
+    body = _builder_2.toString();
+    return body;
+  }
+  
+  public String createToolItem(final ActionToolbar toolbar, final ActionButton action) {
+    String body = "";
+    StringConcatenation _builder = new StringConcatenation();
+    _builder.append(body, "");
+    _builder.newLineIfNotEmpty();
+    _builder.append("\t");
+    _builder.append("toolItem = factory.createDirectToolItem();");
+    _builder.newLine();
+    _builder.append("\t");
+    _builder.append("toolItem.setType(ItemType.PUSH);");
+    _builder.newLine();
+    _builder.append("\t");
+    _builder.append("toolItem.setTooltip(\"");
+    String _name = action.getName();
+    _builder.append(_name, "\t");
+    _builder.append("\");");
+    _builder.newLineIfNotEmpty();
+    _builder.append("\t");
+    _builder.append("toolItem.setIconURI(themeResourceService.getThemeURI(\"");
+    String _iconURI = action.getIconURI();
+    _builder.append(_iconURI, "\t");
+    _builder.append("\", ThemeResourceType.ICON));");
+    _builder.newLineIfNotEmpty();
+    _builder.append("\t");
+    _builder.append("toolItem.setEnabled(true);");
+    _builder.newLine();
+    _builder.append("\t");
+    _builder.append("toolItem.setToBeRendered(true);");
+    _builder.newLine();
+    _builder.append("\t");
+    _builder.append("toolItem.setVisible(true);");
+    _builder.newLine();
+    _builder.append("\t");
+    _builder.append("toolItem.setContributionURI(\"bundleclass://\"+FrameworkUtil.getBundle(");
+    String _className = this.className(toolbar, action);
+    _builder.append(_className, "\t");
+    _builder.append(".class).getSymbolicName()+\"/");
+    String _className_1 = this.className(toolbar, action);
+    _builder.append(_className_1, "\t");
+    _builder.append("\");");
+    _builder.newLineIfNotEmpty();
+    _builder.append("\t");
+    _builder.append("toolbar.getChildren().add(toolItem);");
+    _builder.newLine();
+    {
+      ActionType _actionType = action.getActionType();
+      if ((_actionType instanceof ActionReport)) {
+        _builder.append("\t");
+        _builder.append("toolItem.getTags().add(\"");
+        ActionType _actionType_1 = action.getActionType();
+        ReportActionEnum _action = ((ActionReport) _actionType_1).getAction();
+        String _literal = _action.getLiteral();
+        _builder.append(_literal, "\t");
+        _builder.append("\");");
+        _builder.newLineIfNotEmpty();
+      }
+    }
+    body = _builder.toString();
+    return body;
+  }
+  
+  public void toToolbarFields(final JvmGenericType type, final ActionToolbar toolbar) {
+    JvmField field = null;
+    JvmTypeReference _typeRef = this._typeReferenceBuilder.typeRef(Logger.class);
+    final Procedure1<JvmField> _function = new Procedure1<JvmField>() {
+      public void apply(final JvmField it) {
+        final Procedure1<ITreeAppendable> _function = new Procedure1<ITreeAppendable>() {
+          public void apply(final ITreeAppendable it) {
+            StringConcatenation _builder = new StringConcatenation();
+            _builder.append("org.slf4j.LoggerFactory.getLogger(\"toolbar\")");
+            it.append(_builder);
+          }
+        };
+        ActionDSLJvmModelInferrer.this._jvmTypesBuilder.setInitializer(it, _function);
+      }
+    };
+    JvmField _field = this._jvmTypesBuilder.toField(toolbar, "log", _typeRef, _function);
+    field = _field;
+    field.setStatic(true);
+    field.setVisibility(JvmVisibility.PRIVATE);
+    EList<JvmMember> _members = type.getMembers();
+    this._jvmTypesBuilder.<JvmField>operator_add(_members, field);
+    JvmTypeReference _typeRef_1 = this._typeReferenceBuilder.typeRef(String.class);
+    JvmField _field_1 = this._jvmTypesBuilder.toField(toolbar, "uuid", _typeRef_1);
+    field = _field_1;
+    field.setVisibility(JvmVisibility.PRIVATE);
+    EList<JvmMember> _members_1 = type.getMembers();
+    this._jvmTypesBuilder.<JvmField>operator_add(_members_1, field);
+    JvmTypeReference _typeRef_2 = this._typeReferenceBuilder.typeRef(IEclipseContext.class);
+    JvmField _field_2 = this._jvmTypesBuilder.toField(toolbar, "eclipseContext", _typeRef_2);
+    field = _field_2;
+    EList<JvmMember> _members_2 = type.getMembers();
+    this._jvmTypesBuilder.<JvmField>operator_add(_members_2, field);
+    JvmTypeReference _typeRef_3 = this._typeReferenceBuilder.typeRef(IThemeResourceService.class);
+    JvmField _field_3 = this._jvmTypesBuilder.toField(toolbar, "themeResourceService", _typeRef_3);
+    field = _field_3;
+    EList<JvmMember> _members_3 = type.getMembers();
+    this._jvmTypesBuilder.<JvmField>operator_add(_members_3, field);
+    JvmTypeReference _typeRef_4 = this._typeReferenceBuilder.typeRef(MToolBar.class);
+    JvmField _field_4 = this._jvmTypesBuilder.toField(toolbar, "toolbar", _typeRef_4);
+    field = _field_4;
+    EList<JvmMember> _members_4 = type.getMembers();
+    this._jvmTypesBuilder.<JvmField>operator_add(_members_4, field);
+  }
+  
+  public void toHandlerFields(final JvmGenericType type, final ActionButton action) {
+    JvmField field = null;
+    JvmTypeReference _typeRef = this._typeReferenceBuilder.typeRef(Logger.class);
+    final Procedure1<JvmField> _function = new Procedure1<JvmField>() {
+      public void apply(final JvmField it) {
+        final Procedure1<ITreeAppendable> _function = new Procedure1<ITreeAppendable>() {
+          public void apply(final ITreeAppendable it) {
+            StringConcatenation _builder = new StringConcatenation();
+            _builder.append("org.slf4j.LoggerFactory.getLogger(\"action\")");
+            it.append(_builder);
+          }
+        };
+        ActionDSLJvmModelInferrer.this._jvmTypesBuilder.setInitializer(it, _function);
+      }
+    };
+    JvmField _field = this._jvmTypesBuilder.toField(action, "log", _typeRef, _function);
+    field = _field;
+    field.setStatic(true);
+    field.setVisibility(JvmVisibility.PRIVATE);
+    EList<JvmMember> _members = type.getMembers();
+    this._jvmTypesBuilder.<JvmField>operator_add(_members, field);
+    JvmTypeReference _typeRef_1 = this._typeReferenceBuilder.typeRef(IEventBroker.class);
+    final Procedure1<JvmField> _function_1 = new Procedure1<JvmField>() {
+      public void apply(final JvmField it) {
+        EList<JvmAnnotationReference> _annotations = it.getAnnotations();
+        JvmAnnotationReference _annotationRef = ActionDSLJvmModelInferrer.this._annotationTypesBuilder.annotationRef(Inject.class);
+        ActionDSLJvmModelInferrer.this._jvmTypesBuilder.<JvmAnnotationReference>operator_add(_annotations, _annotationRef);
+      }
+    };
+    JvmField _field_1 = this._jvmTypesBuilder.toField(action, "eventBroker", _typeRef_1, _function_1);
+    field = _field_1;
+    EList<JvmMember> _members_1 = type.getMembers();
+    this._jvmTypesBuilder.<JvmField>operator_add(_members_1, field);
+    JvmTypeReference _typeRef_2 = this._typeReferenceBuilder.typeRef(IUser.class);
+    final Procedure1<JvmField> _function_2 = new Procedure1<JvmField>() {
+      public void apply(final JvmField it) {
+        EList<JvmAnnotationReference> _annotations = it.getAnnotations();
+        JvmAnnotationReference _annotationRef = ActionDSLJvmModelInferrer.this._annotationTypesBuilder.annotationRef(Inject.class);
+        ActionDSLJvmModelInferrer.this._jvmTypesBuilder.<JvmAnnotationReference>operator_add(_annotations, _annotationRef);
+      }
+    };
+    JvmField _field_2 = this._jvmTypesBuilder.toField(action, "user", _typeRef_2, _function_2);
+    field = _field_2;
+    EList<JvmMember> _members_2 = type.getMembers();
+    this._jvmTypesBuilder.<JvmField>operator_add(_members_2, field);
+    JvmTypeReference _typeRef_3 = this._typeReferenceBuilder.typeRef(IEclipseContext.class);
+    final Procedure1<JvmField> _function_3 = new Procedure1<JvmField>() {
+      public void apply(final JvmField it) {
+        EList<JvmAnnotationReference> _annotations = it.getAnnotations();
+        JvmAnnotationReference _annotationRef = ActionDSLJvmModelInferrer.this._annotationTypesBuilder.annotationRef(Inject.class);
+        ActionDSLJvmModelInferrer.this._jvmTypesBuilder.<JvmAnnotationReference>operator_add(_annotations, _annotationRef);
+      }
+    };
+    JvmField _field_3 = this._jvmTypesBuilder.toField(action, "eclipseContext", _typeRef_3, _function_3);
+    field = _field_3;
+    EList<JvmMember> _members_3 = type.getMembers();
+    this._jvmTypesBuilder.<JvmField>operator_add(_members_3, field);
+    JvmTypeReference _typeRef_4 = this._typeReferenceBuilder.typeRef(IPersistenceService.class);
+    final Procedure1<JvmField> _function_4 = new Procedure1<JvmField>() {
+      public void apply(final JvmField it) {
+        EList<JvmAnnotationReference> _annotations = it.getAnnotations();
+        JvmAnnotationReference _annotationRef = ActionDSLJvmModelInferrer.this._annotationTypesBuilder.annotationRef(Inject.class);
+        ActionDSLJvmModelInferrer.this._jvmTypesBuilder.<JvmAnnotationReference>operator_add(_annotations, _annotationRef);
+      }
+    };
+    JvmField _field_4 = this._jvmTypesBuilder.toField(action, "persistenceService", _typeRef_4, _function_4);
+    field = _field_4;
+    EList<JvmMember> _members_4 = type.getMembers();
+    this._jvmTypesBuilder.<JvmField>operator_add(_members_4, field);
+    JvmTypeReference _typeRef_5 = this._typeReferenceBuilder.typeRef(ExecutorService.class);
+    JvmField _field_5 = this._jvmTypesBuilder.toField(action, "executorService", _typeRef_5);
+    field = _field_5;
+    field.setStatic(true);
+    EList<JvmMember> _members_5 = type.getMembers();
+    this._jvmTypesBuilder.<JvmField>operator_add(_members_5, field);
+  }
+  
+  /**
+   * <p>build the constructors to be used by an e4 application.</p>
+   */
+  public void toHandlerConstructor(final JvmDeclaredType type, final ActionButton action) {
+    EList<JvmMember> _members = type.getMembers();
+    final Procedure1<JvmConstructor> _function = new Procedure1<JvmConstructor>() {
+      public void apply(final JvmConstructor it) {
+        final Procedure1<ITreeAppendable> _function = new Procedure1<ITreeAppendable>() {
+          public void apply(final ITreeAppendable it) {
+            StringConcatenation _builder = new StringConcatenation();
+            CharSequence _handlerConstructor = ActionDSLJvmModelInferrer.this.handlerConstructor(action);
+            _builder.append(_handlerConstructor, "");
+            it.append(_builder);
+          }
+        };
+        ActionDSLJvmModelInferrer.this._jvmTypesBuilder.setBody(it, _function);
+      }
+    };
+    JvmConstructor _constructor = this._jvmTypesBuilder.toConstructor(action, _function);
+    this._jvmTypesBuilder.<JvmConstructor>operator_add(_members, _constructor);
+  }
+  
+  public CharSequence handlerConstructor(final ActionButton action) {
+    StringConcatenation _builder = new StringConcatenation();
+    _builder.append("executorService = Executors.newFixedThreadPool(10);");
+    _builder.newLine();
+    return _builder;
+  }
+  
+  /**
+   * <p>build the methods to be used as toolbar handlers by an e4 application.</p>
+   */
+  public void toHandlerOperations(final JvmDeclaredType type, final ActionToolbar toolbar, final ActionButton action) {
+    EList<JvmMember> _members = type.getMembers();
+    JvmTypeReference _typeRef = this._typeReferenceBuilder.typeRef(Library.Context.class);
+    final Procedure1<JvmOperation> _function = new Procedure1<JvmOperation>() {
+      public void apply(final JvmOperation it) {
+        it.setVisibility(JvmVisibility.PRIVATE);
+        final Procedure1<ITreeAppendable> _function = new Procedure1<ITreeAppendable>() {
+          public void apply(final ITreeAppendable it) {
+            StringConcatenation _builder = new StringConcatenation();
+            CharSequence _content = ActionDSLJvmModelInferrer.this.getContent(action);
+            _builder.append(_content, "");
+            it.append(_builder);
+          }
+        };
+        ActionDSLJvmModelInferrer.this._jvmTypesBuilder.setBody(it, _function);
+      }
+    };
+    JvmOperation _method = this._jvmTypesBuilder.toMethod(action, "getContent", _typeRef, _function);
+    this._jvmTypesBuilder.<JvmOperation>operator_add(_members, _method);
+    EList<JvmMember> _members_1 = type.getMembers();
+    JvmTypeReference _typeRef_1 = this._typeReferenceBuilder.typeRef(boolean.class);
+    final Procedure1<JvmOperation> _function_1 = new Procedure1<JvmOperation>() {
+      public void apply(final JvmOperation it) {
+        EList<JvmAnnotationReference> _annotations = it.getAnnotations();
+        JvmAnnotationReference _annotationRef = ActionDSLJvmModelInferrer.this._annotationTypesBuilder.annotationRef(CanExecute.class);
+        ActionDSLJvmModelInferrer.this._jvmTypesBuilder.<JvmAnnotationReference>operator_add(_annotations, _annotationRef);
+        final Procedure1<ITreeAppendable> _function = new Procedure1<ITreeAppendable>() {
+          public void apply(final ITreeAppendable it) {
+            StringConcatenation _builder = new StringConcatenation();
+            CharSequence _canExecute = ActionDSLJvmModelInferrer.this.canExecute(action);
+            _builder.append(_canExecute, "");
+            it.append(_builder);
+          }
+        };
+        ActionDSLJvmModelInferrer.this._jvmTypesBuilder.setBody(it, _function);
+      }
+    };
+    JvmOperation _method_1 = this._jvmTypesBuilder.toMethod(action, "canExecute", _typeRef_1, _function_1);
+    this._jvmTypesBuilder.<JvmOperation>operator_add(_members_1, _method_1);
+    EList<JvmMember> _members_2 = type.getMembers();
+    JvmTypeReference _typeRef_2 = this._typeReferenceBuilder.typeRef(Void.TYPE);
+    final Procedure1<JvmOperation> _function_2 = new Procedure1<JvmOperation>() {
+      public void apply(final JvmOperation it) {
+        EList<JvmAnnotationReference> _annotations = it.getAnnotations();
+        JvmAnnotationReference _annotationRef = ActionDSLJvmModelInferrer.this._annotationTypesBuilder.annotationRef(Execute.class);
+        ActionDSLJvmModelInferrer.this._jvmTypesBuilder.<JvmAnnotationReference>operator_add(_annotations, _annotationRef);
+        EList<JvmFormalParameter> _parameters = it.getParameters();
+        JvmTypeReference _typeRef = ActionDSLJvmModelInferrer.this._typeReferenceBuilder.typeRef(IEventBroker.class);
+        JvmFormalParameter _parameter = ActionDSLJvmModelInferrer.this._jvmTypesBuilder.toParameter(action, "eventBroker", _typeRef);
+        ActionDSLJvmModelInferrer.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 _execute = ActionDSLJvmModelInferrer.this.execute(action, toolbar);
+            _builder.append(_execute, "");
+            it.append(_builder);
+          }
+        };
+        ActionDSLJvmModelInferrer.this._jvmTypesBuilder.setBody(it, _function);
+      }
+    };
+    JvmOperation _method_2 = this._jvmTypesBuilder.toMethod(action, "execute", _typeRef_2, _function_2);
+    this._jvmTypesBuilder.<JvmOperation>operator_add(_members_2, _method_2);
+  }
+  
+  public CharSequence execute(final ActionButton action, final ActionToolbar toolbar) {
+    CharSequence _xblockexpression = null;
+    {
+      String packageFQN = "";
+      FunctionLibraryGroup _group = action.getGroup();
+      boolean _notEquals = (!Objects.equal(_group, null));
+      if (_notEquals) {
+        FunctionLibraryGroup _group_1 = action.getGroup();
+        EObject _eContainer = _group_1.eContainer();
+        FunctionLibraryPackage pkg = ((FunctionLibraryPackage) _eContainer);
+        QualifiedName _fullyQualifiedName = this._iQualifiedNameProvider.getFullyQualifiedName(pkg);
+        String _string = _fullyQualifiedName.toString();
+        packageFQN = _string;
+      }
+      CharSequence _switchResult = null;
+      ActionType _actionType = action.getActionType();
+      boolean _matched = false;
+      if (!_matched) {
+        if (_actionType instanceof ActionTask) {
+          _matched=true;
+          ActionType _actionType_1 = action.getActionType();
+          TaskActionEnum _action = ((ActionTask) _actionType_1).getAction();
+          String _literal = _action.getLiteral();
+          _switchResult = this.doBroadcast(_literal, action, toolbar, packageFQN);
+        }
+      }
+      if (!_matched) {
+        if (_actionType instanceof ActionSelectWorkload) {
+          _matched=true;
+          ActionType _actionType_1 = action.getActionType();
+          SelectWorkloadActionEnum _action = ((ActionSelectWorkload) _actionType_1).getAction();
+          String _literal = _action.getLiteral();
+          _switchResult = this.doBroadcast(_literal, action, toolbar, packageFQN);
+        }
+      }
+      if (!_matched) {
+        if (_actionType instanceof ActionDialog) {
+          _matched=true;
+          ActionType _actionType_1 = action.getActionType();
+          DialogActionEnum _action = ((ActionDialog) _actionType_1).getAction();
+          String _literal = _action.getLiteral();
+          _switchResult = this.doBroadcast(_literal, action, toolbar, packageFQN);
+        }
+      }
+      if (!_matched) {
+        if (_actionType instanceof ActionReport) {
+          _matched=true;
+          ActionType _actionType_1 = action.getActionType();
+          ReportActionEnum _action = ((ActionReport) _actionType_1).getAction();
+          String _literal = _action.getLiteral();
+          _switchResult = this.doBroadcast(_literal, action, toolbar, packageFQN);
+        }
+      }
+      if (!_matched) {
+        if (_actionType instanceof ActionChart) {
+          _matched=true;
+          ActionType _actionType_1 = action.getActionType();
+          ChartActionEnum _action = ((ActionChart) _actionType_1).getAction();
+          String _literal = _action.getLiteral();
+          _switchResult = this.doBroadcast(_literal, action, toolbar, packageFQN);
+        }
+      }
+      if (!_matched) {
+        if (_actionType instanceof ActionWorkflow) {
+          _matched=true;
+          ActionType _actionType_1 = action.getActionType();
+          WorkflowActionEnum _action = ((ActionWorkflow) _actionType_1).getAction();
+          String _literal = _action.getLiteral();
+          _switchResult = this.doBroadcast(_literal, action, toolbar, packageFQN);
+        }
+      }
+      if (!_matched) {
+        if (_actionType instanceof ActionDatainterchange) {
+          _matched=true;
+          ActionType _actionType_1 = action.getActionType();
+          DataInterchange _dataRef = ((ActionDatainterchange) _actionType_1).getDataRef();
+          CharSequence _doInterchange = null;
+          if (_dataRef!=null) {
+            _doInterchange=this.doInterchange(_dataRef, action);
+          }
+          _switchResult = _doInterchange;
+        }
+      }
+      if (!_matched) {
+        if (_actionType instanceof ActionGeneric) {
+          _matched=true;
+          ActionType _actionType_1 = action.getActionType();
+          String _action = ((ActionGeneric) _actionType_1).getAction();
+          _switchResult = this.doBroadcast(_action, action, toolbar, packageFQN);
+        }
+      }
+      _xblockexpression = _switchResult;
+    }
+    return _xblockexpression;
+  }
+  
+  public CharSequence doInterchange(final DataInterchange dataInterchange, final ActionButton action) {
+    StringConcatenation _builder = new StringConcatenation();
+    String _fileURL = this.data.getFileURL(dataInterchange);
+    String _basicRunConfiguration = this.data.getBasicRunConfiguration(dataInterchange, true, _fileURL);
+    _builder.append(_basicRunConfiguration, "");
+    _builder.newLineIfNotEmpty();
+    String _defaultVariableName = this.data.getDefaultVariableName(dataInterchange);
+    _builder.append(_defaultVariableName, "");
+    _builder.append(".setDirection(WorkerThreadRunnable.Direction.");
+    ActionType _actionType = action.getActionType();
+    DatainterchangeActionEnum _action = ((ActionDatainterchange) _actionType).getAction();
+    String _literal = _action.getLiteral();
+    String _upperCase = _literal.toUpperCase();
+    _builder.append(_upperCase, "");
+    _builder.append(");");
+    _builder.newLineIfNotEmpty();
+    String _defaultVariableName_1 = this.data.getDefaultVariableName(dataInterchange);
+    _builder.append(_defaultVariableName_1, "");
+    _builder.append(".setEventBroker(eventBroker);");
+    _builder.newLineIfNotEmpty();
+    _builder.append("executorService.execute(");
+    String _defaultVariableName_2 = this.data.getDefaultVariableName(dataInterchange);
+    _builder.append(_defaultVariableName_2, "");
+    _builder.append(");");
+    return _builder;
+  }
+  
+  public CharSequence doBroadcast(final String identifier, final ActionButton action, final ActionToolbar toolbar, final String packageFQN) {
+    StringConcatenation _builder = new StringConcatenation();
+    _builder.append("log.debug(\"action execute called for ");
+    String _name = action.getName();
+    _builder.append(_name, "");
+    _builder.append("\");");
+    _builder.newLineIfNotEmpty();
+    _builder.append("String uuid = (String)eclipseContext.get(\"");
+    String _name_1 = toolbar.getName();
+    _builder.append(_name_1, "");
+    _builder.append("_TOOLBAR_ID\");");
+    _builder.newLineIfNotEmpty();
+    _builder.append("eventBroker.send(EventBrokerMsg.ACTION_BUTTON_EXECUTE_PREFIX+\"");
+    String _name_2 = toolbar.getName();
+    _builder.append(_name_2, "");
+    _builder.append("Action\"+uuid, new EventBrokerMsg(-1, \"");
+    _builder.append(identifier, "");
+    _builder.append("\", ");
+    {
+      boolean _or = false;
+      FunctionLibraryGroup _group = action.getGroup();
+      boolean _equals = Objects.equal(_group, null);
+      if (_equals) {
+        _or = true;
+      } else {
+        FunctionLibraryFunction _executeparameter = action.getExecuteparameter();
+        boolean _equals_1 = Objects.equal(_executeparameter, null);
+        _or = _equals_1;
+      }
+      if (_or) {
+        _builder.append("0L");
+      } else {
+        _builder.append(packageFQN, "");
+        _builder.append(".");
+        FunctionLibraryGroup _group_1 = action.getGroup();
+        String _name_3 = _group_1.getName();
+        String _string = _name_3.toString();
+        String _firstUpper = StringExtensions.toFirstUpper(_string);
+        _builder.append(_firstUpper, "");
+        _builder.append(".");
+        FunctionLibraryFunction _executeparameter_1 = action.getExecuteparameter();
+        String _name_4 = _executeparameter_1.getName();
+        String _string_1 = _name_4.toString();
+        _builder.append(_string_1, "");
+        _builder.append("(getContent())");
+      }
+    }
+    _builder.append("));");
+    return _builder;
+  }
+  
+  public CharSequence canExecute(final ActionButton action) {
+    CharSequence _xifexpression = null;
+    boolean _notEquals = (!Objects.equal(action, null));
+    if (_notEquals) {
+      CharSequence _xifexpression_1 = null;
+      FunctionLibraryGroup _group = action.getGroup();
+      boolean _notEquals_1 = (!Objects.equal(_group, null));
+      if (_notEquals_1) {
+        CharSequence _xblockexpression = null;
+        {
+          FunctionLibraryGroup _group_1 = action.getGroup();
+          EObject _eContainer = _group_1.eContainer();
+          FunctionLibraryPackage pkg = ((FunctionLibraryPackage) _eContainer);
+          StringConcatenation _builder = new StringConcatenation();
+          {
+            FunctionLibraryGroup _group_2 = action.getGroup();
+            boolean _equals = Objects.equal(_group_2, null);
+            if (_equals) {
+              _builder.append("return true;");
+            } else {
+              _builder.append("return ");
+              QualifiedName _fullyQualifiedName = this._iQualifiedNameProvider.getFullyQualifiedName(pkg);
+              String _string = _fullyQualifiedName.toString();
+              _builder.append(_string, "");
+              _builder.append(".");
+              FunctionLibraryGroup _group_3 = action.getGroup();
+              String _name = _group_3.getName();
+              String _string_1 = _name.toString();
+              String _firstUpper = StringExtensions.toFirstUpper(_string_1);
+              _builder.append(_firstUpper, "");
+              _builder.append(".");
+              FunctionLibraryFunction _canexecute = action.getCanexecute();
+              String _name_1 = _canexecute.getName();
+              String _string_2 = _name_1.toString();
+              _builder.append(_string_2, "");
+              _builder.append("(getContent());");
+            }
+          }
+          _xblockexpression = _builder;
+        }
+        _xifexpression_1 = _xblockexpression;
+      } else {
+        StringConcatenation _builder = new StringConcatenation();
+        _builder.append("return true;");
+        _xifexpression_1 = _builder;
+      }
+      _xifexpression = _xifexpression_1;
+    } else {
+      StringConcatenation _builder_1 = new StringConcatenation();
+      _builder_1.append("return true;");
+      _xifexpression = _builder_1;
+    }
+    return _xifexpression;
+  }
+  
+  public CharSequence getContent(final ActionButton action) {
+    StringConcatenation _builder = new StringConcatenation();
+    _builder.append("Context result = new Context();");
+    _builder.newLine();
+    _builder.append("result.put(Context.USER, user);");
+    _builder.newLine();
+    _builder.append("MContext context = eclipseContext.get(MContext.class);");
+    _builder.newLine();
+    _builder.append("if (context instanceof MPart && ((MPart)context).getTransientData().containsKey(\"tablePositionInfo\")) {");
+    _builder.newLine();
+    _builder.append("\t");
+    _builder.append("result.put(Context.TABLE, ((MPart)context).getTransientData().get(\"tablePositionInfo\"));");
+    _builder.newLine();
+    _builder.append("\t");
+    _builder.append("result.put(Context.TASKSUMMARY, ((MPart)context).getTransientData().get(\"taskSummary\"));");
+    _builder.newLine();
+    _builder.append("}");
+    _builder.newLine();
+    _builder.append("else if (context instanceof MTrimmedWindow) {");
+    _builder.newLine();
+    _builder.append("\t");
+    _builder.append("if (((MTrimmedWindow)context).getSelectedElement()!=null && ((MTrimmedWindow)context).getSelectedElement() instanceof MPerspectiveStack) {");
+    _builder.newLine();
+    _builder.append("\t\t");
+    _builder.append("MPerspectiveStack perspectiveStack = (MPerspectiveStack)((MTrimmedWindow)context).getSelectedElement();");
+    _builder.newLine();
+    _builder.append("\t\t");
+    _builder.append("if (perspectiveStack.getSelectedElement() != null && perspectiveStack.getSelectedElement() instanceof MPerspective) {");
+    _builder.newLine();
+    _builder.append("\t\t\t");
+    _builder.append("MPerspective perspective = (MPerspective)perspectiveStack.getSelectedElement();");
+    _builder.newLine();
+    _builder.append("\t\t\t");
+    _builder.append("if (perspective.getTransientData().containsKey(\"taskSummary\")) {");
+    _builder.newLine();
+    _builder.append("\t\t\t\t");
+    _builder.append("result.put(Context.TASKSUMMARY, perspective.getTransientData().get(\"taskSummary\"));");
+    _builder.newLine();
+    _builder.append("\t\t\t");
+    _builder.append("}");
+    _builder.newLine();
+    _builder.append("\t\t");
+    _builder.append("}");
+    _builder.newLine();
+    _builder.append("\t");
+    _builder.append("}");
+    _builder.newLine();
+    _builder.append("}");
+    _builder.newLine();
+    _builder.append("return result;");
+    return _builder;
+  }
+  
+  public void infer(final EObject pkg, final IJvmDeclaredTypeAcceptor acceptor, final boolean isPreIndexingPhase) {
+    if (pkg instanceof ActionPackage) {
+      _infer((ActionPackage)pkg, acceptor, isPreIndexingPhase);
+      return;
+    } else if (pkg != null) {
+      _infer(pkg, acceptor, isPreIndexingPhase);
+      return;
+    } else {
+      throw new IllegalArgumentException("Unhandled parameter types: " +
+        Arrays.<Object>asList(pkg, acceptor, isPreIndexingPhase).toString());
+    }
+  }
+}
diff --git a/org.eclipse.osbp.xtext.action/xtend-gen/org/eclipse/osbp/xtext/action/jvmmodel/ActionModelGenerator.java b/org.eclipse.osbp.xtext.action/xtend-gen/org/eclipse/osbp/xtext/action/jvmmodel/ActionModelGenerator.java
new file mode 100644
index 0000000..c60fc56
--- /dev/null
+++ b/org.eclipse.osbp.xtext.action/xtend-gen/org/eclipse/osbp/xtext/action/jvmmodel/ActionModelGenerator.java
@@ -0,0 +1,81 @@
+/**
+ * Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 
+ *  All rights reserved. This program and the accompanying materials
+ *  are made available under the 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.action.jvmmodel;
+
+import com.vaadin.ui.AbstractLayout;
+import com.vaadin.ui.Component;
+import com.vaadin.ui.CssLayout;
+import com.vaadin.ui.Panel;
+import com.vaadin.ui.UI;
+import com.vaadin.ui.VerticalLayout;
+import java.lang.reflect.Method;
+import java.util.Locale;
+import java.util.concurrent.Executors;
+import javax.inject.Inject;
+import org.eclipse.e4.core.di.extensions.EventUtils;
+import org.eclipse.e4.core.services.translation.TranslationService;
+import org.eclipse.e4.ui.model.application.ui.MContext;
+import org.eclipse.e4.ui.model.application.ui.advanced.MPerspective;
+import org.eclipse.e4.ui.model.application.ui.advanced.MPerspectiveStack;
+import org.eclipse.e4.ui.model.application.ui.basic.MPart;
+import org.eclipse.e4.ui.model.application.ui.basic.MTrimmedWindow;
+import org.eclipse.e4.ui.model.application.ui.menu.ItemType;
+import org.eclipse.e4.ui.model.application.ui.menu.MDirectToolItem;
+import org.eclipse.e4.ui.model.application.ui.menu.MToolBar;
+import org.eclipse.e4.ui.model.application.ui.menu.impl.MenuFactoryImpl;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.resource.Resource;
+import org.eclipse.osbp.eventbroker.EventBrokerMsg;
+import org.eclipse.osbp.persistence.IPersistenceService;
+import org.eclipse.osbp.ui.api.themes.IThemeResourceService;
+import org.eclipse.osbp.utils.theme.EnumCssClass;
+import org.eclipse.osbp.xtext.basic.generator.BasicDslGeneratorUtils;
+import org.eclipse.osbp.xtext.datainterchange.common.WorkerThreadRunnable;
+import org.eclipse.osbp.xtext.functionlibrarydsl.util.Library;
+import org.eclipse.osbp.xtext.i18n.I18NModelGenerator;
+import org.eclipse.xtext.generator.IFileSystemAccess;
+import org.eclipse.xtext.xbase.compiler.GeneratorConfig;
+import org.eclipse.xtext.xbase.compiler.ImportManager;
+import org.eclipse.xtext.xbase.compiler.output.TreeAppendable;
+import org.eclipse.xtext.xbase.jvmmodel.JvmTypesBuilder;
+import org.eclipse.xtext.xbase.lib.Extension;
+import org.osgi.framework.FrameworkUtil;
+import org.osgi.service.event.Event;
+
+@SuppressWarnings("all")
+public class ActionModelGenerator extends I18NModelGenerator {
+  @Inject
+  @Extension
+  private JvmTypesBuilder _jvmTypesBuilder;
+  
+  @Inject
+  @Extension
+  private BasicDslGeneratorUtils _basicDslGeneratorUtils;
+  
+  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, Event.class, EventUtils.class, MToolBar.class, MenuFactoryImpl.class, ItemType.class, VerticalLayout.class, Panel.class, CssLayout.class, Component.class, AbstractLayout.class, MDirectToolItem.class, MContext.class, MTrimmedWindow.class, MPerspectiveStack.class, MPerspective.class, MPart.class, Method.class, EventBrokerMsg.class, FrameworkUtil.class, UI.class, Locale.class, TranslationService.class, IThemeResourceService.class, IThemeResourceService.ThemeResourceType.class, EnumCssClass.class, IPersistenceService.class, WorkerThreadRunnable.class, Executors.class, Library.Context.class);
+      _xblockexpression = super.createAppendable(context, importManager, config);
+    }
+    return _xblockexpression;
+  }
+  
+  public void doGenerate(final Resource input, final IFileSystemAccess fsa) {
+    super.doGenerate(input, fsa);
+  }
+}
diff --git a/org.eclipse.osbp.xtext.action/xtend-gen/org/eclipse/osbp/xtext/action/scoping/ActionScopeProvider.java b/org.eclipse.osbp.xtext.action/xtend-gen/org/eclipse/osbp/xtext/action/scoping/ActionScopeProvider.java
new file mode 100644
index 0000000..2c78a1b
--- /dev/null
+++ b/org.eclipse.osbp.xtext.action/xtend-gen/org/eclipse/osbp/xtext/action/scoping/ActionScopeProvider.java
@@ -0,0 +1,128 @@
+/**
+ * Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
+ * 
+ *  All rights reserved. This program and the accompanying materials
+ *  are made available under the 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.action.scoping;
+
+import com.google.common.base.Objects;
+import java.util.ArrayList;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EReference;
+import org.eclipse.osbp.xtext.action.ActionButton;
+import org.eclipse.osbp.xtext.action.ActionDSLPackage;
+import org.eclipse.osbp.xtext.functionlibrarydsl.FunctionLibraryFunction;
+import org.eclipse.osbp.xtext.functionlibrarydsl.FunctionLibraryGroup;
+import org.eclipse.osbp.xtext.functionlibrarydsl.FunctionLibraryParameter;
+import org.eclipse.osbp.xtext.messagedsl.MessageItem;
+import org.eclipse.xtend2.lib.StringConcatenation;
+import org.eclipse.xtext.common.types.JvmParameterizedTypeReference;
+import org.eclipse.xtext.naming.QualifiedName;
+import org.eclipse.xtext.resource.IEObjectDescription;
+import org.eclipse.xtext.scoping.IScope;
+import org.eclipse.xtext.scoping.Scopes;
+import org.eclipse.xtext.xbase.annotations.typesystem.XbaseWithAnnotationsBatchScopeProvider;
+import org.eclipse.xtext.xbase.lib.CollectionLiterals;
+import org.eclipse.xtext.xbase.lib.InputOutput;
+
+@SuppressWarnings("all")
+public class ActionScopeProvider extends XbaseWithAnnotationsBatchScopeProvider {
+  public IScope getScope(final EObject context, final EReference reference) {
+    boolean _equals = Objects.equal(reference, ActionDSLPackage.Literals.ACTION_BUTTON__CANEXECUTE);
+    if (_equals) {
+      return this.getScope_ActionButtonCanExecute(((ActionButton) context), reference);
+    } else {
+      boolean _equals_1 = Objects.equal(reference, ActionDSLPackage.Literals.ACTION_BUTTON__EXECUTEPARAMETER);
+      if (_equals_1) {
+        return this.getScope_ActionButtonExecuteParameter(((ActionButton) context), reference);
+      }
+    }
+    return super.getScope(context, reference);
+  }
+  
+  public IScope getScope_ActionButtonCanExecute(final ActionButton context, final EReference reference) {
+    IScope parentScope = super.getScope(context, reference);
+    ArrayList<EObject> result = CollectionLiterals.<EObject>newArrayList();
+    FunctionLibraryGroup _group = context.getGroup();
+    EList<FunctionLibraryFunction> _functions = ((FunctionLibraryGroup) _group).getFunctions();
+    for (final FunctionLibraryFunction function : _functions) {
+      boolean _or = false;
+      EList<FunctionLibraryParameter> _params = function.getParams();
+      boolean _equals = Objects.equal(_params, null);
+      if (_equals) {
+        _or = true;
+      } else {
+        EList<FunctionLibraryParameter> _params_1 = function.getParams();
+        int _size = _params_1.size();
+        boolean _equals_1 = (_size == 0);
+        _or = _equals_1;
+      }
+      if (_or) {
+        JvmParameterizedTypeReference _oftype = function.getOftype();
+        String ofType = _oftype.getSimpleName();
+        boolean _equals_2 = "boolean".equals(ofType);
+        if (_equals_2) {
+          result.add(function);
+        }
+      }
+    }
+    return Scopes.scopeFor(result, parentScope);
+  }
+  
+  public IScope getScope_ActionButtonExecuteParameter(final ActionButton context, final EReference reference) {
+    IScope parentScope = super.getScope(context, reference);
+    ArrayList<EObject> result = CollectionLiterals.<EObject>newArrayList();
+    FunctionLibraryGroup _group = context.getGroup();
+    EList<FunctionLibraryFunction> _functions = ((FunctionLibraryGroup) _group).getFunctions();
+    for (final FunctionLibraryFunction function : _functions) {
+      boolean _or = false;
+      EList<FunctionLibraryParameter> _params = function.getParams();
+      boolean _equals = Objects.equal(_params, null);
+      if (_equals) {
+        _or = true;
+      } else {
+        EList<FunctionLibraryParameter> _params_1 = function.getParams();
+        int _size = _params_1.size();
+        boolean _equals_1 = (_size == 0);
+        _or = _equals_1;
+      }
+      if (_or) {
+        result.add(function);
+      }
+    }
+    return Scopes.scopeFor(result, parentScope);
+  }
+  
+  public IScope getScope_ActionButtonMessage(final ActionButton context, final EReference reference) {
+    IScope parentScope = super.getScope(context, reference);
+    Iterable<IEObjectDescription> elements = parentScope.getAllElements();
+    for (final IEObjectDescription element : elements) {
+      {
+        QualifiedName elementname = element.getName();
+        StringConcatenation _builder = new StringConcatenation();
+        _builder.append("elementname: ");
+        _builder.append(elementname, "");
+        InputOutput.<String>println(_builder.toString());
+      }
+    }
+    ArrayList<EObject> result = CollectionLiterals.<EObject>newArrayList();
+    MessageItem _message = context.getMessage();
+    MessageItem message = ((MessageItem) _message);
+    EObject eObj = message.eContainer();
+    boolean _notEquals = (!Objects.equal(message, null));
+    if (_notEquals) {
+      result.add(message);
+    }
+    return Scopes.scopeFor(result, parentScope);
+  }
+}
diff --git a/org.eclipse.osbp.xtext.action/xtend-gen/org/eclipse/osbp/xtext/action/validation/ActionDSLValidator.java b/org.eclipse.osbp.xtext.action/xtend-gen/org/eclipse/osbp/xtext/action/validation/ActionDSLValidator.java
new file mode 100644
index 0000000..6687bc0
--- /dev/null
+++ b/org.eclipse.osbp.xtext.action/xtend-gen/org/eclipse/osbp/xtext/action/validation/ActionDSLValidator.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.action.validation;
+
+import org.eclipse.osbp.xtext.action.validation.AbstractActionDSLValidator;
+
+/**
+ * Custom validation rules.
+ * 
+ * see http://www.eclipse.org/Xtext/documentation.html#validation
+ */
+@SuppressWarnings("all")
+public class ActionDSLValidator extends AbstractActionDSLValidator {
+}
diff --git a/pom.xml b/pom.xml
new file mode 100644
index 0000000..5c032fb
--- /dev/null
+++ b/pom.xml
@@ -0,0 +1,97 @@
+<?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.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.action</groupId>
+    <artifactId>org.eclipse.osbp.xtext.action.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.action</module>
+        <module>org.eclipse.osbp.xtext.action.ui</module>
+        <module>org.eclipse.osbp.xtext.action.tests</module>
+        <module>org.eclipse.osbp.xtext.action.feature</module>
+    </modules>
+
+    <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>